Yolov4論文翻譯與解析(一)

前言

時隔兩年之後,伴着Yolo原作者Redmon在twitter正式宣佈退出cv界,大家都以爲yolo系列已經終結的時候,Yolov4橫空出世,雖然作者已經大換血,但論文中給出的測試結果依然保留yolo系列的血統:保持相對較高的mAP的同時,大大降低計算量,可謂是學術成果在工業應用的典範,至於實際使用如何,還需要時間的進一步檢驗,期望v4能夠如v3一般強大。
整體而言,YOLOv4幾乎沒有像前幾代YOLO一樣提出一些創新性的東西,而是大量列舉了近幾年以來關於目標檢測的一些最新技術和成果,並對這些方法進行了大量的人工試驗,可以認爲是一種人工NAS,用試驗的方式來選擇一系列新的方法來對YOLOv3從網絡結構、訓練、數據增強等多個層面進行相應的增強,從而達到更好的效果。雖說沒有提出令人驚豔的理論創新,但單單是用工作量如此巨大的人工搜索,瞭解並實踐瞭如此多的最新研究成果,並將其中較優的方法應用於YOLO這樣一個工業化如此優秀的檢測器中,就已經足夠令人感到讚歎了。
論文翻譯部分:

YOLOv4:速度和準確度更好的目標檢測

圖1:YOLOv4與其他比較最新的目標檢測器相比,YOLOv4運行速度比EfficientDet快兩倍,但具有相當的性能。在YOLOv3基礎上,AP和FPS分別提高了10%和12%。

摘要:

目前已經有許多方法可以提高卷積神經網絡(CNN)的準確性,但需要在大型數據集上對這些方法的組合進行實際測試,並對結果進行理論證明。某些方法只針對某些模型、某些問題、或者僅在小型數據集上有效;而某些方法(例如批歸一化和殘差連接)適用於大多數模型,任務和數據集。我們假設此類通用功能包括加權殘差連接(WRC),交叉階段部分連接(CSP),交叉小批量標準化(CmBN),自對抗訓練(SAT)和Mish激活。我們使用的新方法包括:WRC,CSP,CmBN,SAT,Mish激活,馬賽克數據增強,CmBN,DropBlock正則化和CIoU損失,並結合其中的幾項來達到最先進的結果:在MS COCO數據集上,基於Tesla V100 GPU,實現實時速度約爲65 FPS,精度爲43.5%AP(65.7%AP50)的檢測。
論文的源碼鏈接:https://github.com/JianqiuChen/darknet

1 簡介

大多數基於CNN的目標檢測器僅適用於推薦系統。例如,使用慢速精確模型,執行通過城市攝像機搜索空閒停車位的過程,而汽車碰撞警告則與快速不準確的模型有關。提高實時目標檢測器的準確性,不僅可以將它們用於提示生成推薦系統,還可以用於獨立的流程管理和減少人工輸入。運行在常規圖形處理單元(GPU)上的實時目標檢測器,允許它們以可承受的價格進行大量使用。最精確的現代神經網絡無法實時運行,由於min-batch size較大,需要大量的GPU來進行訓練。我們創建了一個能夠在常規GPU上實時運行的CNN來解決此類問題,並且訓練僅需要一個常規GPU。
這項工作的主要目標是設計生產系統中目標檢測器的快速運行速度並優化並行計算,而不是低計算量理論指標(BFLOP)。我們希望可以輕鬆地訓練和使用該檢測器。例如,任何使用常規GPU進行訓練和測試的人都可以獲得實時,高質量和令人信服的目標檢測結果,如圖1所示。我們的主要成果如下:
1.我們開發了一種高效的和強大的目標檢測模型。它使每個人都可以使用1080 Ti或2080 Ti GPU訓練超快速和準確的目標檢測器。
2.我們在檢測器訓練期間,驗證了最先進的我們稱之爲Bag-of-Freebies和Bag-of-Specials(參見下文)的方法的影響。
3.我們修改了最先進的方法,使它們更有效,更適合單GPU訓練,包括CBN,PAN,SAM等。

2 相關工作

2.1目標檢測模型

現代的檢測器通常由兩部分組成,一個是在ImageNet上預訓練的backbone(骨架網絡),另一個是用來預測對象的類別和邊界框的head(頭部)。對於在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]。也可以使兩階段目標檢測器成爲anchor-free(無需藉助錨點)檢測器,例如RepPoints [87]。對於單階段目標檢測器,最具代表性的模型是YOLO [61、62、63],SSD [50]和RetinaNet [45]。近年來,有研究開發了anchor-free的單階段目標檢測器,例如CenterNet [13],CornerNet [37、38],FCOS [78]等。近年來開發的目標檢測器通常在骨架和頭部之間插入一些層,通常使用這些層。收集不同階段的特徵圖。我們可以稱其爲目標檢測器的neck(頸部)。通常,頸部由幾個自下而上的路徑和幾個自上而下的路徑組成。應用此機制的網絡包括特徵金字塔網絡(FPN)[44],路徑聚集網絡(PAN)[49],BiFPN [77]和NAS-FPN [17]。
除上述模型外,一些研究人員還着重於直接構建用於目標檢測的新骨架網(DetNet [43],DetNAS [7])或新的整個模型(SpineNet [12],HitDeector [20])。 。
綜上所述,普通的目標檢測器由以下幾部分組成(輸入,骨架網絡,頸部,頭部):
在這裏插入圖片描述

2.2 Bag of freebies

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

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

與上面提出的各種方法不同,其他一些bag of freebies方法專用於解決數據集中語義分佈可能存在偏差的問題。在處理語義分佈偏向問題時,一個非常重要的問題是不同類之間存在數據不平衡的問題,並且該問題通常在雙階段目標檢測器中通過困難負例挖掘[72]或在線困難樣本挖掘來解決。但是樣本挖掘方法並不適用於單階段目標檢測器,因此這類檢測器屬於稠密預測結構,因此林等。 [45]提出了focal loss,以解決各種類別之間存在的數據不平衡問題。另一個非常重要的問題是,很難用one-hot硬表示來表達不同類別之間的關聯度。標記時通常使用這種表示方案。在[73]中提出的標籤平滑是將硬標籤轉換爲軟標籤以進行訓練,這可以使模型更魯棒。爲了獲得更好的軟標籤,Islam等。 [33]介紹了知識蒸餾的概念來設計標籤優化網絡。
最後的bag of freebies是邊界框(BBox)迴歸的目標函數。傳統的目標檢測器通常使用均方誤差(MSE)對BBox的中心點座標以及高度和寬度直接執行迴歸,即{xcenterycenterwh}\{ x_{center},y_{center},w,h\}或左上點和右下點,即{xtopleftytopleftxbottomrightybottomright}\{x_{top_left},y_{top_left},x_{bottom_right},y_{bottom_right}\}。對於基於錨的方法,它是估計對應的偏移量,例如{xcenteroffsetycenteroffsetwoffsethoffset}\{x_{center_offset},y_{center_offset},w_{offset},h_{offset}\}{xtop_left_offsetytop_left_offsetxbottom_right_offsetybottom_right_offset}\{x_{top\_left\_offset},y_{top\_left\_offset},x_{bottom\_right\_offset},y_{bottom\_right\_offset}\}。但是,直接估計BBox的每個點的座標值是將這些點視爲各自獨立的變量,但實際上並沒有考慮對象本身的完整性。爲了使這個問題得到更好的處理,一些研究人員最近提出了IoU損失[90],從而將預測的BBox區域和真實BBox區域的覆蓋範圍考慮在內。 IoU損失將計算預測BBox與真實標籤的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中,並使用最大池化操作而不是詞袋操作。由於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內核大小,擴展比率等於k和在膨脹卷積運算中,步幅等於1。 RFB模塊將使用k×k核的多個膨脹卷積,膨脹比等於k,步幅等於1,以獲得比ASPP更全面的空間覆蓋。 RFB [47]僅花費7%的額外推理時間,即可將MS COCO上SSD的AP50提高5.7%。

通常在目標檢測中使用的注意力模塊主要分爲通道注意和點注意,這兩個注意模型的代表是Squeeze-and-Excitation(SE)[29]和Spatial Attention module(SAM)[85]。儘管SE模塊可以使ImNetNet圖像分類任務中的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]開發人員的思維方式是在soft NMS的基礎上將中心距離的信息添加到BBox篩選過程中。值得一提的是,由於上述後處理方法均未直接涉及捕獲的圖像特徵,因此在隨後的anchor free方法開發中不再需要後處理。

3 方法論

基本目標是能在生產系統快速運行的神經網絡,並優化並行計算,而不是低計算量理論指標(BFLOP),我們提出了兩種神經網絡:
• For GPU 我們使用較小數量(1-8)的卷積層組: CSPResNeXt50/CSPDarknet53
• For VPU 我們使用分組卷積,但不使用Squeeze-and-excitement(SE)模塊,具體來說,這包括以下模型:EfficientNet-lite / MixNet [76] / GhostNet [21] / MobileNetV3

3.1 結構選擇

YOLOv4 的目標是在輸入網絡分辨率,卷積層數,參數數之間找到最佳平衡。 (filter size2 * filters * channel / groups), and the number of layer outputs (filters)

我們的目標是在輸入網絡分辨率,卷積層數,參數數(過濾器大小2 過濾器通道/組)和層輸出(過濾器)的數量之間找到最佳平衡。 例如,我們的大量研究表明,就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神經網絡是兩者作爲檢測器骨架的最佳模型。
表1
不同大小的感受野的影響總結如下:

  • 取決於目標大小,使其能夠覆蓋整個目標
  • 取決於網絡大小,使其能夠覆蓋目標周圍的背景
  • 超出網絡規模,增加映像點與最終激活之間的連接數

我們將SPP模塊添加到CSPDarknet53上,因爲它顯着增加了感受野,分離出最重要的上下文特徵,並且幾乎沒有降低網絡運行速度。我們使用PANet爲不同檢測器從不同backbone級別的參數聚合方法,而不是YOLOv3中使用的FPN。

最後,我們選擇CSPDarknet53爲骨架網絡,SPP作爲附加模塊,PANet路徑聚合作爲頸部以及和YOLOv3(anchor based)的頭部作爲YOLOv4的體系結構。
將來,我們計劃大幅擴展檢測器的bag of freebies(BoF)的內容,從理論上講,它可以解決一些問題並提高檢測器的準確性,並以實驗方式依次檢查每個功能的影響。

YOLO V4 不使用跨GPU批量標準化(CGBN或SyncBN)或昂貴的專用設備。這樣一來,任何人都可以在傳統的圖形處理器上重現我們的最新技術成果,例如GTX 1080Ti或RTX 2080Ti。

3.2 BoF and BoS的選擇

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

  • 激活函數:ReLU,leakage-ReLU,parameter-ReLU,ReLU6,SELU,Swish或Mish
  • 邊界框迴歸損失函數:MSE,IoU,GIoU,DIoU
  • 數據增強:CutOut,MixUp,CutMix
  • 正則化方法:DropOut,DropPath [36],Spacial DropOut[79]或DropBlock
  • 通過計算均值和方差的網絡激活函數歸一化:批次歸一化(BN)[32],跨GPU批量歸一化(CGBN或SyncBN)[93],過濾器響應歸一化(FRN)[70]或交叉迭代批量歸一化(CBN)[89]
  • 跳過連接:殘差連接,加權殘差連接,多輸入加權殘差連接或跨階段部分連接(CSP)

至於訓練激活函數,由於PReLU和SELU更難以訓練,並且ReLU6是專門爲量化網絡設計的,因此我們從候選列表中刪除了上述激活函數。在重新量化方法中,發佈DropBlock的人已將其方法與其他方法進行了詳細的比較,並且其正則化方法勝過其他方法許多。因此,我們毫不猶豫地選擇了DropBlock作爲我們的正則化方法。至於歸一化方法的選擇,由於我們專注於僅使用一個GPU的訓練策略,因此不考慮syncBN。

3.3 額外的提升

爲了使設計的檢測器更適合在單個GPU上進行訓練,我們進行了以下附加設計和改進:

  • 我們引入了一種新的數據增強方法,即自我對抗​​訓練(SAT)
  • 我們在應用遺傳算法時選擇最佳超參數
  • 我們修改了一些現有方法,使我們的設計適合進行有效的訓練和檢測,例如修改後的SAM,修改後的PAN和交叉小批量歸一化(CmBN)

馬賽克代表一種新的數據增強方法,該方法混合了4個訓練圖像。然而 CutMix 只有兩個輸入圖像。這樣就可以檢測到超出其正常背景的對象。此外,批量歸一化從每層上的4張不同圖像計算激活統計信息。這大大減少了對大的mini-batch size的需求。
自我對抗訓練(SAT)也代表了一項新的數據增強技術,該技術執行2個前向和反向傳播。在第一階段,神經網絡會更改原始圖像,而不是網絡權重。這樣,神經網絡通過改變原始圖像,從而創造了一種圖像上沒有想要目標的假象,對其自身執行了對抗攻擊。在第二階段,訓練神經網絡以正常方式檢測此修改圖像上的目標。

CmBN是CBN修改版本,如圖4所示,定義爲Cross mini-Batch Normalization(CmBN)。這僅收集單個batch中的mini-batches之間的統計信息。
在這裏插入圖片描述
我們將SAM從空間注意改爲點注意,並將PAN的快捷連接替換爲串聯,分別如圖5和圖6所示。
在這裏插入圖片描述

3.4 YOLOv4

YOLOv4 的細節。
YOLOv4的組成:

  • 骨架網絡: CSPDarknet53 [81]
  • 頸部: SPP [25], PAN [49]
  • 頭部: YOLOv3 [63]

YOLO v4使用了:

  • Bag of Freebies (BoF) for backbone: CutMix和馬賽克數據增強,DropBlock正則化,,類標籤平滑
  • Bag of Specials (BoS) for backbone: Mish激活函數,跨階段部分連接(CSP),多輸入加權殘差連接 (MiWRC)
  • Bag of Freebies (BoF) for detector: CIoU損失函數, CmBN, DropBlock正則化,馬賽克數據增強,自對抗訓練(SAT),Eliminate grid sensitivity,爲每個真實標籤使用多個錨點,,Cosine annealing scheduler [52],優化的超參數,隨機的訓練形狀
  • Bag of Specials (BoS) for detector: Mish激活函數,SPP模塊,SAM模塊,路徑聚合模塊(PAN), DIoU-NMS

4 實驗

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

在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;訓練步驟爲500,500。採用步階衰減學習率調度策略,初始學習率爲0.01,分別在40萬步和45萬步上乘以係數0.1。動量和重量衰減分別設置爲0.9和0.0005。所有架構均使用單個GPU以64的批處理大小執行多尺度訓練,而最小批處理大小爲8或4則取決於架構和GPU內存限制。除了使用遺傳算法進行超參數搜索實驗外,所有其他實驗均使用默認設置。遺傳算法使用YOLOv3-SPP訓練GIoU損失,並搜索300個紀元的最小值5k集。對於遺傳算法實驗,我們採用搜索學習率0.00261,動量0.949,IoU閾值來分配地面實況0.213,並使用損失歸一化器0.07。我們已經驗證了許多BoF,包括消除網格敏感性,分子數據增強,IoU閾值,遺傳算法,類標籤平滑,交叉小批量歸一化,自對抗訓練,餘弦退火調度程序,動態小批量大小,DropBlock,優化錨點,不同類型的IoU損失。我們還對各種BoS進行了實驗,包括Mish,SPP,SAM,RFB,BiFPN和高斯YOLO [8]。對於所有實驗,我們僅使用一個GPU進行訓練,因此未使用可優化多個GPU的諸如syncBN之類的技術。
(試驗部分內容和圖太多,翻譯意義不大,看論文就好)

5 結果

與其他最先進的目標檢測器獲得的結果比較如圖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 結論

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

以上是論文翻譯部分,關於Yolov4採用的一些重要技術點將在下一篇結合一份代碼詳細講解。

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