【論文閱讀-目標檢測】Feature Selective Anchor-Free Module for Single-Shot Object Detection

       

這篇文章從視覺效果上來說,很大程度的提升了“小目標的”檢測效果。

一、主要內容

這篇文章主要是針對FPN這種結構去做優化的,主要的優化點在於“如何去選擇哪一層來回歸目標”。

以往的方法基本上都是基於“Heuristic feature selection” 以及 “ overlap-based anchor sampling”

“Heuristic feature selection” :啓發式的特徵選擇,我們利用size來決定某個anchor size 去哪層FPN上選擇特徵。這種方式並不一定是最優的 對於這個作者也沒多說爲什麼。到時給了圖例,勉強理解下。                                                                                                                      

“ overlap-based anchor sampling”:這個就是利用IOU來決定某個anchor是正例還是負例。

二、方法

      feature selective anchor-free 縮寫:FSAF

       這篇文章在原始RetinaNet的基礎之上,去“增加”FSAF ,也就是意味着,RetinaNet的原始結構全部保留了。這種改進會需要額外“6ms”的計算時間,基於ResNXet-101爲backbone的RetinaNet 有1.8%的提升效果。

       Additionally, our final detector achieves a state-of-the-art 44.6% mAP when multi-scale testing are employed, outperforming all existing single-shot detectors on COCO.

       這裏值得注意的是 爲了達到這個44.6%mAP需要 “ 多尺度-測試”!!!

       從這張圖,我們可以清楚的看到,RetinaNet的原始結構是被全部保留的了的,只是把“FPN”每一路輸出的Feature map增加了一個岔路,雖然圖中只畫了3層FPN,但是只是爲了簡單的可視化效果,少畫了幾層。

       

      上圖是 實現的內部結構了,可以看到 “anchor-based ” 和 “anchor-free” 是相互不影響的,只不過有共同的base feature。對於anchor-free 這部分,作者採用了 focal loss(分類) + IoU loss(迴歸)

                                                  

     這裏需要定義:代表了某個groundtruth box在某一層FPN時候的具體值, 

     effective box: 

     ignore box :

      取值定義:

Classification Output:     

      在這裏可能有點疑惑?爲什麼effective box的區域比ignore box區域小? 根據以上四個定義,對應到Figure 5的分類那一部分,圖中最外側“全黑表示無目標” ;  “灰色區域表示的就是 ignore box - effective box 的部分,這部分不參與“BP”回傳” ;“白色區域就是 effecitve box區域爲全1”。這些操作對於某個一 groundtruth box而言依然是 所有level of FPN 同步進行的,對於兩個instance 如果有overlap,那麼最小的那個有最高的優先權。

Box Regression Output

        對於每一個 effective box區域內的座標(i,j),都有如下一個4維向量:分別對應(i,j)座標位置的去迴歸四個角落的偏移量。要注意,,這裏的值被除了一個尺度因子“S=4.0”

       最終結果應該是“


Online Feature Selection

         

      從這張圖,可以明確的知道整個“FSAF”的思路,對於每一個“Instance”,FPN的每一層各自計算這一層的loss,從這些loss種選擇最小的那個,從而決定對於這個“Instance”應該選擇哪一層。*****這是在訓練的時候,其實就是決定某個Instance 用哪個路線去回傳,只訓練這層FPN***

The intuition is that the selected feature is currently the best to model the instance. Its loss forms a lower bound in the feature space.

      ****在運行inference***的時候是沒有這樣的選擇機制的,因爲“對於每一個instance而言,一定存在一個最合適的層,所以對於每一層,我們都去選,最後一起用閾值過濾以及nms就能夠一定程度上得到最好的結果” 也就是隻要保證了,最合適的在裏面,那麼一定能夠得到最合適的!!!

      測試階段 anchor-free 以及anchor-based 這兩路的結果都會被拿出來,一起最後刪選。

                                 

                     

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