YOLOV4各个创新功能模块技术分析(一)
YOLOV4各個創(chuàng)新功能模塊技術(shù)分析(一)
簡 介
yolov4論文:YOLOv4: Optimal Speed and Accuracy of Object Detection
arxiv:https://arxiv.org/abs/2004.10934
github源碼:https://github.com/AlexeyAB/darknet
論文摘要
有大量的特征被認(rèn)為可以提高卷積神經(jīng)網(wǎng)絡(luò)(CNN)的精度。需要在大型數(shù)據(jù)集上對這些特征的組合進行實際測試,并對結(jié)果進行理論證明。某些功能只在某些模型上運行,某些問題只在某些模型上運行,或只在小規(guī)模數(shù)據(jù)集上運行;而某些功能(如批處理規(guī)范化和剩余連接)適用于大多數(shù)模型、任務(wù)和數(shù)據(jù)集。假設(shè)這些通用特征包括加權(quán)剩余連接(WRC)、跨階段部分連接(CSP)、跨小批量規(guī)范化(CmBN)、自對抗訓(xùn)練(SAT)和Mish激活。使用了新功能:WRC、CSP、CmBN、SAT、誤激活、馬賽克數(shù)據(jù)增強、CmBN、DropBlock正則化和CIoU丟失,并將其中一些功能結(jié)合起來,以達(dá)到最新的結(jié)果:43.5%AP(65.7%AP50)的MS
COCO數(shù)據(jù)集,在Tesla V100上以約65 FPS的實時速度。
YOLOV4的發(fā)布,可以想象到大家的激動,但是論文其實是一個結(jié)合了大量前人研究技術(shù),加以組合并進行適當(dāng)創(chuàng)新的高水平論文,實現(xiàn)了速度和精度的完美平衡。很多yolov4的分析文章都會說其中應(yīng)用了哪些技術(shù)?本文的目的希望通過YOLOV4提到的各種新技術(shù)進行分析,明白YOLOV4后面的功臣算法。
文中將前人的工作主要分為Bag
of freebies和Bag of specials,前者是指不會顯著影響模型測試速度和模型復(fù)雜度的技巧,主要就是數(shù)據(jù)增強操作,對應(yīng)的Bag of specials就是會稍微增加模型復(fù)雜度和速度的技巧,如果不大幅增加復(fù)雜度且精度有明顯提升,那也是不錯的技巧。本文按照論文講的順序進行分析。由于每篇論文其實內(nèi)容非常多,主要是分析思想和一些核心細(xì)節(jié)。
本文技術(shù):random erasing、cutout、hide-and-seek、grid mask、Adversarial Erasing、mixup、cutmix、mosaic、Stylized-ImageNet、label smooth、dropout和dropblock。
一.數(shù)據(jù)增強相關(guān)-Random
erasing data augmentation
論文名稱:Random erasing data
augmentation
論文地址:https://arxiv.org/pdf/1708.04896v2.pdf
github: https://github.com/zhunzhong07/Random-Erasing
論文摘要
本文介紹了一種用于卷積神經(jīng)網(wǎng)絡(luò)(CNN)訓(xùn)練的新的數(shù)據(jù)增強方法&隨機刪除法。在訓(xùn)練中,隨機擦除隨機選擇圖像中的矩形區(qū)域,并使用隨機值擦除其像素。在這個過程中,生成了不同遮擋程度的訓(xùn)練圖像,這降低了過度遮擋的風(fēng)險,使模型對遮擋具有魯棒性。隨機擦除無需參數(shù)學(xué)習(xí),易于實現(xiàn),可與大多數(shù)基于CNN的識別模型集成。盡管很簡單,但隨機刪除對常見的數(shù)據(jù)增強技術(shù)(如隨機裁剪和浮動)來說是一種補充,與強大的基線相比,圖像分類、對象檢測和人員識別都有一致的改進。
隨機擦除增強,非常容易理解。作者提出的目的主要是模擬遮擋,從而提高模型泛化能力,這種操作其實非常make sense,因為把物體遮擋一部分后依然能夠分類正確,那么肯定會迫使網(wǎng)絡(luò)利用局部未遮擋的數(shù)據(jù)進行識別,加大了訓(xùn)練難度,一定程度會提高泛化能力。其也可以被視為add noise的一種,并且與隨機裁剪、隨機水平翻轉(zhuǎn)具有一定的互補性,綜合應(yīng)用他們,可以取得更好的模型表現(xiàn),尤其是對噪聲和遮擋具有更好的魯棒性。具體操作就是:隨機選擇一個區(qū)域,然后采用隨機值進行覆蓋,模擬遮擋場景。
在細(xì)節(jié)上,可以通過參數(shù)控制擦除的面積比例和寬高比,如果隨機到指定數(shù)目還無法滿足設(shè)置條件,則強制返回。
一些可視化效果如下:
對于目標(biāo)檢測,作者還實現(xiàn)了3種做法,如下圖所示(然而打開開源代碼,發(fā)現(xiàn)只實現(xiàn)了分類的隨機擦除而已,尷尬)。
當(dāng)然隨機擦除可以和其他數(shù)據(jù)增強聯(lián)合使用,如下所示。
torchvision已經(jīng)實現(xiàn)了:
https://pytorch.org/docs/master/_modules/torchvision/transforms/transforms.html#RandomErasing
注意:torchvision的實現(xiàn)僅僅針對分類而言,如果想用于檢測,還需要自己改造。調(diào)用如下所示:
torchvision.transforms.RandomErasing(p=0.5, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=0, inplace=False)
二.數(shù)據(jù)增強相關(guān)-Cutout
論文名稱:Improved Regularization
of Convolutional Neural Networks with Cutout
論文地址:https://arxiv.org/abs/1708.04552v2
github: https://github.com/uoguelph-mlrg/Cutout
論文摘要
卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)強大的表示空間,這是處理復(fù)雜學(xué)習(xí)任務(wù)所必需的。然而,由于捕捉這些表示所需的模型容量,往往容易過度擬合,因此需要適當(dāng)?shù)恼齽t化才能很好地推廣。本文證明了在訓(xùn)練過程中隨機屏蔽輸入平方區(qū)域的簡單正則化技術(shù)(稱之為截斷)可以提高卷積神經(jīng)網(wǎng)絡(luò)的魯棒性和整體性能。這種方法不僅非常容易實現(xiàn),而且還證明它可以與現(xiàn)有的數(shù)據(jù)增強形式和其他正則化方法結(jié)合使用,以進一步提高模型性能。將此方法應(yīng)用于CIFAR-10、CIFAR-100和SVHN數(shù)據(jù)集上的當(dāng)前最新體系結(jié)構(gòu),得到了新的最新結(jié)果,測試誤差分別為2.56%、15.20%和1.30%。
出發(fā)點和隨機擦除一樣,也是模擬遮擋,目的是提高泛化能力,實現(xiàn)上比random erasing簡單,隨機選擇一個固定大小的正方形區(qū)域,然后采用全0填充就OK了,當(dāng)然為了避免填充0值對訓(xùn)練的影響,應(yīng)該要對數(shù)據(jù)進行中心歸一化操作,norm到0。
本文和隨機擦除幾乎同時發(fā)表,難分高下(不同場景下誰好難說),區(qū)別在于在cutout中,擦除矩形區(qū)域存在一定概率不完全在原圖像中的。而在Random Erasing中,擦除矩形區(qū)域一定在原圖像內(nèi)。Cutout變相的實現(xiàn)了任意大小的擦除,以及保留更多重要區(qū)域。
需要注意的是作者發(fā)現(xiàn)cutout區(qū)域的大小比形狀重要,所以cutout只要是正方形就行,非常簡單。具體操作是利用固定大小的矩形對圖像進行遮擋,在矩形范圍內(nèi),所有的值都被設(shè)置為0,或者其他純色值。而且擦除矩形區(qū)域存在一定概率不完全在原圖像中的(文中設(shè)置為50%)
論文中有一個細(xì)節(jié)可以看看:作者其實開發(fā)了一個早期做法,具體是:在訓(xùn)練的每個epoch過程中,保存每張圖片對應(yīng)的最大激活特征圖(以resnet為例,可以是layer4層特征圖),在下一個訓(xùn)練回合,對每張圖片的最大激活圖進行上采樣到和原圖一樣大,然后使用閾值切分為二值圖,蓋在原圖上再輸入到cnn中進行訓(xùn)練,有點自適應(yīng)的意味。但是有個小疑問:訓(xùn)練的時候不是有數(shù)據(jù)增強嗎?下一個回合再用前一次增強后的數(shù)據(jù)有啥用?不太清楚作者的實現(xiàn)細(xì)節(jié)。如果是驗證模式下進行到是可以。
這種做法效果蠻好的,但是最后發(fā)現(xiàn)這種方法和隨機選一個區(qū)域遮擋效果差別不大,而且?guī)砹祟~外的計算量,得不償失,便舍去。就變成了現(xiàn)在的cutout了。可能和任務(wù)有關(guān)吧,按照的理解,早期做法非常make sense,效果居然和cutout一樣,比較奇怪。并且實際上考慮目標(biāo)檢測和語義分割,應(yīng)該還需要具體考慮,不能照搬實現(xiàn)。學(xué)習(xí)這類論文覺得最重要的是思想,能不能推廣到不同領(lǐng)域上面?是否可以在訓(xùn)練中自適應(yīng)改變?是否可以結(jié)合特征圖聯(lián)合操作?
三.數(shù)據(jù)增強相關(guān)-Hide-and-Seek
論文名稱:Hide-and-Seek: A Data
Augmentation Technique for Weakly-Supervised Localization and Beyond
論文地址:https://arxiv.org/abs/1811.02545
github地址:https://github.com/kkanshul/Hide-and-Seek
論文摘要
提出了一種通用的數(shù)據(jù)增強技術(shù)Hide-and-Seek,它是對現(xiàn)有數(shù)據(jù)增強技術(shù)的補充,有利于實現(xiàn)各種視覺識別任務(wù)。其核心思想是在訓(xùn)練圖像中隨機地隱藏補丁,以迫使網(wǎng)絡(luò)在隱藏最具鑒別能力的內(nèi)容時尋找其他相關(guān)內(nèi)容。本文方法只需要修改輸入圖像,并且可以與任何網(wǎng)絡(luò)一起工作來提高其性能。在測試期間,不需要隱藏任何補丁。與現(xiàn)有的數(shù)據(jù)增強技術(shù)相比,Hide-and-Seek的主要優(yōu)勢在于它能夠提高弱監(jiān)督環(huán)境下的目標(biāo)定位精度,因此利用這一任務(wù)來激勵該方法。然而,Hide-and-Seek不僅與圖像定位任務(wù)相關(guān),而且可以推廣到視頻等其他形式的視覺輸入,以及圖像分類、時間動作定位、語義分割、情感識別、年齡/性別估計、人的再識別等識別任務(wù)。在這些視覺識別問題上,進行了大量的實驗來展示隱藏和搜索的優(yōu)勢。
可以認(rèn)為是random
earsing的推廣。核心思想就是去掉一些區(qū)域,使得其他區(qū)域也可以識別出物體,增加特征可判別能力。和大部分細(xì)粒度論文思想類型,如下所示:
數(shù)據(jù)增強僅僅用于訓(xùn)練階段,測試還是整圖,不遮擋,如下所示。
做法是將圖片切分為sxs個網(wǎng)格,每個網(wǎng)格采用一定概率進行遮擋,可以模擬出隨機擦除和cutout效果。
至于隱藏值設(shè)置為何值,作者認(rèn)為比較關(guān)鍵,因為可能會改變訓(xùn)練數(shù)據(jù)的分布。如果暴力填黑,認(rèn)為會出現(xiàn)訓(xùn)練和測試數(shù)據(jù)分布不一致問題,可能不好,特別是對于第一層卷積而言。作者采用了一些理論計算,最后得到采用整個數(shù)據(jù)集的均值來填充造成的影響最小(如果采用均值,那么輸入網(wǎng)絡(luò)前,數(shù)據(jù)預(yù)處理減掉均值,那其實還是接近0)。
總結(jié)
以上是生活随笔為你收集整理的YOLOV4各个创新功能模块技术分析(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟几何纹理(下)
- 下一篇: YOLOV4各个创新功能模块技术分析(二