目標檢測算法優化技巧


目標檢測算法優化技巧

論文:Bag of Freebies for Training Object Detection Neural Networks
論文鏈接:https://arxiv.org/abs/1902.04103

這篇論文介紹目標檢測算法的一些優化技巧,目前已經在GluonCV中實現了,整體看下來和之前的那篇圖像分類算法優化技巧的論文(Bag of Tricks for Image Classification with Convolutional Neural Networks)類似。這篇介紹的優化技巧具體而言包括mixup、label smoothing、學習率修改策略的選擇、跨卡BN層計算和隨機尺度訓練,接下來詳細介紹。

mixup是指將2張輸入圖像按照一定權重合並成一張圖像,基於這種合成圖像進行訓練的模型更加魯棒,能夠有效降低對抗圖像的影響。如圖Figure2是在分類算法中使用mixup的例子:
在這里插入圖片描述
Figure3是在目標檢測算法中使用mixup的例子,合並之后的圖像標簽包含2張輸入圖像的所有標簽,可以看出這種思想在實現上還是比較容易理解的。
在這里插入圖片描述
針對mixup作者做了不同參數設置下的實驗效果對比,如Table1所示,這里涉及一個名詞:weighted loss,在圖表中也做了解釋,因為模型訓練用的圖像來自2張原輸入圖像通過不同權重合並得到的(如Figure3所示),因此在計算損失函數時(損失函數是基於目標計算的),屬於不同輸入圖像的目標的權重也是不一樣的,需要和輸入圖像在合並時的權重對應。而Table5中第二行的0.5:0.5 evenly表示合成是按照0.5和0.5的權重進行,因此最后計算損失時目標的權重也相等。
在這里插入圖片描述
為了證明mixup的視覺效果,作者做了前段時間比較有意思的大象貼圖實驗,如Figure5所示,第一行使用常規的訓練方式訓練YOLO v3模型,第二行則是采用mixup方式訓練YOLO v3模型,可以看出后者能夠有效檢測到圖像貼上的大象(mix-1和orig-1的對比),不過在orig-2和mix-2的對比中,二者都能檢測到大象,這一點在文中沒有做詳細的解釋。
在這里插入圖片描述
label smoothing是分類算法中采用的優化方式,作者將其引入到目標檢測算法的分類支路部分。label smoothing的思想很直接,首先來看看原來分類算法的交叉熵損失函數,公式如下:
在這里插入圖片描述
其中qi表示真實標簽,pi是預測值,因為q是one-hot形式(假設分類類別數是K,那么q就是1×K的向量,且其中只有對應的真實類別位置是1,其余都為0)。pi的計算公式如下,這是常見的softmax函數,假設真實類別是i,那么模型訓練過程中會不斷使得zi遠大於zj,這樣pi就越接近1,這樣公式2中的L就越接近0,雖然這是訓練目標,但訓練過程越趨近於這種情況,反而是越容易過擬合的。
在這里插入圖片描述
所以label smoothing的思想就是對真實標簽q進行改造,使其不再是one-hot形式,公式如下所示,其中K表示類別數,e是一個很小的常數。舉個例子,假設K=5,e=0.1,那么原來q=[0,0,1,0,0],現在q’=[0.02,0.02,0.92,0.02,0.02]。這樣在公式2中,當q‘處於非真實標簽時仍然有損失值(比如0.02),就使得pi不會非常接近1,這就降低了過擬合風險。
在這里插入圖片描述

學習率變化采用cosine函數且增加warm-up,這部分內容可以直接看Figure6。圖中(a)是常見的step修改策略和cosine修改策略+warm-up的學習率變化對比圖,可以看到cosine在初始和結束階段的變化都比較緩慢,在中間部分變化相對快一些,整體而言相比step方式變化會更加平穩一些,這種方式有利於訓練過程的穩定,包括warm-up的引入,也是為了訓練的起始階段能夠更加穩定地進行。
在這里插入圖片描述

跨卡BN層的計算(synchronized batch normalization),因為目標檢測算法的單卡batch size一般不能設置得像分類算法那樣大,但是較小的batch size對於單卡計算BN層參數而言並不是很有利,因此跨卡BN層相當於基於多卡數據計算BN層參數,這樣計算得到的統計結果更加可靠。

隨機尺度訓練是指在模型訓練階段采用隨機大小的數據進行訓練,比如當前批次或epoch采用320×320大小的輸入,但是在下一個批次或epoch則采用416×416。這種做法來自YOLO算法,尺寸一般在固定的幾個數值中隨機選擇,比如{320, 352, 284, 416, 448, 480, 512, 544, 576, 608},相鄰數值相差32,表示stride。

實驗結果:
實驗部分采用的模型包括YOLO v3和Faster RCNN,數據集部分采用PASCAL VOC和COCO。Table2是優化的YOLO v3模型在VOC2007測試集上的效果提升對比。
在這里插入圖片描述
Table3是優化的Faster RCNN模型在VOC2007測試集上的效果對比。數據增強部分,因為two stage算法涉及ROI的裁剪,因此影響小一些,相比之下在one stage類型算法中影響較大。
在這里插入圖片描述
Table4是在COCO數據集上的效果對比,YOLO v3的效果提升尤其明顯。
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM