論文指出one-stage anchor-based和center-based anchor-free檢測算法間的差異主要來自於正負樣本的選擇,基於此提出ATSS(Adaptive Training Sample Selection)方法,該方法能夠自動根據GT的相關統計特征選擇合適的anchor box作為正樣本,在不帶來額外計算量和參數的情況下,能夠大幅提升模型的性能,十分有用
來源:曉飛的算法工程筆記 公眾號
論文: Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection

Introduction
在仔細比對了anchor-based和anchor-free目標檢測方法后,結合實驗結果,論文認為兩者的性能差異主要來源於正負樣本的定義,假如訓練過程中使用相同的正負樣本,兩者的最終性能將會相差無幾。為此,論文提出ATSS( Adaptive Training Sample Selection)方法,基於GT的相關統計特征自動選擇正負樣本,能夠消除anchor-based和anchor-free算法間的性能差異
論文的主要貢獻如下:
- 指出anchor-free和anchor-based方法的根本差異主要來源於正負樣本的選擇
- 提出ATSS( Adaptive Training Sample Selection)方法來根據對象的統計特征自動選擇正負樣本
- 證明每個位置設定多個anchor是無用的操作
- 不引入其它額外的開銷,在MS COCO上達到SOTA
Difference Analysis of Anchor-based and Anchor-free Detection
論文選取anchor-based方法RetinaNet和anchor-free方法FCOS進行對比,主要對比正負樣本定義和回歸開始狀態的差異,將RetinaNet的anchor數改為1降低差異性,方便與FCOS比較,后續會測試anchor數帶來的作用
Inconsistency Removal

由於FCOS加入了很多trick,這里將RetinaNet與其進行對齊,包括GroupNorm、GIoU loss、限制正樣本必須在GT內、Centerness branch以及添加可學習的標量控制FPN的各層的尺寸。結果如表1,最終的RetinaNet仍然與FCOS有些許的性能差異,但在實現方法上已經基本相同了
Essential Difference
在經過上面的對齊后,僅剩兩個差異的地方:(i) 分類分支上的正負樣本定義 (ii) 回歸分支上的bbox精調初始狀態(start from anchor box or anchor point)
-
Classification

RetinaNet使用IoU閾值($\theta_p$,$\theta_n$)來區分正負anchor bbox,處於中間的全部忽略。FCOS使用空間尺寸和尺寸限制來區分正負anchor point,正樣本首先必須在GT box內,其次需要是GT尺寸對應的層,其余均為負樣本
-
Regression

RetinaNet預測4個偏移值對anchor box進行調整輸出,而FCOS則預測4個相對於anchor point值對anchor box進行調整輸出
-
Conclusion

對上面的差異進行交叉實驗,發現相同的正負樣本定義下的RetinaNet和FCOS性能幾乎一樣,不同的定義方法性能差異較大,而回歸初始狀態對性能影響不大。所以,基本可以確定正負樣本的確定方法是影響性能的重要一環
Adaptive Training Sample Selection
Description

論文提出ATSS方法,該方法根據目標的相關統計特征自動進行正負樣本的選擇,具體邏輯如算法1所示。對於每個GT box $g$,首先在每個特征層找到中心點最近的$k$個候選anchor boxes(非預測結果),計算候選box與GT間的IoU $\mathcal{D}_g$,計算IoU的均值$m_g$和標准差$v_g$,得到IoU閾值$t_g=m_g+v_g$,最后選擇閾值大於$t_g$的box作為最后的輸出。如果anchor box對應多個GT,則選擇IoU最大的GT
ATSS的思想主要考慮了下面幾個方向:
-
Selecting candidates based on the center distance between anchor box and object
在RetinaNet中,anchor box與GT中心點越近一般IoU越高,而在FCOS中,中心點越近一般預測的質量越高
-
Using the sum of mean and standard deviation as the IoU threshold

均值$m_g$表示預設的anchor與GT的匹配程度,均值高則應當提高閾值來調整正樣本,均值低則應當降低閾值來調整正樣本。標准差$v_g$表示適合GT的FPN層數,標准差高則表示高質量的anchor box集中在一個層中,應將閾值加上標准差來過濾其他層的anchor box,低則表示多個層都適合該GT,將閾值加上標准差來選擇合適的層的anchor box,均值和標准差結合作為IoU閾值能夠很好地自動選擇對應的特征層上合適的anchor box
-
Limiting the positive samples’ center to object
若anchor box的中心點不在GT區域內,則其會使用非GT區域的特征進行預測,這不利於訓練,應該排除
-
Maintaining fairness between different objects
根據統計原理,大約16%的anchor box會落在$[m_g+v_g, 1]$,盡管候選框的IoU不是標准正態分布,但統計下來每個GT大約有$0.2 * k\mathcal{L}$個正樣本,與其大小和長寬比無關,而RetinaNet和FCOS則是偏向大目標有更多的正樣本,導致訓練不公平
-
Keeping almost hyperparameter-free
ATSS僅有一個超參數$k$,后面的使用會表明ATSS的性能對$k$不敏感,所以ATSS幾乎是hyperparameter-free的
Verification

將ATSS應用到RetinaNet和FCOS上測試效果:
- 將RetinaNet中的正負樣本替換為ATSS,AP提升了2.9%,這樣的性能提升幾乎是沒有任何額外消耗的
- 在FCOS上的應用主要用兩種:lite版本采用ATSS的思想,從選取GT內的anchor point改為選取每層離GT最近的top $k$個候選anchor point,提升了0.8%AP;full版本將FCOS的anchor point改為長寬為$8S$的anchor box來根據ATSS選擇正負樣本,但仍然使用原始的回歸方法,提升了1.4%AP。兩種方法找到的anchor point在空間位置上大致相同,但是在FPN層上的選擇不太一樣。從結果來看,自適應的選擇方法比固定的方法更有效
Analysis

參數k在區間$[7,17]$幾乎是一樣的,過大的設置會到導致過多的低質量候選anchor,而過小的設置則會導致過少的正樣本,而且統計結果也不穩定。總體而言,參數$k$是相對魯棒的,可以認為ATSS是hyperparameter-free


在FCOS的full版本中使用了$8S$的anchor box,論文對不同的尺寸進行了對比,如表5所示,也在$8S$基礎上對不同的長寬比進行了對比,如表6所示。從結果來看,性能幾乎對尺寸和長寬比無關,相對魯棒
Discussion

前面的RetinaNet實驗只用了一個anchor box,論文補充測試了不同anchor數下的性能,實驗中的Imprs為表1中的提升手段。從結果來看,在每個位置設定多個anchor box是無用的操作,關鍵在於選擇合適的正樣本
Comparison

實現的是FCOS版本的ATSS,在相同的主干網絡下,ATSS方法能夠大幅增加准確率,十分有效
Conclusion
論文指出one-stage anchor-based和center-based anchor-free檢測算法間的差異主要來自於正負樣本的選擇,基於此提出ATSS(Adaptive Training Sample Selection)方法,該方法能夠自動根據GT的相關統計特征選擇合適的anchor box作為正樣本,在不帶來額外計算量和參數的情況下,能夠大幅提升模型的性能,十分有用
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】

