上次bbuf分享了亞馬遜團隊的用於分類模型的bag of tricks, 詳見:鏈接, 本文繼續梳理一下目標檢測trick, 解讀這篇19年同樣由亞馬遜團隊發表的《Bag of Freebies for Training Object Detection Neural Networks》。先來看看效果,在使用了trick后,Faster R-CNN能提高1-2個百分點,而YOLOv3則提高了5個百分點。

1. 簡介
目標檢測模型相比於分類模型的研究相比,更缺少普遍性,並且網絡結構和優化目標更加復雜。
本文主要是基於Faster R-CNN和YOLOv3來探索目標檢測網絡的調整策略。這些策略不會改變模型的結構,也不會引入額外的計算代價。通過使用這些trick,可以比SOTA提高最多5個百分點。
2. Trick
2.1 mixup
mixup也是圖片分類中的一個非常有效的trick, 具體流程如下圖所示:

簡單來講就是將兩張圖片通過不同的比例進行融合,同時圖片對應的one-hot編碼也以相同的比例相乘,從而構造出新的數據集。 本質上,mixup在成對樣本及其標簽的凸組合(convex combinations)上訓練神經網絡,可以規范神經網絡,增強訓練樣本之間的線性表達。 其優點是:
- 改善了網絡模型的泛化能力
- 減少對錯誤標簽的記憶
- 增加對抗樣本的魯棒性
- 穩定訓練過程
本文提出了針對目標檢測的視覺連貫的mixup方法(Visually Coherent Image Mixup for Object Detection),操作流程如下圖所示:

通過上圖也很容易理解,但在這里要引入一篇有意思的工作,指出了當時SOTA的目標檢測器的缺陷,論文名稱為:“Elephant in the room”。注意兩張圖結合的方式是直接疊加, 取最大的寬高,不進行resize。
大象通常都出現在自然場景下,數據集中是不存在背景是室內的圖片的,Elephant in the room就是作者將大象圖片摳出,然后直接放在室內場景下,並使用SOTA目標檢測器進行檢測,如下圖所示:

可以看到使用SOTA(faster rcnn nas coco)檢測大象的效果並不是很好,而且大象位置不同,也會給其他目標檢測的效果帶來影響,比如說上圖中(d)和(f)圖中cup這個對象沒有被檢測出來。

上圖是一個貓在不同的背景下的檢測結果,可以看到雖然ROI中內容大體不變,但是結果卻有比較大的變化,這種現象叫做特征干擾,同一個目標在不同背景被檢測為不同的物體,在ROI之外的特征對最終結果會產生影響,這說明特征干擾對檢測過程產生干擾,對檢測結果產生不利影響。
針對以上問題,本文提出的是視覺連貫的mixup方法可以比較好的解決,如下圖所示:

可以看到,上圖中使用了視覺連貫的mixup方法之后,“Elephant in the room”也可以很有效的被檢測出來,可以比較好的解決“Elephant in the room”這個問題。

作者也用實驗證明了使用這種mixup可以讓大象的召回率大幅度提升,並且對其他目標影響降低到了1.27%
2.2 Classfication Head Label Smoothing
Label Smoothing也是上一篇分類中使用到的trick, 在目標檢測問題中也一樣適用。Label Smoothing 原理簡單來說就是:在分類的時候,比如二分類把原先的標簽(0,1) (稱為hard target) 轉成 soft target,具體方法就是 y‘ = y (1 − α) + α/K 這里α 是個超參數常量,K就是類別的個數 。
2.3 數據預處理
在圖像分類問題中,一般都會使用隨機擾亂圖片的空間特征的方法來進行數據增強, 比如隨機翻轉、旋轉、摳圖等。這些方法都可以提高模型的准確率、避免過擬合。
這部分主要對以下幾種增強方法進行試驗:
- 隨機幾何變換:隨機摳圖、隨機膨脹、隨機水平翻轉和隨機resize。
- 隨機顏色抖動:亮度、色調、飽和度、對比度。
2.4 其他
- 訓練策略:使用余弦學習率+warmup的方法。

上圖是step方法和cosine方法的對比,預先的方法上升更快,不過最終結果比較接近,差的也不是很多。
- 跨卡同步Batch Normalization。
- 多尺度訓練,和YOLOv3中的訓練方式一樣。從{320,352,384,416,448,480,512,544,576,608 }中選擇一個尺度進行訓練。
3. 實驗

上圖分別展示了在YOLOv3和Faster-RCNN上使用以上trick后的效果。其他實驗結果就不一一列舉了,感興趣可以仔細讀一下paper。
4. 補充
ASFF這篇論文被很多人認為是YOLO中最強的改進版本,不僅僅是他提出的ASFF模塊,更因為他有一個非常強的、融合了很多trick的baseline。

上表中的BoF代表的就是以上解讀的這篇:《Bag of Freebies for Training Object Detection Neural Networks》,可以通過對比看到提高了大約4個百分點。IoU代表的是使用了IoU loss,GA代表Guided Anchoring, GA主要是用於解決特征不對齊和anchor設置的問題(這也是一階段檢測方法的弱點),如下圖所示,具體講解可以看: https://zhuanlan.zhihu.com/p/55854246

實際上ASFF模型帶來的提升只有1個百分點左右,而以上結合了各種trick的強大的baseline是ASFF出彩的一個強有力的保證。
以上涉及到的trick的具體實現應該可以在ASFF官方實現中找到:https://github.com/ruinmessi/ASFF
5. Reference
https://arxiv.org/pdf/1902.04103
