『計算機視覺』物體檢測之RefineDet系列

Two Stage 的精度優點

二階段的分類:二步法的第一步在分類時,正負樣本是極不平衡的,致使分類器訓練比較困難,這也是一步法效果不如二步法的緣由之一,也是focal loss的motivation。而第二步在分類時,因爲第一步濾掉了絕大部分的負樣本,送給第二步分類的proposal中,正負樣本比例已經比較平衡了,因此第二步分類中不存在正負樣本極度不平衡的問題。即二步法能夠在很大程度上,緩和正負樣本極度不平衡的分類問題
二階段的迴歸:二步法中,第一步會先對初始候選框進行校訂,而後把校訂過的候選框送給第二步,做爲第二步校訂的初始候選框,再讓第二步進一步校訂
二階段的特徵:在二步法中,第一步和第二步法,除了共享的特徵外,他們都有本身獨有的特徵,專一於自身的任務。具體來講,這兩個步驟獨有的特徵,分別處理着不一樣難度的任務,如第一步中的特徵,專一於處理二分類任務(區分前景和背景)和粗略的迴歸問題;第二步的特徵,專一於處理多分類任務和精確的迴歸問題
特徵校準:在二步法中,有一個很重要的RoIPooling扣特徵的操做,它把候選區域對應的特徵摳出來,達到了特徵校準的目的,而一步法中,特徵是對不齊的算法

1、RefineDet 論文介紹

發表於CVPR2018,題目是single-shot refinement neural network for object detection網絡

附上一篇很好的論文解讀博客:RefineDet算法筆記框架

一、網絡介紹

網絡框架以下,因爲和SSD、FPN的思想一脈相承,很好理解因此我很少介紹了,直接貼做者的描述:性能

這個是RefineDet的檢測框架。該框架由兩個模塊組成,即上面的Anchor Refinement Module(ARM)和下面的Object Detection Module(ODM),它倆是由Transfer Connection Block(TCB)鏈接。  優化

 • 在這個框架中,ARM模塊專一於二分類任務,爲後續ODM模塊過濾掉大量簡單的負樣本;同時進行初級的邊框校訂,爲後續的ODM模塊提供更好的邊框迴歸起點。ARM模塊模擬的是二步法中第一個步驟,如Faster R-CNN的RPN。  spa

 •ODM模塊把ARM優化過的anchor做爲輸入,專一於多分類任務和進一步的邊框校訂。它模擬的是二步法中的第二個步驟,如Faster R-CNN的Fast R-CNN。    .net

• 其中ODM模塊沒有使用相似逐候選區域RoIPooling的耗時操做,而是直接經過TCB鏈接,轉換ARM的特徵,並融合高層的特徵,以獲得感覺野豐富、細節充足、內容抽象的特徵,用於進一步的分類和迴歸。所以RefineDet屬於一步法,可是具有了二步法的二階段分類、二階段迴歸、二階段特徵這3個優點。3d

做者以爲two stage方法的第二步(逐區域檢測)因爲並行不少inference的緣由,效率很低,因此對其進行了改進。做者認爲他們是對one stage方法的改進,我卻是以爲這個更接近two stage的方法,對此做者也有解釋(做者準備真充分……):orm

當時RefineDet提出來的時候,有很多人說,RefineDet不屬於一步法,畢竟有兩階段的分類和迴歸。咱們認爲,二步法之因此精度比較高,是由於它有一個逐區域操做的第二步,這個操做很是有效果,但也比較耗時,而RefineDet在沒有用逐區域操做的狀況下,得到了同等的效果。所以咱們認爲,區分一步法和二步法的關鍵點:是否有逐區域的操做。視頻

二、性能分析


速度和SSD相近,精度明顯更高,精度更高沒什麼好說的,速度在多了下面一部分卷積層和反捲積層的狀況下沒有明顯降低,做者分析有兩點緣由,anchors較少以及基礎網絡後的附加網路層數少、特徵選取層更少(4個,我記得SSD有5個),做者原文:    

1. 咱們使用了較少的anchor,如512尺度下,咱們總共有1.6W個框,而SSD有2.5W個框。咱們使用較少anchor也能達到高精度的緣由是二階段迴歸。雖然咱們總共預設了4個尺度(32,,64,128,256,)和3個比例(0.5,1,2),可是通過第一階段的迴歸後,預設的anchor被極大的豐富了,所以用於第二階段迴歸的anchor,具有着豐富的尺度和比例。    

2. 第2個緣由是,因爲顯存限制,咱們只在基礎網絡的基礎上,新加了不多的卷積層,並只選了4個卷積層做爲檢測層。若是增長更多卷積層,並選擇更多檢測層,效果應該還能獲得進一步提高。

三、經驗總結

做者有關訓練的總結:
    Ø 首先輸入尺度越大效果越好,在小目標多的任務上體現的更明顯
    Ø 小batch會影響BN層的穩定
有關BN層和batch的事咱們多提一句,因爲目標檢測輸入圖尺寸大、網絡尺寸大(如ResNet),一個batch可能就一、2張圖片,因此目標檢測任務的BN層基本都是不開放訓練的,優化思路通常是:多卡BN同步(曠世論文MegDet),使用固定的BN參數(參考某個數據集得出),或者乾脆是提出其餘的BN層變種(如何凱明的group normalization之類),做者提到何凱明論文Rethinking ImageNet Pre-training 有講到或者應用這三種方法。

2、後續改進

a、SRN

這是做者後續的文章,繼續上篇文章進行了探討,不過這幾篇文章是人臉檢測領域

Shifeng Zhang, Xiangyu Zhu, Zhen Lei, Hailin Shi, Xiaobo Wang, Stan Z. Li, S3FD: Single Shot Scale-invariant Face Detector, ICCV, 2017
Shifeng Zhang, Longyin Wen, Hailin Shi, Zhen Lei, Siwei Lyu, Stan Z. Li, Single-Shot Scale-Aware Network for Real-Time Face Detection, IJCV

網絡介紹

網絡設置以下,注意P五、P6和P7之間的關係:C2->C5是backbone,P5->P2是反向backbone,而C六、C七、P六、P7都是在backbone後面額外添加的3*3卷積層。

按照做者的說法,他將第二階段的分類、迴歸操做進行了解耦:
    a. Conduct the two-step classification only on the lower pyramid levels (P2, P3, P4)
    b. Perform the two-step regression only on the higher pyramid levels (P5, P6, P7)
緣由以下:若是實際去計算一下,能夠發現anchors選取的過程當中,淺層的佔比要遠大於深層的佔比(空間分辨率大),這致使大量的負樣本集中在淺層,因此對其進行預分類是必要的;而深層感覺野自己很大,分類相比之下很容易,不必進行兩次分類。
這篇論文是人臉分類的文章,其具體流程原文說的也不甚詳細,個人理解是C2->C4僅進行分類,C5->C7僅進行迴歸,而P系列則徹底和RefineDet一致。

b、AlignDet

以前提到了one stage相較於two stage的四個劣勢,refine解決了前三個,最後的特徵校準遺留了下來,這裏做者把它補上了(又成了一篇文章233),因爲原理很簡單沒什麼好說的,貼張圖本身理解一下吧:

3、討論

更快的速度更高的準確率    a. 小物體檢測:人臉檢測的主要難題就是小物體檢測    b. 遮擋問題:   行人檢測的主要問題就是遮擋去除多任務    例如檢測+分割(最終目標:實例分割、全景分割)視頻目標檢測    利用視頻的連續性:精度提高 利用視頻的冗餘性:速度提高

相關文章
相關標籤/搜索