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。
翻譯 | 陶玉龍 校對(duì) | 佟金廣 整理 | 孔令雙
卷積神經(jīng)網(wǎng)絡(luò)在檢測(cè)圖像中的物體時(shí)優(yōu)于其他神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。很快,研究人員改進(jìn)了 CNN 來進(jìn)行對(duì)象定位與檢測(cè),并稱這種結(jié)構(gòu)為 R-CNN(Region-CNN)。R-CNN 的輸出是具有矩形框和分類的圖像,矩形框圍繞著圖像中的對(duì)象。以下是 R-CNN 的工作步驟:
使用我們稱為選擇性搜索的算法掃描輸入圖像,進(jìn)而查找可能的對(duì)象,生成大約 2000 個(gè)候選區(qū)域,
在每個(gè)候選區(qū)域上運(yùn)行 CNN,
獲取每個(gè) CNN 的輸出并將其輸入:
SVM 來區(qū)域進(jìn)行分類
線性回歸器來收緊對(duì)象的邊界框,如果對(duì)象存在
R-CNN 運(yùn)用于目標(biāo)檢測(cè)
雖然與傳統(tǒng)的 CNN 相比,R-CNN 在目標(biāo)定位,檢測(cè)和分類方面都取得了很大進(jìn)步,但在實(shí)現(xiàn)目標(biāo)實(shí)時(shí)檢測(cè)方面依舊存在問題。以下是其中的一些問題:
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)檢測(cè)提供了更準(zhǔn)確的結(jié)果。 但它們對(duì)于實(shí)時(shí)檢測(cè)來說顯得有點(diǎn)慢。SSD 就在這個(gè)時(shí)候應(yīng)運(yùn)而生,它在準(zhǔn)確性和計(jì)算速度方面具有良好的平衡。
SSD(單發(fā)多邊框檢測(cè)器)的含義
單發(fā):目標(biāo)定位和分類在網(wǎng)絡(luò)的單個(gè)前向傳遞中完成 :
多框:邊界框回歸的技術(shù)
檢測(cè)器:對(duì)檢測(cè)到的對(duì)象進(jìn)行分類
SSD 結(jié)構(gòu)
SSD 的結(jié)構(gòu)建立在 VGG-16 的基礎(chǔ)上。但在這里對(duì) 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è)包含帶有對(duì)象的圖像的訓(xùn)練集,這些對(duì)象必須在它們上面有邊界框。 通過這種方式學(xué)習(xí),算法學(xué)習(xí)如何在對(duì)象上放置矩形框以及放置在何處。 我們通過調(diào)參使預(yù)測(cè)出的邊界框和實(shí)際的邊界框之間的誤差最小,從而優(yōu)化我們的模型以正確地檢測(cè)對(duì)象。與 CNN 不同,我們不僅預(yù)測(cè)圖像中是否存在物體,還需要預(yù)測(cè)物體在圖像中的位置。在訓(xùn)練期間,算法也要學(xué)習(xí)調(diào)整對(duì)象邊界框中的高度和寬度。
上圖是我們用于目標(biāo)檢測(cè)的訓(xùn)練數(shù)據(jù)集的示例。 這些數(shù)據(jù)集必須包含在圖像中標(biāo)記類別的對(duì)象。 更多默認(rèn)框會(huì)有更準(zhǔn)確的檢測(cè),但會(huì)以速度犧牲作為代價(jià)。
Pascal VOC 和 COCO 數(shù)據(jù)集對(duì)初學(xué)者而言是一個(gè)很好的入門。
在左邊是一張有幾匹馬的圖像。我們將輸入圖像劃分為網(wǎng)格集。 然后我們圍繞這些網(wǎng)格制作幾個(gè)不同寬高比的矩形框。 我們?cè)谶@些框中應(yīng)用卷積來研究這些網(wǎng)格中是否存在對(duì)象。這里的一匹黑馬在圖像中更靠近攝像頭。因此,我們繪制的邊界框無法識(shí)別是否是馬,因?yàn)檫吔缈驔]有任何可以識(shí)別馬匹的特征。
如果我們看上述 SSD 的架構(gòu),我們可以看到在 conv6 層之后的每個(gè)步驟中圖像的大小在顯著減小。 我們討論的關(guān)于劃分網(wǎng)格和在這些網(wǎng)格上查找對(duì)象的每個(gè)操作都適用于從網(wǎng)絡(luò)的后面到前面的卷積的每個(gè)步驟。 分類器也應(yīng)用在每個(gè)步驟中來檢測(cè)對(duì)象。 因此,由于物體在每個(gè)步驟中變得更小,它很容易識(shí)別。
SSD 算法還知道如何從一個(gè)卷積操作返回到另一個(gè)卷積操作。 它不僅會(huì)前向運(yùn)算而且會(huì)后向運(yùn)算。 例如,如果它在 conv4 中看到馬,那么它可以返回到 conv6 并且將在馬周圍繪制矩形框。
原文鏈接:
雷鋒網(wǎng) AI 研習(xí)社編譯。
號(hào)外號(hào)外~
一個(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)載須知。