&Title
&Summary
目標檢測通常根據尺度變化質量,其中對小目標的性能最不令人滿意。
本文研究了這種現象,發現:在大多數訓練迭代中,小目標幾乎不佔總損失的一部分,從而導致不平衡優化的性能下降。
受此啓發,本文提出了Stitcher,一個反饋驅動的數據提供商,旨在以平衡的方式訓練目標檢測器。 在Stitcher中,圖像被調整成更小的組件,然後Stitch成與常規圖像相同的大小。Stitch圖像包含不可避免的較小對象,這將有利於作者的核心思想,利用損失統計作爲反饋,以指導下一次迭代更新。
在不同的檢測、骨幹網、訓練週期、數據集上進行了實驗,甚至在實例分割上也進行了實驗。Stitcher在所有設置中都穩定地提高了性能,特別是對於小對象,在訓練和測試階段幾乎沒有額外的計算。
&Research Objective
針對小目標的檢測性能低,利用小目標訓練損失比例反饋驅動,旨在以平衡的方式訓練目標檢測器來提高檢測性能。
&Problem Statement
- Multi-scale training
在COCO數據集中,研究detection的training方式,當時嘗試了Multi-scale training的各種settings、SNIP[1]/SNIPER[2]、CSN[3]等。發現Multi-scale training對模型訓練是真的很有幫助,然而,普通的Multi-scale training太低效了,而SNIPER是真的複雜,需要處理好label assignments, valid range tuning, positive/negative chip selection,費了作者很大的力氣才把它從MXNet源碼遷移到自己的框架上。使得作者不得不去研究一種更簡潔實用的multi-scale training 方法。
- 圖像層面分析
小物體在自然圖像中非常常見,而它們在不同圖像中的分佈是不可預測的。如表1所示,COCO訓練集中的對象中有41.4%是小對象,比其他兩個量表中的對象要多得多。 但是,只有52.3%的圖像包含小物體。 相比之下,中型和大型物體的比例分別爲70.7%和83.0%。 換句話說,在某些圖像中,大多數對象很小,相反,近一半的圖像中不包含小對象。 這種嚴重的失衡妨礙了培訓過程。
在常規圖像中,對象可能會因攝影問題而模糊,例如失焦或運動模糊。 如果將常規圖像調整爲較小的尺寸,則內部的中型或大型對象也將變爲較小的對象,但是其輪廓或細節仍然比原始的小型對象更清晰。 (縮放圖片的靈感來源)
- 訓練層面分析
小物體在圖像上的分佈不均勻,因此使訓練遭受進一步的失衡問題。 即使某些圖像中包含小物體,它們仍然有機會在訓練過程中被忽略。 圖1說明,在超過50%的迭代中,小對象佔總數的不到10%。 訓練損失主要是大中型物體。 因此,用於小物體的監控信號不足,嚴重損害了小物體的準確性甚至整體性能。
在大多數訓練迭代中,小目標幾乎不佔總損失的一部分,從而導致不平衡優化的性能下降。
&Method(s)
在已經有了前面multi-scale training和SNIPER的實驗結果後,作者想到可以把圖像縮小,並拼接在一起(逆SNIPER而行,SNIPER是裁剪,Stitcher是拼接)。
如下圖所示,作者把batch內每4張圖都縮小到同樣大小,之後拼成一張與正常普通同樣大小的圖作爲訓練。通過這樣的方式,把大物體和中物體縮小成中物體和小物體,來均衡不同Scale物體在訓練過程中的分佈。
(這裏與YOLOv4-Mosaic類似,但不同的是作者沒想到拼接的時候可以調整4張圖爲不同大小。)
然後用loss 作爲反饋信號,來指導拼接圖的使用。作者採用了一種“缺啥補啥”的簡單思路:如果上一個iteration中,小物體產生的loss不足(比例小於一個閾值),則下一個iteration就用拼接圖;否則就用正常圖片訓練。
&Evaluation
-
在Faster R-CNN、RetinaNet的1x / 2x上都進行了實驗,有2個點左右的AP提升,且漲點主要來自於AP small。這符合作者最初的Motivation和方法設計。
-
在更大的backbone / 更高的baseline (ResNext + Deformable) 、其他數據集 (PASCAL VOC)、Instance Segmentation (Mask R-CNN) 等settings上都做了實驗驗證,都有不同程度的效果提升。
-
與多尺度訓練進行比較,由下表可以得出,Stitcher相對於多尺度訓練的優勢很大程度上是從小尺度獲得的。它們在檢測大型物體方面具有大致相同的能力。 這樣的對比證實了我們朝着設計目標的成就,主要目的是通過圖像拼接來檢測小物體。而且在相同的培訓期間,多尺度培訓比Stitcher花費更多的時間。
-
與SNIP和SNIPER的比較。 在帶有ResNet-50 / 101的Faster R-CNN上比較了帶有SNIP的Stitcher和SNIPER3。 Stitcher的性能稍好。SNIPER和Stitcher都可以視爲多尺度訓練。 但是,存在一些明顯的差異:
- 首先,Stitcher的實現更簡單。 SNIPER需要標籤分配,有效範圍調整和正負芯片選擇。
- 其次,Stitcher是反饋驅動的,優化過程將更多的精力放在缺點上。
-
Stitcher對大型骨幹網的改進。 實驗以1倍訓練週期在Faster R-CNN上進行。在較高的基準上,Stitcher仍可以將性能提高1.0%至1.5%AP,這證明了Stitcher對複雜情況的魯棒性。
-
表7顯示了對具有ResNet-50和FPN主幹的Faster R-CNN的較長訓練時間的評估,對於6倍訓練,基線的性能會因過度擬合而降低,而Stitcher仍保持有希望的準確性。 拼接圖像的組成的多樣性,這會豐富數據模式並防止過度擬合。