YOLOv4 中的數(shù)據(jù)增強
點擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達
本文轉(zhuǎn)自:機器學(xué)習(xí)算法那些事
YOLOv4的秘密并不在網(wǎng)絡(luò)結(jié)構(gòu)上,而在數(shù)據(jù)準(zhǔn)備上。
目標(biāo)檢測領(lǐng)域繼續(xù)快速發(fā)展。不到兩個月前,谷歌Brain團隊發(fā)布了針對物體檢測的EfficientDet,挑戰(zhàn)了YOLOv3作為(接近)實時物體檢測的首要模型的地位,并推動了物體檢測的可能性。我們寫了一系列的文章,比較YOLOv3和EfficientDet,在自定義的數(shù)據(jù)上訓(xùn)練YOLOv3,在自定義的數(shù)據(jù)上訓(xùn)練EfficientDet,我們發(fā)現(xiàn)了令人印象深刻的結(jié)果。
發(fā)布的YOLOv4顯示,COCO的平均精度(AP)和每秒幀數(shù)(FPS)分別提高了10%和12%。在這篇文章中,我們將看到作者是如何通過深入研究YOLOv4中使用的數(shù)據(jù)增強技術(shù)的細(xì)節(jié)來實現(xiàn)這一突破的。
馬賽克增強的發(fā)明人Glen Jocher發(fā)布了一個名為YOLOv5的新的YOLO訓(xùn)練框架。你可能還想看看我們關(guān)于YOLOv5 vs YOLOv4的文章,這篇文章將解釋新的YOLOv5框架的一些優(yōu)點。

YOLOv4的作者在他們題為 “bag of freebies” 的論文中包括了一系列的貢獻。這是一系列可以在不增加推斷時間延遲的情況下提高模型性能的步驟。由于它們不影響模型的推斷時間,所以大多數(shù)都是對訓(xùn)練pipeline的數(shù)據(jù)管理和數(shù)據(jù)增強進行了改進。這些技術(shù)改進并增強了訓(xùn)練集,讓模型可以看到原本看不到的場景。計算機視覺中的數(shù)據(jù)增強是充分利用數(shù)據(jù)集的關(guān)鍵,最新的研究繼續(xù)驗證這個假設(shè)。
圖像增強從現(xiàn)有的訓(xùn)練數(shù)據(jù)中創(chuàng)建新的訓(xùn)練樣本。不可能真正為我們的模型在推理中要看到的每個真實場景捕捉一個圖像。因此,調(diào)整現(xiàn)有的訓(xùn)練數(shù)據(jù)以適用于其他情況,可以使模型從更廣泛的情況中學(xué)習(xí)。
YOLOv4的作者列舉了一些最終讓他們加入bag of freebies的技術(shù)。我們在下面提供一個概述。
光照畸變 — 這包括在一個圖像中改變亮度,對比度,飽和度和噪聲。

幾何畸變 — 這包括隨機縮放,裁剪,翻轉(zhuǎn),和旋轉(zhuǎn)。這些類型的增強可能特別棘手,因為包圍框也會受到影響,并且必須更新。

這兩種方法都是像素級調(diào)整,也就是說通過一系列變換可以很容易地恢復(fù)原始圖像。
隨機擦除 — 這是一種數(shù)據(jù)增強技術(shù),將圖像的區(qū)域替換為隨機值,或者是訓(xùn)練集的平均像素值,通常采用不同比例的擦除圖像和擦除區(qū)域的高寬比來實現(xiàn)。在功能上,這成為了一種正則化技術(shù),它可以防止我們的模型記憶訓(xùn)練數(shù)據(jù)和過擬合。

Cutout — 在訓(xùn)練中掩蓋一個正方形區(qū)域。Cutout 區(qū)域只對CNN的第一層隱藏。這與隨機擦除非常相似,但是在遮擋中使用的是一個常數(shù)值。目的是相似的:減少過擬合。

Hide and Seek — 將圖像分割成一個由SxS patch組成的網(wǎng)格。以一定的概率隱藏每個補丁(p_hide)。這允許模型了解物體的樣子,而不只是學(xué)習(xí)物體的單個部分是什么樣子。

Grid Mask — 圖像的區(qū)域被隱藏在一個網(wǎng)格中。類似于捉迷藏,這迫使我們的模型學(xué)習(xí)組成物體的組成部分。

MixUp — 圖像對及其標(biāo)簽的凸疊加。

現(xiàn)在我們將了解一下YOLOv4在訓(xùn)練期間使用的數(shù)據(jù)增強策略。研究過程的特點是一系列的實驗,所以我們可以想象,作者實驗了更多的策略,但沒有進入最終的論文。這進一步證明,在自定義視覺任務(wù)中,在自己的訓(xùn)練/測試集上探索各種數(shù)據(jù)增強策略是很重要的。
CutMix — 通過從一個圖像中切割一部分并將其粘貼到增強圖像上來組合圖像。圖像的裁剪迫使模型學(xué)會基于大量健壯的特征進行預(yù)測??瓷厦娴?“Hide and Seek”,沒有裁剪,模型特別依賴狗的頭來做預(yù)測。如果我們想準(zhǔn)確地識別一只頭藏在灌木叢后面的狗,這就有問題了。在CutMix中,用另一幅圖像的一部分以及第二幅圖像的ground truth標(biāo)記替換該切塊。在圖像生成過程中設(shè)置每個圖像的比例(例如0.4/0.6)。在下面的圖片中,你可以看到CutMix的作者是如何演示這種技術(shù)比簡單的MixUp和Cutout效果更好。

馬賽克數(shù)據(jù)增強 — 馬賽克數(shù)據(jù)增強將4張訓(xùn)練圖像按一定比例組合成1張。Mosaic是YOLOv4中引入的第一個新的數(shù)據(jù)增強技術(shù)。這使得模型能夠?qū)W習(xí)如何識別比正常尺寸小的物體。它還鼓勵模型在框架的不同部分定位不同類型的圖像。

類標(biāo)簽平滑 — 類標(biāo)簽平滑不是一個圖像處理技術(shù),而是一個直觀的對類標(biāo)簽的改變。通常情況下,正確的邊界框分類是用類的獨熱向量[0,0,0,1,0,0,…]來表示,并據(jù)此計算損失函數(shù)。然而,當(dāng)一個模型的預(yù)測值接近1.0時,它往往會出現(xiàn)錯誤、過擬合以及在某種程度上過度關(guān)注其他預(yù)測的復(fù)雜性。根據(jù)這種直覺,對類標(biāo)簽表示進行編碼以在某種程度上衡量不確定性更為合理。通常情況下,作者選擇0.9,所以用[0,0,0,0.9,0…]來代表正確的類。
自對抗訓(xùn)練(SAT) — 該技術(shù)通過對輸入圖像的變換,利用模型的狀態(tài)來通知漏洞。首先,圖像經(jīng)過一個正常的訓(xùn)練步驟。然后,與其通過權(quán)重向后傳播,損失信號被用來以一種對模型最有害的方式改變圖像。在隨后的訓(xùn)練中,模型被迫面對這個特別困難的例子并學(xué)習(xí)它。在我們這里介紹的技術(shù)中,這一技術(shù)可能是最不直觀的,也是最接近于建模方面的技術(shù)。
??現(xiàn)在我們有一個YOLOv4中數(shù)據(jù)增強技術(shù)的全面的視圖!

交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

