【論文翻譯】YOLOv4: Optimal Speed and Accuracy of Object Detection

《YOLOv4: Optimal Speed and Accuracy of Object Detection》

發表會議: CVPR 2020

Alexey Bochkovskiy Chien-Yao Wang Hong-Yuan Mark Liao

Institute of Information Science Academia Sinica, Taiwan

Abstract:

有大量的功能據說可以提高卷積神經網絡(CNN)的準確性。需要在大型數據集上對這些特性的組合進行實際測試,並對結果進行理論驗證。某些特性可用於某些特定的問題,或僅用於小規模的數據集;而一些特性,如批處理規範化和剩餘連接,則適用於大多數模型、任務和數據集。我們假設這些通用特性包括加權剩餘連接(WRC)、跨階段部分連接(CSP)、跨小批量標準化(CmBN)、自反訓練(SAT)和激活。我們使用新特性:拉力,CSP, CmBN,坐,米什激活,馬賽克數據增加,CmBN, DropBlock正規化,意識喪失,並結合一些實現先進的結果:43.5%的美聯社(65.7% AP50)女士可可數據集的實時速度∼65 FPS特斯拉V100。源代碼在https://github.com/AlexeyAB/darknet

1. Introduction:

大多數基於cnn的對象檢測器基本上只適用於推薦系統。例如,通過城市攝像機尋找免費停車位是由慢速準確的模型執行,而汽車碰撞警告與快速不準確的模型相關。提高實時目標探測器的準確性不僅可以用於提示生成推薦系統,還可以用於獨立流程管理和減少人工輸入。傳統圖形處理單元(GPU)上的實時對象檢測操作允許它們以可承受的價格大量使用。最精確的現代神經網絡不能實時運行,需要大量的gpu來進行大規模的小批量訓練。我們通過創建一個在傳統GPU上實時運行的CNN來解決這些問題,而訓練只需要一個傳統GPU。

在這裏插入圖片描述

圖1:所提議的YOLOv4與其他最先進的對象探測器的比較。YOLOv4的運行速度比EfficientDet快兩倍,性能也差不多。分別提高YOLOv3的AP和FPS 10%和12%。

這項工作的主要目標是在生產系統中設計一個快速運行的目標探測器,並對並行計算進行優化,而不是設計一個低計算量的理論指示器(BFLOP)。我們希望設計的對象可以很容易地訓練和使用。例如,任何使用傳統GPU進行訓練和測試的人都可以獲得實時、高質量、令人信服的對象檢測結果,如圖1所示的YOLOv4結果。我們的貢獻總結如下:

1. 我們開發了一個高效、強大的目標檢測模型。它使每個人都可以使用1080 Ti或2080 Ti GPU來訓練一個超級快速和準確的目標探測器。

2. 我們驗證了在檢測器訓練過程中,最先進的袋- offreebies和袋- specials對象檢測方法的影響。

3. 我們修改了最先進的方法,使其更有效,更適合於單GPU訓練,包括CBN[89]、PAN[49]、SAM[85]等。

在這裏插入圖片描述

2. Related work:

2.1. Object detection models:

現代探測器通常由兩個部分組成,一個是在ImageNet上預先訓練的主幹,另一個是用來預測物體的類和邊界框的頭部。對於那些運行在GPU平臺上的檢測器,它們的主幹可以是VGG[68]、ResNet[26]、ResNeXt[86]或DenseNet[30]。對於那些運行在CPU平臺上的檢測器,它們的主幹可以是SqueezeNet[31]、MobileNet[28,66,27,74]或ShuffleNet[97,53]。至於頭部,通常分爲兩類:、一級目標探測器和二級目標探測器。最具代表性的兩級目標探測器是R-CNN[19]系列,包括fast R-CNN [18], faster R-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]等。近年來發展起來的目標探測器常常在基幹和頭之間插入一些層,這些層通常用來收集不同階段的特徵圖。我們可以稱它爲物體探測器的頸部。通常,一個領由幾個自底向上的路徑和幾個自頂向下的路徑組成。具有該機制的網絡包括特徵金字塔網絡(Feature Pyramid Network, FPN)[44]、路徑匯聚網絡(Path Aggregation Network, PAN)[49]、BiFPN[77]和NAS-FPN[17]。除了上述模型外,一些研究者還着重於直接構建一個新的主幹(DetNet [43], DetNAS[7])或一個新的整體模型(SpineNet [12], HitDetector[20])用於對象檢測。

綜上所述,一個普通的物體探測器由以下幾個部分組成:

在這裏插入圖片描述

2.2. Bag of freebies:

通常,傳統的目標探測器是離線訓練的。因此,研究人員總是希望利用這一優勢,開發出更好的訓練方法,使目標探測器在不增加推理成本的情況下獲得更好的精度。我們稱這些只會改變培訓策略或只會增加培訓成本的方法爲“免費贈品”。“對象檢測方法中經常採用的、符合免費贈品包定義的是數據擴充。數據擴充的目的是增加輸入圖像的可變性,使所設計的目標檢測模型對不同環境下獲得的圖像具有更高的魯棒性。例如,光度畸變和幾何畸變是兩種常用的數據增強方法,它們對目標檢測任務無疑是有益的。在處理光度失真時,我們調整圖像的亮度、對比度、色調、飽和度和噪聲。對於幾何畸變,我們添加了隨機縮放、剪切、翻轉和旋轉。

上述數據增強方法均爲像素級調整,調整區域內的所有原始像素信息均保留。此外,一些從事數據擴充的研究人員把重點放在模擬物體遮擋問題上。在圖像分類和目標檢測方面取得了良好的效果。例如,random wipe[100]和CutOut[11]可以隨機選擇圖像中的矩形區域,並填充一個隨機的或互補的0值。對於捉迷藏[69]和網格掩碼[6],它們隨機或均勻地選擇圖像中的多個矩形區域,並將其全部替換爲零。如果將類似的概念應用於feature map,則有DropOut[71]、DropConnect[80]和DropBlock[16]方法。此外,一些研究者提出了將多幅圖像結合在一起進行數據擴充的方法。例如,MixUp[92]使用兩幅圖像以不同的係數比率進行相乘和疊加,然後利用這些疊加比率調整標籤。CutMix[91]是將裁剪後的圖像覆蓋到其他圖像的矩形區域,並根據混合區域的大小調整標籤。除了上述方法外,style transfer GAN[15]也被用於數據擴充,這樣的使用可以有效的減少CNN學習到的紋理偏差。

與上述各種方法不同,其他一些免費贈品方法致力於解決數據集中的語義分佈可能存在偏差的問題。在處理語義分佈偏差問題時,一個非常重要的問題是存在着不同類之間的數據不平衡問題,這一問題通常通過兩階段對象檢測器中的硬反例挖掘[72]或在線硬例挖掘[67]來解決。但實例挖掘方法不適用於單級目標探測器,因爲這種探測器屬於稠密預測結構。因此,Lin等人提出了焦損來處理各類之間存在的數據不平衡問題。另一個非常重要的問題是,很難用一個熱的硬表示法來表達不同類別之間關聯程度的關係。這種表示法常用於執行標記。文獻[73]提出的標籤平滑是將硬標籤轉換爲軟標籤進行訓練,使模型更加穩健。爲了獲得更好的軟標籤,Islam等人在[33]中引入了知識蒸餾的概念來設計標籤細化網絡。

最後一袋免費贈品是邊界盒(BBox)迴歸的目標函數。傳統的目標檢測器通常使用均方誤差(Mean Square Error, MSE)直接對BBox的中心點座標和高度、寬度進行迴歸,即, {xcenter, ycenter, w, h},或左上點和右下點,即, {xtop lef t, ytop lef t, xbottom right, ybottom right}。對於基於錨的方法,是對相應的偏移量進行估計,如f集合的xcenter, f集合的ycenter, wof f集合,hof f集合}和{xtop lef t off集合,ytop lef t off集合,xbottom right off集合,ybottom right off集合}。但是,直接估計BBox中每個點的座標值,就是把這些點當作自變量,而實際上並不考慮對象本身的完整性。爲了更好地處理這個問題,一些研究者最近提出了IoU損失[90],將預測的BBox區域的覆蓋範圍和地面真實BBox區域考慮在內。IoU的丟包計算過程通過執行帶有ground truth的IoU,觸發BBox的四個座標點的計算,然後將生成的結果連接成一個完整的代碼。由於IoU是尺度不變的表示,它可以解決傳統方法在計算{x, y, w, h}的l1或l2損耗時,損耗會隨着尺度的增大而增大的問題。最近,一些研究人員繼續改善欠條損失。例如GIoU loss[65],除了覆蓋區域外,還包括了物體的形狀和方向。他們提出尋找能夠同時覆蓋預測的BBox和ground truth BBox的最小面積BBox,用這個BBox作爲分母來代替IoU損失中原來使用的分母。對於DIoU loss[99],它額外考慮了物體中心的距離,而CIoU loss[99],同時考慮了重疊區域、中心點之間的距離和長寬比。在BBox迴歸問題上,CIoU具有較好的收斂速度和精度。

2.3. Bag of specials:

對於那些僅增加少量推理成本,卻能顯著提高目標檢測精度的插件模塊和後處理方法,我們稱之爲“特價包”。這些插件模塊一般用於增強模型中的某些屬性,如擴大接受域、引入注意機制、增強特徵集成能力等,後處理是篩選模型預測結果的一種方法。

可以用來增強感受野的常用模塊有SPP[25]、ASPP[5]和RFB[47]。SPP模塊源於空間金字塔匹配(SPM) [39], SPMs原始方法是將feature map分割成若干個d×d等塊,其中d可以是{1,2,3,…,從而形成空間金字塔,然後提取bag-of-word特徵。SPP將SPM集成到CNN中,使用max-pooling操作,而不是bag-of-word操作。由於He等人提出的SPP模塊會輸出一維特徵向量,因此在全卷積網絡(FCN)中應用是不可行的。因此,在YOLOv3[63]的設計中,Redmon和Farhadi將SPP模塊改進爲最大池輸出與內核大小k×k的級聯,其中k = {1,5,9,13}, stride = 1。在本設計中,較大的k×k maxpooling有效地增加了骨幹特徵的接受域。在添加SPP模塊的改進版本後,YOLOv3-608在MS COCO對象檢測任務上對AP50by進行了2.7%的升級,增加了0.5%的額外計算量。ASPP[5]模塊與改進後的SPP模塊在運算上的區別主要體現在原始的k×k核大小上,stride的最大池大小爲1到幾個3×3核大小,擴展比爲k,擴展卷積運算的stride爲1。RFB模塊是利用k×k kernel的幾個擴張卷積,擴張比等於k, stride等於1,比ASPP獲得更全面的空間覆蓋。RFB[47]僅花費7%的額外推斷時間來增加MS COCO上SSD的ap50 5.7%。

在目標檢測中經常使用的注意模塊主要分爲兩種:通道式注意和點態注意,這兩種注意模型的代表分別是擠壓-激勵(squeeze -and-激勵,SE)[29]和空間注意模塊(Spatial attention module, SAM)[85]。儘管SE模塊可以改善的力量ResNet50 ImageNet圖像分類任務中排名前1%精度的代價只會增加2%的計算工作,但是在GPU通常會增加推理時間約10%,所以它更適合用於移動設備。但是對於SAM,它只需要額外支付0.1%的計算量,它可以提高ResNet50-SE在ImageNet圖像分類任務上的0.5% top-1準確率。最重要的是,它完全不影響GPU上的推理速度。

在特徵集成方面,早期的實踐是使用跳躍連接[51]或超列[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]、標度指數線性單元(SELU)[35]、Swish[59]、hard-Swish[27]、Mish[55]等也被用於解決梯度消失問題。LReLU和PReLU的主要目的是解決輸出小於0時ReLU的梯度爲零的問題。對於ReLU6和hard-Swish,它們是專門爲量化網絡設計的。爲了實現神經網絡的自歸一化,提出了SELU激活函數。需要注意的一點是,Swish和Mish都是連續可微的激活函數。

基於深度挖掘的對象檢測中常用的後處理方法是NMS,它可以過濾那些對同一對象預測較差的bbox,只保留響應較高的候選bbox。NMS試圖改進的方法與優化目標函數的方法是一致的。NMS提出的原始方法沒有考慮上下文信息,所以Girshick等人[19]在R-CNN中加入了分類置信度評分作爲參考,按照置信度評分的順序,從高到低依次進行貪婪NMS。對於soft NMS[1],考慮了在IoU評分的貪心NMS中,對象的遮擋可能會導致信心評分下降的問題。DIoU NMS[99]開發人員的思路是在軟NMS的基礎上,將中心點距離信息添加到BBox篩選過程中。值得一提的是,由於以上的後處理方法都不直接引用捕獲的圖像特徵,因此在後續的無錨方法開發中不再需要後處理。

在這裏插入圖片描述

表1:用於圖像分類的神經網絡參數。

3. Methodology:

其基本目標是在生產系統中提高神經網絡的運行速度和並行計算的優化速度,而不是低計算量理論指標(BFLOP)。我們提出了實時神經網絡的兩種選擇:

* 對於GPU,我們在卷積層中使用少量的組(1 - 8):CSPResNeXt50 / CSPDarknet53

* 對於VPU,我們使用grouped-convolution,但是我們不使用擠壓和興奮(SE)塊,具體來說,這包括以下模型:高效率的net -lite / MixNet [76] / GhostNet [21] / MobileNetV3

3.1. Selection of architecture:

我們的目標是在輸入網絡分辨率、卷積層數、參數數(濾波器尺寸2濾波器通道/組)和層輸出數(濾波器)之間找到最優平衡點。例如,我們的大量研究表明,在ILSVRC2012 (ImageNet)數據集[10]上的對象分類方面,CSPResNext50要比CSPDarknet53好得多。然而,相反地,CSPDarknet53在檢測MS COCO數據集[46]上的對象方面優於CSPResNext50。

下一個目標是從不同的檢測水平,如FPN、PAN、ASFF、BiFPN,從不同的主幹水平選擇額外的塊來增加感受野,並從不同的主幹水平選擇參數聚合的最佳方法。

對分類最優的參考模型不一定對檢測器最優。與分類器相比,檢測器需要:

* 更高的輸入網絡尺寸(分辨率)-用於檢測多個小尺寸對象

* 更多的層-爲一個更高的接受域覆蓋輸入網絡的增加大小

* 更多的參數-更大的能力,一個模型,以檢測多個對象的不同大小在一個單一的形象

假設我們可以選擇一個接受域較大(卷積層數較多,3×3)、參數較多的模型作爲骨幹。表1顯示了CSPResNeXt50, CSPDarknet53, efficient entnet 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通常使用以下方法:

在這裏插入圖片描述

對於訓練激活函數,由於PReLU和SELU更難訓練,而ReLU6是專門爲量化網絡設計的,因此我們將上述激活函數從候選列表中刪除。在reqularization方法上,發表DropBlock的人詳細的將他們的方法與其他方法進行了比較,他們的regularization方法取得了很大的成果。因此,我們毫不猶豫的選擇了DropBlock作爲我們的regularization方法。對於歸一化方法的選擇,由於我們關注的是隻使用一個GPU的訓練策略,所以沒有考慮syncBN。

3.3. Additional improvements:

爲了使設計的檢測器更適合於單GPU上的訓練,我們做了如下的額外設計和改進:

* 介紹了一種新的數據增強鑲嵌和自對抗訓練方法。

* 應用遺傳算法選擇最優超參數

* 我們修改了一些現有的方法,使我們的設計適合於有效的培訓和檢測-修改的SAM,修改的PAN,和交叉小批量標準化(CmBN)

提出了一種混合四幅訓練圖像的數據增強方法。因此有4種不同的上下文混合,而CutMix只混合2個輸入圖像。這允許檢測正常上下文之外的對象。此外,批處理標準化計算激活統計從4個不同的圖像在每一層。這大大減少了對大型迷你批處理大小的需求。

在這裏插入圖片描述

圖3:Mosaic表示一種新的數據擴充方法。

自對抗訓練(SAT)也代表了一種新的數據擴充技術,它分前後兩個階段進行操作。在第一階段,神經網絡改變原始圖像而不是網絡權值。通過這種方式,神經網絡對自己執行一種對抗性攻擊,改變原始圖像,製造圖像上沒有期望對象的假象。在第二階段,神經網絡以正常的方式對修改後的圖像進行檢測。

在這裏插入圖片描述

圖4:跨迷你批處理規範化。

CmBN表示CBN的修改版本,如圖4所示,定義爲跨微批量標準化(CmBN)。這僅收集單個批中的小批之間的統計信息。

我們將SAM從空間上的注意修改爲點注意,並將PAN的快捷連接改爲拼接,分別如圖5和圖6所示。

在這裏插入圖片描述

3.4. YOLOv4:

在本節中,我們將詳細介紹YOLOv4。

YOLOv4包括:

* Backbone: CSPDarknet53 [81]

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

* Head: YOLOv3 [63]

YOLO v4 uses:

* Bag of Freebies (BoF) for backbone: CutMix and Mosaic data augmentation, DropBlock regularization, Class label smoothing

* Bag of Specials (BoS) for backbone: Mish activation, Cross-stage partial connections (CSP), Multiinput weighted residual connections (MiWRC)

* Bag of Freebies (BoF) for detector: CIoU-loss, CmBN, DropBlock regularization, Mosaic data augmentation, Self-Adversarial Training, Eliminate grid sensitivity, Using multiple anchors for a single ground truth, Cosine annealing scheduler [52], Optimal hyperparameters, Random training shapes

* Bag of Specials (BoS) for detector: Mish activation, SPP-block, SAM-block, PAN path-aggregation block, DIoU-NMS

4. Experiments:

我們在ImageNet (ILSVRC 2012 val)數據集上測試了不同的訓練改進技術對分類器精度的影響,然後在MS COCO (test-dev 2017)數據集上測試了檢測器的精度。

4.1. Experimental setup:

在ImageNet圖像分類實驗中,默認的超參數如下:訓練步驟爲8,000,000;批大小和小批大小分別爲128和32;採用多項式衰減學習速率調度策略,初始學習速率爲0.1;熱身1000步;動量衰減爲0.9,重量衰減爲0.005。我們所有的BoS實驗都使用與默認設置相同的超參數,在BoF實驗中,我們添加了額外的50%的訓練步驟。在BoF實驗中,我們驗證了混合、切分、鑲嵌、模糊數據增強和標籤平滑正則化方法。在BoS實驗中,我們測試了flrelu、Swish和mish的激活功能。所有實驗都使用1080 Ti或2080 Ti GPU進行訓練。

MS COCO對象檢測實驗中,默認的超參數爲:訓練步驟爲500500;採用初始學習速率0.01的步進衰減學習速率調度策略,在400000步和450000步分別乘以因子0.1;動量衰減爲0.9,重量衰減爲0.0005。所有的架構都使用一個GPU來執行批處理大小爲64的多尺度訓練,而小批處理大小爲8或4取決於架構和GPU內存限制。除了使用遺傳算法進行超參數搜索實驗外,其他實驗均使用默認設置。遺傳算法利用YOLOv3-SPP進行帶GIoU損失的訓練,搜索300個epoch的min-val 5k集。遺傳算法實驗採用搜索學習率0.00261、動量0.949、IoU閾值分配ground truth 0.213、損失歸一化器0.07。我們已經驗證了大量的BoF,包括網格敏感性消除、馬賽克數據增強、IoU閾值、遺傳算法、類標記平滑、交叉小批量標準化、自對抗訓練、餘弦退火調度器、動態小批量大小、DropBlock、優化錨點、不同類型的IoU損失。我們還對各種BoS進行了實驗,包括Mish、SPP、SAM、RFB、BiFPN和Gaussian YOLO[8]。對於所有的實驗,我們只使用一個GPU進行訓練,所以像syncBN這樣優化多個GPU的技術並沒有被使用。

4.2. Influence of different features on Classifier training:

首先,研究了不同特徵對分類器訓練的影響;具體來說,如Fugure 7所示,類標籤平滑、不同數據增強技術、雙側模糊、混合、CutMix和馬賽克的影響,以及不同激活的影響,如Leaky-ReLU(默認)、Swish和Mish。

在這裏插入圖片描述

圖7:V數據擴充的各種方法。

在我們的實驗中,如表2所示,通過引入CutMix和Mosaic數據增強、Class label平滑、Mish激活等特徵,提高了分類器的準確率。因此,我們用於分類器訓練的bof主幹(免費包)包括以下內容:CutMix和Mosaic數據增強和類標籤平滑。此外,我們使用Mish激活作爲一個補充選項,如表2和表3所示。

在這裏插入圖片描述

4.3. Influence of different features on Detector training:

進一步研究不同袋型-袋型(BoF-detector)對檢測器訓練精度的影響,如表4所示。我們通過研究不同的特徵顯著地擴展了BoF列表,在不影響FPS的情況下提高了檢測精度:

* S:消除網格敏感性equationbx =σ(tx) +殘雪,由=σ(ty) + cy,哪裏cxand cyare總是整數,爲評估對象用於YOLOv3座標,因此,極高的txabsolute bxvalue所需的值接近cxor cx + 1的值。我們通過將sigmoid乘以一個超過1.0的因子來解決這個問題,從而消除了網格對物體不可檢測的影響。

* M:馬賽克數據增強——在訓練中使用4幅圖像的馬賽克代替單幅圖像

* IT:IoU閾值-使用多個錨爲一個單一的地面真相IoU(真相,錨)> IoU閾值

* GA:使用遺傳算法在網絡訓練的前10%的時間段內選擇最優超參數

* LS:使用類標籤平滑來激活sigmoid

* CBN: CmBN -使用跨小批標準化來收集整個批內的統計數據,而不是收集單個小批內的統計數據

* CA:改變正弦波訓練的學習速率

* DM:動態小批量大小-在小分辨率訓練中,通過使用隨機的訓練形狀自動增加小批量大小

* OA:優化錨點-使用優化的錨點進行訓練,網絡分辨率爲512x512

* 使用不同的損失算法進行有界盒迴歸

進一步研究了不同的特殊Bagof-Specials (boss -detector)對檢測器訓練精度的影響,包括PAN、RFB、SAM、Gaussian YOLO (G)、ASFF,如表5所示。在我們的實驗中,當使用SPP、PAN和SAM時,檢測器的性能最佳。

在這裏插入圖片描述

在這裏插入圖片描述

4.4. Influence of different backbones and pretrained weightings on Detector training:

進一步研究不同骨幹網模型對檢測精度的影響,如表6所示。我們注意到,具有最佳分類精度的模型在檢測器精度方面並不總是最佳的。

首先,與CSPDarknet53模型相比,cspresnext50modelstrainedwithdifferent featu抵抗的分類精度更高,但CSPDarknet53模型在目標檢測方面具有更高的精度。

其次,在CSPResNeXt50分類器訓練中使用BoF和Mish可以提高分類精度,但是在檢測器訓練中進一步使用這些預訓練權重會降低檢測器的精度。但是,在CSPDarknet53分類器訓練中使用BoF和Mish可以提高分類器和使用預先訓練權重的檢測器的準確性。最終的結果是CSPDarknet53基幹比CSPResNeXt50更適合於探測器。

我們觀察到,由於各種改進,CSPDarknet53模型顯示出了更大的提高探測器精度的能力。

在這裏插入圖片描述

4.5. Influence of different mini-batch size on Detector training:

最後,我們對不同小批量模型訓練得到的結果進行了分析,結果如表7所示。從表7的結果可以看出,加入BoF和BoS訓練策略後,小批量的訓練對檢測器的性能幾乎沒有影響。這一結果表明,在引入BoF和BoS之後,不再需要使用昂貴的gpu進行培訓。換句話說,任何人都只能使用傳統的GPU來訓練一個優秀的檢測器。

在這裏插入圖片描述

在這裏插入圖片描述

圖8:不同物體探測器速度和精度的比較。(有些文章只說明了其中一個gpu的探測器的FPS: Maxwell/Pascal/V olta)

5. Results:

得到的結果與其他最先進的物體探測器的比較如圖8所示。我們的YOLOv4位於Pareto最優性曲線上,在速度和精度上都優於最快最準確的檢測器。

由於不同的方法使用不同架構的gpu進行推理時間驗證,所以我們在通常採用的Maxwell、Pascal和Volta架構的gpu上運行YOLOv4,並將其與其他最先進的方法進行比較。表8列出了使用Maxwell GPU的幀率比較結果,可以是GTX Titan X (Maxwell)或者Tesla M40 GPU。表9列出了使用Pascal GPU的幀率比較結果,可以是Titan X (Pascal)、Titan Xp、GTX 1080 Ti或Tesla P100 GPU。表10列出了使用V olta GPU的幀率比較結果,可以是Titan V olta,也可以是Tesla V100 GPU。

6. Conclusions:

我們提供最先進的探測器,更快(FPS)和更準確(MS COCO AP50…(95和AP50)超過所有可用的替代探測器。描述的探測器可以訓練和使用傳統的GPU與8-16 GB-VRAM,這使它的廣泛使用成爲可能。基於錨點的單級檢波器的概念已經被證明是可行的。我們已經驗證了大量的特徵,並選擇使用這些特徵來提高分類器和檢測器的準確性。這些特性可以作爲未來研究和開發的最佳實踐。

7. Acknowledgements:

作者感謝Glenn Jocher提出了鑲嵌數據增強、利用遺傳算法選擇超參數和解決網格靈敏度問題的思想https://github.com/ultralytics/yolov3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章