論文原址:https://arxiv.org/abs/1904.03797網絡
摘要app
FoveaBox屬於anchor-free的目標檢測網絡,FoveaBox直接學習可能存在的圖片種可能存在的目標,這期間並不須要anchor做爲參考。主要靠兩方面實現:(1)產生類別敏感的語義map用於表示目標物存在的可能性。(2)在每一個可能存在目標物的位置生成與類別無關的邊界框。目標邊框的尺寸與對應輸入圖片的特徵金字塔的表示相關。ide
介紹函數
目標檢測主要包含兩個任務:定位及識別,輸入一張圖片,檢測系統須要判斷是否有預約義類別的目標物,若是有,就返回他的空間位置以及內容。爲了增長系統的定位功能,滑動窗已經沿用了不少年。基於anchor的方法通常趨向框的空間(包括尺寸,大小,位置等)劃分爲格子,並加強對應目標的格子來進行定位。對於雙階段檢測來講,Anchors是迴歸標準,以及用於預測proposals的候選框。對於單階段檢測來講是最終的邊框。Anchor也能夠看做是覆蓋全部可能存在目標物的像素的特徵共享的滑動窗機制。學習
anchor存在如下幾點缺點:(I)anchor引入了大量的超參數。爲了獲得一個較好的召回率,須要參考由數據集/測試集計算獲得的統計分佈設置。(II)對於一個數據集設計的anchor可能不適用於另外一個數據集,普適性低。(III)anchor通常會產生較多的候選框,而這裏就存在着前景/背景數目不平衡問題。測試
提升anchor普適性的一個作法是改變anchor,使其靈活可變。借鑑人類的視覺系統,人文能夠直接經過視覺信息識別出物體的位置及類別,而不須要一些繁瑣的預約義的框。本文的FoveaBox的靈感來自人樣的Fovea。視野(目標物)中心具備最高的視覺敏感度。FoveaBox預測可能存在目標物中心位置的同時預測有效位置的邊框。因爲特徵金字塔表示,能夠經過在不一樣層次的特徵上檢測出不一樣尺寸大小的目標物。因爲FoveaBox不依賴於預約義的anchor,所以,對於數據集的邊框分佈更具魯棒性。優化
FoveaBox編碼
FoveaBox是一個網絡,由backbone及兩個任務明確的子網絡組成。backbone負責獲得整幅圖像的卷積特徵。第一個分支網絡在backbone的輸出特徵上進行像素級分類。第二個分支用於邊界框的預測。 spa
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