YOLOv4真的來了!!論文翻譯 --- YOLOv4: Optimal Speed and Accuracy of Object Detection

代碼:https://github.com/AlexeyAB/darknet
論文:https://arxiv.org/abs/2004.10934

新鮮出爐的YOLOV4,集大成者。先看看效果對比:
在這裏插入圖片描述
由圖可以看到,YOLOV4在準確度和效率上都有大幅提升,與Efficientdet相比,在相同的準確率下速度快兩倍,相比YOLOv3 AP和FPS有10%12%的提升。

本文的主要貢獻如下:

  • 提出了一種高效而強大的目標檢測模型。它使每個人都可以使用1080Ti或2080Ti GPU訓練超快速和準確的目標檢測器
  • 在檢測器訓練期間,驗證了SOTA的Bag-of-FreebiesBag-of-Specials方法的影響。
  • 改進了SOTA方法,使它們更有效,更適合單GPU訓練,包括CBN[89],PAN[49],SAM[85]等。文章將目前主流的目標檢測器框架進行拆分:input,backbone,neckhead

具體如下圖所示:

在這裏插入圖片描述

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 [18],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],HitDe tector [20])。

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

  • 輸入:圖像,Patches,圖像金字塔
  • 骨幹網絡VGG16 [68],ResNet-50 [26],SpineNet [12],EfficientNet-B0 / B7 [75],CSPResNeXt50 [81],CSPDarknet53 [81]
  • 頸部
             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]
  • 頭部
             Dense Prediction (one-stage)
                                   RPN [64], SSD [50], YOLO [61], RetinaNet[45] (anchor based)
                                   CornerNet [37], CenterNet [13], MatrixNet[60], FCOS [78] (anchor free)
             Sparse Prediction (two-stage):
                                   Faster R-CNN [64], R-FCN [9], Mask RCNN [23] (anchor based)
                                   RepPoints [87] (anchor free)

2.2. Bag of freebies

通常,常規的物體檢測器是離線訓練的。 因此,研究人員總是喜歡利用這一優勢,並開發出更好的訓練方法,以使物體檢測器獲得更好的精度而又不增加推理成本。我們稱這些方法爲“免費贈品(bag of freebies)”,僅改變培訓策略或僅增加訓練成本。數據增強是對象檢測方法經常採用的並符合免費贈品 bag of freebies 袋定義的數據。 數據擴充的目的是增加輸入圖像的可變性,從而使設計的物體檢測模型對從不同環境獲得的圖像具有更高的魯棒性。例如,光度畸變和幾何畸變是兩種常用的數據增強方法,它們無疑有益於物體檢測任務。 在處理光度失真時,我們會調整圖像的亮度,對比度,色相,飽和度和噪點。 對於幾何變形,我們添加了隨機縮放,裁剪,翻轉和旋轉。

上面提到的數據擴充方法都是逐像素調整,並且保留了調整區域中的所有原始像素信息。 此外,一些從事數據增強的研究人員將重點放在模擬對象遮擋問題上。他們在圖像分類和目標檢測中取得了良好的效果。 例如,隨機擦除[100]和CutOut [11]可以隨機選擇圖像中的矩形區域,並填充零的隨機或互補值。 至於hide-and-seek[69] 和 grid mask[6],他們隨機或均勻地選擇圖像中的多個矩形區域,並將它們替換爲全零。如果類似的概念應用於特徵圖,則有DropOut [71],DropConnect [80]和DropBlock [16]方法。另外,一些研究人員提出了使用多個圖像一起執行數據增強的方法。例如,MixUp [92]使用兩個圖像以不同的係數比率進行乘法和疊加,然後使用這些疊加比率來調整標籤。對於CutMix [91],它是將裁切後的圖像覆蓋到其他圖像的矩形區域,並根據混合區域的大小調整標籤。除了上述方法之外,style transfer GAN [15]還用於數據擴充,這種用法可以有效地減少CNN所學習的紋理偏差。

與上面提出的各種方法不同,其他一些免費贈品方法專門用於解決數據集中語義分佈可能存在偏差的問題。 在處理語義分佈偏差問題時,一個非常重要的問題是,不同類之間存在數據不平衡的問題,而該問題通常可以通過以下方式來解決:hard negative example mining [72]或 online hard example mining[67] 兩級物體檢測器。但是示例挖掘方法不適用於一級目標檢測器,因爲這種檢測器屬於密集預測體系結構。 因此Lin 等. [45]提出了focal loss,以解決各個類別之間存在的數據不平衡問題。另一個非常重要的問題是,很難用 one-hot hard representation來表達不同類別之間的關聯度的關係。執行標記時經常使用此表示方案。[73]中提出的標籤平滑是將硬標籤轉換爲軟標籤以進行訓練,這可以使模型更健壯。 爲了獲得更好的軟標籤,Islam等 [33]介紹了知識蒸餾的概念來設計標籤優化網絡。

最後bag of freebies是邊界框(BBox)迴歸的目標函數。傳統的物體檢測器通常使用均方誤差(MSE)直接對BBox的中心點座標以及高度和寬度執行迴歸。即{xcenter,ycenter,w,h}或左上角和右下角點,即{xtop_left,ytop_left xbottom_right,ybottom_right }。對於anchor-based的方法,將估計相應的偏移量,例如{xcenter偏移量,ycenter偏移量,woffset,hoffset}和{xtop左偏移量,ytop左偏移量,xbottom右偏移量,ybottom右偏移量}。但是,直接估計BBox的每個點的座標值是將這些點視爲獨立變量,但實際上並未考慮對象本身的完整性。爲了使這個問題得到更好的處理,一些研究者最近提出了IoU損失[90],該方法考慮了預測的BBox區域和真實BBox區域的覆蓋範圍。IoU損失計算過程將通過使用基本事實執行IoU,然後將生成的結果連接到整個代碼中,觸發BBox的四個座標點的計算,因爲IoU是尺度不變表示,所以可以解決傳統方法計算{x,y,w,h}的l1或l2損失時,損失會隨着尺度的增加而增加的問題。最近,一些研究人員繼續改善IoU損失。 例如,GioU損失[65]除了覆蓋區域外還包括對象的形狀和方向。 他們建議找到可以同時覆蓋預測的BBox和真實BBox的最小面積BBox,並使用該BBox作爲分母來代替最初用於IoU損失的分母。 至於DIoU損失[99],它還考慮了對象中心的距離,而CIoU損失[99]同時考慮了重疊區域,中心點之間的距離和縱橫比。 CIoU可以在BBox迴歸問題上實現更好的收斂速度和準確性。

2.3. Bag of specials

對於那些僅增加少量推理成本但可以顯着提高對象檢測準確性的插件模塊和後處理方法,我們將其稱爲“特價袋 (bag of specials)"。一般而言,這些插件模塊用於增強模型中的某些屬性,例如擴大感受野,引入注意力機制或增強特徵集成能力等,而後處理是一種篩選模型預測結果的方法。 可以用來增強感受野的常用模塊是SPP [25],ASPP [5]和RFB [47]。SPP模塊起源於空間金字塔匹配(SPM)[39],SPM的原始方法是將特徵圖分割爲幾個d×d個相等的塊,其中d可以爲{1,2,3,…},從而形成空間金字塔,然後bag-of-word袋特徵。SPP將SPM集成到CNN中,並使用最大池化操作而不是bag-of-word。由於He等人提出的SPP模塊[25]將輸出一維特徵向量,在全卷積網絡(FCN)中應用是不可行的。因此,在YOLOv3 [63]的設計中,Redmon和Farhadi將SPP模塊改進爲內核大小爲k×k的最大池化輸出的級聯,其中k = {1、5、9、13},步幅等於1。在這種設計下,相對較大的k×k最大池化有效地增加了骨幹特徵的接收場。在添加了改進版本的SPP模塊之後,YOLOv3-608在MS COCO對象檢測任務上將AP50升級了2.7%,而額外的計算費用爲0.5%。ASPP [5]模塊和改進的SPP模塊之間的操作差異主要在於原始k×k內核大小,步幅的最大池化等於1到幾個3×3內核大小,dilated ratio等於k,步幅等於在膨脹卷積運算中爲1。RFB模塊將使用k×k個核的膨脹卷積,膨脹比等於k,步幅等於1,以獲得比ASPP更全面的空間覆蓋範圍。RFB [47]僅需花費7%的額外推理時間即可將MS COCO上SSD的AP50提高5.7%。

物體檢測中經常使用的注意力模塊主要分爲channel-wise注意和point-wise注意,這兩種注意模型的代表是Squeeze-and-Excitation(SE)[29]和Spatial Attention Module (SAM) [85]。儘管SE模塊可以將ImageNet圖像分類任務中的ResNet50的功能提高1%至top-1精度,但其代價僅是將計算工作量增加2%,但在GPU上通常會增加大約10%的推理時間,因此更適合在移動設備中使用。但是對於SAM,它只需要0.1%的額外費用,就可以在ImageNet圖像分類任務上將ResNet50-SE的top-1準確性提高0.5%。最好的是,它根本不影響GPU上的推理速度。

在特徵融合方面,早期的實踐是使用跳連接[51]或hyper-column [22]將低層物理特徵集成到高層語義特徵。由於諸如FPN的多尺度預測方法已變得流行,因此提出了許多集成了不同特徵金字塔的輕量級模塊。這種模塊包括SFAM [98],ASFF [48]和BiFPN [77]。SFAM的主要思想是使用SE模塊在多尺度級聯特徵圖上執行通道級重加權。對於ASFF,它使用softmax作爲逐點級別的權重,然後添加不同比例的特徵圖。在BiFPN中,提出了多輸入加權殘差連接以執行按比例的級別重新加權,然後添加不同比例的特徵圖。

在深度學習的研究中,有些人專注於尋找良好的激活功能。良好的激活函數可以使梯度更有效地傳播,同時不會引起過多的額外計算成本。Nair和Hinton [56]在2010年提出ReLU來基本上解決傳統的tanh和S形激活函數中經常遇到的梯度消失問題。隨後,LReLU [54],PReLU [24],ReLU6 [28],比例指數線性單位(SELU)[35],Swish [59],hard-Swish [27]和Mish [55]等還提出了用於解決梯度消失問題的方法。LReLU和PReLU的主要目的是解決輸出小於零時ReLU的梯度爲零的問題。至於ReLU6和Hard-Swish,它們是專門爲量化網絡設計的。爲了對神經網絡進行自歸一化,提出了SELU激活函數來滿足這一目標。要注意的一件事是,Swish和Mish都是連續可區分的激活函數。

在基於深度學習的對象檢測中通常使用的後處理方法是NMS,它可以用於過濾那些不好地預測同一對象的BBox,並僅保留具有較高響應的候選BBox。NMS嘗試改進的方法與優化目標函數的方法一致。NMS提出的原始方法沒有考慮上下文信息,因此Girshick等 [19]在R-CNN中添加了分類置信度得分作爲參考,並且根據置信度得分的順序,從高分到低分的順序執行了貪婪的NMS。對於soft NMS [1],考慮了物體的遮擋可能會導致貪婪的NMS的IoU評分置信度降低的問題。DIoU NMS [99]開發人員的思維方式是在softNMS的基礎上將中心點距離的信息添加到BBox篩選過程中。值得一提的是,由於上述後處理方法均未直接涉及捕獲的圖像特徵,因此在隨後的anchor-free方法開發中不再需要後處理。

3. Methodology

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

  • For GPU we use a small number of groups (1 - 8) in convolutional layers: CSPResNeXt50 / CSPDarknet53
  • 對於VPU-我們使用分組卷積,但不要使用擠壓和激發(SE)塊,具體來說,這包括以下模型:
    EfficientNet-lite / MixNet [76] / GhostNet [21] / MobileNetV3

3.1. Selection of architecture

我們的目標是在輸入網絡分辨率,卷積層數,參數數(filter size2 * filters * channel / groups)和層輸出(過濾器)的數量之間找到最佳平衡。例如,我們的大量研究表明,就ILSVRC2012(ImageNet)數據集上的對象分類而言,CSPResNext50與CSPDarknet53相比要好得多[10]。但是,相反,在檢測MS COCO數據集上的對象方面,CSPDarknet53比CSPResNext50更好。

下一個目標是針對不同的檢測器級別從不同的主幹級別中選擇其他塊來增加接收場和參數聚集的最佳方法: FPN,PAN,ASFF,BiFPN。

對於分類最佳的參考模型對於檢測器並非總是最佳的。 與分類器相比,檢測器需要滿足以下條件:

  • 更高的輸入網絡規模(分辨率)–用於檢測多個小型物體
  • 更高的層數–更高的接收範圍,以覆蓋不斷增加的輸入尺寸
  • 更多參數–具有更大的模型容量,可在單個圖像中檢測不同大小的多個對象

假設地說,我們可以假設應該選擇一個具有較大接收場大小(具有大量3×3卷積層)和大量參數的模型作爲主幹。表1顯示了CSPResNeXt50,CSPDarknet53和EfficientNet 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的體系結構。

將來,我們計劃大幅擴展用於檢測器的Bag of Freebies (BoF)的內容,從理論上講,它可以解決一些問題並提高檢測器的準確性,並以實驗方式依次檢查每個功能的影響。

我們不使用跨GPU Batch Normalization(CGBN或SyncBN)或昂貴的專用設備。 這使任何人都可以在常規圖形處理器上重現我們的最新技術成果,例如 GTX 1080Ti或RTX 2080Ti。

3.2. Selection of BoF and BoS

爲了改進目標檢測訓練,CNN通常使用以下方法:

  • 激活:ReLU,leakage-ReLU,parameter-ReLU,ReLU6,SELU,Swish或Mish
  • 邊界框迴歸損失:MSE,IoU,GIoU,CIoU,DIoU
  • 數據增強: CutOut, MixUp, CutMix
  • 正則化方法:DropOut, DropPath [36], Spatial DropOut [79], or 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)**也代表了一項新的數據增強技術,該技術可在2個向前和向後的階段進行操作。 在第一階段,神經網絡會更改原始圖像,而不是網絡權重。 以這種方式,神經網絡對其自身執行對抗攻擊,從而改變原始圖像以產生對圖像上沒有期望物體的欺騙。 在第二階段,訓練神經網絡以正常方式檢測此修改圖像上的對象。

CmBN表示CBN修改版本,如圖4所示,定義爲交叉微型批處理規範化(CmBN)。 這僅收集單個批次中的迷你批次之間的統計信息
在這裏插入圖片描述
我們將SAM從空間注意改爲點注意,並將PAN的快捷連接替換爲串聯,分別如圖5和圖6所示。
在這裏插入圖片描述

3.4. YOLOv4

本節介紹YOLOv4,YOLOv4由以下幾部分組成:

  • Backbone: CSPDarknet53 [81]
  • Neck: SPP [25], PAN [49]
  • Head: YOLOv3 [63]

YOLOv4使用:

  • 用於骨幹網的 Bag of Freebies(BoF):CutMix和Mosaic數據增強,DropBlock正則化,類標籤平滑
  • 用於骨幹網的 Bag of Specials(BoS):Mish激活函數,跨階段部分連接(CSP),多輸入加權剩餘連接(MiWRC)
  • 用於檢測器的 Bag of Specials(BoS):Mish激活,SPP塊,SAM塊,PAN路徑聚集塊,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實驗中,我們驗證了MixUp,CutMix,Mosaic,模糊數據增強和標籤平滑正則化方法。 在BoS實驗中,我們比較了LReLU,Swish和Mish激活功能的效果。 所有實驗均使用1080 Ti或2080 Ti GPU進行訓練。

在MS COCO對象檢測實驗中,默認的超參數如下:訓練步驟是500,500;採用步階衰減學習率調度策略,初始學習率爲0.01,並分別在400,000步和450,000步處乘以係數0.1。動量和權重衰減分別設置爲0.9和0.0005。所有架構都使用單個GPU以64的批量大小執行多尺度訓練,而最小批量大小是8或4,這取決於架構和GPU內存限制。除了使用遺傳算法進行超參數搜索實驗外,所有其他實驗均使用默認設置。遺傳算法使用YOLOv3-SPP訓練GIoU損失,並搜索300個紀元的最小值5k集。對於遺傳算法實驗,我們採用搜索學習率0.00261,動量0.949,IoU閾值來分配ground truth 0.213,並使用損失歸一化器0.07。我們已經驗證了大量BoF,包括消除網格敏感度,鑲嵌數據增強,IoU閾值,遺傳算法,類標籤平滑,交叉小批量標準化,自對抗訓練,餘弦退火調度程序,動態小批量大小,DropBlock,優化錨,不同類型的IoU損失。我們還對各種BoS進行了實驗,包括Mish,SPP,SAM,RFB,BiFPN和高斯YOLO [8]。對於所有實驗,我們僅使用一個GPU進行訓練,因此未使用可優化多個GPU的諸如syncBN之類的技術。

4.2. Influence of different features on Classifier training

首先,我們研究不同特徵對分類器訓練的影響; 具體來說,如圖7所示,類別標籤平滑化的影響,不同數據增強技術的影響,雙邊模糊,MixUp,CutMix和Mosaic的影響,以及Leaky-ReLU(默認情況下),Swish等不同激活的影響 和Mish。
在這裏插入圖片描述

在我們的實驗中,如表2所示,通過引入以下功能提高了分類器的準確性:CutMix和Mosaic數據增強,類標籤平滑和Mish激活。 因此,我們用於分類器訓練的BoFbackbone(Bag of Freebies)包括以下內容:CutMix和Mosaic數據增強和類標籤平滑。 此外,我們將Mish激活用作補充選項,如表2和表3所示。
在這裏插入圖片描述

4.3. Influence of different features on Detector training

如表4所示,進一步的研究涉及到不同的Free-of-Freebies(BoF檢測器)對檢測器訓練準確性的影響。我們通過研究在不影響FPS的情況下提高檢測器準確性的不同功能來顯着擴展BoF列表:

  • S:消除網格敏感度,公式bx =σ(tx)+ cx,其中cx和cy始終是整數,在YOLOv3中用於評估對象座標,因此,對於接近c x或cx + 1值的bx值,需要非常高的tx絕對值。基本事實我們通過將sigmoid乘以超過1.0的因數來解決此問題,從而消除了無法檢測到物體的網格的影響.
  • M:鑲嵌數據擴充-在訓練過程中使用4幅圖像而非單幅圖像
  • IT: IoU閾值-對單個ground truth IoU(真相,錨點)> IoU閾值使用多個錨點
  • GA:遺傳算法-使用遺傳算法在網絡訓練的前10%的時間段內選擇最佳超參數•
  • LS:類標籤平滑-使用類標籤平滑進行S型激活
  • CBN:CmBN-使用交叉mini-batch收集整個批次內的統計信息,而不是在單個mini-batch內收集統計信息
  • CA:餘弦退火調度程序-在正弦曲線訓練期間更改學習率
  • DM:動態微型批次尺寸-在小分辨率下自動增加微型批次尺寸使用隨機訓練形狀進行訓練
  • OA:優化的錨點-使用優化的錨點以512x512網絡分辨率進行訓練
  • GIoU,CIoU,DIoU,MSE-使用不同的損失算法進行有界框迴歸

在這裏插入圖片描述

進一步的研究涉及不同的Bagof-Specials(BoS檢測器)對檢測器訓練精度的影響,包括PAN,RFB,SAM,高斯YOLO(G)和ASFF,如表5所示。在我們的實驗中,檢測器獲得了最佳 使用SPP,PAN和SAM時的性能。
在這裏插入圖片描述

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

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

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

首先,儘管與CSPDarknet53模型相比,經過不同功能訓練的CSPResNeXt50模型的分類準確性更高,但是CSPDarknet53模型在對象檢測方面顯示出更高的準確性。

其次,將BoF和Mish用於CSPResNeXt50分類器訓練可提高其分類精度,但是將這些預訓練權重進一步用於檢測器訓練會降低檢測器準確性。但是,對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來訓練出色的檢測器。
在這裏插入圖片描述

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,它列出了使用Volta GPU的幀率比較結果,可以是Titan Volta或Tesla V100 GPU。
在這裏插入圖片描述

6. Conclusions

我們提供最先進的檢測器,其速度(FPS)和準確度(MS COCO AP50 … 95和AP50)比所有可用的替代檢測器都要高。 所描述的檢測器可以訓練並在具有8-16 GB-VRAM的常規GPU上使用,這使得它的廣泛使用成爲可能。 一階段基於錨的探測器的原始概念已經證明了其可行性。 我們已經驗證了大量功能,並選擇使用這些功能以提高分類器和檢測器的準確性。 這些功能可以用作未來研究和開發的最佳實踐。

呼~~~~~~終於結束了
YOLOv4 = CSPDarknet53+SPP+PAN+YOLOv3
YOLOv4沒有太大的創新點,就是推一推料,經過大量調參和選擇才最終有了YOLOv4。就是這麼簡單,樸實,無華而效果爆炸!!!
未來工業界估計又是YOLOv4橫行天下了。。。

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