論文原址:https://arxiv.org/abs/1904.03797
摘要
FoveaBox屬於anchor-free的目標檢測網絡,FoveaBox直接學習可能存在的圖片種可能存在的目標,這期間並不需要anchor作為參考。主要靠兩方面實現:(1)產生類別敏感的語義map用於表示目標物存在的可能性。(2)在每個可能存在目標物的位置生成與類別無關的邊界框。目標邊框的尺寸與對應輸入圖片的特征金字塔的表示相關。
介紹
目標檢測主要包含兩個任務:定位及識別,輸入一張圖片,檢測系統需要判斷是否有預定義類別的目標物,如果有,就返回他的空間位置以及內容。為了增加系統的定位功能,滑動窗已經沿用了很多年。基於anchor的方法一般趨向框的空間(包括尺寸,大小,位置等)划分為格子,並增強對應目標的格子來進行定位。對於雙階段檢測來說,Anchors是回歸標准,以及用於預測proposals的候選框。對於單階段檢測來說是最終的邊框。Anchor也可以看作是覆蓋所有可能存在目標物的像素的特征共享的滑動窗機制。
anchor存在以下幾點缺點:(I)anchor引入了大量的超參數。為了得到一個較好的召回率,需要參考由數據集/測試集計算得到的統計分布設置。(II)對於一個數據集設計的anchor可能不適用於另一個數據集,普適性低。(III)anchor一般會產生較多的候選框,而這里就存在着前景/背景數目不平衡問題。
提高anchor普適性的一個做法是改變anchor,使其靈活可變。借鑒人類的視覺系統,人文可以直接通過視覺信息識別出物體的位置及類別,而不需要一些繁瑣的預定義的框。本文的FoveaBox的靈感來自人樣的Fovea。視野(目標物)中心具有最高的視覺敏感度。FoveaBox預測可能存在目標物中心位置的同時預測有效位置的邊框。由於特征金字塔表示,可以通過在不同層次的特征上檢測出不同尺寸大小的目標物。由於FoveaBox不依賴於預定義的anchor,因此,對於數據集的邊框分布更具魯棒性。
FoveaBox
FoveaBox是一個網絡,由backbone及兩個任務明確的子網絡組成。backbone負責得到整幅圖像的卷積特征。第一個分支網絡在backbone的輸出特征上進行像素級分類。第二個分支用於邊界框的預測。
FPN for backbone
FPN通過利用top-down結構及側連接結構來構建單尺寸輸入的多尺寸金字塔特征。金字塔的每一層都可以檢測不同尺寸大小的目標。本文搭建了金字塔,l代表金字塔的某一層級,每層的輸出通道數都為256
Scale Assignment
由於不同物體存在較大的尺寸變化,預測得到的邊框的值不是固定的。相對的,本文特征金字塔的層級,將目標物的尺寸划分為幾個格子。P3到P7,每層都有自己對應的基礎區域32^2~512^2,對於Pl層種的basic-area大小Sl如下
參考基於Resnet Faster R-CNN中用C4作為signel scale,本文將S0設置為16,特征金字塔中每層只學習目標物的一部分特征表示。對於l層的特征金字塔其目標物尺寸的有效范圍如下,其中下式中的eta人為設置的用於控制每層的尺寸范圍。不在范圍內的目標在訓練時被忽略,值得注意的是同一個目標可能會在不同的層中檢測到。
Object Fovea
每個金字塔heatmaps的輸出為K(類別數)通道,大小為HxW,如下圖所示,每個通道都是一個二值mask表示是否為某一個類別。
給定一個ground truth框(x1,y1,x2,y2),首先基於stride 2^l將其映射至對應的l層。
位於score map上的positive 區域相比原來做了一些縮放處理,如下圖3所示,等式如下,
為縮放因子。落入該區域的ceil標記對應類別。通過引入另一個縮放因子
按等式(4)得到
,negative區域為除去Rneg的整個feature map。如果一個單元沒有被assign,在訓練時,則將其忽略。由於positive區域占較小的比例,因此,該分支使用Focal Loss。
預測邊框
模型只編碼目標物體存在的概率。為了定位,需要預測每個實例可能存在的位置。每個ground truth box的位置按如下方式定義。
G=(x1,y1,x2,y2),本文目標:找到一種變換將feature maps中(x,y)單元的網絡位置輸出映射到ground truth box G中,
上面函數首先將位置(x,y)映射至輸入圖片,然后計算映射后的坐標於G之間的偏差。最后通過Log-space進行處理。仍基於L1 loss對Lbox進行訓練。最后,在輸出feature maps上的每個positive ceil(x,y)上產生框的邊界。
優化策略
Inference
首先設置0.05濾掉confidence低於此值的預測結果,每個預測層中選測分數前100的結果。對於每個類別使用基於0.5的閾值進行NMS處理。最終每張圖片得到100個預測結果。
實驗
Reference
[1] M. F. Bear, B. W. Connors, and M. A. Paradiso. Neuroscience, volume 2. Lippincott Williams & Wilkins, 2007.
[2] N. Bodla, B. Singh, R. Chellappa, and L. S. Davis. Softnms–improving object detection with one line of code. In Proceedings of the IEEE International Conference on Computer Vision, pages 5561–5569, 2017.
[3] Z. Cai and N. Vasconcelos. Cascade r-cnn: Delving into high quality object detection. arXiv preprint arXiv:1712.00726, 2017.
[4] H.-Y. Chen et al. Tensorflow–a system for large-scale machine learning. In OSDI, volume 16, pages 265–283, 2016