近年熱門目標檢測(Object Detection)算法的總結

總結的算法包括:OverFeatyolo 系列SSDDeformable-ConvNetsR-CNN系列R-FCNFPN

算法綜述:
在這裏插入圖片描述
解釋one stagetwo stage
前者是先由算法生成一系列作爲樣本的候選框,再通過卷積神經網絡進行樣本分類;後者則不用產生候選框,直接將目標邊框定位的問題轉化爲迴歸問題處理。前者在檢測準確率和定位精度上佔優,後者在算法速度上佔優。


OverFeat

論文:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks
作者:Yann Lecun及紐約大學團隊
年份:CVPR 2013
評價:2013年ImageNet 定位任務冠軍,利用滑動窗口和規則塊生成候選框,首次將分類、定位以及檢測三個計算機視覺任務放在一起解決,解決圖像目標形狀複雜、尺寸不一問題。
參考博客:論文筆記OverFeat學習

做法:

  1. 用一個共享的CNN來同時處理圖像分類,定位,檢測三個任務,可以提升三個任務的表現。
  2. 用CNN有效地實現了一個多尺度(實驗最多輸入了6個不同尺度的圖像)的滑動窗口(使用FCN,預測加入offset max-pooling,但是證明了提升效果不明顯)來處理任務。
  3. 提出累積預測來求bounding boxes(而不是傳統的非極大值抑制)。

分類任務的網絡分爲兩個版本,一個快速版,一個精確版。下圖是精確版的網絡結構圖。在這裏插入圖片描述
類似於AlexNet,有幾點不同,一是沒有使用LRN(局部響應歸一化),二是沒有使用重疊的池化,三是stride的超參用2代替了4,大stride可以提升速度,減小精度。

解釋FCN(全卷積,即將全連接層更換爲1✖️1卷積)

  1. 參數量不變;
  2. 相比傳統的滑動窗口一次滑動生成一個窗口,只需要執行一次。
    在這裏插入圖片描述

解釋offset max-pooling

採用1維做示例,假設在x軸上有20個神經元,如果我們選擇池化size=3的非重疊池化,從1位置開始進行分組,每3個連續的神經元爲一組,然後計算每組的最大值(最大池化),19、20號神經元將被丟棄,如下圖所示:
在這裏插入圖片描述
如果我們只分6組的話,我們除了以1作爲初始位置進行連續組合之外,也可以從位置2或者3開始進行組合。也就是說我們其實有3種池化組合方法:
A、△=0分組:[1,2,3],[4,5,6],……,[16,17,18];
B、△=1分組:[2,3,4],[5,6,7],……,[17,18,19];
C、△=2分組:[3,4,5],[6,7,8],……,[18,19,20];

對應圖片如下:
在這裏插入圖片描述
拓展到2維(△x,△y),一共9種預測結果,取最大值作爲最後結果。

驗證集上的分類結果
在這裏插入圖片描述
其中coarse stride表示Δ=0,fine stride表示Δ=0,1,2。

  1. 使用fine stride可以提升模型表現,但是提升不大,說明實際上offset-pooling在這裏的作用不大;
  2. 使用多scale,增加scale可以提升模型表現;
  3. 最後多模型融合,又提升了表現。

定位任務把分類任務網絡結構的layer 6~output給重新設計一下,把分類改成迴歸問題,然後在各種不同尺度上訓練預測物體的bounding box,根據box和真實box之間的l2損失進行訓練。
在這裏插入圖片描述

解釋累積預測

在這裏插入圖片描述

累積預測是通過在每個類別計算兩個框之間的最短距離進行合併,非極大值抑制每次淘汰與最大概率的框距離近的框。

累積預測不僅去冗餘(淘汰低置信度的框),還可以淘汰低連續(多個box相差很遠)的類別,會更加魯棒。


Yolo系列

Yolo v1

論文:You Only Look Once: Unified, Real-Time Object Detection
作者:Joseph Redmon
年份:CVPR 2016
參考博客:論文筆記

You Only Look Once,言簡意賅,將目標檢測看做是單一的迴歸問題,將整張圖作爲輸入,直接輸入框的四個座標和類別。
做法:

  • 將一幅圖像分成SxS個網格(grid cell),每個網格要預測B個bounding box和類別信息C,一共是B*5+C個值
  • 每個bounding box除了要回歸自身的位置之外,還要附帶預測一個confidence值,共5個值;在這裏插入圖片描述
    注意:class信息是針對每個網格的,confidence信息是針對每個bounding box的。
    eg:圖像輸入爲448x448,取S=7,B=2,一共有20個類別(C=20)。則輸出就是7x7x30的一個tensor。

Ref

知乎專欄:深度學習時代的目標檢測算法綜述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章