YOLOv4中的數(shù)據(jù)增強(qiáng)
擊上方“AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
作者:Jacob Solawetz
編譯:ronghuaiyang
YOLOv4的秘密并不在網(wǎng)絡(luò)結(jié)構(gòu)上,而在數(shù)據(jù)準(zhǔn)備上。
目標(biāo)檢測(cè)領(lǐng)域繼續(xù)快速發(fā)展。不到兩個(gè)月前,谷歌Brain團(tuán)隊(duì)發(fā)布了針對(duì)物體檢測(cè)的EfficientDet,挑戰(zhàn)了YOLOv3作為(接近)實(shí)時(shí)物體檢測(cè)的首要模型的地位,并推動(dòng)了物體檢測(cè)的可能性。我們寫了一系列的文章,比較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ù)增強(qiáng)技術(shù)的細(xì)節(jié)來實(shí)現(xiàn)這一突破的。
馬賽克增強(qiáng)的發(fā)明人Glen Jocher發(fā)布了一個(gè)名為YOLOv5的新的YOLO訓(xùn)練框架。你可能還想看看我們關(guān)于YOLOv5 vs YOLOv4的文章,這篇文章將解釋新的YOLOv5框架的一些優(yōu)點(diǎn)。

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

幾何畸變 — 這包括隨機(jī)縮放,裁剪,翻轉(zhuǎn),和旋轉(zhuǎn)。這些類型的增強(qiáng)可能特別棘手,因?yàn)榘鼑蛞矔?huì)受到影響,并且必須更新。

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

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

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

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

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

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

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

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

在你自己的計(jì)算機(jī)視覺項(xiàng)目中使用數(shù)據(jù)增強(qiáng)
我們很高興地看到,模型性能方面的進(jìn)步很關(guān)注數(shù)據(jù)的增強(qiáng),就像關(guān)注模型架構(gòu)一樣。在看到Y(jié)OLOv4和YOLOv3在數(shù)據(jù)增強(qiáng)方面的區(qū)別后,我們懷疑這些 “bag of freebie” 技術(shù)對(duì)任何架構(gòu)都有用。

英文原文:https://towardsdatascience.com/data-augmentation-in-yolov4-c16bd22b2617
最后的最后求一波分享!
YOLOv4 trick相關(guān)論文已經(jīng)下載并放在公眾號(hào)后臺(tái)
關(guān)注“AI算法與圖像處理”,回復(fù) “200714”獲取
個(gè)人微信 請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱 如果沒有備注不拉群!

