0
| 本文作者: AI研習(xí)社-譯站 | 2018-07-24 09:56 |
雷鋒網(wǎng) AI 研習(xí)社按:本文為雷鋒網(wǎng)字幕組編譯的技術(shù)博客,原標(biāo)題 SSD(Single Shot Multi-Box Detection) for real time object detection,作者 Rabin Poudyal。
翻譯 | 陶玉龍 校對 | 佟金廣 整理 | 孔令雙
卷積神經(jīng)網(wǎng)絡(luò)在檢測圖像中的物體時(shí)優(yōu)于其他神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。很快,研究人員改進(jìn)了 CNN 來進(jìn)行對象定位與檢測,并稱這種結(jié)構(gòu)為 R-CNN(Region-CNN)。R-CNN 的輸出是具有矩形框和分類的圖像,矩形框圍繞著圖像中的對象。以下是 R-CNN 的工作步驟:
使用我們稱為選擇性搜索的算法掃描輸入圖像,進(jìn)而查找可能的對象,生成大約 2000 個(gè)候選區(qū)域,
在每個(gè)候選區(qū)域上運(yùn)行 CNN,
獲取每個(gè) CNN 的輸出并將其輸入:
SVM 來區(qū)域進(jìn)行分類
線性回歸器來收緊對象的邊界框,如果對象存在

R-CNN 運(yùn)用于目標(biāo)檢測
雖然與傳統(tǒng)的 CNN 相比,R-CNN 在目標(biāo)定位,檢測和分類方面都取得了很大進(jìn)步,但在實(shí)現(xiàn)目標(biāo)實(shí)時(shí)檢測方面依舊存在問題。以下是其中的一些問題:
1、訓(xùn)練數(shù)據(jù)很難處理,而且耗時(shí)很長
2、訓(xùn)練分為兩個(gè)階段進(jìn)行(即:候選區(qū)域的選擇和分類)
3、網(wǎng)絡(luò)在推理階段很慢(處理非訓(xùn)練數(shù)據(jù)時(shí))
為了改進(jìn) R-CNN,研究人員們相繼提出了其他算法,如 Fast-RCNN,F(xiàn)aster-RCNN 等。 這些算法為目標(biāo)檢測提供了更準(zhǔn)確的結(jié)果。 但它們對于實(shí)時(shí)檢測來說顯得有點(diǎn)慢。SSD 就在這個(gè)時(shí)候應(yīng)運(yùn)而生,它在準(zhǔn)確性和計(jì)算速度方面具有良好的平衡。
SSD(單發(fā)多邊框檢測器)的含義
單發(fā):目標(biāo)定位和分類在網(wǎng)絡(luò)的單個(gè)前向傳遞中完成 :
多框:邊界框回歸的技術(shù)
檢測器:對檢測到的對象進(jìn)行分類

SSD 結(jié)構(gòu)
SSD 的結(jié)構(gòu)建立在 VGG-16 的基礎(chǔ)上。但在這里對 VGG-16 進(jìn)行了一些微小調(diào)整,從 Conv6 層開始,我們用一系列輔助卷積層來代替原先全連接層。因?yàn)?VGG-16 可以提供高質(zhì)量的圖像分類和遷移學(xué)習(xí)來改善結(jié)果, 我們將其作為 SSD 的基礎(chǔ)網(wǎng)絡(luò)。通過使用輔助卷積層,我們可以提取圖像多個(gè)尺度的特征,并逐步減小每個(gè)卷積層的尺寸。我已在下一節(jié)討論了它的工作原理。您可以看到 VGG-16 架構(gòu)的以下圖像, 它包含全連接層。

VGG-16 結(jié)構(gòu)

為了訓(xùn)練我們的算法,我們需要一個(gè)包含帶有對象的圖像的訓(xùn)練集,這些對象必須在它們上面有邊界框。 通過這種方式學(xué)習(xí),算法學(xué)習(xí)如何在對象上放置矩形框以及放置在何處。 我們通過調(diào)參使預(yù)測出的邊界框和實(shí)際的邊界框之間的誤差最小,從而優(yōu)化我們的模型以正確地檢測對象。與 CNN 不同,我們不僅預(yù)測圖像中是否存在物體,還需要預(yù)測物體在圖像中的位置。在訓(xùn)練期間,算法也要學(xué)習(xí)調(diào)整對象邊界框中的高度和寬度。

上圖是我們用于目標(biāo)檢測的訓(xùn)練數(shù)據(jù)集的示例。 這些數(shù)據(jù)集必須包含在圖像中標(biāo)記類別的對象。 更多默認(rèn)框會有更準(zhǔn)確的檢測,但會以速度犧牲作為代價(jià)。
Pascal VOC 和 COCO 數(shù)據(jù)集對初學(xué)者而言是一個(gè)很好的入門。

在左邊是一張有幾匹馬的圖像。我們將輸入圖像劃分為網(wǎng)格集。 然后我們圍繞這些網(wǎng)格制作幾個(gè)不同寬高比的矩形框。 我們在這些框中應(yīng)用卷積來研究這些網(wǎng)格中是否存在對象。這里的一匹黑馬在圖像中更靠近攝像頭。因此,我們繪制的邊界框無法識別是否是馬,因?yàn)檫吔缈驔]有任何可以識別馬匹的特征。

如果我們看上述 SSD 的架構(gòu),我們可以看到在 conv6 層之后的每個(gè)步驟中圖像的大小在顯著減小。 我們討論的關(guān)于劃分網(wǎng)格和在這些網(wǎng)格上查找對象的每個(gè)操作都適用于從網(wǎng)絡(luò)的后面到前面的卷積的每個(gè)步驟。 分類器也應(yīng)用在每個(gè)步驟中來檢測對象。 因此,由于物體在每個(gè)步驟中變得更小,它很容易識別。
SSD 算法還知道如何從一個(gè)卷積操作返回到另一個(gè)卷積操作。 它不僅會前向運(yùn)算而且會后向運(yùn)算。 例如,如果它在 conv4 中看到馬,那么它可以返回到 conv6 并且將在馬周圍繪制矩形框。
原文鏈接:
雷鋒網(wǎng) AI 研習(xí)社編譯。
號外號外~
一個(gè)專注于
AI技術(shù)發(fā)展和AI工程師成長的求知求職社區(qū)
誕生啦!
歡迎大家訪問以下鏈接或者掃碼體驗(yàn)
https://club.leiphone.com/page/home


雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。