YOLOv4全文阅读(全文中文翻译)
YOLOv4全文閱讀(全文中文翻譯)
YOLOv4: Optimal Speed and Accuracy of Object
Detection
論文鏈接:
https://arxiv.org/pdf/2004.10934.pdf
代碼鏈接:
https://github.com/AlexeyAB/darknet
摘要
有大量的特征被認為可以提高卷積神經網絡(CNN)的精度。需要在大型數據集上對這些特征的組合進行實際測試,并對結果進行理論驗證。某些功能只對某些模型進行操作,某些問題只對某些模型進行操作,或只對小規模數據集進行操作;而某些功能(如批處理規范化和剩余連接)則適用于大多數模型、任務和數據集。本文假設這些通用特征包括加權剩余連接(WRC)、跨階段部分連接(CSP)、跨小批量規范化(CmBN)、自對抗訓練(SAT)和Mish激活。本文使用了新功能:WRC、CSP、CmBN、SAT、誤激活、馬賽克數據增強、CmBN、DropBlock正則化和CIoU丟失,并將其中一些功能結合起來,以達到以下效果:43.5%的AP(65.7%的AP50)用于MS COCO數據集,在Tesla V100上以65 FPS的實時速度。
Introduction
大多數基于CNN的目標檢測大多只適用于推薦系統。例如,通過城市攝像機搜索免費停車位是由低精度模型執行的,而汽車碰撞警告則與高精度模型相關。通過提高實時目標檢測的準確性,不僅可以將其用于提示生成推薦系統,還可以用于獨立的過程管理和減少人工輸入。在傳統圖形處理單元(GPU)上進行實時目標檢測,可以以合理的價格大量使用。最精確的現代神經網絡不能實時工作,需要大量的gpu來進行小批量的訓練。本文通過創建一個CNN來解決這些問題,CNN在傳統GPU上實時運行,而訓練只需要一個傳統GPU。
這項工作的主要目標是設計生產系統中目標檢測的快速運行速度和并行計算的優化,而不是低計算量理論指標(BFLOP)。本文希望所設計的對象可以很容易地訓練和使用。例如,任何使用傳統GPU進行訓練和測試的人都可以獲得實時、高質量和令人信服的目標檢測結果,如圖1所示的YOLOv4結果。
本文的貢獻總結如下:
-
本文開發了一個高效、強大的目標檢測模型。它使得每個人都可以使用1080Ti或2080Ti的GPU來訓練一個超快速和精確的目標檢測。
-
在檢測訓練期間,本文驗證了最先進的免費包和特殊包目標檢測方法的影響。 3. 本文修改了最新的方法,使之更有效,更適合于單一GPU訓練,包括CBN[89]、PAN[49]、SAM[85]等。
- Related work
2.1. Object detection models
現代檢測通常由兩部分組成,一部分是在圖像網上預先訓練的主干,另一部分是用來預測物體類別和邊界盒的頭部。對于運行在GPU平臺上的檢測,它們的主干可以是VGG[68]、ResNet[26]、ResNeXt[86]或DenseNet[30]。對于運行在CPU平臺上的檢測,它們的主干可以是SqueezeNet[31]、MobileNet[28、66、27、74]或Shuf flenet[97、53]。
頭部一般分為一級目標檢測和兩級目標檢測。最具代表性的兩級目標檢測是R-CNN[19]系列,包括fast R-CNN[18]、fasterR CNN[64]、R-FCN[9]和Libra R-CNN[58]。也可以使兩級目標檢測成為無錨目標檢測,例如RepPoints[87]。
對于一級目標檢測,最有代表性的模型是YOLO[61、62、63]、SSD[50]和RetinaNet[45]。近年來,無錨單級目標檢測得到了發展。這類檢測有CenterNet[13]、CornerNet[37,38]、FCOS[78]等,近年來發展起來的目標檢測往往在主干和頭部之間插入一些層,這些層通常用于收集不同階段的特征圖。本文可以稱之為目標檢測的頸部。通常,頸部由幾個自下而上的路徑和幾個自上而下的路徑組成。具有這種機制的網絡包括特征金字塔網絡(FPN)[44]、路徑聚合網絡(PAN)[49]、BiFPN[77]和NAS-FPN[17]。
除上述模型外,一些研究者還將重點放在直接構建用于目標檢測的新骨干網(DetNet[43]、DetNAS[7])或新的整體模型(SpineNet[12]、hitdector[20])。 綜上所述,通常目標檢測由幾個部分組成:
? 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
通常,傳統的目標檢測是離線訓練的。因此,研究者總是希望利用這一優勢,開發出更好的訓練方法,使目標檢測在不增加推理成本的情況下獲得更好的精度。本文將這些只改變訓練策略或只增加訓練成本的方法稱為“免費包”,目標檢測方法通常采用的滿足免費包定義的方法是數據增強。數據增強的目的是增加輸入圖像的可變性,使所設計的目標檢測模型對來自不同環境的圖像具有更高的魯棒性。例如,光照畸變和幾何畸變是兩種常用的數據增強方法,它們有利于目標檢測任務。在處理光照失真時,本文調整圖像的亮度、對比度、色調、飽和度和噪聲。對于幾何失真,本文添加了隨機縮放、裁剪、偏移和旋轉。上述數據增強方法均為逐像素調整,并且保留調整區域中的所有原始像素信息。
此外,一些從事數據增強的研究者把重點放在模擬物體遮擋問題上。在圖像分類和目標檢測方面取得了良好的效果。例如,random erase[100]和CutOut[11]可以隨機選擇圖像中的矩形區域,并以0的隨機或互補值填充。至于探測搜索(69)和網格掩碼(6),它們隨機或均勻地選擇圖像中的多個矩形區域,并將它們替換為全部零。如果將類似的概念應用于特征地圖,則有DropOut[71]、DropConnect[80]和DropBlock[16]方法。此外,一些研究者還提出了利用多幅圖像進行數據增強的方法。例如,MixUp[92]使用兩個圖像以不同的系數比率進行乘法和疊加,然后使用這些疊加比率調整標簽。
對于CutMix[91],它是將裁剪后的圖像覆蓋到其他圖像的矩形區域,并根據混合區域的大小調整標簽。除了上述方法外,樣式轉移GAN[15]還用于數據增強,這樣的使用可以有效地減少CNN學習到的紋理偏差。與以上提出的各種方法不同,一些其他的免費包方法致力于解決這些數據集中的mantic分布可能存在偏差的問題。在處理語義分布偏差問題時,一個非常重要的問題是不同類之間存在數據不平衡的問題,這一問題通常通過兩級對象檢測中的硬負示例挖掘[72]或在線硬示例挖掘[67]來解決。
但示例挖掘方法不適用對于單級目標檢測,由于這種檢測屬于密集預測結構。因此,Lin等人
[45]提出了焦點損失的概念,以解決不同類別之間存在的數據不平衡問題。另一個非常重要的問題是,很難表達不同類別之間的關聯度與一個熱門的硬性表示之間的關系。此表示方案通常在執行標記時使用。文[73]提出的標簽平滑是將硬標簽轉化為軟標簽進行訓練,使模型更加健壯。為了獲得更好的軟標簽,Islam 等人[33]引入了知識蒸餾的概念來設計標簽關系網絡。
最后一個亮度是邊界盒回歸的目標函數。傳統的目標檢測通常采用均方誤差(MSE)直接對BBox的中心點坐標和高度、寬度進行回歸。
然而,直接估計BBox中每個點的坐標值就是把這些點作為自變量來處理,但實際上并不考慮對象本身的完整性。為了使這個問題得到更好的處理,一些研究人員最近提出了IoU損失[90],其中考慮了預測BBox面積和地面真實BBox面積的覆蓋。IoU損耗計算過程將通過執行IoU和地面真值來觸發BBox四個坐標點的計算,然后將生成的結果連接成一個完整的代碼。由于IoU是尺度不變的表示,它可以解決傳統方法計算{x,y,w,h}的l1或l2損失時,損失會隨著尺度的增大而增大的問題。最近,一些研究人員繼續改善借據損失。例如,GIoU loss[65]是除了覆蓋區域之外還包括對象的形狀和方向。他們建議找出能同時覆蓋預測BBox和地面真值BBox的最小面積BBox,并使用此BBox作為分母來代替IoU損失中最初使用的分母。對于DIoU損失[99],它另外考慮了物體中心的距離,而CIoU損失[99],另一方面,它同時考慮了重疊區域、中心點之間的距離和光譜。CIoU算法在BBox回歸問題上具有較好的收斂速度和精度。
2.3. Bag of specials
對于那些只會增加少量推理成本但能顯著提高目標檢測精度的插件模塊和后處理方法,本文稱之為“特殊包”。一般來說,這些插件模塊用于增強模型中的某些屬性,如擴大接受域、引入注意機制、增強特征集成能力等,后處理是篩選模型預測結果的一種方法??捎糜谠鰪姼惺芤暗某R娔K有SPP[25]、ASPP[5]和RFB[47]。SPP模塊源于空間金字塔匹配(SPM)[39],SPMs最初的方法是將特征圖分割成若干個d×d相等的塊,其中d可以是{1,2,3,…},從而形成空間金字塔,然后提取一袋字的特征。SPP將SPM集成到CNN中,使用max池操作而不是包字操作。自He等人提出SPP模塊以來
[25]提出一維特征向量,不適用于全卷積網絡。
因此,在YOLOv3[63]的設計中,Redmon和Farhadi改進了SPP模塊,將最大池輸出與內核大小k×k(其中k={1,5,9,13},步長等于1)連接起來。在這種設計下,相對較大的k×k最大池有效地增加了主干特征的接收范圍。在加入了改進版的SPP模塊后,YOLOv3-608在MS-COCO目標檢測任務中以0.5%的額外計算代價將AP50升級了2.7%。ASPP[5]模與改進的SPP模在運算上的區別主要是原始k×k核大小、最大步長池等于1到幾個3×3核大小、擴展比等于k、步長等于1個獨立卷積運算。RFB模塊是利用k×k核的幾個擴展卷積,擴展比為k,步長為1,得到比ASPP更全面的空間覆蓋。RFB[47]僅需7%的額外推斷時間,即可將MS-COCO上SSD的AP50提高5.7%。在目標檢測中常用的注意模塊主要分為通道注意和點注意,這兩種注意模型的代表分別是擠壓和激發(SE)[29]和空間注意模塊(SAM)[85]。雖然SE模塊可以在ImageNet圖像分類任務中以僅增加2%的計算量為代價提高ResNet50的功率1%top-1精度,但在GPU上,它通常會增加約10%的推理時間,因此更適合在移動設備中使用。但是對于SAM,它只需要支付0.1%的額外計算,并且它可以提高ResNet50 SE 0.5%在ImageNet圖像分類任務中的top-1精度。最重要的是,它根本不影響GPU上的推理速度。
在特征集成中,早期的做法是使用skip連接[51]或hyper column[22]將低級物理特征集成到高級語義特征。隨著FPN等多尺度預測方法的流行,人們提出了許多集成不同特征金字塔的輕量級模塊。這類模塊包括SFAM[98]、ASFF[48]和BiFPN[77]。SFAM的主要思想是利用SE模塊對多尺度級聯特征映射進行信道級重加權。對于ASFF,它使用softmax作為逐點重加權,然后添加不同尺度的特征映射。在BiFPN中,提出了多輸入加權殘差連接來進行尺度層次的加權,然后加入不同尺度的特征映射。
在深度學習的研究中,一些人把注意力放在尋找良好的激活功能上。一個好的激活函數可以使梯度更有效地傳播,同時不會造成太多額外的計算成本。
2010年,Nair和Hinton[56]提出ReLU實質上解決了傳統tanh和sigmoid激活函數中經常遇到的梯度消失問題。隨后,LReLU[54]、PReLU[24]、ReLU6[28]、ScaledExponential線性單元(SELU)[35]、Swish[59]、hard Swish[27]和Mish[55]等也被用來解決梯度消失問題。LReLU和PReLU的主要目的是解決輸出小于零時ReLU的梯度為零的問題。對于ReLU6和硬開關,它們是專門為量化網絡設計的。為了實現神經網絡的自規范化,提出了一種SELU激活函數。值得注意的是Swish和Mish都是連續可微的激活函數。
在基于深度學習的目標檢測中,常用的后處理方法是NMS,它可以過濾那些對同一目標預測不好的bbox,只保留響應較高的候選bbox。NMS試圖改進的方法與優化目標函數的方法是一致的。NMS提出的原始方法不考慮上下文信息,因此采用Girshicketal。[19] 在R-CNN中增加分類可信度得分作為參考,根據可信度得分的順序,貪婪的NMS按照從高到低的順序進行。
對于SoftMs[1],它考慮了對象的遮擋可能導致貪婪的具有IoU分數的NMS的可信度下降的問題。DIoU NMS[99]開發者的思路是在軟NMS的基礎上,在BBox篩選過程中加入中心點距離的信息,值得一提的是,由于以上的后處理方法都沒有直接涉及到采集到的圖像特征,在后續的開發中不再需要后處理無錨法。
- Methodology
其基本目標是神經網絡在生產系統中的快速運行和并行計算的優化,而不是低計算量理論指標(BFLOP)。本文提出了兩種實時神經網絡方案:
?對于GPU,本文在卷積層中使用少量組(1-8):CSPResNeXt50/CSPDarknet53
?對于VPU-本文使用分組卷積,但本文不使用Squeeze-and-excitement(SE)塊-具體來說,這包括以下模型:Ef ficientnet lite/MixNet[76]/GhostNet[21]/mobilenet3
3.1. Selection of architecture
本文的目標是找到輸入網絡分辨率、卷積層數、參數數(濾波器尺寸2濾波器信道/組)和層輸出數(濾波器)之間的最佳平衡。例如,本文的大量研究表明,就ILSVRC2012(ImageNet)數據集上的對象分類而言,CSPResNext50比CSPDarknet53要好得多[10]。然而,相反地,CSPDarknet53在MS-COCO數據集上的檢測對象的CSPResNext50 interms上要好于CSPResNext50[46]。
下一個目標是為增加接收場選擇額外的塊,并為不同的檢測級別從不同的主干級別選擇最佳的參數聚集方法:
例如,FPN、PAN、ASFF、BiFPN。對于檢測來說,分類最佳的參考模型并不總是最優的。
與分類不同的是,檢測要求如下:
?更高的輸入網絡尺寸(分辨率)-用于檢測多個小尺寸物體
?更多層-用于更高的接收場,以覆蓋輸入網絡的增大尺寸
?更多參數-使模型能夠在單個圖像中檢測多個不同大小的對象
假設本文可以假設對于較大的接收野尺寸(卷積層的數量較大,為3×3)和較大數量的參數,應選擇作為主干。表1顯示了CSPResNeXt50、CSPDarknet53和Ef ficientnet B3的信息。CSPResNext50僅包含16個卷積層3×3、425×425接收場和20.6 M參數,而CSPDarknet53包含29個卷積層3×3、725×725接收場和27.6 M參數。理論上的證明,加上本文的大量實驗,表明CSPDarknet53神經網絡是兩者作為檢測主干的最佳模型。
不同大小的接收區的影響總結如下:
?最大對象大小-允許查看整個對象
?網絡大小允許查看對象周圍的上下文
?超過網絡大小-增加圖像點和最終激活之間的連接數。
本文在CSPDarknet53上添加了SPP塊,因為它顯著增加了接收字段,分離出了最重要的上下文特征,并且幾乎不會降低網絡運行速度。本文用PANet代替YOLOv3中的FPN,從不同的主干層對不同的檢測層進行參數聚合。
最后,選擇CSPDarknet53骨干網、SPP附加模塊、PANet路徑聚合頸部和YOLOv3(基于錨的)頭部作為YOLOv4的體系結構。
在未來,本文計劃大幅擴展檢測的免費包(BoF)內容,理論上可以解決一些問題,提高檢測的精度,并以實驗的方式依次檢查每個特征的影響。本文不使用跨GPU批處理規范化(CGBN或SyncBN)或昂貴的專用設備。這允許任何人在傳統圖形處理器(如GTX 1080Ti或RTX 2080Ti)上復制本文的最新成果。
3.2. Selection of BoF and BoS
為了改進目標檢測訓練,CNN通常使用以下方法:
?激活:ReLU、泄漏ReLU、參數ReLU、ReLU6、SELU、Swish或Mish
?邊界框回歸損失:MSE、IoU、GIoU、CIoU、DIoU
?數據增強:剪切、混合、剪切
?正則化方法:DropOut、DropPath[36]、space DropOut[79]或DropBlock
?按平均值和方差對網絡激活進行規范化:批處理規范化(BN)[32]、跨GPU批處理規范化(CGBN或SyncBN)[93]、過濾器響應規范化(FRN)[70]或跨迭代批處理規范化(CBN)[89]
?跳過連接:剩余連接、加權剩余連接、多輸入加權剩余連接或跨級部分連接(CSP) 至于訓練激活功能,由于PReLU和SELU更難訓練,并且ReLU6是專門為量化網絡設計的,因此本文從候選列表中刪除了上述激活功能。在重新規范化方法中,發表DropBlock的人詳細比較了他們的方法和其他方法,他們的正則化方法贏得了很多。因此,本文毫不猶豫地選擇DropBlock作為正則化方法。至于規范化方法的選擇,由于本文關注的是一種只使用一個GPU的訓練策略,所以不考慮syncBN。
3.3. Additional improvements
為了使所設計的檢測更適合單GPU的訓練,本文做了如下的額外設計和改進:
?本文介紹了一種新的數據增強拼接和自我對抗訓練(SAT)方法
?本文在應用遺傳算法時選擇最佳超參數
?本文修改了一些現有的方法,使本文的設計適合于有效的訓練和檢測-修改的SAM、修改的PAN和跨小批量標準化(CmBN)馬賽克代表了一種新的數據增強方法,混合了4幅訓練圖像。
因此,4種不同的背景是混合,而CutMix只混合2個輸入圖像。這允許檢測正常上下文之外的對象。此外,批處理規范化從每一層上的4個不同圖像計算激活統計信息。這大大減少了對大批量生產的需求。自對抗訓練(SAT)也代表了一種新的數據增強技術,它分為兩個前后階段。在第一階段,神經網絡改變原始圖像而不是網絡權值。通過這種方式,神經網絡對自身進行對抗性攻擊,改變原始圖像,從而產生圖像上存在節點所需對象的欺騙。在第二階段中,訓練神經網絡以正常方式檢測該修改圖像上的目標。
CmBN表示CBN修改版本,如圖4所示,定義為跨小批量標準化(CmBN)。這只收集單個批次內小批量之間的統計數據。本文將SAM從空間注意修改為點注意,并替換PAN到連接的快捷連接,分別如圖5和圖6所示。
3.4. YOLOv4
在本節中,本文將詳細介紹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數據增強、DropBlock正則化、類標簽平滑
?主干網專用包(BO):誤激活、跨階段部分連接(CSP)、多輸入加權剩余連接(MiWRC)
?檢測的免費包(BoF):CIoU丟失,CmBN,DropBlock正則化,馬賽克數據增強,自我對抗訓練,消除網格敏感度,使用多個錨實現單一地面真理,cosineanAlingScheduler[52],最佳超參數,隨機訓練形狀
?檢測專用包(BoS):Mish激活、SPP塊、SAM塊、泛路徑聚合塊、DIoU NMS Experiments
- Experiments
本文測試了不同訓練改進技術對ImageNet(ILSVRC2012val)數據集分類精度的影響,然后測試了MS COCO(test dev 2017)數據集上檢測的精度。
4.1. Experimental setup
在ImageNet圖像分類實驗中,默認的超參數如下:訓練步長為8000000;批大小為128,最小批大小為32;采用多項式衰減學習率調度策略,初始學習率為0.1;預熱步長為1000;動量和權重衰減分別設置為0.9和0.005。本文所有的BoS實驗都使用與默認設置相同的超參數,在BoF實驗中,本文添加了50%的額外訓練步驟。在BoF實驗中,本文驗證了MixUp、CutMix、Mosaic、模糊數據增強和標簽平滑正則化方法。在BoS實驗中,本文比較了sofLReLU、Swish和Mish激活函數的效果。所有實驗均采用a1080 Ti或2080ti GPU進行訓練。
在MS-COCO目標檢測實驗中,默認超參數為:訓練步長為500500;采用步長衰減學習速率調度策略,初始學習速率為0.01,在400000步和450000步分別乘以因子0.1;分別設置動量衰減和權重衰減分別為0.9和0.0005。所有架構都使用單個GPU執行64批的多尺度訓練,而最小批大小為8或4取決于體系結構和GPU內存限制。除了使用遺傳算法進行超參數搜索實驗外,所有其他實驗都使用默認設置。遺傳算法利用YOLOv3 SPP進行帶GIoU損失的訓練,搜索300個時間段的最小val 5k集。采用搜索學習率0.00261、動量0.949、IoU閾值指定地面真值0.213、損失歸一化器0.07進行遺傳算法實驗。
本文已經驗證了大量的BoF,包括網格敏感度消除,馬賽克數據增強,IoU閾值,遺傳算法,類標簽平滑,跨小批量規范化,自對抗訓練,余弦退火調度,動態小批量大小,DropBlock,優化錨,不同種類的oulosses。本文還對各種BoS進行了實驗,包括Mish、SPP、SAM、RFB、BiFPN和Gaussian YOLO[8]。對于所有的實驗,本文只使用一個GPU進行訓練,所以不使用syncBN等優化多個GPU的技術。
4.2. In?uence of different features on Classi?er training
首先,本文研究不同特征對分類訓練的影響;具體來說,如圖7所示,類標簽平滑的影響,不同數據增強技術的影響,雙邊模糊、混合、剪切和鑲嵌,以及不同激活的影響,如漏ReLU(默認)、Swish和Mish。
在本文的實驗中,如表2所示,通過引入CutMix和Mosaic數據增強、類標簽平滑和Mish激活等功能,分類精度得到了提高。因此,本文用于分級訓練的BoF骨干(免費包)包括以下內容:CutMix和Mosaic數據增強和類標簽平滑。此外,本文使用Mish激活作為補充選項,如表2和表3所示。
4.3. In?uence of different features on Detector training
進一步的研究涉及不同的免費包(BoF檢測)對檢測訓練精度的影響,如表4所示。本文通過研究在不影響FPS的情況下提高檢測精度的不同特性,顯著地擴展了BoF列表:
?S:消除網格敏感度——方程bx=σ(tx)+cx,by=σ(ty)+cy,其中cx和cy始終是整數,在YOLOv3中用于評估目標坐標,因此,接近cx或cx+1值的bx值需要極高的tx絕對值。本文通過將sigmoid乘以一個超過1.0的因子來解決這個問題,從而消除了物體無法檢測到的網格效應。
?M:在訓練期間使用4-圖像拼接而不是單個圖像進行拼接數據增強 ?IT:IoU閾值-使用多個錨定一個地面真相IoU(真相,錨定)>IoU閾值
?GA:遺傳算法-使用遺傳算法在前10%時間段的網絡訓練期間選擇最佳超參數
?LS:類標簽平滑-使用類標簽平滑進行sigmoid激活
?CBN: CmBN-使用跨小批量規范化來收集整個批次內的統計信息,而不是在單個小批量內收集統計信息
?CA:余弦退火調度器在正弦訓練期間改變學習率
?DM:動態小批量-使用隨機訓練形狀,在小分辨率訓練期間自動增加小批量
?OA:使用用于512x512網絡分辨率訓練的時間軸優化傳感器
?GIoU、CIoU、DIoU、MSE-使用不同的損失算法進行有界盒回歸如表5所示,進一步的研究涉及不同的特種包(BoS檢測)對檢測訓練精度的影響,包括PAN、RFB、SAM、高斯YOLO(G)和ASFF。在本文的實驗中,當使用SPP、PAN和SAM時,檢測獲得最佳性能。
4.4. In?uence of different backbones and pretrained weightings on Detector
training
進一步研究不同主干模型對檢測精度的影響,如表6所示。本文注意到,就檢測精度而言,具有最佳分類精度的模型并不總是最佳的。
首先,盡管使用不同特征訓練的CSPResNeXt50模型的分類精度高于CSPDarknet53模型,但CSPDarknet53模型在目標檢測方面顯示出更高的精度。
其次,使用BoF和Mish進行CSPResNeXt50分類訓練可以提高分類精度,但進一步應用這些預先訓練的權重進行檢測訓練會降低檢測精度。然而,使用BoF和Mish進行CSPDarknet53分類訓練可提高分類和使用該分類預先訓練權重的檢測的準確性。結果表明,主干CSPDarknet53比CSPResNeXt50更適合于檢測。 本文觀察到,CSPDarknet53模型通過各種改進顯示出更大的能力來提高檢測的精度。
4.5. In?uence of different mini-batchsize on Detector training
最后,本文分析了使用不同小批量訓練的模型得到的結果,結果如表7所示。從表7的結果可以看出,在加入BoF和BoS訓練策略后,小批量對檢測的性能幾乎沒有影響。結果表明,BoF和BoS引入后,不再需要使用昂貴的gpu進行訓練。換句話說,任何人都只能使用傳統的GPU來訓練優秀的檢測。
- Results
圖8顯示了與其他最先進的目標檢測的比較結果。本文的YOLOv4位于P-are最優曲線上,在速度和精度方面都優于最快和最精確的檢測。由于不同的方法使用不同體系結構的gpu進行推理時間驗證,本文在Maxwell、Pascal和Volta體系結構的常用gpu上操作YOLOv4,并將它們與其他最新方法進行比較。表8列出了使用Maxwell GPU的幀速率比較結果,它可以是GTXTitanX(Maxwell)或Tesla M40 GPU。表9列出了使用Pascal GPU的幀速率比較結果,可以是Titan X(Pascal)、Titan Xp、GTX 1080 Ti或Tesla P100 GPU。至于表10,它列出了使用Volta GPU的幀速率比較結果,可以是Titan Volta或Tesla V100 GPU。
- Conclusions
本文提供最先進的檢測,比所有可用的替代檢測更快(FPS)和更精確(MS COCO AP50…95和AP50)。所述檢測可在8-16GB-VRAM的傳統GPU上訓練和使用,這使得其廣泛應用成為可能。一級錨定檢測的最初概念已經證明了它的可行性。本文已經驗證了大量的特征,并選擇使用這些特征來提高分類和檢測的精度。這些特性可以作為未來研究和開發的最佳實踐。
參考文獻
略
總結
以上是生活随笔為你收集整理的YOLOv4全文阅读(全文中文翻译)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像实例分割:CenterMask
- 下一篇: ADAS测试