【論文筆記】:Stitcher: Feedback-driven Data Provider for Object Detection

&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仍保持有希望的準確性。 拼接圖像的組成的多樣性,這會豐富數據模式並防止過度擬合。
    在這裏插入圖片描述

&Thinks

  • 針對小目標數據的問題,通過loss迴歸來自適應調整大小目標樣本的輸入。大於一定閾值。輸入正常圖片。小於的話,則使用拼接圖片。
  • 整體思想是非常簡單,就是利用loss做回饋信號,來調整。這一類的操作其實還蠻多的,比如FSAF用anchorfree分支的loss來選擇特徵層,呃,還有……(忘了)。瞭解一下代碼怎麼實現的,可以試着利用這種思路去自適應其他的module。
  • 自適應方面也有很多,比如自適應NMS,自適應特徵選擇ASFF、自適應採樣ATSS
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章