目標檢測--SSD: Single Shot MultiBox Detector(2015)


SSD: Single Shot MultiBox Detector

作者Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg

引用: Liu, Wei, et al. "SSD: Single Shot MultiBox Detector." arXiv preprint arXiv:1512.02325 (2015).

引用次數: 23(Google Scholar,by 2016/11/28).

項目地址https://github.com/weiliu89/caffe/tree/ssd

 

主流的目標檢測算法一般首先是一個region proposal的過程,即提出候選區域! SSD把這個過程取消了!!! 這是檢測的速度加快的重要原因!

SSD網絡包含兩個部分,第一部分是基礎網絡(就是用於圖像分類的網絡,但是softmax分類層裁掉了); 第二部分是本文自己設計的網絡,主要實現下面的目的: 使用多尺度特征maps進行檢測. 

創新點1: 使用多尺度特征maps進行目標檢測

何凱明的多級pooling用的是conv5的特征maps,在這些特征maps來提取region proposals(bounding boxes從原圖上映射到特征maps上),充分利用這些特征maps; 現在好像論文漸漸有這種趨勢,開始使用多個特征maps上的特征,而不僅僅是使用最后一級的! 本文的SSD就是采用個特征maps,稱之為多尺度特征maps.

創新點2: 使用卷積預測器進行目標檢測

創新點3: 默認的boxes以及aspect ratios

這里將一些默認的bounding boxes和每個特征圖cell相關聯! 

 

 

1. 圖像經過CNN,得到圖像的特征maps: A

2. 對這些特征maps進行多級提取特征maps: B

3. 在每個特征map中各個位置location,每個location對應多個default boxes

4. 計算每個default boxes的loc offset以及class score

5. 根據default box以及loc offset計算區域位置P,在根據class score計算每個default box的損失函數,累加得到最終的損失函數.

使用了圖像的各個尺度下各個位置的特征進行了回歸,既保證了速度,也保證了准確度

計算使用了多個尺度的特征maps,那就來看看到底有哪些尺度的特征maps: 輸入圖像的大小為:input:3*300*300, 使用的各級卷積層為: conv4_3:512*38*38, conv7:1024*19*19, conv8_2:512*10*10, conv9_2:256*5*5, conv10_2:256*3*3, Avg Pooling:256*1*1,這些卷積層從大到小逐級遞減,這樣的話就是多尺度檢測.

 

 

 

2 The Single Shot Detector (SSD)

 

圖1. SSD框架. GT是Ground Truth的縮寫. (a) 訓練的時候SSD僅僅需要一張輸入圖像以及每個待識別目標的GT矩形框. 使用卷積的方式, 我們構造一個具有不同aspect ratios的默認矩形框小集合(如: 4個小矩形框), 用這幾個boxes在幾個特征maps(這幾個特征maps尺度不同, 如8x8(圖b), 4x4(圖c))的每個位置進行估計. 對於每個默認的box, 我們預測兩個指標: 1) 形狀偏移; 2) 對box所覆蓋區域判定為每個類別(c1,c2,...,cp)的概率值. 

 

2.1 Model

原理概括: SSD基於一個前向傳播CNN, 可以產生一系列固定大小的bounding boxes, 以及每個box包含每個目標(c1,c2,...,cp)的可能性(score); 然后進行一個非極大值抑制, 得到最終的predictions. SSD主要由兩部分組成: 基礎網絡(用於圖像分類的標准網絡,去掉了后面用於分類的層, VGG-16, 將fc6和fc7去掉) + 輔助的網絡結構(見圖2中的Extra Feature Layers, 加了5層卷積層, 用作多尺度采樣).

多尺度特征 maps for detection

      SSD在基礎的網絡結構(VGG-16)后面添加了額外的卷積層(見圖2中的Extra Feature Layers), 這些卷積層的大小逐級遞減(看圖2中的: 19x19, 10x10, 5x5, 3x3, 1x1), 這樣的話, 可以在多尺度下面進行預測. 

卷積 predictors for detection

      對於每個添加的特征層, 可以使用一組卷積濾波器(如圖2中對19x19x1024的卷積maps使用3x3x1024的卷積核, 產生的predictions就是歸屬類別的一個得分)

Default boxes and aspect ratios

 

2.2 Training

      

 

 

 

用於檢測的多尺度特征圖: 300x300(輸入圖像大小), 38x38, 19x19, 10x10, 5x5, 3x3, 1x1.

Convolutional predictors for detection: 對於每個添加的特征層, 我們使用一組卷積濾波器, 可以得到一組固定數目的目標檢測的預測, 對於一個尺寸為mxn的p通道特征層, 我們使用一個3x3xp的小核作為一個基礎元素來預測一個坑的檢測的信息(類別信息, 位置信息)

圖像經過卷積網絡, 得到圖像的base特征A; 再對這個特征進行多層級的提取特征圖B; 在每個特征圖中的各個位置, 每個location對應多個default box; 計算每個默認box的loc offset以及class score. 根據默認box以及loc offset計算區域位置P, 再根據class score, 計算每個默認box的損失函數, 累加得到最后的損失函數. 

使用圖像在各個只讀下的各個位置的特征進行回歸, 既保證了速度, 也保證了准確度.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM