翻译SSD论文(Single Shot MultiBox Detector)
SSD: Single Shot MultiBoxDetector
?
Wei Liu1 , Dragomir Anguelov2 ,Dumitru Erhan3 , Christian Szegedy3,
Scott Reed4 , Cheng-Yang Fu1 ,Alexander C. Berg
?
1 UNC Chapel Hill 2Zoox Inc. 3GoogleInc.4University of Michigan, Ann-Arbor
1wliu@cs.unc.edu, 2drago@zoox.com, 3{dumitru,szegedy}@google.com,4reedscot@umich.edu,1 {cyfu,aberg}@cs.unc.edu
?
摘要:我們提出了一種使用單個深層神經(jīng)網(wǎng)絡檢測圖像中對象的方法。我們的方法,名為SSD,將邊界框的輸出空間離散化為一組默認框,該默認框在每個特征圖位置有不同的寬高比和尺寸。在預測期間,網(wǎng)絡針對每個默認框中的每個存在對象類別生成分數(shù),并且對框進行調(diào)整以更好地匹配對象形狀。另外,網(wǎng)絡組合來自具有不同分辨率的多個特征圖的預測,以適應處理各種尺寸的對象。我們的SSD模型相對于需要region proposal的方法是簡單的,因為它完全消除了proposal生成和后續(xù)的像素或特征重采樣階段,并將所有計算封裝在單網(wǎng)絡中。這使得SSD容易訓練和直接集成到需要檢測組件的系統(tǒng)。PASCALVOC,MS COCO和ILSVRC數(shù)據(jù)集的實驗結(jié)果證實,SSD與使用額外的region proposal的方法具有可比較的準確性,并且速度更快,同時為訓練和推理提供統(tǒng)一的框架。與其他單級方法相比,SSD具有更好的精度,即使輸入圖像尺寸更小。對VOC2007,在300×300輸入,SSD在Nvidia Titan X上58FPS時達到72.1%的mAP,500×500輸入SSD達到75.1%的mAP,優(yōu)于類似的現(xiàn)有技術Faster R-CNN模型。代碼鏈接:https://github.com/weiliu89/caffe/tree/ssd。
?
關鍵詞:實時對象檢測; 卷積神經(jīng)網(wǎng)絡
?
1、 引言
? ? ? ? 當前,現(xiàn)有對象檢測系統(tǒng)是以下方法的變體:假設邊界框,對每個框重新取樣像素或特征,再應用高質(zhì)量分類器。選擇性搜索[1]方法后,Faster R-CNN[2]在PASCAL VOC,MSCOCO和ILSVRC檢測取得領先結(jié)果,這種流程成為檢測領域的里程碑,具有更深的特征,如[3]所述。盡管準確,但這些方法對于嵌入式系統(tǒng)來說計算量過大,即使對于高端硬件,對于實時或接近實時的應用來說也太慢。 這些方法的檢測速度通常以每秒幀數(shù)為單位進行測量,高精度檢測器(基礎 Faster R-CNN)最快僅以每秒7幀(FPS)運行。目前,已有廣泛的嘗試,通過研究檢測流程的每個階段(參見第4節(jié)中的相關工作)來建立更快的檢測器,但是迄今為止,顯著增加的速度僅僅是以顯著降低的檢測精度為代價。
? ? ? ? 本文提出了第一個基于深層網(wǎng)絡的對象檢測器,它不會對邊界框假設的像素或特征進行重新取樣,但和這種做法一樣準確。這使高精度檢測速度有顯著提高(在VOC2007測試中, 58 FPS下 72.1%mAP,對Faster R-CNN 7 FPS 下mAP 73.2%,YOLO 45 FPS 下mAP 63.4%)。速度的根本改進來自消除邊界框proposal和隨后的像素或特征重采樣階段。這不是第一篇這么做的文章(cf [4,5]),但是通過增加一系列改進,我們設法提高了以前嘗試的準確性。我們的改進包括使用不同寬高比檢測的單獨的預測器(濾波器),預測邊界框中的對象類別和偏移,并且將這些濾波器應用于網(wǎng)絡后期的多個特征圖,以便執(zhí)行多尺度檢測。通過這些修改,我們可以使用相對低分辨率的輸入實現(xiàn)高精度檢測,進一步提高處理速度。 雖然這些貢獻可能獨立看起來很小,但我們注意到,所得系統(tǒng)提高了PASCAL VOC的高速檢測的準確性,從YOLO的63.4%mAP到我們提出的網(wǎng)絡的72.1%mAP。相比近期工作,這是在檢測精度上的較大提高,殘差網(wǎng)絡上的卓越工作 [3]。 此外,顯著提高高質(zhì)量檢測的速度可以拓寬計算機視覺有用使用范圍。
總結(jié)我們的貢獻如下:
- 我們引用了SSD,一個單次檢測器,用于多個類別,比先前技術的單次檢測器(YOLO)速度更快,并且更準確很多,實際上和使用regionproposal、pooling的更慢技術????一樣準確(包括Faster RCNN)
-?? SSD方法的核心是使用小卷積濾波器來預測特征圖上固定的一組默認邊界框的類別分數(shù)和位置偏移。
-?? 為了實現(xiàn)高檢測精度,我們從不同尺度的特征圖產(chǎn)生不同尺度的預測,并且通過寬高比來明確地分離預測。
-?? 總之,這些設計特性得到了簡單的端到端訓練和高精度,進一步提高速度和精度的權(quán)衡,即使輸入相對低分辨率圖像。
- 實驗包括在PASCAL VOC,MS COCO和ILSVRC上評估不同輸入大小下模型耗時和精度分析,并與一系列最新的先進方法進行比較。
?
2、單次檢測器(SSD)
? ? ? ? 本節(jié)介紹我們提出的SSD檢測架構(gòu)(第2.1節(jié))和相關的訓練方法(第2.2節(jié))。之后, 第3節(jié)呈現(xiàn)特定數(shù)據(jù)集的模型細節(jié)和實驗結(jié)果。
圖1:SSD架構(gòu)。 (a)SSD在訓練期間僅需要每個對象的輸入圖像和真實標簽框。 卷積處理時,我們在具有不同尺度(例如(b)和(c)中的8×8和4×4)的若干特征圖中的每個位置處評估不同橫寬比的小集合(例如4個)默認框。 對于每個默認框,我們預測對所有對象類別((c 1,c2,...,cp))的形狀偏移和置信度。在訓練時,我們首先將這些默認框匹配到真實標簽框。 例如,兩個默認框匹配到貓和狗,這些框為正,其余視為負。 模型損失是位置損失(例如平滑L1 [6])和置信損失(例如Softmax)之間的加權(quán)和。
2.1 模型
? ? ? ? SSD方法基于前饋卷積網(wǎng)絡,其產(chǎn)生固定大小的邊界框集合和框中對象類別的分數(shù),接著是非最大化抑制步驟以產(chǎn)生最終檢測。早期網(wǎng)絡基于高質(zhì)量圖像分類(在任何分類層之前截斷(譯者注:特征提取網(wǎng)絡,例如:VGG、googlenet、alexnet))的標準架構(gòu),我們將其稱為基礎網(wǎng)絡(我們的試驗中使用了VGG-16網(wǎng)絡作為基礎,其他網(wǎng)絡也應該能產(chǎn)生好的結(jié)果)。然后,我們向網(wǎng)絡添加輔助結(jié)構(gòu),產(chǎn)生了具有以下主要特征的檢測:
多尺度特征圖檢測:我們將卷積特征層添加到截斷的基礎網(wǎng)絡的末尾。這些層尺寸逐漸減小,得到多個尺度檢測的預測值。檢測的卷積模型對于每個特征層是不同的(參見在單個尺度特征圖上操作的Overfeat [4]和YOLO[5])。
圖2:兩個單次檢測模型之間的比較:SSD和YOLO [5]。 我們的SSD模型在基礎網(wǎng)絡的末尾添加了幾個特征層,這些層預測了不同尺度和寬高比對默認框的偏移及其相關置信度。 300×300輸入尺寸的SSD在VOC2007測試中的精度顯著優(yōu)于448×448輸入的YOLO的精度,同時還提高了運行速度,盡管YOLO網(wǎng)絡比VGG16快。
檢測的卷積預測器:每個添加的特征層(或可選的基礎網(wǎng)絡的現(xiàn)有特征層)可以使用一組卷積濾波器產(chǎn)生固定的預測集合。這些在圖2中SSD網(wǎng)絡架構(gòu)頂部已指出。對于具有p個通道的大小為m×n的特征層,使用3×3×p卷積核卷積操作,產(chǎn)生類別的分數(shù)或相對于默認框的坐標偏移。在每個應用卷積核運算的m×n大小位置處,產(chǎn)生一個輸出值。邊界框偏移輸出值是相對于默認框測量,默認框位置則相對于特征圖(參見YOLO [5]的架構(gòu),中間使用全連接層而不是用于該步驟的卷積濾波器)。
默認框與寬高比:我們將一組默認邊界框與頂層網(wǎng)絡每個特征圖單元關聯(lián)。默認框?qū)μ卣鲌D作卷積運算,使得每個框?qū)嵗鄬τ谄鋵獑卧竦奈恢檬枪潭ǖ摹T诿總€特征映射單元中,我們預測相對于單元格中的默認框形狀的偏移,以及每個框中實例的每類分數(shù)。具體來說,對于在給定位置的k個框中每個框,我們計算c類分數(shù)和相對于原始默認框的4個偏移量。這使得在特征圖中的每個位置需要總共(c+4)k個濾波器,對于m×n特征圖產(chǎn)生(c+4)kmn個輸出。有關默認框的說明,請參見圖1。我們的默認框類似于Faster R-CNN [2]中使用的anchor boxes,但我們將其應用于不同分辨率的特征圖中。在多個特征圖中使用不同的默認框形狀,可以有效地離散可能的輸出框形狀空間。
2、2 訓練
???????? 訓練SSD和訓練使用region proposal、pooling的典型分類器的關鍵區(qū)別在于,真實標簽信息需要被指定到固定的檢測器輸出集合中的某一特定輸出。Faster R-CNN [2]和MultiBox [7]的regionproposal階段、YOLO [5]的訓練階段也需要類似這樣的標簽。一旦確定了該指定,則端對端地應用損失函數(shù)和反向傳播。訓練還涉及選擇用于檢測的默認框和尺度集合,以及hard negative mining和數(shù)據(jù)增廣策略。
???????? 匹配策略:在訓練時,我們需要建立真實標簽和默認框之間的對應關系。請注意,對于每個真實標簽框,我們從默認框中進行選擇,這些默認框隨位置、縱橫比和比例而變化。啟始時,我們匹配每個真實標簽框與默認框最好的jaccard重疊。這是原始MultiBox [7]使用的匹配方法,它確保每個真實標簽框有一個匹配的默認框。與MultiBox不同,匹配默認框與真實標簽jaccard重疊高于閾值(0.5)的默認框。添加這些匹配簡化了學習問題:它使得有多個重疊默認框時網(wǎng)絡預測獲得高置信度,而不是要求它選擇具有最大重疊的那個。
???????? 訓練:SSD訓練來自MultiBox[7,8],但擴展到處理多個對象類別。 以 ? 表示第i個默認框與類別p的第j個真實標簽框相匹配,相反的 。 根據(jù)上述匹配策略,我們有 1,意味著可以有多于一個與第j個真實標簽框相匹配的默認框。總體目標損失函數(shù)是位置損失(loc)和置信損失(conf)的加權(quán)和:
其中N是匹配的默認框的數(shù)量,位置損失是預測框(l)和真實標簽值框(g)參數(shù)之間的平滑L1損失[6]。 類似于Faster R-CNN [2],我們對邊界框的中心和其寬度和高度的偏移回歸。 我們的置信損失是softmax損失對多類別置信(c)和權(quán)重項α設置為1的交叉驗證。
???????? 選擇默認框的比例和橫寬比:大多數(shù)卷積網(wǎng)絡通過加深層數(shù)減小特征圖的大小。這不僅減少計算和存儲消耗,而且還提供一定程度的平移和尺寸不變性。為了處理不同的對象尺寸,一些方法[4,9]建議將圖像轉(zhuǎn)換為不同的尺寸,然后單獨處理每個尺寸,然后組合結(jié)果。然而,通過用單個網(wǎng)絡中的若干不同層的特征圖來進行預測,我們可以得到相同的效果,同時還在所有對象尺度上共享參數(shù)。之前的研究[10,11]已經(jīng)表明使用來自較低層的特征圖可以提高語義分割質(zhì)量,因為較低層捕獲到輸入對象的更精細的細節(jié)。類似地,[12]表明,添加從高層特征圖下采樣的全局文本可以幫助平滑分割結(jié)果。受這些方法的啟發(fā),我們使用低層和高層的特征圖進行檢測預測。圖1示出了在框架中使用的兩個示例特征圖(8×8和4×4),當然在實踐中,我們可以使用更多具有相對小的計算開銷的特征圖。
???????? 已知網(wǎng)絡中不同級別的特征圖具有不同的(經(jīng)驗)感受野大小[13]。幸運的是,在SSD框架內(nèi),默認框不需要對應于每層的實際感受野。我們可以設計平鋪,使得特定位置特征圖,學習響應于圖像的特定區(qū)域和對象的特定尺度。假設我們要使用m個特征圖做預測。每個特征圖的默認框的比例計算如下:
其中smin是0.2,smax是0.95,意味著最低層具有0.2的刻度,最高層具有0.95的刻度,并且其間的所有層是規(guī)則間隔的。我們對默認框施以不同的寬高比,表示為ar∈{1,2,3,1/2,1/3}。我們可以計算每個默認框的寬度( )和高度( )。對于寬高比為1,我們還添加了一個縮放為 的默認框,從而使每個特征圖位置有6個默認框。設定每個默認框中心為( , ),其中 是第k個正方形特征圖的大小, ∈[0, ),隨后截取默認框坐標使其 始終在[0,1]內(nèi)。實際上,可以設計默認框的分布以最佳地擬合特定數(shù)據(jù)集。
???????? 通過組合許多特征圖在所有位置的不同尺寸和寬高比的所有默認框的預測,我們具有多樣化的預測集合,覆蓋各種輸入對象尺寸和形狀。例如圖 1中,狗被匹配到4×4特征圖中的默認框,但不匹配到8×8特征圖中的任何默認框。這是因為那些框具有不同的尺度但不匹配狗的框,因此在訓練期間被認為是負樣本。
Hard negative mining :在匹配步驟之后,大多數(shù)默認框都是負樣本,特別是當可能的默認框數(shù)量很大時。這導致了訓練期間正負樣本的嚴重不平衡。我們使用每個默認框的最高置信度對它們進行排序,并選擇前面的那些,使得正負樣本之間的比率最多為3:1,以代替使用所有的負樣本。我們發(fā)現(xiàn),這導致更快的優(yōu)化和更穩(wěn)定的訓練。
數(shù)據(jù)增廣:為了使模型對于各種輸入對象大小和形狀更加魯棒,每個訓練圖像通過以下選項之一隨機采樣:
-??? 使用整個原始輸入圖像
-??? 采樣一個片段,使對象最小的jaccard重疊為0.1,0.3,0.5,0.7或0.9。
-??? 隨機采樣一個片段
每個采樣片段的大小為原始圖像大小的[0.1,1],橫寬比在1/2和2之間。如果真實標簽框中心在采樣片段內(nèi),則保留重疊部分。在上述采樣步驟之后,將每個采樣片大小調(diào)整為固定大小,并以0.5的概率水平翻轉(zhuǎn)。
?
3、實驗結(jié)果
? ? ? ? 基礎網(wǎng)絡:我們的實驗基于VGG16 [14]網(wǎng)絡,在ILSVRC CLS-LOC數(shù)據(jù)集[15]預訓練。類似于DeepLab-LargeFOV [16],我們將fc6和fc7轉(zhuǎn)換為卷積層,從fc6和fc7兩層采樣得到參數(shù),將pool5從2×2-s2更改為3×3-s1,并使用atrous算法填“洞”。我們刪除了所有的dropout層和fc8層,使用SGD對這個模型進行fine-tune,初始學習率 ,0.9 momentum, 0.0005 weight decay, batch大小32。每個數(shù)據(jù)集的學習速率衰減策略略有不同,稍后我們將描述詳細信息。所有訓練和測試代碼在caffe框架編寫,開源地址:https://github.com/weiliu89/caffe/tree/ssd。
3.1 PASCAL VOC2007
? ? ? ? ?在這個數(shù)據(jù)集上,我們比較了Fast R-CNN [6]和Faster R-CNN [2]。所有方法使用相同的訓練數(shù)據(jù)和預訓練的VGG16網(wǎng)絡。特別地,我們在VOC2007train val和VOC2012 train val(16551images)上訓練,在VOC2007(4952圖像)測試。
? ? ? ? ?圖2顯示了SSD300模型的架構(gòu)細節(jié)。我們使用conv4_3,conv7(fc7),conv8_2,conv9_2,conv10_2和pool11來預測位置和置信度(對SSD500模型,額外增加了conv11_2用于預測),用“xavier”方法初始化所有新添加的卷積層的參數(shù)[18]。由于conv4_3的大小較大(38×38),因此我們只在其上放置3個默認框 :一個0.1比例的框和另外縱橫比為1/2和2的框。對于所有其他層,我們設置6個默認框,如第 2.2節(jié)。如[12]中所指出的,由于conv4_3與其他層相比具有不同的特征尺度,我們使用[12]中引入的L2正則化技術,將特征圖中每個位置處的特征范數(shù)縮放為20,并在反向傳播期間學習比例。我們使用 學習速率進行40k次迭代,然后將其衰減到 ,并繼續(xù)訓練另外20k次迭代。表1顯示,我們的SSD300模型已經(jīng)比Fast R-CNN更準確。當以更大的500×500輸入圖像訓練SSD,結(jié)果更準確,甚至驚人的超過了Faster R-CNN 1.9% mAP。
? ? ? ? 為了更詳細地了解我們的兩個SSD模型的性能,我們使用了來自[19]的檢測分析工具。圖3顯示SSD可以高質(zhì)量檢測(大、白色區(qū)域)各種對象類別。它的大部分置信度高的檢測是正確的。召回率在85-90%左右,并且比“弱”(0.1 jaccard重疊)標準高得多。與R-CNN [20]相比,SSD具有較少的定位誤差,表明SSD可以更好地定位對象,因為它直接回歸對象形狀和分類對象類別,而不是使用兩個去耦步驟。然而,SSD對相似對象類別(尤其是動物)有更多的混淆,部分是因為多個類別分享了位置。
表1 : PASCAL VOC2007測試集檢測結(jié)果。Fast和Faster R-CNN輸入圖像最小尺寸為600,兩個SSD模型除了輸入圖像尺寸(300*300和500*500),其他設置與其相同。很明顯,較大的輸入尺寸得到更好的結(jié)果。
? ? ? ? ?圖4顯示SSD對邊界框尺寸非常敏感。換句話說,它對較小的對象比較大的對象具有更差的性能。這毫不意外,因為小對象在最頂層可能沒有任何信息保留下來。增加輸入尺寸(例如從300×300到500×500)可以幫助改善檢測小對象,但是仍然有很大改進空間。積極的一面是,我們可以清楚地看到SSD在大對象上表現(xiàn)很好。并且對于不同的對象寬高比非常魯棒,因為我們對每個特征圖位置使用各種長寬比的默認框。
3.2 模型分析
? ? ? ? 為了更好地理解SSD,我們還進行了幾個人為控制的實驗,以檢查每個組件如何影響最終性能。對于所有以下實驗,我們使用完全相同的設置和輸入大小(300×300),除了變動的組件。
表2: 不同選擇和組件對SSD表現(xiàn)的影響
關鍵的數(shù)據(jù)增廣Fast和Faster R-CNN使用原始圖像和水平翻轉(zhuǎn)(0.5概率)圖像訓練。我們使用更廣泛的采樣策略,類似于YOLO [5],但它使用了我們沒有使用的光度失真。表2顯示,我們可以用這個抽樣策略提高6.7%的mAP。我們不知道我們的采樣策略將對Fast和Faster R-CNN提升多少,但可能效果不大,因為他們在分類期間使用了pooling,比人為設置更魯棒。
圖3:VOC2007測試集上SSD 500對動物、車輛和家具性能的可視化。 第一行顯示由于定位不良(Loc),與類似類別(Sim)、其他類別(Oth)或背景(BG)混淆的正確檢測(Cor)、假陽性檢測的累積分數(shù)。 紅色實線反映了隨著檢測次數(shù)的增加,“強”標準(0.5 jaccard重疊)的召回率變化。 紅色虛線使用“弱”標準(0.1 jaccard重疊)。底行顯示排名靠前的假陽性類型的分布。
更多特征圖的提升? ?受許多語義分割工作啟發(fā)[10,11,12],我們也使用底層特征圖來預測邊界框輸出。我們比較使用conv4_3預測的模型和沒有它的模型。從表2,我們可以看出,通過添加conv4_3進行預測,它有明顯更好的結(jié)果(72.1% vs 68.1%)。這也符合我們的直覺,conv4_3可以捕獲對象更好的細粒度,特別是細小的細節(jié)。
更多的默認框形狀效果更好? 如第2.2節(jié)所述,默認情況下,每個位置使用6個默認框。如果我們刪除具有1/3和3寬高比的框,性能下降0.9%。通過進一步移除1/2和2縱橫比的框,性能再下降2%。使用多種默認框形狀似乎使網(wǎng)絡預測任務更容易。
Atrous算法更好更快?如第3節(jié)所述,我們使用了VGG16的atrous版本,遵循DeepLabLargeFOV[16]。如果我們使用完整的VGG16,保持pool5與2×2-s2,并且不從fc6和fc7的采集參數(shù),添加conv5_3,結(jié)果稍差(0.7%),而速度減慢大約50%。
3.3 PASCAL VOC2012
? ? ? ? ?采用和VOC2007上一樣的設置,這次,用VOC2012的訓練驗證集和VOC2007的訓練驗證集、測試集(21503張圖像)訓練,在VOC2012測試集(10991張圖像)測試。由于有了更多的訓練數(shù)據(jù),模型訓練時以 學習率進行60K次迭代,再減小到 繼續(xù)迭代20K次。
表3顯示了SSD300和SSD500模型的結(jié)果。我們看到與我們在VOC2007測試中觀察到的相同的性能趨勢。我們的SSD300已經(jīng)優(yōu)于Fast R-CNN,并且非常接近Faster R-CNN(只有0.1%的差異)。通過將訓練和測試圖像大小增加到500×500,我們比Faster R-CNN高2.7%。與YOLO相比,SSD顯著更好,可能是由于使用來自多個特征圖的卷積默認框和訓練期間的匹配策略。
3.4? MSCOCO
? ? ? ? 為了進一步驗證SSD架構(gòu),我們在MS COCO數(shù)據(jù)集上訓練了我們的SSD300和SSD500模型。由于COCO中的對象往往較小,因此我們對所有圖層使用較小的默認框。我們遵循第2.2節(jié)中提到的策略,但是現(xiàn)在我們最小的默認框具有0.1而不是0.2的縮放比例,并且conv4_3上默認框的縮放比例是0.07(例如,對應于300×300圖像的21個像素)。
? ? ? ? 我們使用trainval35k [21]來訓練我們的模型。由于COCO有更多的對象類別,開始時的梯度不穩(wěn)定。我們首先用8× 的學習率迭代4K次訓練模型,接著以 學習率進行140K次迭代,再以 學習率迭代60K次, 學習率迭代40K次。表4顯示了test-dev2015上的結(jié)果。與我們在PASCAL VOC數(shù)據(jù)集上觀察到的類似,SSD300在mAP@0.5和mAP@[0.5:0.95]中優(yōu)于Fast R-CNN,在 mAP @ [0.5:0.95]與Faster R-CNN接近。然而,mAP@0.5更糟,我們推測,這是因為圖像尺寸太小,這阻止了模型精確定位許多小對象。通過將圖像大小增加到500×500,我們的SSD500在兩個標準中都優(yōu)于Faster R-CNN。此外,我們的SSD500模型也比ION[21]更好,它是一個多尺寸版本的Fast R-CNN,使用循環(huán)網(wǎng)絡顯式模擬上下文。在圖5中,我們展示了使用SSD500模型在MSCOCO test-dev的一些檢測示例。
?
3.5 ILSVRC初步結(jié)果
? ? ? ? 我們將我們用于MS COCO的相同的網(wǎng)絡架構(gòu)應用于ILSVRC DET數(shù)據(jù)集[15]。我們使用ILSVRC2014 DET train和val1來訓練SSD300模型,如[20]中所使用。我們首先以8× 的學習率迭代4K次訓練模型,再用 學習率進行320k次迭代訓練該模型,然后用 進行100k次迭代和 繼續(xù)訓練60k次迭代。我們可以在val2集上實現(xiàn)41.1mAP[20]。再一次的,它驗證SSD是高質(zhì)量實時檢測的一般框架。
3.6 推理期間
? ? ? ? 考慮到從我們的方法生成的大量框,有必要在推理期間有效地執(zhí)行非最大抑制(nms)。通過使用0.01的置信度閾值,我們可以過濾掉大多數(shù)框。然后,我們使用Thrust CUDA庫進行排序,使用GPU計算所有剩余框之間的重疊,對jaccard重疊為0.45的每個類應用nms,并保存每個圖像的前200個檢測。對于20個VOC類別的SSD300,每個圖像該步花費大約2.2毫秒,這接近在所有新添加的層上花費的總時間。
? ? ? ? 表5顯示了SSD、Faster R-CNN[2]和YOLO [5]之間的比較。Faster R-CNN對region proposal使用額外的預測層,并且需要特征下采樣。相比之下,我們的SSD500方法在速度和精度上優(yōu)于Faster R-CNN。 值得一提的是,我們的方法SSD300是唯一的實時實現(xiàn)70%以上mAP的方法。 雖然快速YOLO[5]可以運行在155 FPS,但精度只有差不多20%的mAP。
?
4、相關工作
? ? ? ? 目前有兩種已建立的用于圖像中對象檢測的方法,一種基于滑動窗口,另一種基于region proposal分類。在卷積神經(jīng)網(wǎng)絡出現(xiàn)之前,用于檢測的兩種方法DeformablePart Model(DPM)[22]和選擇性搜索[1]性能接近。然而,在R-CNN[20]帶來的顯著改進之后,其結(jié)合了選擇性搜索region proposal和基于卷積網(wǎng)絡的后分類,region proposal對象檢測方法變得普遍。
? ? ? ? 原始的R-CNN方法已經(jīng)以各種方式進行了改進。第一組方法提高了后分類的質(zhì)量和速度,因為它需要對成千上萬的圖像作物進行分類,這是昂貴和耗時的。SPPnet[9]對原始的R-CNN方法大大提速。它引入了空間金字塔池化層,其對區(qū)域大小和尺度更加魯棒,并且允許分類層重用在若干圖像分辨率生成的特征圖特征。Fast R-CNN[6]擴展了SPPnet,使得它可以通過最小化置信度和邊界框回歸的損失來對所有層進行端對端微調(diào),這在MultiBox[7]中首次引入用于學習對象。
? ? ? ? 第二組方法使用深層神經(jīng)網(wǎng)絡提高proposal生成的質(zhì)量。在最近的工作中,例如MultiBox[7,8],基于低層圖像特征的選擇性搜索region proposal被直接從單獨的深層神經(jīng)網(wǎng)絡生成的proposal所替代。這進一步提高了檢測精度,但是導致了一些復雜的設置,需要訓練兩個神經(jīng)網(wǎng)絡及其之間的依賴。Faster R-CNN[2]通過從region proposal網(wǎng)絡(RPN)中學習的方案替換了選擇性搜索proposal,并且引入了通過微調(diào)共享卷積層和兩個網(wǎng)絡的預測層之間交替來集成RPN與Fast R-CNN的方法。用這種方式region proposal池化中層特征圖,最終分類步驟更快速。我們的SSD與Faster R-CNN中的region proposal網(wǎng)絡(RPN)非常相似,因為我們還使用固定的(默認)框來進行預測,類似于RPN中的achor框。但是,不是使用這些來池化特征和評估另一個分類器,我們同時在每個框中為每個對象類別產(chǎn)生一個分數(shù)。因此,我們的方法避免了將RPN與Fast R-CNN合并的復雜性,并且更容易訓練,更易于集成到其他任務中。
? ? ? ? ?另一組方法與我們的方法直接相關,完全跳過proposal步驟,直接預測多個類別的邊界框和置信度。 OverFeat[4]是滑動窗口方法的深度版本,在知道基礎對象類別的置信度之后直接從最頂層特征圖的每個位置預測邊界框。YOLO [5]使用整個最高層特征圖來預測多個類別和邊界框(這些類別共享)的置信度。我們的SSD方法屬于此類別,因為我們沒有提案步驟,但使用默認框。然而,我們的方法比現(xiàn)有方法更靈活,因為我們可以在不同尺度的多個特征圖中的每個特征位置上使用不同寬高比的默認框。如果頂層特征圖每個位置只使用一個默認框,我們的SSD將具有與OverFeat[4]類似的架構(gòu);如果我們使用整個頂層特征圖并且添加一個全連接層用于預測而不是我們的卷積預測器,并且沒有明確考慮多個寬高比,我們可以近似地再現(xiàn)YOLO[5]。
?
5、結(jié)論
???? 本文介紹了SSD,一種用于多個類別的快速單次對象檢測器。我們的模型的一個關鍵特點是使用多尺度卷積邊界框輸出附加到網(wǎng)絡頂部的多個特征圖。這種表示允許我們有效地模擬可能的框形狀空間。我們實驗驗證,給定適當?shù)挠柧毑呗?#xff0c;更大量的仔細選擇的默認邊界框得到了性能的提高。我們建立SSD模型,與現(xiàn)有方法相比,至少相差一個數(shù)量級的框預測位置,規(guī)模和縱橫比[2,5,7]。
???? 我們證明,給定相同的VGG-16基礎架構(gòu),SSD在精度和速度方面勝過最先進的對象檢測器。我們的SSD500型號在PASCAL VOC和MS COCO的精度方面明顯優(yōu)于最先進的Faster R-CNN [2],速度快了3倍。 我們的實時SSD300模型運行在58 FPS,這比當前的實時YOLO[5]更快,同時有顯著高質(zhì)量的檢測。
???? 除了它的獨立實用程序,我們相信,我們的完整和相對簡單的SSD模型為使用對象檢測組件的大型系統(tǒng)提供了一個偉大的組成塊。一個有希望的未來方向,是探索其作為使用循環(huán)神經(jīng)網(wǎng)絡的系統(tǒng)一部分,用以檢測和跟蹤視頻中對象。
?
6、致謝
? ? ? ? 這個項目是在谷歌開始的實習項目,并在UNC繼續(xù)。 我們要感謝亞歷克斯·托舍夫有用的討論,并感謝谷歌的Image Understanding和DistBelief團隊。 我們也感謝菲利普·阿米拉托和帕特里克·波爾森有益的意見。我們感謝NVIDIA提供K40 GPU并感謝NSF 1452851的支持。
?
?
引用
1. Uijlings, J.R., van de Sande, K.E., Gevers, T.,Smeulders, A.W.: Selective search for object recognition. IJCV (2013)
2. Ren, S., He, K., Girshick, R., Sun, J.: FasterR-CNN: Towards real-time object detection with region proposal networks. In:NIPS. (2015)
3. He, K., Zhang, X., Ren, S., Sun, J.: Deepresidual learning for image recognition. In: CVPR.(2016)
4. Sermanet, P., Eigen, D., Zhang, X., Mathieu, M.,Fergus, R., LeCun, Y.: Overfeat: Integrated recognition, localization anddetection using convolutional networks. In: ICLR. (2014)
5. Redmon, J., Divvala, S., Girshick, R., Farhadi,A.: You only look once: Unified, real-time object detection. In: CVPR. (2016)
6. ?Girshick,R.: Fast R-CNN. In: ICCV. (2015)
7. ?Erhan, D.,Szegedy, C., Toshev, A., Anguelov, D.: Scalable object detection using deep neuralnetworks. In: CVPR. (2014)
8. ?Szegedy,C., Reed, S., Erhan, D., Anguelov, D.: Scalable, high-quality object detection.arXiv preprint arXiv:1412.1441 v3 (2015)
9. ?He, K.,Zhang, X., Ren, S., Sun, J.: Spatial pyramid pooling in deep convolutionalnetworks for visual recognition. In: ECCV. (2014)
10. Long, J., Shelhamer, E., Darrell, T.: Fullyconvolutional networks for semantic segmentation. In: CVPR. (2015)
11. Hariharan, B., Arbeláez, P., Girshick, R.,Malik, J.: Hypercolumns for object segmentation and fine-grained localization.In: CVPR. (2015)
12. Liu, W., Rabinovich, A., Berg, A.C.: ParseNet:Looking wider to see better. In: ILCR. (2016)
13. Zhou, B., Khosla, A., Lapedriza, A., Oliva, A.,Torralba, A.: Object detectors emerge in deep scene cnns. In: ICLR. (2015)
14. Simonyan,K.,Zisserman,A.:Verydeepconvolutionalnetworksforlarge-scaleimagerecog-nition. In: NIPS. (2015)
15. Russakovsky, O., Deng, J., Su, H., Krause, J.,Satheesh, S., Ma, S., Huang, Z., Karpathy, A., Khosla, A., Bernstein, M., Berg,A.C., Li, F.F.: Imagenet large scale visual recognition challenge. IJCV (2015)
16. Chen, L.C., Papandreou, G., Kokkinos, I.,Murphy, K., Yuille, A.L.: Semantic image segmentation with deep convolutionalnets and fully connected crfs. In: ICLR. (2015)
17. Jia, Y., Shelhamer, E., Donahue, J., Karayev,S., Long, J., Girshick, R., Guadarrama, S., Darrell, T.: Caffe: Convolutionalarchitecture for fast feature embedding. In: MM, ACM (2014)
18. Glorot, X., Bengio, Y.: Understanding thedifficulty of training deep feedforward neural networks. In: AISTATS. (2010)
19. Hoiem, D., Chodpathumwan, Y., Dai, Q.:Diagnosing error in object detectors. In: ECCV 2012. (2012)
20. Girshick, R., Donahue, J., Darrell, T., Malik,J.: Rich feature hierarchies for accurate object detection and semanticsegmentation. In: CVPR. (2014)
21. Bell, S., Zitnick, C.L., Bala, K., Girshick, R.:Inside-outside net: Detecting objects in context with skip pooling andrecurrent neural networks. In: CVPR. (2016)
22. Felzenszwalb, P., McAllester, D., Ramanan, D.: Adiscriminatively trained, multiscale, deformable part model. In: CVPR. (2008)
?
?
(菜鳥水平有限,錯誤之處難免,忘大家多多拍磚,才能更快進步。???????????????????????????? 2016.11.1翻譯完成
Ai Smith)
與50位技術專家面對面20年技術見證,附贈技術全景圖總結(jié)
以上是生活随笔為你收集整理的翻译SSD论文(Single Shot MultiBox Detector)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: caffe-ssd编译、训练、测试全过程
- 下一篇: SSD安装及训练自己的数据集