&Title
- Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection
- 代碼
&Summary
論文主要闡述了對于正負樣本的定義和選取對模型最終效果的影響。
首先是對比了anchor_free和anchor_base在選取樣本時的差異,本文以RetinaNet和FCOS作為例子進行了對比,RetinaNet是采用IOU去選取正負樣本,FCOS是基于空間分布對正負樣本進行score。這兩種采樣方式會導緻最終訓練的正負樣本是不一緻的,作者通過對ReinaNet用兩種不同采樣方式進行訓練模型,并對比起在COCO上的AP,驗證anchor_base和anchor_free本質上的差別隻是在于采樣的不同。
然後提出本文的思想,自适應的選取正樣本的方法(ATSS)
該方法主要有兩大特性:
- 保證了所有的正樣本anchor都是在groundtruth的周圍。
- 最主要是根據不同層的特性對不同層的正樣本的門檻值進行了微調。
contribution
- 指出基于錨點的檢測器和不帶錨點的檢測器之間的本質差別實際上是如何定義正訓練樣本和負訓練樣本。
- 提出自适應訓練樣本選擇,以根據對象的統計特征自動選擇正訓練樣本和負訓練樣本。
- 證明在圖像上的每個位置平鋪多個錨點以檢測對象是沒啥用的。
- 在不引入任何額外開銷的情況下,實作MS COCO的最新性能。
&Research Objective
切入點在于: 基于anchor-based和anchor-free的目标檢測算法之間的效果差異到底是由什麼原因造成的?
&Problem Statement
分析下RetinaNet和FCOS在算法上的差異,主要有以下3點:
- RetinaNet在特征圖上每個點鋪設多個anchor,而FCOS在特征圖上每個點隻鋪設一個中心點,這是數量上的差異。
- RetinaNet基于anchor和GT之間的IoU和設定的門檻值來确定正負樣本,而FCOS通過GT中心點和鋪設點之間的距離和尺寸來确定正負樣本。這1點可以從下圖的對比中看到,牛這張圖像中藍色框和點表示GT,紅色框表示RetinaNet鋪設的anchor,紅色點表示FCOS鋪設的點,左右兩邊類似表格上的數值表示最終确定的正負樣本,0表示負樣本,1表示正樣本。
- RetinaNet通過回歸矩形框的2個角點偏置進行預測框位置和大小的預測,而FCOS是基于中心點預測四條邊和中心點的距離進行預測框位置和大小的預測。這1點可以從下圖的對比中看到,藍色框和點表示GT,紅色框表示RetinaNet的正樣本,紅色點表示FCOS的正樣本。
&Method(s)
提出本文的思想,自适應的選取正樣本的方法,具體方法如下:
- 對于每個輸出的檢測層,選計算每個anchor的中心點和目标的中心點的L2距離,選取K個anchor中心點離目标中心點最近的anchor為候選正樣本(candidate positive samples)
- 計算每個候選正樣本和groundtruth之間的IOU,計算這組IOU的均值和方差
- 根據方差和均值,設定選取正樣本的門檻值:t=m+g ;m為均值,g為方差
- 根據每一層的t從其候選正樣本中選出真正需要加入訓練的正樣本
- 訓練
作者的方法背後的一些動機詳情見原文。
&Evaluation
作者的驗證ATSS算法方面的實驗不多,但是在對比基于anchor-based和anchor-free的目标檢測算法(即Retinanet和FCOS)之間的三個差異做的實驗豐富。因為就本身ATSS思想簡單,實驗對比也不多。
以下部分摘自:CSDN部落客「AI之路」
知道了 &Problem Statement 部分說的3個差異點,接下來就可以設計對比實驗了。因為主要關注第2、3點的影響,是以首先将RetinaNet在每個點鋪設的anchor數量減少到1,也就是和FCOS保持一緻,這樣第1點差異就不存在了。另外,由于FCOS論文中用了一些訓練的技巧,如Table1所示,比如Group Normalization、GIoU Loss等,是以為了公平對比2個算法,作者在RetinaNet上也加上了這些技巧,最後mAP達到37.0,基本上和FCOS的37.8很接近了。
是以接下來作者對剩餘的0.8mAP差異進行了分析,做了Table2這個實驗。
這個表格可以這樣看:
按行看,Intersection over Union這一行的兩個數值表示RetinaNet和FCOS都采用基于IoU方式确定正負樣本,二者的mAP基本沒有差别;同樣Spatial and Scale Constraint這一行的兩個數值表示RetinaNet和FCOS都采用基于距離和尺寸方式确定正負樣本,二者的mAP也是一樣。是以結論就是:回歸方式的不同并不是造成FCOS和RetinaNet效果差異的原因,也就是前面說的第3點差異是不影響的。
按列看,Box這一列的兩個數值表示将RetinaNet的正負樣本确定方式從IoU換成和FCOS一樣的基于距離和尺寸,那麼mAP就從37.0上升到37.8;同樣Point這一列的兩個數值表示将FCOS的正負樣本确定方式從基于距離和尺寸換成和RetinaNet一樣的基于IoU,那麼mAP就從37.8降為36.9。是以結論就是:如何确定正負樣本才是造成FCOS和RetinaNet效果差異的原因,也就是前面說的第2點差異才是根源。
從論文開始到目前為止的實驗對比和分析都是步步緊扣,答案也随之浮出水面,接下來就是論文的第2大部分内容,也就是提出ATSS來确定正負樣本,
不過這部分給我的感覺沒有前面的實驗對比來得有說服力。ATSS本身沒有太複雜的内容,如Algorithm 1所示,第3到6行是根據anchor和GT的中心點距離選出候選正樣本,每層K個;第7行是計算IoU;第8行到第15行是先計算IoU的均值和标準差進而得到門檻值,然後根據門檻值進行正負樣本确定。
ATSS中的A表示adaptive,翻譯過來就是自适應,也就是說正負樣本是可以自動确定的,但顯然Algorithm 1中還是有少量超參數比如K,以及關于門檻值的确定有比較多的先驗知識。
不過不可否認的是ATSS的超參數量比之前還是要少一些,而且ATSS對anchor的尺寸、寬高比、數量比較魯棒,可以參考論文中Table5、Table6和Table7。最終的實驗結果如Table8所示,效果上還是不錯的,開源代碼中還有關于速度的介紹:
&Conclusion
在這項工作中,作者指出:
一級段基于錨點和基于中心的無錨點探測器之間的本質差別實際上是正訓練樣本和負訓練樣本的定義。 這表明在訓練對象檢測器的過程中如何選擇正樣本和負樣本至關重要。
受此啟發,作者深入研究了這一基本問題,并提出了自适應訓練樣本選擇方法,該方法根據目标的統計特征(方差和均值)自動劃分正訓練樣本和負訓練樣本,彌合了基于錨的探測器與無錨探測器之間的差距。 此外,作者讨論了在每個位置平鋪多個錨點的必要性,并證明了在目前情況下這是不費吹灰之力的操作。 在具有挑戰性的基準MS COCO上進行的大量實驗表明,所提出的方法可以實作最新性能,而不會引入任何額外的開銷。