YOLOV4知识点分析(一)
YOLOV4知識(shí)點(diǎn)分析(一)
簡(jiǎn) 介
yolov4論文:YOLOv4: Optimal Speed and
Accuracy of Object Detection
arxiv:https://arxiv.org/abs/2004.10934
github源碼:https://github.com/AlexeyAB/darknet
YOLOV4的發(fā)布,可以想象到大家的激動(dòng),但是論文其實(shí)是一個(gè)結(jié)合了大量前人研究技術(shù),加以組合并進(jìn)行適當(dāng)創(chuàng)新的高水平論文,實(shí)現(xiàn)了速度和精度的完美平衡。很多yolov4的分析文章都會(huì)說(shuō)其中應(yīng)用了哪些技術(shù)?但是暫時(shí)沒有看到對(duì)其中用到的各種技術(shù)進(jìn)行詳細(xì)分析的文章,本文的目的就是如此,希望通過(guò)YOLOV4提到的各種新技術(shù)進(jìn)行分析,明白YOLOV4后面的功臣算法。
文中將前人的工作主要分為Bag of freebies和Bag
of specials,前者是指不會(huì)顯著影響模型測(cè)試速度和模型復(fù)雜度的技巧,主要就是數(shù)據(jù)增強(qiáng)操作,對(duì)應(yīng)的Bag
of specials就是會(huì)稍微增加模型復(fù)雜度和速度的技巧,但是如果不大幅增加復(fù)雜度且精度有明顯提升,那也是不錯(cuò)的技巧。本文按照論文講的順序進(jìn)行分析。由于每篇論文其實(shí)內(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ù)增強(qiáng)相關(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ī)擦除增強(qiáng),非常容易理解。作者提出的目的主要是模擬遮擋,從而提高模型泛化能力,這種操作其實(shí)非常make sense,因?yàn)榘盐矬w遮擋一部分后依然能夠分類正確,那么肯定會(huì)迫使網(wǎng)絡(luò)利用局部未遮擋的數(shù)據(jù)進(jìn)行識(shí)別,加大了訓(xùn)練難度,一定程度會(huì)提高泛化能力。其也可以被視為add noise的一種,并且與隨機(jī)裁剪、隨機(jī)水平翻轉(zhuǎn)具有一定的互補(bǔ)性,綜合應(yīng)用他們,可以取得更好的模型表現(xiàn),尤其是對(duì)噪聲和遮擋具有更好的魯棒性。具體操作就是:隨機(jī)選擇一個(gè)區(qū)域,然后采用隨機(jī)值進(jìn)行覆蓋,模擬遮擋場(chǎng)景。
在細(xì)節(jié)上,可以通過(guò)參數(shù)控制擦除的面積比例和寬高比,如果隨機(jī)到指定數(shù)目還無(wú)法滿足設(shè)置條件,則強(qiáng)制返回。
一些可視化效果如下:
對(duì)于目標(biāo)檢測(cè),作者還實(shí)現(xiàn)了3種做法,如下圖所示(開源代碼,只實(shí)現(xiàn)了分類的隨機(jī)擦除)。
當(dāng)然隨機(jī)擦除可以和其他數(shù)據(jù)增強(qiáng)聯(lián)合使用,如下所示。
torchvision已經(jīng)實(shí)現(xiàn)了:
https://pytorch.org/docs/master/_modules/torchvision/transforms/transforms.html#RandomErasing
注意:torchvision的實(shí)現(xiàn)僅僅針對(duì)分類而言,如果想用于檢測(cè),還需要自己改造。調(diào)用如下所示:
torchvision.transforms.RandomErasing(p=0.5, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=0, inplace=False)
- 數(shù)據(jù)增強(qiáng)相關(guān)-Cutout
論文名稱:Improved Regularization of
Convolutional Neural Networks with Cutout
論文地址:https://arxiv.org/abs/1708.04552v2
github: https://github.com/uoguelph-mlrg/Cutout
出發(fā)點(diǎn)和隨機(jī)擦除一樣,也是模擬遮擋,目的是提高泛化能力,實(shí)現(xiàn)上比random erasing簡(jiǎn)單,隨機(jī)選擇一個(gè)固定大小的正方形區(qū)域,然后采用全0填充就OK了,當(dāng)然為了避免填充0值對(duì)訓(xùn)練的影響,應(yīng)該要對(duì)數(shù)據(jù)進(jìn)行中心歸一化操作,norm到0。
本文和隨機(jī)擦除幾乎同時(shí)發(fā)表,難分高下(不同場(chǎng)景下誰(shuí)好難說(shuō)),區(qū)別在于在cutout中,擦除矩形區(qū)域存在一定概率不完全在原圖像中的。而在Random
Erasing中,擦除矩形區(qū)域一定在原圖像內(nèi)。Cutout變相的實(shí)現(xiàn)了任意大小的擦除,以及保留更多重要區(qū)域。
需要注意的是作者發(fā)現(xiàn)cutout區(qū)域的大小比形狀重要,所以cutout只要是正方形就行,非常簡(jiǎn)單。具體操作是利用固定大小的矩形對(duì)圖像進(jìn)行遮擋,在矩形范圍內(nèi),所有的值都被設(shè)置為0,或者其他純色值。而且擦除矩形區(qū)域存在一定概率不完全在原圖像中的(文中設(shè)置為50%)論文中有一個(gè)細(xì)節(jié)可以看看:作者其實(shí)開發(fā)了一個(gè)早期做法,具體是:在訓(xùn)練的每個(gè)epoch過(guò)程中,保存每張圖片對(duì)應(yīng)的最大激活特征圖(以resnet為例,可以是layer4層特征圖),在下一個(gè)訓(xùn)練回合,對(duì)每張圖片的最大激活圖進(jìn)行上采樣到和原圖一樣大,然后使用閾值切分為二值圖,蓋在原圖上再輸入到cnn中進(jìn)行訓(xùn)練,有點(diǎn)自適應(yīng)的意味。但是有個(gè)小疑問:訓(xùn)練的時(shí)候不是有數(shù)據(jù)增強(qiáng)嗎?下一個(gè)回合再用前一次增強(qiáng)后的數(shù)據(jù)有啥用?我不太清楚作者的實(shí)現(xiàn)細(xì)節(jié)。如果是驗(yàn)證模式下進(jìn)行到是可以。
這種做法效果蠻好的,但是最后發(fā)現(xiàn)這種方法和隨機(jī)選一個(gè)區(qū)域遮擋效果差別不大,而且?guī)?lái)了額外的計(jì)算量,得不償失,便舍去。就變成了現(xiàn)在的cutout了。
可能和任務(wù)有關(guān)吧,按照我的理解,早期做法非常make sense,效果居然和cutout一樣,比較奇怪。并且實(shí)際上考慮目標(biāo)檢測(cè)和語(yǔ)義分割,應(yīng)該還需要具體考慮,不能照搬實(shí)現(xiàn)。學(xué)習(xí)這類論文我覺得最重要的是思想,能不能推廣到不同領(lǐng)域上面?是否可以在訓(xùn)練中自適應(yīng)改變?是否可以結(jié)合特征圖聯(lián)合操作?
- 數(shù)據(jù)增強(qiáng)相關(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
可以認(rèn)為是random earsing的推廣。核心思想就是去掉一些區(qū)域,使得其他區(qū)域也可以識(shí)別出物體,增加特征可判別能力。和大部分細(xì)粒度論文思想類型,如下所示:
數(shù)據(jù)增強(qiáng)僅僅用于訓(xùn)練階段,測(cè)試還是整圖,不遮擋,如下所示。
做法是將圖片切分為sxs個(gè)網(wǎng)格,每個(gè)網(wǎng)格采用一定概率進(jìn)行遮擋,可以模擬出隨機(jī)擦除和cutout效果。
至于隱藏值設(shè)置為何值,作者認(rèn)為比較關(guān)鍵,因?yàn)榭赡軙?huì)改變訓(xùn)練數(shù)據(jù)的分布。如果暴力填黑,認(rèn)為會(huì)出現(xiàn)訓(xùn)練和測(cè)試數(shù)據(jù)分布不一致問題,可能不好,特別是對(duì)于第一層卷積而言。作者采用了一些理論計(jì)算,最后得到采用整個(gè)數(shù)據(jù)集的均值來(lái)填充造成的影響最小(如果采用均值,那么輸入網(wǎng)絡(luò)前,數(shù)據(jù)預(yù)處理減掉均值,那其實(shí)還是接近0)。
- 數(shù)據(jù)增強(qiáng)相關(guān)-GridMask Data Augmentation
論文名稱:GridMask Data
Augmentation
論文地址:https://arxiv.org/abs/2001.04086v2
本文可以認(rèn)為是前面3篇文章的改進(jìn)版本。本文的出發(fā)點(diǎn)是:刪除信息和保留信息之間要做一個(gè)平衡,而隨機(jī)擦除、cutout和hide-seek方法都可能會(huì)出現(xiàn)可判別區(qū)域全部刪除或者全部保留,引入噪聲,可能不好。如下所示:
要實(shí)現(xiàn)上述平衡,作者發(fā)現(xiàn)非常簡(jiǎn)單,只需要結(jié)構(gòu)化drop操作,例如均勻分布似的刪除正方形區(qū)域即可。并且可以通過(guò)密度和size參數(shù)控制,達(dá)到平衡。如下所示:
其包括4個(gè)超參,如下所示:
首先定義k,即圖像信息的保留比例,其中H和W分別是原圖的高和寬,M是保留下來(lái)的像素?cái)?shù),保留比例k如下,該參數(shù)k和上述的4個(gè)參數(shù)無(wú)直接關(guān)系,但是該參數(shù)間接定義了r:
d決定了一個(gè)dropped square的大小, 參數(shù) x和 y的取值有一定隨機(jī)性.
其實(shí)看起來(lái),就是兩個(gè)參數(shù): r和d,r通過(guò)k計(jì)算而來(lái),用于計(jì)算保留比例(核心參數(shù)),d用了控制每個(gè)塊的大小。d越大,每個(gè)黑色塊面積就越大,黑色塊的個(gè)數(shù)就越少,d越小,黑色塊越小,個(gè)數(shù)就越多。xy僅僅用于控制第一個(gè)黑色塊的偏移而已。
對(duì)于應(yīng)用概率的選擇,可以采用固定值或者線性增加操作,作者表示線性增加會(huì)更好,例如首先選擇r = 0.6,然后隨著訓(xùn)練epoch的增加,概率從0增加到0.8,達(dá)到240th epoch后固定,這種操作也是非常make sense,為了模擬更多場(chǎng)景,在應(yīng)用于圖片前,還可以對(duì)mask進(jìn)行旋轉(zhuǎn)。這種策略當(dāng)然也可以應(yīng)用于前3種數(shù)據(jù)增強(qiáng)策略上。
- 數(shù)據(jù)增強(qiáng)相關(guān)-object
Region Mining with Adversarial Erasin
論文地址:https://arxiv.org/pdf/1703.08448.pdf
本文在yolov4中僅僅是提了一下,不是重點(diǎn),但是覺得思想不錯(cuò),所以還是寫一下。本文要解決的問題是使用分類做法來(lái)做分割任務(wù)(弱監(jiān)督分割),思想比較有趣。如下所示:
通過(guò)迭代訓(xùn)練的方式不斷挖掘不同的可判別區(qū)域,最終組合得到完整的分割結(jié)果。第t次訓(xùn)練迭代(一次迭代就是指的一次完整的訓(xùn)練過(guò)程),對(duì)于每張圖片都可以得到cam圖(類別激活圖),將cam圖二值化然后蓋在原圖上,進(jìn)行下一次迭代訓(xùn)練,每次迭代都是學(xué)習(xí)一個(gè)不同的可判別區(qū)域,迭代結(jié)束條件就是分類性能不行了,因?yàn)榭膳袆e區(qū)域全部被蓋住了(由于該參數(shù)其實(shí)很難設(shè)置,故實(shí)驗(yàn)直接取3)。最后的分割結(jié)果就是多次迭代的cam圖疊加起來(lái)即可。
本文是cvpr2017的論文,放在現(xiàn)在來(lái)看,做法其實(shí)超級(jí)麻煩,現(xiàn)在而言我肯定直接采用細(xì)粒度方法,采用特征擦除技術(shù),端到端訓(xùn)練,學(xué)習(xí)出所有可判別區(qū)域。應(yīng)該不會(huì)比這種做法效果差,但是在當(dāng)時(shí)還是不錯(cuò)的思想。但是其也提供了一種思路:是否可以采用分類預(yù)測(cè)出來(lái)的cam,結(jié)合弱監(jiān)督做法,把cam的輸出也引入某種監(jiān)督,在提升分類性能的同時(shí),提升可判別學(xué)習(xí)能力。
總結(jié)
以上是生活随笔為你收集整理的YOLOV4知识点分析(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机视觉解析力
- 下一篇: YOLOV4知识点分析(二)