日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

YOLOv4全文阅读(全文中文翻译)

發(fā)布時間:2023/11/28 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 YOLOv4全文阅读(全文中文翻译) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

YOLOv4全文閱讀(全文中文翻譯)

YOLOv4: Optimal Speed and Accuracy of Object
Detection

論文鏈接:

https://arxiv.org/pdf/2004.10934.pdf

代碼鏈接:

https://github.com/AlexeyAB/darknet

摘要

有大量的特征被認(rèn)為可以提高卷積神經(jīng)網(wǎng)絡(luò)(CNN)的精度。需要在大型數(shù)據(jù)集上對這些特征的組合進(jìn)行實際測試,并對結(jié)果進(jìn)行理論驗證。某些功能只對某些模型進(jìn)行操作,某些問題只對某些模型進(jìn)行操作,或只對小規(guī)模數(shù)據(jù)集進(jìn)行操作;而某些功能(如批處理規(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á)到以下效果:43.5%的AP(65.7%的AP50)用于MS COCO數(shù)據(jù)集,在Tesla V100上以65 FPS的實時速度。

Introduction

大多數(shù)基于CNN的目標(biāo)檢測大多只適用于推薦系統(tǒng)。例如,通過城市攝像機搜索免費停車位是由低精度模型執(zhí)行的,而汽車碰撞警告則與高精度模型相關(guān)。通過提高實時目標(biāo)檢測的準(zhǔn)確性,不僅可以將其用于提示生成推薦系統(tǒng),還可以用于獨立的過程管理和減少人工輸入。在傳統(tǒng)圖形處理單元(GPU)上進(jìn)行實時目標(biāo)檢測,可以以合理的價格大量使用。最精確的現(xiàn)代神經(jīng)網(wǎng)絡(luò)不能實時工作,需要大量的gpu來進(jìn)行小批量的訓(xùn)練。本文通過創(chuàng)建一個CNN來解決這些問題,CNN在傳統(tǒng)GPU上實時運行,而訓(xùn)練只需要一個傳統(tǒng)GPU。

這項工作的主要目標(biāo)是設(shè)計生產(chǎn)系統(tǒng)中目標(biāo)檢測的快速運行速度和并行計算的優(yōu)化,而不是低計算量理論指標(biāo)(BFLOP)。本文希望所設(shè)計的對象可以很容易地訓(xùn)練和使用。例如,任何使用傳統(tǒng)GPU進(jìn)行訓(xùn)練和測試的人都可以獲得實時、高質(zhì)量和令人信服的目標(biāo)檢測結(jié)果,如圖1所示的YOLOv4結(jié)果。

本文的貢獻(xiàn)總結(jié)如下:

  1. 本文開發(fā)了一個高效、強大的目標(biāo)檢測模型。它使得每個人都可以使用1080Ti或2080Ti的GPU來訓(xùn)練一個超快速和精確的目標(biāo)檢測。

  2. 在檢測訓(xùn)練期間,本文驗證了最先進(jìn)的免費包和特殊包目標(biāo)檢測方法的影響。 3. 本文修改了最新的方法,使之更有效,更適合于單一GPU訓(xùn)練,包括CBN[89]、PAN[49]、SAM[85]等。

  1. Related work

2.1. Object detection models

現(xiàn)代檢測通常由兩部分組成,一部分是在圖像網(wǎng)上預(yù)先訓(xùn)練的主干,另一部分是用來預(yù)測物體類別和邊界盒的頭部。對于運行在GPU平臺上的檢測,它們的主干可以是VGG[68]、ResNet[26]、ResNeXt[86]或DenseNet[30]。對于運行在CPU平臺上的檢測,它們的主干可以是SqueezeNet[31]、MobileNet[28、66、27、74]或Shuf flenet[97、53]。

頭部一般分為一級目標(biāo)檢測和兩級目標(biāo)檢測。最具代表性的兩級目標(biāo)檢測是R-CNN[19]系列,包括fast R-CNN[18]、fasterR CNN[64]、R-FCN[9]和Libra R-CNN[58]。也可以使兩級目標(biāo)檢測成為無錨目標(biāo)檢測,例如RepPoints[87]。

對于一級目標(biāo)檢測,最有代表性的模型是YOLO[61、62、63]、SSD[50]和RetinaNet[45]。近年來,無錨單級目標(biāo)檢測得到了發(fā)展。這類檢測有CenterNet[13]、CornerNet[37,38]、FCOS[78]等,近年來發(fā)展起來的目標(biāo)檢測往往在主干和頭部之間插入一些層,這些層通常用于收集不同階段的特征圖。本文可以稱之為目標(biāo)檢測的頸部。通常,頸部由幾個自下而上的路徑和幾個自上而下的路徑組成。具有這種機制的網(wǎng)絡(luò)包括特征金字塔網(wǎng)絡(luò)(FPN)[44]、路徑聚合網(wǎng)絡(luò)(PAN)[49]、BiFPN[77]和NAS-FPN[17]。

除上述模型外,一些研究者還將重點放在直接構(gòu)建用于目標(biāo)檢測的新骨干網(wǎng)(DetNet[43]、DetNAS[7])或新的整體模型(SpineNet[12]、hitdector[20])。 綜上所述,通常目標(biāo)檢測由幾個部分組成:

? Input:

Image, Patches, Image Pyramid

? Backbones:

VGG16 [68], ResNet-50 [26], SpineNet [12],
Ef?cientNet-B0/B7 [75], CSPResNeXt50 [81], CSPDarknet53 [81]

? Neck:

? Additional blocks:

SPP [25], ASPP [5], RFB [47], SAM [85]

? Path-aggregation blocks: FPN [44], PAN [49], NAS-FPN
[17], Fully-connected FPN, BiFPN [77], ASFF [48], SFAM [98]

? Heads::

? DensePrediction(one-stage):

? RPN[64],SSD[50],YOLO[61],RetinaNet [45] (anchor based)

? CornerNet [37], CenterNet [13], MatrixNet [60], FCOS [78]
(anchor free)

? SparsePrediction(two-stage):

? Faster R-CNN [64], R-FCN [9], Mask RCNN [23] (anchor based)
? RepPoints [87] (anchor free)

2.2. Bag of freebies

通常,傳統(tǒng)的目標(biāo)檢測是離線訓(xùn)練的。因此,研究者總是希望利用這一優(yōu)勢,開發(fā)出更好的訓(xùn)練方法,使目標(biāo)檢測在不增加推理成本的情況下獲得更好的精度。本文將這些只改變訓(xùn)練策略或只增加訓(xùn)練成本的方法稱為“免費包”,目標(biāo)檢測方法通常采用的滿足免費包定義的方法是數(shù)據(jù)增強。數(shù)據(jù)增強的目的是增加輸入圖像的可變性,使所設(shè)計的目標(biāo)檢測模型對來自不同環(huán)境的圖像具有更高的魯棒性。例如,光照畸變和幾何畸變是兩種常用的數(shù)據(jù)增強方法,它們有利于目標(biāo)檢測任務(wù)。在處理光照失真時,本文調(diào)整圖像的亮度、對比度、色調(diào)、飽和度和噪聲。對于幾何失真,本文添加了隨機縮放、裁剪、偏移和旋轉(zhuǎn)。上述數(shù)據(jù)增強方法均為逐像素調(diào)整,并且保留調(diào)整區(qū)域中的所有原始像素信息。

此外,一些從事數(shù)據(jù)增強的研究者把重點放在模擬物體遮擋問題上。在圖像分類和目標(biāo)檢測方面取得了良好的效果。例如,random erase[100]和CutOut[11]可以隨機選擇圖像中的矩形區(qū)域,并以0的隨機或互補值填充。至于探測搜索(69)和網(wǎng)格掩碼(6),它們隨機或均勻地選擇圖像中的多個矩形區(qū)域,并將它們替換為全部零。如果將類似的概念應(yīng)用于特征地圖,則有DropOut[71]、DropConnect[80]和DropBlock[16]方法。此外,一些研究者還提出了利用多幅圖像進(jìn)行數(shù)據(jù)增強的方法。例如,MixUp[92]使用兩個圖像以不同的系數(shù)比率進(jìn)行乘法和疊加,然后使用這些疊加比率調(diào)整標(biāo)簽。

對于CutMix[91],它是將裁剪后的圖像覆蓋到其他圖像的矩形區(qū)域,并根據(jù)混合區(qū)域的大小調(diào)整標(biāo)簽。除了上述方法外,樣式轉(zhuǎn)移GAN[15]還用于數(shù)據(jù)增強,這樣的使用可以有效地減少CNN學(xué)習(xí)到的紋理偏差。與以上提出的各種方法不同,一些其他的免費包方法致力于解決這些數(shù)據(jù)集中的mantic分布可能存在偏差的問題。在處理語義分布偏差問題時,一個非常重要的問題是不同類之間存在數(shù)據(jù)不平衡的問題,這一問題通常通過兩級對象檢測中的硬負(fù)示例挖掘[72]或在線硬示例挖掘[67]來解決。

但示例挖掘方法不適用對于單級目標(biāo)檢測,由于這種檢測屬于密集預(yù)測結(jié)構(gòu)。因此,Lin等人
[45]提出了焦點損失的概念,以解決不同類別之間存在的數(shù)據(jù)不平衡問題。另一個非常重要的問題是,很難表達(dá)不同類別之間的關(guān)聯(lián)度與一個熱門的硬性表示之間的關(guān)系。此表示方案通常在執(zhí)行標(biāo)記時使用。文[73]提出的標(biāo)簽平滑是將硬標(biāo)簽轉(zhuǎn)化為軟標(biāo)簽進(jìn)行訓(xùn)練,使模型更加健壯。為了獲得更好的軟標(biāo)簽,Islam 等人[33]引入了知識蒸餾的概念來設(shè)計標(biāo)簽關(guān)系網(wǎng)絡(luò)。

最后一個亮度是邊界盒回歸的目標(biāo)函數(shù)。傳統(tǒng)的目標(biāo)檢測通常采用均方誤差(MSE)直接對BBox的中心點坐標(biāo)和高度、寬度進(jìn)行回歸。

然而,直接估計BBox中每個點的坐標(biāo)值就是把這些點作為自變量來處理,但實際上并不考慮對象本身的完整性。為了使這個問題得到更好的處理,一些研究人員最近提出了IoU損失[90],其中考慮了預(yù)測BBox面積和地面真實BBox面積的覆蓋。IoU損耗計算過程將通過執(zhí)行IoU和地面真值來觸發(fā)BBox四個坐標(biāo)點的計算,然后將生成的結(jié)果連接成一個完整的代碼。由于IoU是尺度不變的表示,它可以解決傳統(tǒng)方法計算{x,y,w,h}的l1或l2損失時,損失會隨著尺度的增大而增大的問題。最近,一些研究人員繼續(xù)改善借據(jù)損失。例如,GIoU loss[65]是除了覆蓋區(qū)域之外還包括對象的形狀和方向。他們建議找出能同時覆蓋預(yù)測BBox和地面真值BBox的最小面積BBox,并使用此BBox作為分母來代替IoU損失中最初使用的分母。對于DIoU損失[99],它另外考慮了物體中心的距離,而CIoU損失[99],另一方面,它同時考慮了重疊區(qū)域、中心點之間的距離和光譜。CIoU算法在BBox回歸問題上具有較好的收斂速度和精度。

2.3. Bag of specials

對于那些只會增加少量推理成本但能顯著提高目標(biāo)檢測精度的插件模塊和后處理方法,本文稱之為“特殊包”。一般來說,這些插件模塊用于增強模型中的某些屬性,如擴大接受域、引入注意機制、增強特征集成能力等,后處理是篩選模型預(yù)測結(jié)果的一種方法。可用于增強感受野的常見模塊有SPP[25]、ASPP[5]和RFB[47]。SPP模塊源于空間金字塔匹配(SPM)[39],SPMs最初的方法是將特征圖分割成若干個d×d相等的塊,其中d可以是{1,2,3,…},從而形成空間金字塔,然后提取一袋字的特征。SPP將SPM集成到CNN中,使用max池操作而不是包字操作。自He等人提出SPP模塊以來
[25]提出一維特征向量,不適用于全卷積網(wǎng)絡(luò)。

因此,在YOLOv3[63]的設(shè)計中,Redmon和Farhadi改進(jìn)了SPP模塊,將最大池輸出與內(nèi)核大小k×k(其中k={1,5,9,13},步長等于1)連接起來。在這種設(shè)計下,相對較大的k×k最大池有效地增加了主干特征的接收范圍。在加入了改進(jìn)版的SPP模塊后,YOLOv3-608在MS-COCO目標(biāo)檢測任務(wù)中以0.5%的額外計算代價將AP50升級了2.7%。ASPP[5]模與改進(jìn)的SPP模在運算上的區(qū)別主要是原始k×k核大小、最大步長池等于1到幾個3×3核大小、擴展比等于k、步長等于1個獨立卷積運算。RFB模塊是利用k×k核的幾個擴展卷積,擴展比為k,步長為1,得到比ASPP更全面的空間覆蓋。RFB[47]僅需7%的額外推斷時間,即可將MS-COCO上SSD的AP50提高5.7%。在目標(biāo)檢測中常用的注意模塊主要分為通道注意和點注意,這兩種注意模型的代表分別是擠壓和激發(fā)(SE)[29]和空間注意模塊(SAM)[85]。雖然SE模塊可以在ImageNet圖像分類任務(wù)中以僅增加2%的計算量為代價提高ResNet50的功率1%top-1精度,但在GPU上,它通常會增加約10%的推理時間,因此更適合在移動設(shè)備中使用。但是對于SAM,它只需要支付0.1%的額外計算,并且它可以提高ResNet50 SE 0.5%在ImageNet圖像分類任務(wù)中的top-1精度。最重要的是,它根本不影響GPU上的推理速度。

在特征集成中,早期的做法是使用skip連接[51]或hyper column[22]將低級物理特征集成到高級語義特征。隨著FPN等多尺度預(yù)測方法的流行,人們提出了許多集成不同特征金字塔的輕量級模塊。這類模塊包括SFAM[98]、ASFF[48]和BiFPN[77]。SFAM的主要思想是利用SE模塊對多尺度級聯(lián)特征映射進(jìn)行信道級重加權(quán)。對于ASFF,它使用softmax作為逐點重加權(quán),然后添加不同尺度的特征映射。在BiFPN中,提出了多輸入加權(quán)殘差連接來進(jìn)行尺度層次的加權(quán),然后加入不同尺度的特征映射。

在深度學(xué)習(xí)的研究中,一些人把注意力放在尋找良好的激活功能上。一個好的激活函數(shù)可以使梯度更有效地傳播,同時不會造成太多額外的計算成本。

2010年,Nair和Hinton[56]提出ReLU實質(zhì)上解決了傳統(tǒng)tanh和sigmoid激活函數(shù)中經(jīng)常遇到的梯度消失問題。隨后,LReLU[54]、PReLU[24]、ReLU6[28]、ScaledExponential線性單元(SELU)[35]、Swish[59]、hard Swish[27]和Mish[55]等也被用來解決梯度消失問題。LReLU和PReLU的主要目的是解決輸出小于零時ReLU的梯度為零的問題。對于ReLU6和硬開關(guān),它們是專門為量化網(wǎng)絡(luò)設(shè)計的。為了實現(xiàn)神經(jīng)網(wǎng)絡(luò)的自規(guī)范化,提出了一種SELU激活函數(shù)。值得注意的是Swish和Mish都是連續(xù)可微的激活函數(shù)。

在基于深度學(xué)習(xí)的目標(biāo)檢測中,常用的后處理方法是NMS,它可以過濾那些對同一目標(biāo)預(yù)測不好的bbox,只保留響應(yīng)較高的候選bbox。NMS試圖改進(jìn)的方法與優(yōu)化目標(biāo)函數(shù)的方法是一致的。NMS提出的原始方法不考慮上下文信息,因此采用Girshicketal。[19] 在R-CNN中增加分類可信度得分作為參考,根據(jù)可信度得分的順序,貪婪的NMS按照從高到低的順序進(jìn)行。

對于SoftMs[1],它考慮了對象的遮擋可能導(dǎo)致貪婪的具有IoU分?jǐn)?shù)的NMS的可信度下降的問題。DIoU NMS[99]開發(fā)者的思路是在軟NMS的基礎(chǔ)上,在BBox篩選過程中加入中心點距離的信息,值得一提的是,由于以上的后處理方法都沒有直接涉及到采集到的圖像特征,在后續(xù)的開發(fā)中不再需要后處理無錨法。

  1. Methodology

其基本目標(biāo)是神經(jīng)網(wǎng)絡(luò)在生產(chǎn)系統(tǒng)中的快速運行和并行計算的優(yōu)化,而不是低計算量理論指標(biāo)(BFLOP)。本文提出了兩種實時神經(jīng)網(wǎng)絡(luò)方案:

?對于GPU,本文在卷積層中使用少量組(1-8):CSPResNeXt50/CSPDarknet53

?對于VPU-本文使用分組卷積,但本文不使用Squeeze-and-excitement(SE)塊-具體來說,這包括以下模型:Ef ficientnet lite/MixNet[76]/GhostNet[21]/mobilenet3

3.1. Selection of architecture

本文的目標(biāo)是找到輸入網(wǎng)絡(luò)分辨率、卷積層數(shù)、參數(shù)數(shù)(濾波器尺寸2濾波器信道/組)和層輸出數(shù)(濾波器)之間的最佳平衡。例如,本文的大量研究表明,就ILSVRC2012(ImageNet)數(shù)據(jù)集上的對象分類而言,CSPResNext50比CSPDarknet53要好得多[10]。然而,相反地,CSPDarknet53在MS-COCO數(shù)據(jù)集上的檢測對象的CSPResNext50 interms上要好于CSPResNext50[46]。

下一個目標(biāo)是為增加接收場選擇額外的塊,并為不同的檢測級別從不同的主干級別選擇最佳的參數(shù)聚集方法:

例如,FPN、PAN、ASFF、BiFPN。對于檢測來說,分類最佳的參考模型并不總是最優(yōu)的。

與分類不同的是,檢測要求如下:

?更高的輸入網(wǎng)絡(luò)尺寸(分辨率)-用于檢測多個小尺寸物體

?更多層-用于更高的接收場,以覆蓋輸入網(wǎng)絡(luò)的增大尺寸

?更多參數(shù)-使模型能夠在單個圖像中檢測多個不同大小的對象

假設(shè)本文可以假設(shè)對于較大的接收野尺寸(卷積層的數(shù)量較大,為3×3)和較大數(shù)量的參數(shù),應(yīng)選擇作為主干。表1顯示了CSPResNeXt50、CSPDarknet53和Ef ficientnet B3的信息。CSPResNext50僅包含16個卷積層3×3、425×425接收場和20.6 M參數(shù),而CSPDarknet53包含29個卷積層3×3、725×725接收場和27.6 M參數(shù)。理論上的證明,加上本文的大量實驗,表明CSPDarknet53神經(jīng)網(wǎng)絡(luò)是兩者作為檢測主干的最佳模型。

不同大小的接收區(qū)的影響總結(jié)如下:

?最大對象大小-允許查看整個對象

?網(wǎng)絡(luò)大小允許查看對象周圍的上下文

?超過網(wǎng)絡(luò)大小-增加圖像點和最終激活之間的連接數(shù)。

本文在CSPDarknet53上添加了SPP塊,因為它顯著增加了接收字段,分離出了最重要的上下文特征,并且?guī)缀醪粫档途W(wǎng)絡(luò)運行速度。本文用PANet代替YOLOv3中的FPN,從不同的主干層對不同的檢測層進(jìn)行參數(shù)聚合。

最后,選擇CSPDarknet53骨干網(wǎng)、SPP附加模塊、PANet路徑聚合頸部和YOLOv3(基于錨的)頭部作為YOLOv4的體系結(jié)構(gòu)。

在未來,本文計劃大幅擴展檢測的免費包(BoF)內(nèi)容,理論上可以解決一些問題,提高檢測的精度,并以實驗的方式依次檢查每個特征的影響。本文不使用跨GPU批處理規(guī)范化(CGBN或SyncBN)或昂貴的專用設(shè)備。這允許任何人在傳統(tǒng)圖形處理器(如GTX 1080Ti或RTX 2080Ti)上復(fù)制本文的最新成果。

3.2. Selection of BoF and BoS

為了改進(jìn)目標(biāo)檢測訓(xùn)練,CNN通常使用以下方法:

?激活:ReLU、泄漏ReLU、參數(shù)ReLU、ReLU6、SELU、Swish或Mish

?邊界框回歸損失:MSE、IoU、GIoU、CIoU、DIoU

?數(shù)據(jù)增強:剪切、混合、剪切

?正則化方法:DropOut、DropPath[36]、space DropOut[79]或DropBlock

?按平均值和方差對網(wǎng)絡(luò)激活進(jìn)行規(guī)范化:批處理規(guī)范化(BN)[32]、跨GPU批處理規(guī)范化(CGBN或SyncBN)[93]、過濾器響應(yīng)規(guī)范化(FRN)[70]或跨迭代批處理規(guī)范化(CBN)[89]

?跳過連接:剩余連接、加權(quán)剩余連接、多輸入加權(quán)剩余連接或跨級部分連接(CSP) 至于訓(xùn)練激活功能,由于PReLU和SELU更難訓(xùn)練,并且ReLU6是專門為量化網(wǎng)絡(luò)設(shè)計的,因此本文從候選列表中刪除了上述激活功能。在重新規(guī)范化方法中,發(fā)表DropBlock的人詳細(xì)比較了他們的方法和其他方法,他們的正則化方法贏得了很多。因此,本文毫不猶豫地選擇DropBlock作為正則化方法。至于規(guī)范化方法的選擇,由于本文關(guān)注的是一種只使用一個GPU的訓(xùn)練策略,所以不考慮syncBN。

3.3. Additional improvements

為了使所設(shè)計的檢測更適合單GPU的訓(xùn)練,本文做了如下的額外設(shè)計和改進(jìn):

?本文介紹了一種新的數(shù)據(jù)增強拼接和自我對抗訓(xùn)練(SAT)方法

?本文在應(yīng)用遺傳算法時選擇最佳超參數(shù)

?本文修改了一些現(xiàn)有的方法,使本文的設(shè)計適合于有效的訓(xùn)練和檢測-修改的SAM、修改的PAN和跨小批量標(biāo)準(zhǔn)化(CmBN)馬賽克代表了一種新的數(shù)據(jù)增強方法,混合了4幅訓(xùn)練圖像。

因此,4種不同的背景是混合,而CutMix只混合2個輸入圖像。這允許檢測正常上下文之外的對象。此外,批處理規(guī)范化從每一層上的4個不同圖像計算激活統(tǒng)計信息。這大大減少了對大批量生產(chǎn)的需求。自對抗訓(xùn)練(SAT)也代表了一種新的數(shù)據(jù)增強技術(shù),它分為兩個前后階段。在第一階段,神經(jīng)網(wǎng)絡(luò)改變原始圖像而不是網(wǎng)絡(luò)權(quán)值。通過這種方式,神經(jīng)網(wǎng)絡(luò)對自身進(jìn)行對抗性攻擊,改變原始圖像,從而產(chǎn)生圖像上存在節(jié)點所需對象的欺騙。在第二階段中,訓(xùn)練神經(jīng)網(wǎng)絡(luò)以正常方式檢測該修改圖像上的目標(biāo)。

CmBN表示CBN修改版本,如圖4所示,定義為跨小批量標(biāo)準(zhǔn)化(CmBN)。這只收集單個批次內(nèi)小批量之間的統(tǒng)計數(shù)據(jù)。本文將SAM從空間注意修改為點注意,并替換PAN到連接的快捷連接,分別如圖5和圖6所示。

3.4. YOLOv4

在本節(jié)中,本文將詳細(xì)介紹YOLOv4。

YOLOv4包括:

? Backbone: CSPDarknet53
[81]

? Neck: SPP [25], PAN [49]

? Head: YOLOv3 [63]

?主干:CSPDarknet53[81]

?頸部:SPP[25],PAN[49]

?頭部:YOLOv3[63]

Yolov4用途:

?主干線免費包(BoF):CutMix和Mosaic數(shù)據(jù)增強、DropBlock正則化、類標(biāo)簽平滑

?主干網(wǎng)專用包(BO):誤激活、跨階段部分連接(CSP)、多輸入加權(quán)剩余連接(MiWRC)

?檢測的免費包(BoF):CIoU丟失,CmBN,DropBlock正則化,馬賽克數(shù)據(jù)增強,自我對抗訓(xùn)練,消除網(wǎng)格敏感度,使用多個錨實現(xiàn)單一地面真理,cosineanAlingScheduler[52],最佳超參數(shù),隨機訓(xùn)練形狀

?檢測專用包(BoS):Mish激活、SPP塊、SAM塊、泛路徑聚合塊、DIoU NMS Experiments

  1. Experiments

本文測試了不同訓(xùn)練改進(jìn)技術(shù)對ImageNet(ILSVRC2012val)數(shù)據(jù)集分類精度的影響,然后測試了MS COCO(test dev 2017)數(shù)據(jù)集上檢測的精度。

4.1. Experimental setup

在ImageNet圖像分類實驗中,默認(rèn)的超參數(shù)如下:訓(xùn)練步長為8000000;批大小為128,最小批大小為32;采用多項式衰減學(xué)習(xí)率調(diào)度策略,初始學(xué)習(xí)率為0.1;預(yù)熱步長為1000;動量和權(quán)重衰減分別設(shè)置為0.9和0.005。本文所有的BoS實驗都使用與默認(rèn)設(shè)置相同的超參數(shù),在BoF實驗中,本文添加了50%的額外訓(xùn)練步驟。在BoF實驗中,本文驗證了MixUp、CutMix、Mosaic、模糊數(shù)據(jù)增強和標(biāo)簽平滑正則化方法。在BoS實驗中,本文比較了sofLReLU、Swish和Mish激活函數(shù)的效果。所有實驗均采用a1080 Ti或2080ti GPU進(jìn)行訓(xùn)練。

在MS-COCO目標(biāo)檢測實驗中,默認(rèn)超參數(shù)為:訓(xùn)練步長為500500;采用步長衰減學(xué)習(xí)速率調(diào)度策略,初始學(xué)習(xí)速率為0.01,在400000步和450000步分別乘以因子0.1;分別設(shè)置動量衰減和權(quán)重衰減分別為0.9和0.0005。所有架構(gòu)都使用單個GPU執(zhí)行64批的多尺度訓(xùn)練,而最小批大小為8或4取決于體系結(jié)構(gòu)和GPU內(nèi)存限制。除了使用遺傳算法進(jìn)行超參數(shù)搜索實驗外,所有其他實驗都使用默認(rèn)設(shè)置。遺傳算法利用YOLOv3 SPP進(jìn)行帶GIoU損失的訓(xùn)練,搜索300個時間段的最小val 5k集。采用搜索學(xué)習(xí)率0.00261、動量0.949、IoU閾值指定地面真值0.213、損失歸一化器0.07進(jìn)行遺傳算法實驗。

本文已經(jīng)驗證了大量的BoF,包括網(wǎng)格敏感度消除,馬賽克數(shù)據(jù)增強,IoU閾值,遺傳算法,類標(biāo)簽平滑,跨小批量規(guī)范化,自對抗訓(xùn)練,余弦退火調(diào)度,動態(tài)小批量大小,DropBlock,優(yōu)化錨,不同種類的oulosses。本文還對各種BoS進(jìn)行了實驗,包括Mish、SPP、SAM、RFB、BiFPN和Gaussian YOLO[8]。對于所有的實驗,本文只使用一個GPU進(jìn)行訓(xùn)練,所以不使用syncBN等優(yōu)化多個GPU的技術(shù)。

4.2. In?uence of different features on Classi?er training

首先,本文研究不同特征對分類訓(xùn)練的影響;具體來說,如圖7所示,類標(biāo)簽平滑的影響,不同數(shù)據(jù)增強技術(shù)的影響,雙邊模糊、混合、剪切和鑲嵌,以及不同激活的影響,如漏ReLU(默認(rèn))、Swish和Mish。

在本文的實驗中,如表2所示,通過引入CutMix和Mosaic數(shù)據(jù)增強、類標(biāo)簽平滑和Mish激活等功能,分類精度得到了提高。因此,本文用于分級訓(xùn)練的BoF骨干(免費包)包括以下內(nèi)容:CutMix和Mosaic數(shù)據(jù)增強和類標(biāo)簽平滑。此外,本文使用Mish激活作為補充選項,如表2和表3所示。


4.3. In?uence of different features on Detector training

進(jìn)一步的研究涉及不同的免費包(BoF檢測)對檢測訓(xùn)練精度的影響,如表4所示。本文通過研究在不影響FPS的情況下提高檢測精度的不同特性,顯著地擴展了BoF列表:

?S:消除網(wǎng)格敏感度——方程bx=σ(tx)+cx,by=σ(ty)+cy,其中cx和cy始終是整數(shù),在YOLOv3中用于評估目標(biāo)坐標(biāo),因此,接近cx或cx+1值的bx值需要極高的tx絕對值。本文通過將sigmoid乘以一個超過1.0的因子來解決這個問題,從而消除了物體無法檢測到的網(wǎng)格效應(yīng)。

?M:在訓(xùn)練期間使用4-圖像拼接而不是單個圖像進(jìn)行拼接數(shù)據(jù)增強 ?IT:IoU閾值-使用多個錨定一個地面真相IoU(真相,錨定)>IoU閾值

?GA:遺傳算法-使用遺傳算法在前10%時間段的網(wǎng)絡(luò)訓(xùn)練期間選擇最佳超參數(shù)

?LS:類標(biāo)簽平滑-使用類標(biāo)簽平滑進(jìn)行sigmoid激活

?CBN: CmBN-使用跨小批量規(guī)范化來收集整個批次內(nèi)的統(tǒng)計信息,而不是在單個小批量內(nèi)收集統(tǒng)計信息

?CA:余弦退火調(diào)度器在正弦訓(xùn)練期間改變學(xué)習(xí)率

?DM:動態(tài)小批量-使用隨機訓(xùn)練形狀,在小分辨率訓(xùn)練期間自動增加小批量

?OA:使用用于512x512網(wǎng)絡(luò)分辨率訓(xùn)練的時間軸優(yōu)化傳感器

?GIoU、CIoU、DIoU、MSE-使用不同的損失算法進(jìn)行有界盒回歸如表5所示,進(jìn)一步的研究涉及不同的特種包(BoS檢測)對檢測訓(xùn)練精度的影響,包括PAN、RFB、SAM、高斯YOLO(G)和ASFF。在本文的實驗中,當(dāng)使用SPP、PAN和SAM時,檢測獲得最佳性能。

4.4. In?uence of different backbones and pretrained weightings on Detector
training

進(jìn)一步研究不同主干模型對檢測精度的影響,如表6所示。本文注意到,就檢測精度而言,具有最佳分類精度的模型并不總是最佳的。

首先,盡管使用不同特征訓(xùn)練的CSPResNeXt50模型的分類精度高于CSPDarknet53模型,但CSPDarknet53模型在目標(biāo)檢測方面顯示出更高的精度。

其次,使用BoF和Mish進(jìn)行CSPResNeXt50分類訓(xùn)練可以提高分類精度,但進(jìn)一步應(yīng)用這些預(yù)先訓(xùn)練的權(quán)重進(jìn)行檢測訓(xùn)練會降低檢測精度。然而,使用BoF和Mish進(jìn)行CSPDarknet53分類訓(xùn)練可提高分類和使用該分類預(yù)先訓(xùn)練權(quán)重的檢測的準(zhǔn)確性。結(jié)果表明,主干CSPDarknet53比CSPResNeXt50更適合于檢測。 本文觀察到,CSPDarknet53模型通過各種改進(jìn)顯示出更大的能力來提高檢測的精度。

4.5. In?uence of different mini-batchsize on Detector training

最后,本文分析了使用不同小批量訓(xùn)練的模型得到的結(jié)果,結(jié)果如表7所示。從表7的結(jié)果可以看出,在加入BoF和BoS訓(xùn)練策略后,小批量對檢測的性能幾乎沒有影響。結(jié)果表明,BoF和BoS引入后,不再需要使用昂貴的gpu進(jìn)行訓(xùn)練。換句話說,任何人都只能使用傳統(tǒng)的GPU來訓(xùn)練優(yōu)秀的檢測。


  1. Results

圖8顯示了與其他最先進(jìn)的目標(biāo)檢測的比較結(jié)果。本文的YOLOv4位于P-are最優(yōu)曲線上,在速度和精度方面都優(yōu)于最快和最精確的檢測。由于不同的方法使用不同體系結(jié)構(gòu)的gpu進(jìn)行推理時間驗證,本文在Maxwell、Pascal和Volta體系結(jié)構(gòu)的常用gpu上操作YOLOv4,并將它們與其他最新方法進(jìn)行比較。表8列出了使用Maxwell GPU的幀速率比較結(jié)果,它可以是GTXTitanX(Maxwell)或Tesla M40 GPU。表9列出了使用Pascal GPU的幀速率比較結(jié)果,可以是Titan X(Pascal)、Titan Xp、GTX 1080 Ti或Tesla P100 GPU。至于表10,它列出了使用Volta GPU的幀速率比較結(jié)果,可以是Titan Volta或Tesla V100 GPU。

  1. Conclusions

本文提供最先進(jìn)的檢測,比所有可用的替代檢測更快(FPS)和更精確(MS COCO AP50…95和AP50)。所述檢測可在8-16GB-VRAM的傳統(tǒng)GPU上訓(xùn)練和使用,這使得其廣泛應(yīng)用成為可能。一級錨定檢測的最初概念已經(jīng)證明了它的可行性。本文已經(jīng)驗證了大量的特征,并選擇使用這些特征來提高分類和檢測的精度。這些特性可以作為未來研究和開發(fā)的最佳實踐。

參考文獻(xiàn)

總結(jié)

以上是生活随笔為你收集整理的YOLOv4全文阅读(全文中文翻译)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。