天天看點

SSD: Single Shot MultiBox Detector(2015)閱讀筆記一、解決問題二、解決方法三、效果參考

SSD: Single Shot MultiBox Detector原文連結

SSD: Single Shot MultiBox Detector(2015)閱讀筆記

  • 一、解決問題
  • 二、解決方法
    • (一)整體過程
    • (二)多尺度特征映射(輔助結構産生)
    • (三)預設框
    • (四)訓練
      • 1.訓練樣本
      • 2.損失函數
  • 三、效果
  • 參考

一、解決問題

基于RP的兩階段模型所需的計算資源較大并且檢測速度太慢。雖然有很多研究嘗試建構更快的檢測器,但是到目前為止,顯著提高的速度都以顯著降低的檢測精度為代價。

二、解決方法

與兩階段檢測器相比,去掉了生成邊界框和随後的特征重采樣兩個階段,讓檢測速度大大提高。YOLO也是這麼做的,代價是精度大幅度降低。但是SSD通過增加一系列改進,相比以前的嘗試(YOLO)顯著提高了準确性。

改進包括使用小型卷積濾波器來預測邊界框位置中的目标類别和偏移量,使用不同長寬比檢測的單獨預測器(濾波器),并将這些濾波器應用于網絡後期的多個特征映射中,以執行多尺度檢測。通過這些修改,特别是使用不同尺度的特征圖進行預測,提高了檢測速度。

(一)整體過程

基于前饋卷積網絡産生固定大小的邊界框集合(錨點),并對這些邊界框中存在的目标類别執行個體進行評分,然後進行非極大值抑制步驟來産生最終的檢測結果。

此前饋卷積網絡分為兩個部分。一是基礎網絡:對一般圖像分類的标準架構在分類層之前進行截斷。二是輔助結構:用于産生多尺度特征映射的操作和用于檢測的卷積預測器。結構圖如下。

SSD: Single Shot MultiBox Detector(2015)閱讀筆記一、解決問題二、解決方法三、效果參考

其中黃框内為基礎結構,紅框内為輔助結構。

(二)多尺度特征映射(輔助結構産生)

在基礎網絡的末端添加一組卷積層用于生産一些列特征圖,這些卷積層在尺寸上逐漸減小,使生成的特征圖擁有多個尺度,以便在多個尺度上對檢測結果進行預測。

(三)預設框

對各個尺度的每個特征圖的圖單元都分别關聯一組預設邊界框(k個)。在每個特征圖圖單元格中,我們預測相對于單元格中預設框形狀的偏移量,以及訓示每個框中是否存在類執行個體的每個類别得分。具體來說,對于每個框,我們計算c類分數和相對于原始預設框形狀的4個偏移。這導緻在特征圖中的每個位置周圍應用總共 ( c + 4 ) ∗ k (c+4)*k (c+4)∗k個濾波器,對于尺寸為m×n的特征圖産生 ( c + 4 ) ∗ k ∗ m ∗ n (c + 4)*k*m*n (c+4)∗k∗m∗n的輸出。預設框的說明參閱下。預設框類似于Fast R-CNN中使用的錨框(錨點),但是我們将它們應用于不同分辨率的幾個特征圖。允許在多個特征圖中使用不同的預設框形狀,可以有效地離散可能的輸出框形狀的空間。

SSD: Single Shot MultiBox Detector(2015)閱讀筆記一、解決問題二、解決方法三、效果參考

(四)訓練

1.訓練樣本

給定輸入圖像以及每個物體的Ground Truth,首先找到每個Ground True Box對應的Default Box中IOU最大的作為正樣本。然後,在剩下的Default Box中找到那些與任意一個Ground Truth Box的IOU大于0.5的Default Box作為正樣本。其他的作為負樣本(每個Default Box要麼是正樣本Box要麼是負樣本Box)。

2.損失函數

與Faster-RCNN中的RPN相似。不過RPN是預測Box裡面有沒有Object,并沒有識别目标類别的功能。而SSD直接用的Softmax分類。Location的損失,都是用Predict box和Default Box/Anchor的差 與 Ground Truth Box和Default Box/Anchor的差進行對比來求損失。

L ( x , c , l , g ) = 1 N ( L c o n f ( x , c ) + α L l o c ( x , l , g ) ) L(x,c,l,g) =\frac{1}{N} (L_{conf}(x,c) + αL_{loc}(x,l,g)) L(x,c,l,g)=N1​(Lconf​(x,c)+αLloc​(x,l,g))

其中N是比對的預設框的數量,如果N = 0,則将損耗設定為0.

L l o c L_{loc} Lloc​是預測框 I I I和地面實況框 g g g參數之間的平滑L1損失。回歸到預設邊界框 d d d的中心 ( c x , c y ) (cx,cy) (cx,cy)及其寬度( w w w)和高度( h h h)的偏移。 L l o c ( x , l , g ) = ∑ i ∈ P o s N ∑ m ∈ ( c x , c y , w , h ) x i j k s m o o t h L 1 ( l i m − g j ˆ m ) L_{loc}(x,l,g) =∑^{N}_{i ∈Pos}∑_{m∈(cx,cy,w,h)}x^{k}_{ij}smooth_{L1}(l^{m}_{i} −g^{ˆm}_{j} ) Lloc​(x,l,g)=i∈Pos∑N​m∈(cx,cy,w,h)∑​xijk​smoothL1​(lim​−gjˆm​) x i j k x^{k}_{ij} xijk​取0或1,作為一個訓示器,用于将第i個預設框與第j個地面實況框關于第k類進行比對。

SSD: Single Shot MultiBox Detector(2015)閱讀筆記一、解決問題二、解決方法三、效果參考

L c o n f L_{conf} Lconf​是多類别置信度下的softmax損失

L c o n f ( x , c ) = − ∑ i ∈ P o s i t i v e N x i j p l o g ( e x p ( c i p ) ∑ p e x p ( c i p ) ) − ∑ i ∈ N e g a t i v e l o g ( e x p ( c i 0 ) ∑ p e x p ( c i p ) ) L_{conf}(x,c) = −∑^{N}_{i ∈Positive}x^{p}_{ij}log(\frac{exp(c^{p}_{i})}{∑_{p}exp(c^{p}_{i})})−∑_{i∈Negative}log(\frac{exp(c^{0}_{i})}{∑_{p}exp(c^{p}_{i})}) Lconf​(x,c)=−i∈Positive∑N​xijp​log(∑p​exp(cip​)exp(cip​)​)−i∈Negative∑​log(∑p​exp(cip​)exp(ci0​)​)

三、效果

比YOLO更快的速度,和Faster RCNN一樣的精度

參考

目标檢測之YOLO,SSD

SSD翻譯

繼續閱讀