ATSS解读
簡介
Anchor-free方法成為單階段檢測之后又一個熱門的目標檢測的研究方向,不過實際上不論是anchor-based方法還是anchor-free方法,其最關鍵的區別其實在于正負樣本的選擇方式,這直接導致了它們效果的區別。這個觀點在ATSS這篇文章中被提出,論文還認為如果anchor-free方法和anchor-based方法采用同一個正負樣本的選擇方式,那么無論是基于點還是基于anchor進行回歸,效果差別不會特別大。由此,論文提出了自適應樣本選擇機制(Adaptive Training Sample Selection,ATSS)來根據目標的統計信息自動選擇正負樣本。這極大地改善了anchor-based方法和anchor-free方法并彌補了連各種方法論之間地性能鴻溝,將ATSS用到當前SOTA檢測器上也能帶來明顯地任務漲點。
-
論文標題
Bridging the Gap Between Anchor-based and Anchor-free Detection via
Adaptive Training Sample Selection -
論文地址
http://arxiv.org/abs/1912.02424
-
論文源碼
https://github.com/sfzhang15/ATSS
介紹
卷積神經網絡興起后,目標檢測長期被anchor-based方法通知,前后經歷了二階段方法到單階段方法的轉變。不過無論哪種方法都是在圖像上平鋪大量預定義的anchor,然后經過一次或者多次的anchor的類別預測和坐標修正,最后輸出修正過的anchor作為檢測結果。這里二階段方法會對anchor進行多次修正,而單階段只會進行一次修正,因此二階段方法精度較高單階段方法速度較快。
但是,最近目標檢測研究的目光投向了anchor-free目標檢測器的研究上,anchor-free的興起和FPN和Focal Loss的提出是密不可分的(kaiming大神牛逼)。anchor-free不使用預定義的anchor直接檢測目標,主要分為兩種,分別是keypoint-based方法和center-based方法。前者首先定位一些預定義或者自學習的關鍵點接著對目標的空間范圍進行約束。后者則使用目標的中心點或者中心區域定義正樣本,然后預測正樣本到目標邊界的四個距離。無論是哪種anchor-free方法都能消除那些關于anchor定義的超參數(實際工程中預定義這些超參數其實并不容易)并且獲得和anchor-based方法相似的精度表現,使得其在泛化能力啊上有更多的潛力,因而受到廣泛關注。
在上述的兩種anchor-free檢測器中,keypoint-based方法遵循基本的關鍵點估計的pipeline,這和anchor-based方法是完全不同的。不過,center-based方法和anchor-based方法其實是類似的,只不過是將點(point)而不是anchor作為預設的樣本。以單階段anchor-based檢測器RetinaNet和center-based anchor-free方法FCOS為例,它們主要有三個不同:(1)每個位置平鋪的anchor數目不同。 RetinaNet每個位置會平鋪幾個anchor box而FCOS每個位置只會設定一個anchor point(由于center-based方法可以理解為point就是anchor)。(2)正負樣本的定義方式不同。 RetinaNet根據IOU來選擇正負樣本,FCOS則利用空間和尺度約束來選擇樣本。 (3) 回歸的起始狀態。 RetinaNet從預定義的anchor處回歸邊界框,而FCOS則從預定義的point上定位目標。
FCOS獲得了比RetinaNet好得多的表現,上述三個因素中哪個起決定作用是值得考慮的。ATSS論文中,作者通過消除anchor-based方法和anchor-free方法的所有不一致因素以一個公平的方式研究了兩者的不同之處。實驗表明,兩種方法關鍵性的不同在于正負樣本的定義方式,這是導致它們性能差距的核心因素。如果它們訓練時采用相同的正負樣本選擇策略,那么無論是基于anchor還是基于point,不會有什么太明顯的差距。
因此,其實如何選擇正負樣本是值得研究的,論文提出了一種自適應訓練樣本選擇策略(ATSS),它基于目標的特性自動選擇正負樣本,彌補了anchor-based方法和anchor-free方法之間的差距。此外,論文還通過實驗發現,每個位置平鋪多個anchor是沒有必要的。將ATSS用于現有的檢測器,可以在COCO數據集上獲得新的SOTA表現。
不同點分析
作者以RetinaNet和FCOS作為實驗方法,消除它們之間的不對等設置研究影響它們性能差距的究竟是正負樣本選擇還是回歸起始狀態(另一個因素每個位置的anchor數目后面討論,這里的實驗每個位置只采用一個anchor),作者這邊首先敘述了實驗設置(包括數據集、訓練設置、推理設置),然后將FCOS的一些技巧加到RetinaNet中,逐步實驗,得到如下表所示的結果,消除這些不一致的配置之后,兩個方法差距仍有0.8,現在就能來探索它們之間的關鍵區別了。(表格中RetinaNet后的#A=1表示每個位置anchor數目為1。)
在消除了上述不一致之后,其實還剩下兩個不同,一個是分類子任務中的定義正負樣本的方式,另一個是回歸子任務中,回歸的起點是anchor box還是anchor point。
分類任務
這部分主要是講解正負樣本選擇機制的不同,因為講述是基于論文中的下圖,所以我先對圖中進行一些必要性的說明以方便看懂。首先,這里整體上分為上下兩個部分,對應兩個特征圖尺度(源于FPN),上面的是包含較多空間信息的特征圖,下面的是包含較多語義信息的特征圖;接著,圖的左側是RetinaNet選擇正負樣本的說明,右側是FCOS選擇正負樣本的說明;最后,網格圖中的1表示正樣本區域,0表示負樣本區域,藍色框、紅色框和紅色點分別表示GT框、anchor box和anchor point。
那么RetinaNet是如何做的呢,它在每個尺度的特征圖上計算anchor box和GT box之間的IOU。首先將每個目標大于IOU閾值θp\theta_pθp?且最優的anchor標記為正樣本,然后將小于IOU閾值θn\theta_nθn?的anchor標記為負樣本,其他的都是訓練時忽略的樣本。如上圖左側所示,上一半的特征圖尺度較大,anchor主要負責小目標,沒有大于閾值的,所以最終輸出全是0,下一半的特征圖尺度較小,最中間位置的anchor和GT的IOU超過閾值則將其認定為正樣本,標記為1。
接著來看FCOS是如何做的呢,它主要通過空間和尺度約束來劃分anchor point。它首先將GT范圍內的anchor point作為候選正樣本(圖上標記為問號),然后根據每個尺度特征圖上定義的尺度范圍選擇正樣本,未選擇為正樣本的就是負樣本。如上圖右側上一半所示,大尺度特征圖上回歸距離超過預定義的范圍則定為負樣本,均標記為0,而下一半所示的回歸距離不在負樣本范圍內,那么定為正樣本,填充為1。
通過上面的分析,可以發現,其實FCOS是先在空間維度上通過空間約束找到合適的候選正樣本,再在尺度維度上通過尺度約束選擇最終的正樣本。RetinaNet則使用IOU同時在空間和尺度維度上完成正負樣本的劃分。自然的想法就是互換這兩種方法的正負樣本選擇策略呢?就得到了下表的結果,RetinaNet從37.0漲到了37.8,而FCOS從37.8掉到了36.9,這說明正負樣本的定義方式就是兩類檢測器性能差距的關鍵原因。
回歸任務
完成了正負樣本的選擇(也就是分類任務,目標檢測中是先分類后回歸的)就可以在正樣本的基礎上進行目標位置的回歸了。如上圖a所示,藍色框和藍色點表示GT框和GT框的中心點,紅色框和紅色點表示anchor框和anchor中心點。如圖b所示,RetinaNet從anchor框回歸四個與GT的偏移量得到預測框;如圖c所示,FCOS從anchor point回歸與GT的四個距離來得到預測框。
這就是說,RetinaNet和FCOS回歸的起點分別是box和point,然而之前的實驗表格已經表明,即使它倆用的回歸其實狀態不同,最終在相同正樣本的前提下,最終精度是差不多的,這說明回歸起始狀態并不是一個很重要的影響因素,甚至沒什么影響。
自適應訓練樣本選擇
上一節的實驗表明,如何定義正負樣本其實是兩種類型檢測器性能差距的關鍵,在目標檢測中,我們是先完成正負樣本的定義和分類再進行正樣本的回歸的,所以正負樣本的選擇策略值得研究。FCOS提出了一種不同于以往IOU方法的新策略,獲得了較大的性能提升,因此論文也進行了研究并提出了一種自適應訓練樣本選擇策略(ATSS),相比之前的方法,ATSS是一種幾乎無參數的策略并具有強大的魯棒性。
算法描述
之前的樣本選擇策略都有比較敏感的超參數,比如IOU閾值或者尺度范圍。在設置了這些超參數的基礎上,所有的GT框必須基于固定的規則選擇對應的正樣本,這適用于大多數目標但是還是會有部分超出范圍的目標被忽略。因此,超參數不同,產生的結果也是大相徑庭。
為此,論文作者提出ATSS算法,它自動依據目標的統計特性劃分正負樣本而幾乎不需要任何超參數。下圖的Algorithm描述了ATSS針對一幅輸入圖像的工作流程。對圖像上每個GT框ggg,首先找出候選正樣本。如算法圖中3-6行的描述,對每一級特征圖選擇center距離ggg的center最近的kkk個anchor box(基于L2距離)。假定有L\mathcal{L}L級特征圖,那么ggg就有k×Lk \times \mathcal{L}k×L個候選正樣本。之后,按照算法圖第7行來計算這寫候選正樣本和GT框ggg之間的IOU,并保存為集合Dg\mathcal{D}_{g}Dg?。接著,如算法圖8,9兩行所示,計算Dg\mathcal{D}_{g}Dg?的均值mgm_gmg?和標準差vgv_gvg?。基于這兩個統計值,設置ggg的IOU閾值為tg=mg+vgt_g = m_g + v_gtg?=mg?+vg?,如第10行所示。最后,選擇大于等于IOU閾值tgt_gtg?的候選正樣本作為最終的正樣本用于后續訓練,這部分對應算法圖的11-15行,不過在第12行也對候選正樣本中心要在ggg內進行了限制。若一個anchor box被多個GT框選擇為正樣本,那么最高IOU的被最終選擇。除了上述算法命中的,其余的都是負樣本。
算法講完了,論文也分析了上述算法提出的思路來源。首先是為什么用中心點距離來選擇候選,這主要考慮到,RetinaNet的IOU閾值中心點靠近時會更高,FCOS也是使用的中心點距離并且效果更好,因此,以框的中心點距離來衡量會有更好的候選產生。
然后就是為什么采用均值和標準差的和作為IOU閾值,其實IOU的均值可以表明anchor對于GT的適用性。如下圖a所示,一個較高的IOU均值表示大部分候選質量都比較高則IOU閾值也應該設置較高,如下圖b所示,均值較低則表示候選質量較差則IOU閾值也應該設置較低。而IOU的標準差其實可以表明哪一層特征圖更加適合用來檢測目標。如下圖a所示,標準差較大表示有某個級別的特征圖特別適合檢測,將標準差加到均值上作為IOU閾值可以只獲得來自該級別特征圖的anchor,如下圖b所示,較低的標準差表示幾個級別的特征圖都比較合適,那么將標準差加上去得到較低IOU閾值來選擇適當的幾個級別特征圖上的anchor。因此,使用均值和標準差的和作為IOU閾值可以基于目標的統計特征自適應選擇來自適當級別特征圖的足夠的正樣本。
接著就是為什么要對正樣本的中心進行限制,這就很直白了,中心不在GT框內的anchor會基于很多不屬于目標的特征進行預測,顯然是不合適的候選框。
還有就是如何確保不同目標之間的公平性。根據統計學理論,大約會有16%16\%16%的樣本在置信區間[mg+vg,1]\left[m_{g}+v_{g}, 1\right][mg?+vg?,1]內。盡管候選框的IOU并不是一個標準的正態分布,但是統計結果表明每個目標有0.2?kL0.2 * k \mathcal{L}0.2?kL的正樣本,這是不受尺度、長寬比和位置影響的。相比之下,RetinaNet和FCOS的策略對于較大的目標往往有更多的正樣本,導致不同對象之間的不公平性。
最后就是關于超參數的問題了,其實ATSS只有一個超參數kkk\,實驗表明,這是個高度不敏感的超參數,因此本方法可以視為無超參數的。
算法驗證
作者在RetinaNet和FCOS的基礎上添加ATSS模塊,結果如下表。在RetinaNet上是有了不小的提高的,在FCOS上比較了原來的尺度選擇策略和ATSS策略,顯然ATSS有更好的效果。
算法分析
目標檢測算法訓練時,除了ATSS超參數kkk的選擇,還有一個相關因素就是anchor的尺寸,作者這里也進行了討論。
首先,在COCO上使用不同的kkk值進行實驗,發現影響不是特別地大,也就是說ATSS其實是一個幾乎無參的方法。
下面是關于anchor size的兩個實驗圖,實驗結果表明最終的檢測結果其實對該變量也不是很敏感,這進一步驗證了ATSS的魯棒性。
模型對比
和SOTA方法比一比,漲點明顯。
討論
之前忽略的問題,一個位置是否需要多個anchor,事實上,實驗說明,采用基于IOU的正負樣本選擇策略時,平鋪多個anchor會帶來比較大的收益,但是采用ATSS的話得出的結論是,只要正負樣本的選擇是恰當的,其實每個位置幾個anchor并沒有太大區別。所以,在每個位置平鋪多個anchor在ATSS方法下是無用的。
總結
論文指出了單階段anchor-based方法和center-based的anchor-free方法最核心的性能差別的原因就是正負樣本的定義策略,并設計了一種自適應訓練樣本選擇策略(ATSS),從而幾乎消除了anchor-based和anchor-free的性能差異。并且,在ATSS下,每個位置平鋪多個anchor是沒有必要的操作。時至今日,ATSS已經受到目標檢測社區的關注,被CVPR2020收錄為oral,在競賽中也是非常有效的漲點神器。
總結
- 上一篇: MMDetection-数据准备
- 下一篇: MMDetection-运行时