DenseBox:思想超前的早期Anchor-free研究 | CVPR 2015

DenseBox檢測演算法的設計十分超前,如今很多Anchor-free方法有其影子,如果當時不是比Faster R-CNN晚了一點出現,可能目標檢測領域很早就開始往Anchor-free的方向發展了
 
來源:曉飛的演算法工程筆記 公眾號

論文: DenseBox: Unifying Landmark Localization withEnd to End Object Detection

Introduction


  DenseBox是早期的Anchor-free目標檢測演算法,當時R-CNN系列在小物體的檢測上有明顯的瓶頸,所以作者提出DenseBox,在小物體的檢測也有不錯的表現。在DenseBox提出的早些時間,著名的Faster R-CNN出現了,其強大的性能主導了目標檢測演算法往anchor-based的方向發展。直到FPN的出現後,Anchor-free演算法的性能才有了很大的提升,更多的工作開始涉及Anchor-free領域。目前很多Anchor-free目標檢測研究都有DenseBox的影子,所以DenseBox的設計思路還是很超前的。

DenseBox for Detection


  DenseBox的整體設計如圖1所示,單個卷積網路同時輸出多個預測框及其類別置信度,輸出的特徵圖大小為$5\times \frac{m}{4}\times \frac{n}{4}。假設像素i位於(x_i, y_i),其期望的5維向量為\hat{t}_i={\hat{s}, \hat{dx^t}=x_i - x_t, \hat{dy^t}=y_i - y_t, \hat{dx^b}=x_i - x_b, \hat{dy^b}=y_i - y_b }$,第一個為分類置信度,後四個為像素位置到目標邊界的距離,最後,將所有像素的輸出轉化為預測框,經過NMS處理後進行最後的輸出。

Ground Truth Generation

  DenseBox在訓練時沒有將完整的圖片作為輸入,而是截取包含目標以及足夠背景的較大區域進行訓練。在訓練時,將截取的圖片resize大$240\times 240,保證人臉位於截取區域的中心以及高度大約50像素,輸出$5\times 60\times 60的特徵圖。正樣本區域是目標中心點半徑為r_c內的圓,r_c與目標的大小相關,論文設置為0.3。如果截取的區域包含多個人臉,僅保留中心點在截取區域中心0.8到1.25範圍內的人臉,其它均認為是負樣本。

Model Design

  DenseBox的網路結構如圖3所示,包含16個卷積層,前12個卷積層由VGG19初始化,網路也添加了一些不同層之間的特徵融合,可以綜合不同感受域的特徵。

Multi-Task Training

  網路同時進行分類和位置預測,網路由兩個任務共同學習,分類任務的損失值直接通過L2損失計算:

  位置預測任務的損失值也通過L2損失計算:

  由於論文採用了截取圖片的方式進行訓練,就會面臨樣本製作的問題,而DenseBox在正負樣本製作以及學習上面做了一些工作:

  • Ignoring Gray Zone,灰色區域是處於正負點之間的過渡區域,不參與損失值的計算。對於一個非正樣本點,如果其半徑為2的範圍記憶體在正樣本點,則歸入灰色區域。
  • Hard Negative Mining,在訓練過程中,根據公式1將樣本排序,取top 1%作為hard-negative,能夠幫助網路重點學習這些難樣本。
  • Loss with Mask,根據像素點的類型定義特徵圖的掩膜M(\hat{t}_i),並結合公式1、公式2以及掩膜輸出最終的損失值:

  除了上面的幾點,為了更好地挖掘負樣本的作用,論文也通過隨機裁剪訓練集以生成足夠的隨機負樣本。在訓練時,正樣本圖片和隨機負樣本圖片以1:1比例輸入網路。此外,為了增強網路的魯棒性,進行了一些數據增強:

  • 隨機抖動每個截取的圖片
  • 左右翻轉
  • 水平移動25像素內
  • 隨機縮放[0.8, 1.25]

Landmark Localization

  基於上面的設計,DenseBox也可用於標記點定位,僅需要在原有的基礎上添加一些層用於預測標記即可。論文還發現,可通過融合標記點分支和分類分支進一步調整檢測結果,具體做法如圖4所示,調整輸出的損失函數跟分類損失一樣採用L2函數。此時,完整的網路損失變為:

Experiments


  人臉關鍵點上的性能對比。

  車輛關鍵點檢測任務上的性能對比。

Conclusion


  DenseBox檢測演算法的設計十分超前,如今很多Anchor-free方法有其影子,如果當時不是比Faster R-CNN晚了一點出現,可能目標檢測領域很早就開始往Anchor-free的方向發展了。

 
 
 

如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】

work-life balance.