<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          目標(biāo)檢測(cè)算法YOLOv4詳解

          共 8353字,需瀏覽 17分鐘

           ·

          2020-11-19 12:03

          一句話總結(jié):速度差不多的精度碾壓,精度差不多的速度碾壓!

          YOLOv4是精度速度最優(yōu)平衡, 各種調(diào)優(yōu)手段是真香,本文主要從以下幾個(gè)方面進(jìn)行闡述:

          • YOLOv4介紹
          • YOLOv4框架原理
          • BackBone訓(xùn)練策略
          • BackBone推理策略
          • 檢測(cè)頭訓(xùn)練策略
          • 檢測(cè)頭推理策略

          1.YOLOv4介紹

          YOLOV4其實(shí)是一個(gè)結(jié)合了大量前人研究技術(shù),加以組合并進(jìn)行適當(dāng)創(chuàng)新的算法,實(shí)現(xiàn)了速度和精度的完美平衡。可以說有許多技巧可以提高卷積神經(jīng)網(wǎng)絡(luò)(CNN)的準(zhǔn)確性,但是某些技巧僅適合在某些模型上運(yùn)行,或者僅在某些問題上運(yùn)行,或者僅在小型數(shù)據(jù)集上運(yùn)行;我們來碼一碼這篇文章里作者都用了哪些調(diào)優(yōu)手段:加權(quán)殘差連接(WRC),跨階段部分連接(CSP),跨小批量標(biāo)準(zhǔn)化(CmBN),自對(duì)抗訓(xùn)練(SAT),Mish激活,馬賽克數(shù)據(jù)增強(qiáng),CmBN,DropBlock正則化,CIoU Loss等等。經(jīng)過一系列的堆料,終于實(shí)現(xiàn)了目前最優(yōu)的實(shí)驗(yàn)結(jié)果:43.5%AP(在Tesla V100上,MS COCO數(shù)據(jù)集的實(shí)時(shí)速度約為65FPS)。

          YOLOv4的貢獻(xiàn)如下:

          • 開發(fā)了一個(gè)高效、強(qiáng)大的目標(biāo)檢測(cè)模型。它使每個(gè)人都可以使用1080 Ti2080 TiGPU來訓(xùn)練一個(gè)超級(jí)快速和準(zhǔn)確的目標(biāo)探測(cè)器。
          • 驗(yàn)證了在檢測(cè)器訓(xùn)練過程中,最先進(jìn)的Bag-of-FreebiesBag-of-Specials 的目標(biāo)檢測(cè)方法的影響。
          • 修改了最先進(jìn)的方法,使其更有效,更適合于單GPU訓(xùn)練,包括CBNPANSAM等。

          總之一句話:速度差不多的精度碾壓;精度差不多的速度碾壓。

          YOLOV4論文: https://arxiv.org/pdf/2004.10934.pdf

          YOLOV4代碼: https://github.com/AlexeyAB/darknet

          2.YOLOv4框架原理

          我們主要從通用框架,CSPDarknet53SPP結(jié)構(gòu),PAN結(jié)構(gòu)和檢測(cè)頭YOLOv3出發(fā),來一起學(xué)習(xí)了解下YOLOv4框架原理。

          2.1 目標(biāo)檢測(cè)器通用框架

          目前檢測(cè)器通常可以分為以下幾個(gè)部分,不管是two-stage還是one-stage都可以劃分為如下結(jié)構(gòu),只不過各類目標(biāo)檢測(cè)算法設(shè)計(jì)改進(jìn)側(cè)重在不同位置:


          如上圖,除了輸入,一般one-stage的目標(biāo)檢測(cè)算法通常由提取特征的backbone,傳輸?shù)綑z測(cè)網(wǎng)絡(luò)的Neck部分和負(fù)責(zé)檢測(cè)的Head部分。而two-stage的算法通常還包括空間預(yù)測(cè)部分。網(wǎng)絡(luò)中常用的模塊為:

          • Input: 圖像,圖像金字塔等
          • Backbone: VGG16,Resnet-50,ResNeXt-101,Darknet53,……
          • Neck: FPN,PANet,Bi-FPN,……
          • Head: Dense Prediction:RPN,YOLO,SSD,RetinaNet,FCOS,……
          • Head: Sparse Prediction:Faster RCNN,Fast RCNN,R-CNN,……

          而作為one-stageYOLO網(wǎng)絡(luò)主要由三個(gè)主要組件組成:

          • Backbone -在不同圖像細(xì)粒度上聚合并形成圖像特征的卷積神經(jīng)網(wǎng)絡(luò)。
          • Neck:一系列混合和組合圖像特征的網(wǎng)絡(luò)層,并將圖像特征傳遞到預(yù)測(cè)層。
          • Head:對(duì)圖像特征進(jìn)行預(yù)測(cè),生成邊界框和并預(yù)測(cè)類別。

          這里先直接上YOLOv4的整體原理圖(來源網(wǎng)絡(luò))如下:

          如上圖,整體框架跟我們之前學(xué)的YOLOv3很是類似。這里先大致看下,接下來我們將逐步分析各個(gè)部分,首先,我們先看特征提取網(wǎng)絡(luò)Backbone.

          2.2 CSPDarknet53

          我們前面知道在YOLOv3中,特征提取網(wǎng)絡(luò)使用的是Darknet53,而在YOLOv4中,對(duì)Darknet53做了一點(diǎn)改進(jìn),借鑒了CSPNetCSPNet全稱是Cross Stage Partial Networks,也就是跨階段局部網(wǎng)絡(luò)。CSPNet解決了其他大型卷積神經(jīng)網(wǎng)絡(luò)框架Backbone中網(wǎng)絡(luò)優(yōu)化的梯度信息重復(fù)問題,將梯度的變化從頭到尾地集成到特征圖中,因此減少了模型的參數(shù)量和FLOPS數(shù)值,既保證了推理速度和準(zhǔn)確率,又減小了模型尺寸。如下圖:

          CSPNet實(shí)際上是基于Densnet的思想,復(fù)制基礎(chǔ)層的特征映射圖,通過dense block發(fā)送副本到下一個(gè)階段,從而將基礎(chǔ)層的特征映射圖分離出來。這樣可以有效緩解梯度消失問題(通過非常深的網(wǎng)絡(luò)很難去反推丟失信號(hào)) ,支持特征傳播,鼓勵(lì)網(wǎng)絡(luò)重用特征,從而減少網(wǎng)絡(luò)參數(shù)數(shù)量。CSPNet思想可以和ResNetResNeXtDenseNet結(jié)合,目前主要有CSPResNext50CSPDarknet53兩種改造Backbone網(wǎng)絡(luò)。

          考慮到幾方面的平衡:輸入網(wǎng)絡(luò)分辨率/卷積層數(shù)量/參數(shù)數(shù)量/輸出維度。一個(gè)模型的分類效果好不見得其檢測(cè)效果就好,想要檢測(cè)效果好需要以下幾點(diǎn):

          • 更大的網(wǎng)絡(luò)輸入分辨率——用于檢測(cè)小目標(biāo)
          • 更深的網(wǎng)絡(luò)層——能夠覆蓋更大面積的感受野
          • 更多的參數(shù)——更好的檢測(cè)同一圖像內(nèi)不同size的目標(biāo)

          這樣最終的CSPDarknet53結(jié)構(gòu)就如下圖:

          CSPNet論文: https://arxiv.org/pdf/1911.11929v1.pdf

          為了增大感受野,作者還使用了SPP-block,使用PANet代替FPN進(jìn)行參數(shù)聚合以適用于不同level的目標(biāo)檢測(cè)。

          2.3 SPP結(jié)構(gòu)

          SPP-Net結(jié)構(gòu)我們之前也有學(xué)過,SPP-Net全稱Spatial Pyramid Pooling Networks,當(dāng)時(shí)主要是用來解決不同尺寸的特征圖如何進(jìn)入全連接層的,直接看下圖,下圖中對(duì)任意尺寸的特征圖直接進(jìn)行固定尺寸的池化,來得到固定數(shù)量的特征。

          如上圖,以3個(gè)尺寸的池化為例,對(duì)特征圖進(jìn)行一個(gè)最大值池化,即一張?zhí)卣鲌D得取其最大值,得到1*d(d是特征圖的維度)個(gè)特征;對(duì)特征圖進(jìn)行網(wǎng)格劃分為2x2的網(wǎng)格,然后對(duì)每個(gè)網(wǎng)格進(jìn)行最大值池化,那么得到4*d個(gè)特征;同樣,對(duì)特征圖進(jìn)行網(wǎng)格劃分為4x4個(gè)網(wǎng)格,對(duì)每個(gè)網(wǎng)格進(jìn)行最大值池化,得到16*d個(gè)特征。 接著將每個(gè)池化得到的特征合起來即得到固定長(zhǎng)度的特征個(gè)數(shù)(特征圖的維度是固定的),接著就可以輸入到全連接層中進(jìn)行訓(xùn)練網(wǎng)絡(luò)了。用到這里是為了增加感受野。

          2.4 PAN結(jié)構(gòu)

          YOLOv4使用PANet(Path Aggregation Network)代替FPN進(jìn)行參數(shù)聚合以適用于不同level的目標(biāo)檢測(cè), PANet論文中融合的時(shí)候使用的方法是AdditionYOLOv4算法將融合的方法由加法改為Concatenation。如下圖:

          是一種特征圖融合方式。

          2.5 檢測(cè)頭YOLOv3

          對(duì)于檢測(cè)頭部分,YOLOv4繼續(xù)采用YOLOv3算法的檢測(cè)頭,不再贅述。

          3.BackBone訓(xùn)練策略

          這里我們主要從數(shù)據(jù)增強(qiáng),DropBlock正則化,類標(biāo)簽平滑方面來學(xué)習(xí)下BackBone訓(xùn)練策略。

          3.1 數(shù)據(jù)增強(qiáng)

          • CutMix

          YOLOv4選擇用CutMix的增強(qiáng)方式,CutMix的處理方式也比較簡(jiǎn)單,同樣也是對(duì)一對(duì)圖片做操作,簡(jiǎn)單講就是隨機(jī)生成一個(gè)裁剪框Box,裁剪掉A圖的相應(yīng)位置,然后用B圖片相應(yīng)位置的ROI放到A圖中被裁剪的區(qū)域形成新的樣本,ground truth標(biāo)簽會(huì)根據(jù)patch的面積按比例進(jìn)行調(diào)整,比如0.6像狗,0.4像貓,計(jì)算損失時(shí)同樣采用加權(quán)求和的方式進(jìn)行求解。這里借CutMix的地方順帶說下幾種類似的增強(qiáng)方式:上圖是CutMix論文中作者對(duì)幾種增強(qiáng)方式做的對(duì)比,結(jié)果顯而易見,CutMix的增強(qiáng)方式在三個(gè)數(shù)據(jù)集上的表現(xiàn)都是最優(yōu)的。其中Mixup是直接求和兩張圖,如同附身,鬼影一樣,模型很難學(xué)到準(zhǔn)確的特征圖響應(yīng)分布。Cutout是直接去除圖像的一個(gè)區(qū)域,這迫使模型在進(jìn)行分類時(shí)不能對(duì)特定的特征過于自信。然而,圖像的一部分充滿了無用的信息,這是一種浪費(fèi)。在CutMix中,將圖像的一部分剪切并粘貼到另一個(gè)圖像上,使得模型更容易區(qū)分異類。

          CutMix論文: https://arxiv.org/pdf/1905.04899v2.pdf

          • Mosaic

          Yolov4Mosaic數(shù)據(jù)增強(qiáng)是參考CutMix數(shù)據(jù)增強(qiáng),理論上類似。區(qū)別在于Mosaic是一種將4張訓(xùn)練圖像合并成一張進(jìn)行訓(xùn)練的數(shù)據(jù)增強(qiáng)方法(而不是CutMix中的2張)。這增強(qiáng)了對(duì)正常背景(context)之外的對(duì)象的檢測(cè),豐富檢測(cè)物體的背景。此外,每個(gè)小批包含一個(gè)大的變化圖像(4倍),因此,減少了估計(jì)均值和方差的時(shí)需要大mini-batch的要求,降低了訓(xùn)練成本。如下圖:

          3.2 DropBlock正則化

          正則化技術(shù)有助于避免數(shù)據(jù)科學(xué)專業(yè)人員面臨的最常見的問題,即過擬合。對(duì)于正則化,已經(jīng)提出了幾種方法,如L1L2正則化、DropoutEarly Stopping和數(shù)據(jù)增強(qiáng)。這里YOLOv4用了DropBlock正則化的方法。

          DropBlock方法的引入是為了克服Dropout隨機(jī)丟棄特征的主要缺點(diǎn),Dropout被證明是全連接網(wǎng)絡(luò)的有效策略,但在特征空間相關(guān)的卷積層中效果不佳。DropBlock技術(shù)在稱為塊的相鄰相關(guān)區(qū)域中丟棄特征。這樣既可以實(shí)現(xiàn)生成更簡(jiǎn)單模型的目的,又可以在每次訓(xùn)練迭代中引入學(xué)習(xí)部分網(wǎng)絡(luò)權(quán)值的概念,對(duì)權(quán)值矩陣進(jìn)行補(bǔ)償,從而減少過擬合。如下圖:

          DropBlock論文中作者最終在ImageNet分類任務(wù)上,使用Resnet-50結(jié)構(gòu),將精度提升1.6%個(gè)點(diǎn),在COCO檢測(cè)任務(wù)上,精度提升1.6%個(gè)點(diǎn)。

          DropBlock論文: https://arxiv.org/pdf/1810.12890.pdf

          3.3 類標(biāo)簽平滑

          對(duì)于分類問題,特別是多分類問題,常常把向量轉(zhuǎn)換成one-hot-vector,而one-hot帶來的問題: 對(duì)于損失函數(shù),我們需要用預(yù)測(cè)概率去擬合真實(shí)概率,而擬合one-hot的真實(shí)概率函數(shù)會(huì)帶來兩個(gè)問題:

          • 無法保證模型的泛化能力,容易造成過擬合;
          • 全概率和0概率鼓勵(lì)所屬類別和其他類別之間的差距盡可能加大,而由梯度有界可知,這種情況很難適應(yīng)。會(huì)造成模型過于相信預(yù)測(cè)的類別。

          對(duì)預(yù)測(cè)有100%的信心可能表明模型是在記憶數(shù)據(jù),而不是在學(xué)習(xí)。標(biāo)簽平滑調(diào)整預(yù)測(cè)的目標(biāo)上限為一個(gè)較低的值,比如0.9。它將使用這個(gè)值而不是1.0來計(jì)算損失。這個(gè)概念緩解了過度擬合。說白了,這個(gè)平滑就是一定程度縮小labelminmax的差距,label平滑可以減小過擬合。所以,適當(dāng)調(diào)整label,讓兩端的極值往中間湊湊,可以增加泛化性能。

          4.BackBone推理策略

          這里主要從Mish激活函數(shù),MiWRC策略方面進(jìn)行闡述BackBone推理策略。

          4.1 Mish激活函數(shù)

          對(duì)激活函數(shù)的研究一直沒有停止過,ReLU還是統(tǒng)治著深度學(xué)習(xí)的激活函數(shù),不過,這種情況有可能會(huì)被Mish改變。Mish是另一個(gè)與ReLUSwish非常相似的激活函數(shù)。正如論文所宣稱的那樣,Mish可以在不同數(shù)據(jù)集的許多深度網(wǎng)絡(luò)中勝過它們。公式如下:

          Mish是一個(gè)平滑的曲線,平滑的激活函數(shù)允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而得到更好的準(zhǔn)確性和泛化;在負(fù)值的時(shí)候并不是完全截?cái)啵试S比較小的負(fù)梯度流入。實(shí)驗(yàn)中,隨著層深的增加,ReLU激活函數(shù)精度迅速下降,而Mish激活函數(shù)在訓(xùn)練穩(wěn)定性、平均準(zhǔn)確率(1%-2.8%)、峰值準(zhǔn)確率(1.2% - 3.6%)等方面都有全面的提高。如下圖:

          Mish論文: https://arxiv.org/pdf/1908.08681.pdf

          4.2 MiWRC策略

          MiWRCMulti-input weighted residual connections的簡(jiǎn)稱, 在BiFPN中,提出了用MiWRC來執(zhí)行標(biāo)尺度級(jí)重加權(quán),添加不同尺度的特征映射。我們已經(jīng)討論了FPNPAN作為例子。下面的圖(d)顯示了另一種被稱為BiFPNneck設(shè)計(jì),根據(jù)BiFPN的論文,該設(shè)計(jì)具有更好的準(zhǔn)確性和效率權(quán)衡。


          上圖中 (a)FPN引入自頂向下的路徑,將多尺度特征從3級(jí)融合到7級(jí)(P3-P7);(b)PANETFPN之上增加一個(gè)額外的自下而上的路徑;(c)NAS-FPN使用神經(jīng)網(wǎng)絡(luò)搜索找到一個(gè)不規(guī)則的特征拓?fù)渚W(wǎng)絡(luò),然后重復(fù)應(yīng)用同一塊拓?fù)浣Y(jié)構(gòu);(d)是這里的BiFPN,具有更好的準(zhǔn)確性和效率權(quán)衡。將該neck放到整個(gè)整個(gè)網(wǎng)絡(luò)的連接中如下圖:

          上圖采用EfficientNet作為骨干網(wǎng)絡(luò),BiFPN作為特征網(wǎng)絡(luò),共享class/box預(yù)測(cè)網(wǎng)絡(luò)。 基于不同的資源約束,BiFPN層和類/盒網(wǎng)層都被重復(fù)多次。

          BiFPN論文: https://arxiv.org/pdf/1911.09070.pdf

          5.檢測(cè)頭訓(xùn)練策略

          前面介紹BackBone訓(xùn)練策略的時(shí)候,以及學(xué)習(xí)過DropBlock正則化,Mosaic數(shù)據(jù)增強(qiáng)的方法了,這兩種方法在檢測(cè)頭訓(xùn)練的過程中也有用到這里不在贅述。我們一起看下檢測(cè)頭訓(xùn)練中采用的其他策略。

          5.1 CIoU-loss

          損失函數(shù)給出了如何調(diào)整權(quán)重以降低loss。所以在我們做出錯(cuò)誤預(yù)測(cè)的情況下,我們期望它能給我們指明前進(jìn)的方向。但如果使用IoU,考慮兩個(gè)預(yù)測(cè)都不與ground truth重疊,那么IoU損失函數(shù)不能告訴哪一個(gè)是更好的,或者哪個(gè)更接近ground truth。這里順帶看下常用的幾種loss的形式,如下:

          • 經(jīng)典IoU loss:

          IoU算法是使用最廣泛的算法,大部分的檢測(cè)算法都是使用的這個(gè)算法。

          • GIoU:Generalized IoU

          GIoU考慮到,當(dāng)檢測(cè)框和真實(shí)框沒有出現(xiàn)重疊的時(shí)候IoUloss都是一樣的,因此GIoU就加入了C檢測(cè)框(C檢測(cè)框是包含了檢測(cè)框和真實(shí)框的最小矩形框),這樣就可以解決檢測(cè)框和真實(shí)框沒有重疊的問題。但是當(dāng)檢測(cè)框和真實(shí)框之間出現(xiàn)包含的現(xiàn)象的時(shí)候GIoU就和IoU loss是同樣的效果了。

          其中,C是指能包含predict boxGround Truth box的最小box

          • DIoU:Distance IoU

          DIoU考慮到GIoU的缺點(diǎn),也是增加了C檢測(cè)框,將真實(shí)框和預(yù)測(cè)框都包含了進(jìn)來,但是DIoU計(jì)算的不是框之間的交并,而是計(jì)算的每個(gè)檢測(cè)框之間的歐氏距離,這樣就可以解決GIoU包含出現(xiàn)的問題。

          其中是指predict boxGT box中心點(diǎn)的距離的平方,而是指剛好能包含predict boxGT box的最小box的對(duì)角線長(zhǎng)度平方。

          • CIoU:Complete IoU

          CIoU就是在DIoU的基礎(chǔ)上增加了檢測(cè)框尺度的loss,增加了長(zhǎng)和寬的loss,這樣預(yù)測(cè)框就會(huì)更加的符合真實(shí)框。

          實(shí)際上,CIOU只是在DIOU基礎(chǔ)上增加了一項(xiàng)。 其中:

          5.2 CmBN策略

          BN就是僅僅利用當(dāng)前迭代時(shí)刻信息進(jìn)行norm,而CBN在計(jì)算當(dāng)前時(shí)刻統(tǒng)計(jì)量時(shí)候會(huì)考慮前k個(gè)時(shí)刻統(tǒng)計(jì)量,從而實(shí)現(xiàn)擴(kuò)大batch size操作。同時(shí)作者指出CBN操作不會(huì)引入比較大的內(nèi)存開銷,訓(xùn)練速度不會(huì)影響很多,但是訓(xùn)練時(shí)候會(huì)慢一些,比GN還慢。

          CmBNCBN的改進(jìn)版本,其把大batch內(nèi)部的4個(gè)mini batch當(dāng)做一個(gè)整體,對(duì)外隔離。CBN在第t時(shí)刻,也會(huì)考慮前3個(gè)時(shí)刻的統(tǒng)計(jì)量進(jìn)行匯合,而CmBN操作不會(huì),不再滑動(dòng)cross,其僅僅在mini batch內(nèi)部進(jìn)行匯合操作,保持BN一個(gè)batch更新一次可訓(xùn)練參數(shù)。

          BN:無論每個(gè)batch被分割為多少個(gè)mini batch,其算法就是在每個(gè)mini batch前向傳播后統(tǒng)計(jì)當(dāng)前的BN數(shù)據(jù)(即每個(gè)神經(jīng)元的期望和方差)并進(jìn)行NomalizationBN數(shù)據(jù)與其他mini batch的數(shù)據(jù)無關(guān)。CBN:每次iteration中的BN數(shù)據(jù)是其之前n次數(shù)據(jù)和當(dāng)前數(shù)據(jù)的和(對(duì)非當(dāng)前batch統(tǒng)計(jì)的數(shù)據(jù)進(jìn)行了補(bǔ)償再參與計(jì)算),用該累加值對(duì)當(dāng)前的batch進(jìn)行Nomalization。好處在于每個(gè)batch可以設(shè)置較小的sizeCmBN:只在每個(gè)Batch內(nèi)部使用CBN的方法,個(gè)人理解如果每個(gè)Batch被分割為一個(gè)mini batch,則其效果與BN一致;若分割為多個(gè)mini batch,則與CBN類似,只是把mini batch當(dāng)作batch進(jìn)行計(jì)算,其區(qū)別在于權(quán)重更新時(shí)間點(diǎn)不同,同一個(gè)batch內(nèi)權(quán)重參數(shù)一樣,因此計(jì)算不需要進(jìn)行補(bǔ)償。

          5.3 自對(duì)抗訓(xùn)練(SAT)

          SAT為一種新型數(shù)據(jù)增強(qiáng)方式。在第一階段,神經(jīng)網(wǎng)絡(luò)改變?cè)紙D像而不是網(wǎng)絡(luò)權(quán)值。通過這種方式,神經(jīng)網(wǎng)絡(luò)對(duì)其自身進(jìn)行一種對(duì)抗式的攻擊,改變?cè)紙D像,制造圖像上沒有目標(biāo)的假象。在第二階段,訓(xùn)練神經(jīng)網(wǎng)絡(luò)對(duì)修改后的圖像進(jìn)行正常的目標(biāo)檢測(cè)。

          Self-Adversarial Training是在一定程度上抵抗對(duì)抗攻擊的數(shù)據(jù)增強(qiáng)技術(shù)。CNN計(jì)算出Loss, 然后通過反向傳播改變圖片信息,形成圖片上沒有目標(biāo)的假象,然后對(duì)修改后的圖像進(jìn)行正常的目標(biāo)檢測(cè)。需要注意的是在SAT的反向傳播的過程中,是不需要改變網(wǎng)絡(luò)權(quán)值的。 使用對(duì)抗生成可以改善學(xué)習(xí)的決策邊界中的薄弱環(huán)節(jié),提高模型的魯棒性。因此這種數(shù)據(jù)增強(qiáng)方式被越來越多的對(duì)象檢測(cè)框架運(yùn)用。

          5.4 消除網(wǎng)格敏感度

          邊界框b的計(jì)算方式為:

          對(duì)于的情況,我們需要分別具有很大的負(fù)值和正值。但我們可以將與一個(gè)比例因子(>1.0)相乘,從而更輕松地實(shí)現(xiàn)這一目標(biāo)。

          5.5 單目標(biāo)使用多Anchor

          如果 IoU(ground truth, anchor) > IoU threshold,則為單個(gè)基本真值使用多個(gè)錨點(diǎn)。(注:作者沒有更多地說明該方法在 YOLOv4 中的作用。)

          5.6 余弦模擬退火

          余弦調(diào)度會(huì)根據(jù)一個(gè)余弦函數(shù)來調(diào)整學(xué)習(xí)率。首先,較大的學(xué)習(xí)率會(huì)以較慢的速度減小。然后在中途時(shí),學(xué)習(xí)的減小速度會(huì)變快,最后學(xué)習(xí)率的減小速度又會(huì)變得很慢。

          這張圖展示了學(xué)習(xí)率衰減的方式(下圖中還應(yīng)用了學(xué)習(xí)率預(yù)熱)及其對(duì)mAP的影響。可能看起來并不明顯,這種新的調(diào)度方法的進(jìn)展更為穩(wěn)定,而不是在停滯一段時(shí)間后又取得進(jìn)展。

          余弦模擬退火論文: https://arxiv.org/pdf/1608.03983.pdf

          5.7 遺傳算法優(yōu)化超參

          關(guān)于遺傳算法的文章,我們之前也有學(xué)過:遺傳算法如何模擬大自然的進(jìn)化?

          遺傳算法論文: https://arxiv.org/pdf/2004.10934.pdf

          5.8 隨機(jī)形狀訓(xùn)練

          許多單階段目標(biāo)檢測(cè)器是在固定的輸入圖像形狀下訓(xùn)練的。為了提高泛化效果,我們可以對(duì)不同圖像大小的模型進(jìn)行訓(xùn)練。(在YOLO中進(jìn)行多尺度訓(xùn)練)。

          6.檢測(cè)頭推理策略

          在檢測(cè)頭推理中除了用了上面講的Mish, SPP, PAN技術(shù)外,還用了SAMDIoU-NMS,如下:

          6.1 SAM模塊

          注意力機(jī)制在DL設(shè)計(jì)中被廣泛采用。在SAM中,最大值池化和平均池化分別用于輸入feature map,創(chuàng)建兩組feature map。結(jié)果被輸入到一個(gè)卷積層,接著是一個(gè)Sigmoid函數(shù)來創(chuàng)建空間注意力。

          將空間注意掩模應(yīng)用于輸入特征,輸出精細(xì)的特征圖。

          YOLOv4中,使用修改后的SAM而不應(yīng)用最大值池化和平均池化。

          YOLOv4中,FPN概念逐漸被實(shí)現(xiàn)/替換為經(jīng)過修改的SPPPANPAN

          6.2 DIoU-NMS

          NMS過濾掉預(yù)測(cè)相同對(duì)象的其他邊界框,并保留具有最高可信度的邊界框。

          DIoU(前面討論過的) 被用作非最大值抑制(NMS)的一個(gè)因素。該方法在抑制冗余框的同時(shí),采用IoU和兩個(gè)邊界盒中心點(diǎn)之間的距離。這使得它在有遮擋的情況下更加健壯。

          7.YOLOv4小結(jié)

          為了提升準(zhǔn)確度,可以針對(duì)訓(xùn)練過程進(jìn)行一些優(yōu)化,比如數(shù)據(jù)增強(qiáng)、類別不平衡、成本函數(shù)、軟標(biāo)注…… 這些改進(jìn)不會(huì)影響推理速度,可被稱為「Bag of freebies」。另外還有一些改進(jìn)可稱為「bag of specials」,僅需在推理時(shí)間方面做少許犧牲,就能獲得優(yōu)良的性能回報(bào)。這類改進(jìn)包括增大感受野、使用注意力機(jī)制、集成跳過連接(skip-connection)或 FPN等特性、使用非極大值抑制等后處理方法。

          本文從YOLOv4介紹,YOLOv4框架原理,BackBone訓(xùn)練策略,BackBone推理策略,檢測(cè)頭訓(xùn)練策略,檢測(cè)頭推理策略這幾個(gè)大方面進(jìn)行詳細(xì)的闡述了YOLOv4中所用到的各種策略,希望對(duì)大家有所幫助。

          ?點(diǎn)個(gè)贊再走唄?

          瀏覽 316
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色人人。色人人综合 | 亚洲热在线视频 | 黄色一级一级直播间 | 热热久| 91激情在线 |