【目標檢測】FSAF
論文名稱:Feature Selective Anchor-Free Module for Single-Shot Object Detection
論文地址:
https://
arxiv。org/abs/1903。0062
1
建議閱讀這篇文章之前先閱讀以下參考文獻裡面的FPN和Focal Loss(RetinaNet)這兩篇論文。
摘要
提出一種無錨點的特徵選擇模組,可以最佳化傳統的基於錨點檢測器的2個不足:(1)啟發式引導的特徵選擇(2)基於重疊的錨點取樣(1) heuristic-guided feature selection; (2)overlap-based anchor sampling
訓練過程中可以動態的為每個object選擇合適的特徵層提取特徵; 推理測試過程中可以和anchor-based並行使用;
在COCO測試集可以達到44。6的mAP,
可以在anchor-based網路的基礎上
簡單加一下anchor-free的分支即可實現anchor-based和anchor-free的融合
動機
目標檢測有什麼問題?
scale variation。以前的解決方法有影象金字塔、特徵金字塔、anchor boxes等。
傳統anchor-based的方法有什麼不足?
(1) heuristic-guided feature selection; (2)overlap-based anchor sampling
第一個不足意思是說之前對於一個object,選擇哪個特徵層是人工設計的,最常見的形式是根據object的大小,例如大的object在小解析度的feature(有large anchors),小的object在大解析度的feature(有small anchors)。但是對於目標檢測,同一種物體,例如車的尺度可能變化非常大,不同大小的車根據人為設計的特徵選擇規則會落在不同的feature上,這不是最優的。
第二個不足意思是說例項的boxes是透過IoU Overlap和最近的anchor boxes進行匹配的,且不同層的feature對應的anchor boxes也是啟發式設計的。
傳統基於anchor的設計,40*40和50*50的2輛車可能基於同一個feature上提取特徵,60*60的可能基於另一個feature提取特徵
網路結構
將FSAF模組插入到傳統的基於anchor-based的檢測器的方法結構圖。在訓練過程中,透過設定監控訊號的特徵選擇,將每個例項分配到一個金字塔級別。監控訊號後面會重點介紹。
如何建立anchor-free分支?
我們先回回憶一下RetinaNet網路結構
RetinaNet網路:(a)是ResNet結構 (b)是feature pyramid net (c)是class subset (d)是box subset。
class subset分支輸入C維的特徵經過4次3*3卷積(後跟ReLU),最後再經過一次含有KA個濾波器的3*3卷積,其中K是類別的數目,A是anchor的數目,最後再經過一個sigmoid函式。
box subset分支輸入C維的特徵經過4次3*3卷積(後跟ReLU),最後再經過一次含有4A個濾波器的3*3卷積,A是anchor的數目。
class subset和boxsubset的結構基本相同,但是引數不共享。文章中取 C = 256, K = 9,calss subset倒數第二個feature的大小為W*H*256,每一個點對應256維度的向量,最後轉換成KA維度的向量。
下面我們介紹一下FSAF模組怎麼插入到RetinaNet模組當中:
將FSAF模組插入到RetinaNet網路中的新架構。RetinaNet中每個feature對應2個subnets,一個是用於class分類,一個是用於boxes迴歸。FSAF知只是在此基礎上增加2個卷積層,class subset輸出K維的W*H的feature, box subset輸出4維的W*H的feature, 兩者合在一起構成anchor-free branch。
監督訊號怎麼設計?
定義一些引數
instance boxes:
projected boxes on
effective boxes on
ingoring boxes on
對於位於區域
內的任一畫素點
,定義
為畫素點
到對映區域
。下圖中的白色區域為
,灰色區域為
使用focal loss用於監督分類任務,使用IoU loss用於監督迴歸任務;
公式(1)中的
為輸入的instance,
為feature map,
為
內的畫素數,
為
內點
在第
層上的focal loss 分類損失,
為
內點
在第
層上的Iou loss 迴歸損失。
線上特徵選擇?
上圖為線上特徵選擇機制。每一個例項都經過所有的anchor-free branch來計算平均分類損失和平均迴歸損失,然後選擇損失最小的anchor-free branch對應的損失作為最後的監督該例項的訊號。如上,假如最下面的這路梯度最小,訓練階段則只對最下面的這路進行梯度更新,上面的兩路不做任何變化。
Anchor-based branch 和 Anchor-free branch聯合訓練
上式中
為anchor-based branch和anchor-free branch的總Loss,其中
為anchor-based branch的總loss,
為anchor-free branch的分類loss,
為anchor-free branch的迴歸loss,超引數
。
Anchor free和Anchor based的效果對比
只使用Heuristic feature selection效果差於只使用Anchor-based branches;只使用Online feature selection 效果持平只使用Anchor based branches; Online feature selection 和Anchor based branches結合使用效果最好,比基線提升1。5個點
從圖上可以看出基於anchor-based的RetinaNet網路中插入anchor-free模組後,像滑板、飛盤等這種較小、尺度比較不規則的物體檢測效果會更好。
上圖中的所有框都是anchor-free的檢測結果,綠框表示其和anchor-based選擇特徵層一致,小目標在大解析度層,大目標在小解析度層;紅色的表示其和anchor-based選擇的特徵層不一致。影象中小目標等更難的樣本可以檢測出來,證明其特徵選擇的有效。
參考文獻:
[1]Feature Selective Anchor-Free Module for Single-Shot Object Detection (FSAF; 201903;CVPR)
[2]Feature pyramid networks for object detection (FPN; 2017;CVPR)
[3] Focal loss for dense object detection (RetinaNet & focal loss; 2018; CVRP;)
[4] Improving object localization with fitness nms and bounded iou loss (IOU loss; 2018; CVPR)