論文閱讀筆記-ATSS

張士峰在CVPR 2020發了一篇論文解讀目標檢測中關於Anchor-base和Anchor-free方法間的差別。論文首先指出如何定義正、負訓練樣本,是anchor-based檢測與anchor-free檢測的本質區別,是導致兩者之間的性能差距的根本原因。如果正負樣本的定義相同,無論從一個anchor還是point迴歸,其結果性能都差不多。因此,正負樣本的選取對於object-detection任務極其重要。這篇論文提出ATSS,一種自適應訓練樣本選擇方法,能夠根據目標的統計特徵自動選擇正、負樣例,能顯著提高這兩種檢測方法的性能,彌補兩者之間的diff。論文最後還討論了在每個position平鋪多個anchor進行object-detection的必要性。

論文:《Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection》

鏈接:https://arxiv.org/abs/1912.02424

代碼:https://github.com/sfzhang15/ATSS

一、Introduction

object-detection是computer-vision領域中一個久遠的課題,其目的是檢測事先定義好的目標。準確的目標檢測將對圖像識別和視頻監控等多種應用產生深遠的影響。近年來,隨著CNN的發展,anchor-based的目標檢測方法逐漸成為主流,一般可分為one-stage和two-stage這兩種。這兩種方法都需要先在image上平鋪大量的anchor,然後預測這些anchor的類別以及對anchor的座標進行refine,最後將這些refined的anchor輸出。由於two-stage對anchor的refine程度是one-stage方法的七倍以上,因此,two-stage的結果更準確,而one-stage的計算效率更高。通用detection基準的stat-of-the-art結果仍然由anchor-based的檢測器產生。

然而,隨著FPN和focal loss的出現,近年來學術界越加多的關注於anchor-free的方法。anchor-free的方法通過2種方式搜索沒有預先設定anchor的目標。其一是,首先定位幾個預定義或self-learned的關鍵點,然後約束object的空間範圍。這種方法稱作Keypoint-based方法。另一種是使用object的中心點或者region來定義正例,然後預測從正例到object邊界的四個距離。這種方法稱之為center-based方法。這些anchor-freed的檢測器能夠消除關於anchor的超參數,並得到與anchor-based檢測器相匹配的性能,因此,更具有泛化能力。

在這兩種anchor-free檢測方法中,keypoint-based方法遵循與anchor-based方法不同的關鍵點預估pipeline,而center-based方法與anchor-based方法類似,將點當作預設的樣本而非anchor來處理。以one-stage的anchor-based檢測器,RetinaNet和center-based的anchor-free檢測器FCOS為例,它們直接的主要差異有三:(1) 每個位置的anchor的數量。RetinaNet每個位置設置多個anchor,而FCOS設置一個anchor每個位置;(2) 正、負樣例的定義。RetinaNet是根據IOU閾值設定,FCOS使用空間和尺度的限制來確定正負樣本;(3) 迴歸開始狀態。RetinaNet將目標邊界框從預置anchor框中迴歸,FCOS從點定位目標。anchor-free的FCOS檢測器比anchor-based的RetinaNet性能更好,這三個差異中哪一個導致的這種結果是一個值得研究的問題。

這篇文章通過嚴格排除anchor-based和anchor-free方法之間的所有實現上的不一致性,公平的探究這兩種方法之間的差異性。從實驗結論上看,如何定義正、負訓練樣本,是anchor-based檢測與anchor-free檢測的本質區別,是導致兩者之間的性能差距的根本原因。如果在訓練中選擇相同的正負例,最終的性能沒有明顯的gap,無論從一個anchor還是point迴歸。因此,如何選擇正負樣例值得深入探究。受此啟發,本文提出一種新的自適應訓練樣本選擇(ATSS)方法,可以根據目標特徵自動選取正負樣例,這種方法彌補了anchor-based和anchor-free檢測器之間的性能gap。此外,還通過實驗得出一個結論:在圖上每個位置平鋪多個anchor用於檢測object是沒有必要的。這篇文章的主要貢獻總結如下:

•指出anchor-based和anchor-free的本質區別實際上是如何去定義正、負訓練樣本。

•根據對象的統計特徵,提出ATSS方法,自動選擇正、負樣例。

•指出在圖像上的每個位置平鋪多個anchor以檢測對象是不必要的操作。

•在不引入任何額外開銷的情況下,在MS COCO上實現state-of-the-art結果。

二、Related Work

2.1 Anchor-Based Detector

Two-stage method. Faster RCNN的誕生奠定了two-stage方法的主導地位。FasterRCNN由一個RPN網絡和一個對region-wise進行預測、檢測目標的網絡組成。在此基礎上,一系列改進算法被提出,包括體系結構的重新設計與改進、上下文與注意機制、多尺度訓練與測試、訓練策略與損失函數、特徵融合與增強、更好的rpn結構等。迄今為止,detection benchmark的stat-of-the-art結果仍然由two-stage方法保持著。

One-stage method.隨著SSD的出現,one-stage檢測方法因其高運算效率而廣受關注。SSD在卷積網絡的多尺度層上設定anchor-box,以直接預測對象類別和anchor-box的偏移量。此後,大量的工作被提出,從不同的方面提升SSD的性能,包括融合不同層次的上下文信息、從scratch訓練、引入新的loss函數、anchor的細化與匹配、網絡結構的重新設計、引入更豐富的特徵與特徵對齊。目前,one-stage方法可以以更快的速度達到與two-stage方法相似的性能。

2.2 Anchor-free Detector

Keypoint-based method.這類方法首先定位一些預先設定的或自學習到的關鍵點,然後生成bounding box來檢測目標。CornerNet將對象邊界框檢測為一對關鍵點(左上角和右下角), 而CornerNet Lite引入CornerNet-Saccade 和 CornerNet-Squeeze來提高檢測速度。第二階段的Grid RCNN通過使用FCN的位置敏感的優勢來預測grid point,然後通過grid point來決定bounding box。ExtremeNet檢測四個極端點(最上面、最左邊、最下面、最右邊)和一箇中心點以生成對象bounding box。Zhu et al.使用關鍵點估計查找對象的中心點,並回歸到所有其他特性,包括大小、三維位置、方向和姿勢。CenterNet[11]將CornetNet擴展為一個三元組,而不是一對關鍵點,以提高精確度和召回率。RepPoints將對象表示為一組採樣點,並學習如何排列它們用於限定對象的空間區域以及指示語義上的重要region。

Center-based method.這種anchor-free的方法是以object的中心(如中心點或部分)作為前景來定義正例,然後預測正例到物體bounding box四邊的距離進行檢測。YOLO將圖片劃分成S X S個格子,包含有一個物體中心的cell負責檢測這個物體。DenseBox使用位於對象中心的填充圓來定義正例,然後預測從正例到對象bounding box邊界的四個距離以進行定位。GA-RPN將目標中心區域的像素定義為正像素,用以預測由Faster RCNN提出的目標的位置、寬度和高度。FSAF將帶有在線特徵選擇的anchor-free分支附加到RetinaNet。新增加的分支將對象的中心區域定義為正區域,通過預測到其邊界的四個距離來定位對象。FCOS將對象邊界框內的所有位置視為具有四個距離的正例,並使用新的中心度得分來檢測對象。CSP只將目標box的中心點定義為正例,檢測長寬比固定的行人。FoveaBox將目標的中間位置定位正例,通過四個距離進行檢測。

三、 Difference Analysis of Anchor-based and Anchor-free Detection

在不喪失一般性的情況下,採用了具有代表性的anchor-based RetinaNet和anchor-free FCOS來探究它們之間的差異。在本節中,將重點討論後兩個差異:正/負樣例定義和迴歸開始狀態。剩下的一個區別是:每個位置設定的anchor的數量,將在後面的章節中討論。因此,與FCOS類似,RetinaNet在每個position都支取一個anchor。在剩下的部分中,首先介紹了實驗的設定情況,需要排除所有實現上的不一致性,最後指出Anchor-based and Anchor-free檢測器之間的本質區別。

3.1 Experiment Setting

Dataset.本文所有實驗都在MS COCO數據集上開展,它有80個物體類別,115K圖用於訓練集,5K用於validation和分析。

Training Detail. 首先用ImageNet預訓練一個具有5級特徵金字塔的ResNet50作為backbone。對於RetinaNet,五級特徵金字塔中的每一層都與一個8S比例的正方形anchor相關聯,其中S是總步長。訓練時,resize圖像保持短邊大小為800, 長邊為1333。使用momentum為0.9, weight decay為0.001SGD算法訓練了90K次迭代,batch size為16。初始化學習率為0.1,在60K和80K時分別以0.1的比例進行衰減。除非另有說明,否則在實驗中使用上述訓練細節。

Inference Detail.

在推理階段,採用與訓練階段相同的方法調整輸入圖像的大小,然後通過整個網絡進行預測,以輸出帶有預測類的bounding box。之後,我們使用預設的分數0.05過濾掉大量的背景邊界框,然後輸出每個特徵金字塔的前1000個檢測。最後,應用非最大抑制(NMS),每類的IoU閾值0.6,以生成每幅圖像的最終前100個置信檢測。

3.2. Inconsistency Removal

將anchor-based的RetinaNet在每個位置的anchor設定為1的模型記為RetinaNet (#A=1),然而,FCOS和RetinaNet (#A=1)在性能上存在很大的差距,37.1% vs. 32.5%。FCOS更進一步提升了性能,通過moving centerness to regression branch、使用GIoU loss 函數、歸一化迴歸目標, 將AP性能從37.1% 提升為37.8%。導致性能之間gap的FCOS的提升同樣可以應用到anchor-based檢測器上。在RetinaNet (#A=1)上逐一實現這些不一致性,表1中展現了相應的提升,AP提升只37.0%,仍然有0.8%的Gap。到目前為止,在消除了所有不相關的差異之後,我們可以以一種相當公平的方式探索anchor-based和anchor-free檢測器之間的本質差異。


論文閱讀筆記-ATSS

3.3. Essential Difference

使用了表1所示的提升後,RetinaNet (#A=1)與FCOS之間僅存在2個差異了。一個是關於檢測中的分類子任務,即定義正負樣例的的方法。另一個是關於迴歸子任務,即從bounding box或從點開始迴歸。

Classification.如圖1(a)所示,RetinaNet使用IoU將不同金字塔級別的anchor box劃分為正例和負例。它首先為每個物體標記一個最好的anchor box,然後IoU大於theta_p的anchor為正例,小於theta_n的anchor為負例,其餘的anchor在訓練中忽略。如圖1(b)所示,FCOS使用空間和比例約束來從不同的金字塔級別劃分anchor點。它首先將ground-truth box內的anchor點作為候選正例,然後根據每個金字塔級別定義的比例範圍從候選中選擇最終的正樣本,最後將未選擇的anchor點作為負樣本。

論文閱讀筆記-ATSS

如圖1所示,FCOS首先使用空間約束在空間維度中查找候選正例,然後使用scale約束在scale維度中選擇最終正例。相反,RetinaNet利用IoU在空間和scale維度上同時直接選擇最終的正例。這兩種正負例選擇策略誕生了不同的正負樣本。如表2第一列所列,對於RetinaNet(#A=1),使用空間和比例約束策略代替IoU策略將AP性能從37.0%提高到37.8%。對於FCOS,如果使用IoU策略選擇正樣本,AP性能將從37.8%下降到36.9%,如表2第二列所示。這些結果表明,正樣本和負樣本的定義是anchor-based和anchor-free檢測器的本質區別。

Regression.在確定正樣本和負樣本之後,對象的位置從正樣本回歸,如圖2(a)所示。RetinaNet從anchor box迴歸,anchor box和對象box之間有四個偏移,如圖2(b)所示。而FCOS從anchor點回歸四個距離到對象的邊界,如圖2(c)所示。這意味著對於正樣本,RetinaNet是從一個box迴歸,而FCOS是從一個點回歸。然而,表2的第一行和第二行表明,當RetinaNet和FCOS採用相同的樣本選擇策略來獲得一致的正/負樣本時,無論用什麼方式迴歸,最終的性能都沒有明顯的差異,即37.0%VS36.9%和37.8%VS37.8%。這些結果表明迴歸開始狀態是一個不相關的差異而不是本質的差異。

論文閱讀筆記-ATSS

Conclusion. 通過這些實驗,可以得出,one-stage的anchor-based檢測器與center-based anchor-free檢測器的本質區別在於如何定義正負訓練樣本,這對當前的目標檢測具有重要意義,值得進一步研究。

四、Adaptive Training Sample Selection

在訓練object-detector時,首先需要定義進行分類的正樣本和負樣本,然後使用正樣本進行迴歸。根據前面的結論,正負樣例的定義是關鍵,而base-free檢測器FCOS改進了這一步驟,它引入了一種新的正負樣例定義方法,對比比傳統的基於IoU的策略得到了更好的性能。受此啟發,本文深入研究了目標檢測中最基本的問題:如何定義正負訓練樣本,並提出了自適應訓練樣本選擇(ATSS)方法。與這些傳統策略相比,該方法幾乎沒有超參數,並且對不同的環境具有魯棒性。

4.1. Description

已有的樣本選擇策略都有一些敏感的超參數,如anchor-based檢測的IoU閾值、anchor-free檢測的尺度範圍。這些超參數設置後,所有的ground-gruth box都必須根據固定的規則來選擇其正樣本,這些規則適用於大多數對象,但會忽略一些外部對象。因此,這些超參數的不同設置將產生非常不同的結果。

論文閱讀筆記-ATSS

為此,我們提出了一種ATSS方法,它幾乎不需要任何超參數就可以根據對象的統計特性自動劃分正、負樣本。算法1描述了所提出的方法對輸入圖像的工作原理。對於圖像上的每個ground-truth box g,我們首先找出它的候選正樣本。如第3至6行所述,在每個金字塔級別上,基於L2距離選擇中心最接近g中心的k個anchor box。假設有L個特徵金字塔層級,則對每個g,有L X k個候選正例。然後,計算這些候選與g的IoU,如第7行所示,記為D_g,如第8-9行所示,計算其均值、方差記為m_g,v_g。如第10行所示,g的IoU閾值為:tg=mg+vg。最後,如第11-15行所示,選擇IoU大於tg的候選作為正例。如第12行所示,還需限制正例的中心點位於g box之內。此外,如果一個anchor被分配給ground-truth box,那麼將選擇IoU最高的一個。剩下的候選為負例。算法中一些動機如下所示:

Selecting candidates based on the center distance between anchor box and object.對於RetinaNet,當anchor box的中心靠近對象的中心時,IoU會更大。對於FCOS,離目標中心越近的anchor點將產生更高質量的檢測。因此,離物體中心越近的anchor是更好的選擇。

Using the sum of mean and standard deviation as the IoU threshold.一個物體IoU的均值mg衡量其預設anchor的適用性。圖3(a)所示的高均值mg表明它有高質量的候選集,IoU閾值應該是高的。低mg如圖3(b)所示,表明其候選人大多為低質量,IoU閾值應較低。如圖3(a)所示的高vg意味著有一個金字塔級別特別適合於此對象,將vg添加到mg將獲得一個高閾值,以便僅從該級別選擇正例。如圖3(b)所示的低vg意味著有幾個適合於此對象的金字塔級別,將vg添加到mg將獲得一個低閾值以從這些級別中選擇適當的正例。利用平均mg和標準偏差vg之和作為IoU閾值tg,可以根據目標的統計特性,自適應地從適當的特徵金字塔水平上為每個對象選擇足夠多的正例結果。

論文閱讀筆記-ATSS

Limiting the positive samples’ center to object. 中心在物體box外的anchor是一個很差的候選對象,它會被目標外的特徵所預測,這不利於訓練,應該排除在外。

Maintaining fairness between different objects. 根據統計理論,大約有16%的樣本位於[mg+vg, 1]置信區間內。儘管候選的IoU不是標準的正態分佈,但是統計的結果表明每個object大約有0.2*Kl個正例,這不因物體的尺寸、縱橫比、位置而改變。相比之下,RetinaNet和FCOS的策略對於較大的對象往往有更多的正樣本,從而導致不同對象之間的不公平。

4.2 Verification

Anchor-based RetinaNet.替換RetinaNet (#A=1)的策略用以驗證在anchor-based檢測器上的有效性。性能提升結果如表3所示。這些提升主要是由ATSS帶來的,因為僅僅改變了正負樣例定義的方法,沒有引入額外的開銷,這些性能的提升可以認為是cost-free的。

Anchor-free FCOS.ATSS在Anchor-free FCOS的運用有兩種不同的版本。the lite and full version。對於lite版本,將所提出的ATSS的一些思想應用到FCOS中,即用我們方法中的方法替換其選擇候選正例的方法。FCOS將對象框中的anchor點視為候選點,這會導致大量低質量的正例。相比之下,在每個金字塔級別上為每個ground-truth選擇top9個候選。lite版本被合併到FCOS的官方代碼中作為center sampling,這使得FCOS的AP性能從37.8%提高到38.6%,如表3所示。但是,lite版本中仍然存在scale範圍的超參數。

對於full版本,讓FCOS中的anchor點定義為具有8S尺度的anchor box,用來定義正樣本和負樣本,然後,如FCOS,依然從anchor點回歸物體。其性能提升如表3所示。值得注意的是,這兩個版本在空間維度上有相同的候選,但是在尺度維度上,從候選者中選擇最終正例的方式不同。如表3最後兩行所列,完整版本(ATSS)在不同指標上的表現要比精簡版本(center sample)好很多。這些結果表明,在尺度維上,我們的方法比FCOS中的固定方法更適合從候選樣本中選擇正例樣本。

論文閱讀筆記-ATSS

4.3. Analysis

Hyperparameter k.過大的k(例如19)將導致過多的低質量候選,從而稍微降低性能。太小的k(例如,3)會導致準確度的顯著下降,因為太少的候選正樣本會導致統計上的不穩定性。總的來說,唯一的超參數k具有很強的魯棒性,所提出的ATSS幾乎可以看作是無超參數的。

論文閱讀筆記-ATSS

Anchor Size. 如Table5、Table6 所示


論文閱讀筆記-ATSS

4.4 Comparison

anchor-free、anchor-based、ATSS對比


論文閱讀筆記-ATSS

ATSS中anchor預設值數量的必要性


論文閱讀筆記-ATSS


分享到:


相關文章: