对象检测目标小用什么模型好_[目标检测] YOLO4论文中文版
點擊上方?藍字?關注我呀!
[目標檢測] YOLO4論文中文版
文章目錄
YOLO4論文中文版
摘要
1、介紹
2、相關工作
2.1、目標檢測模型
2.2、Bag of freebies
2.3、Bag of specials
3、方法
3.1、架構選擇
3.2、BoF和BoS的選擇
3.3、進一步的改進
3.4、YOLOv4
4、經驗
4.1、實驗裝置
4.2、不同特征對分類器訓練的影響
4.3、不同特征對檢測器訓練的影響
4.4、不同主干和預訓練權重對檢測器訓練的影響
4.5、不同小批量尺寸對檢測器訓練的影響
5、結果
6、結論
7、感謝
YOLO4論文中文版
摘要
據說有大量的特征可以提高卷積神經網絡(CNN)的準確性。需要在大數據集上對這些特征的組合進行實際測試,并對結果進行理論驗證。有些特征專門針對某些模型和某些問題,或者只針對小規模數據集;而一些特性,如批處理標準化和剩余連接,適用于大多數模型、任務和數據集。我們假設這些通用特征包括加權剩余連接(WRC),跨階段部分連接(CSP),跨小批處理標準化(CmBN),自我對抗訓練(SAT)和mish激活。我們使用了新的功能:WRC, CSP,CmBN, SAT, Mish激活,馬賽克數據增強,CmBN, DropBlock regularization, CIoU loss,并結合其中一些方法,達到最先進的效果:43.5%,對MS COCO數據集的AP (65.7% AP50),在Tesla V100上的實時速度約為65 FPS。源代碼在https://github.com/AlexeyAB/darknet。
1、介紹
大多數基于cnn的對象檢測器在很大程度上只適用于推薦系統。例如,通過城市攝像機搜索免費停車位是由慢速準確的模型執行的,而車輛碰撞預警則與快速不準確的模型相關。提高實時對象檢測器的準確性使它們不僅可以用于生成提示推薦系統,還可以用于獨立進程管理和減少人工輸入。實時對象檢測器操作在傳統的圖形處理單元(GPU)上,允許他們大量使用在一個負擔得起的價格。最精確的現代神經網絡并不實時運行,并且需要大量的gpu來進行大規模的小批量訓練。我們通過創建一個在傳統GPU上實時運行的CNN來解決這些問題,而對于CNN的訓練只需要一個傳統的GPU。
圖1:提出的YOLOv4和其他最先進的對象檢測器的比較。在性能相當的情況下,YOLOv4的運行速度比EfficientDet快兩倍。提高了
YOLOv3的AP和FPS分別上漲了10%和12%。
這項工作的主要目標是在生產系統中設計一個快速運行速度的對象檢測器,并優化并行計算,而不是低計算量理論指標(BFLOP)。我們希望所設計的對象能夠易于訓練和使用。例如,任何使用傳統GPU進行訓練和測試的人都可以獲得實時、高質量、令人信服的對象檢測結果,如圖1所示的YOLOv4結果。我們的貢獻總結如下:
1、我們開發了一個高效、強大的目標探測模型。它使每個人都可以使用1080 Ti或2080 Ti GPU訓練一個超級快和準確的物體檢測器。
2、訓練的時候我們驗證了最先進的Bag-of-Freebies和Bag-of-Specials方法的影響。
3、我們修改了目前最先進的方法,使其更有效,更適合單一GPU訓練,包括CBN [89], PAN [49], SAM[85]等。
2、相關工作
2.1、目標檢測模型
現代檢測器通常由兩個部分組成,一個是在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
通常,常規的目標檢測器是離線訓練的。因此,研究人員一直希望利用這一優勢,開發更好的訓練方法,使目標檢測器在不增加推理成本的情況下獲得更好的精度。我們把這些只會改變訓練策略或只會增加訓練成本的方法稱為“免費贈品包”。目標檢測方法通常采用的滿足免費贈品包定義的方法是數據增強。數據增強的目的是增加輸入圖像的可變性,使所設計的目標檢測模型對不同環境下得到的圖像具有較高的魯棒性。例如,光度畸變和幾何畸變是兩種常用的數據增強方法,它們無疑有利于目標檢測。在處理光度失真時,我們調整圖像的亮度、對比度、色相、飽和度和噪聲。對于幾何失真,我們添加了隨機縮放、剪切、翻轉和旋轉。
上述數據增強方法均為逐像素調整,保留調整區域內所有原始像素信息。此外,一些從事數據增強的研究人員將重點放在模擬物體遮擋問題上。在圖像分類和目標檢測方面取得了較好的效果。例如,隨機擦除[100]和CutOut[11]可以隨機選擇圖像中的矩形區域,并填充一個隨機的或互補的值為零。捉迷藏[69]和網格掩模[6],在一幅圖像中隨機或均勻地選擇多個矩形區域,將其全部替換為零。如果將類似的概念應用于feature map,則有DropOut[71]、DropConnect[80]和DropBlock[16]方法。此外,一些研究人員提出了利用多幅圖像共同進行數據增強的方法。例如,MixUp[92]使用兩幅圖像以不同的系數比進行相乘和疊加,然后根據疊加的系數比調整標簽。CutMix[91]是將裁剪后的圖像覆蓋到其他圖像的矩形區域,并根據混合區域的大小調整標簽。除了上述方法外,我們還使用了style transfer GAN[15]來進行數據增強,這樣的使用可以有效的降低CNN學習到的紋理偏差。
與上面提出的各種方法不同,其他一些免費的方法致力于解決數據集中的語義分布可能存在偏差的問題。在處理語義分布偏差問題時,一個非常重要的問題是不同類別之間存在數據不平衡問題,而這一問題通常通過二階段目標檢測器中的硬反例挖掘[72]或在線硬例挖掘[67]來解決。但實例挖掘方法不適用于單級目標檢測器,因為該類檢測器屬于稠密預測架構。因此Linet al.[45]提出了focal loss來處理不同類之間存在的數據不平衡問題。其他非常重要的問題是,很難表達的程度之間的關系與在一個炎熱的困難表示不同類別之間的聯系。另一個非常重要的問題是很難用單一的硬表示來表達不同類別之間的關聯度關系。執行標記時經常使用這種表示方案。在[73]中提出的標簽平滑是將硬標簽轉換為軟標簽進行訓練,可以提高模型的魯棒性。為了獲得更好的軟標簽,Islam等[33]引入了知識蒸餾的概念來設計標簽精煉網絡。
最后一袋贈品是的目標函數邊界盒(BBox)回歸。傳統的目標檢測器通常使用均方誤差(MSE)直接對BBox的中心點坐標和高度、寬度進行回歸,即:{xcenter, ycenter, w, h},或者左上點和右下點,也就是,{xtop lef t, ytop lef t, xbottom right, ybottom right}。基于錨點的方法,例如估計相應的偏移量{xcenter of f set, ycenter of f set, wof f set, hof f set}和{xtop lef t of f set, ytop lef t of f set, xbottom right of f set, ybottom right of f set}。但是,要直接估計各點的坐標值BBox就是把這些點當作自變量來對待,但實際上并不考慮對象本身的完整性。為了更好地處理這一問題,最近有研究者提出IoU loss[90],將預測BBox面積的覆蓋和ground truth BBox面積考慮在內。IoU損失計算過程將通過與ground truth執行IoU來觸發對BBox的四個坐標點的計算,然后將生成的結果連接成一個完整的代碼。由于IoU是一個尺度不變的表示,它可以解決傳統方法計算{x, y, w, h}的l1或l2損失時,損失會隨著尺度的增大而增大的問題。最近,一些研究人員不斷改善欠條損失。例如,GIoU損失[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,…},從而形成空間金字塔,然后提取詞包特征。SPP將SPM集成到CNN中,使用max-pooling操作,而不是word包操作。由于He等人[25]提出的SPP模塊輸出的是一維特征向量,因此不能應用于全卷積網絡(FCN)中。因此在YOLOv3[63]的設計中,Redmon和Farhadi有所改進SPP模塊,將內核大小為k×k的最大池輸出連接起來,其中k = {1,5,9,13}, stride = 1。在此設計下,一個較大的k×k maxpooling有效地增加了骨干特征的接受域。添加SPP模塊的改進版本后,YOLOv3-608在MS COCO對象檢測任務上對AP50升級了2.7%,但增加了0.5%的計算量。ASPP[5]模塊與改進后的SPP模塊在運算上的差異主要來自于原始的k×k kernel size, stride的max-pooling等于1到幾個3×3 kernel size,擴張比等于k,在擴張卷積運算中stride等于1。RFB模塊是利用k×k核的幾個擴張卷積,擴張比等于k, stride等于1,獲得比ASPP更全面的空間覆蓋。RFB[47]只需要額外7%的推斷時間,就可以將MS COCO上的SSD的AP50提高5.7%。
在目標檢測中常用的注意模塊主要分為信道定向注意和點態注意,這兩種注意模型的代表分別為壓縮激勵[29]和空間注意模塊SAM[85]。雖然SE模塊可以改善的能力ResNet50 ImageNet圖像分類任務中排名前1%精度的代價只會增加2%的計算工作,但是在GPU通常會增加推理時間約10%,所以它更適合用于移動設備。但是對于SAM來說,它只需要額外付出0.1%的計算,就可以在ImageNet圖像分類任務中提高ResNet50-SE 0.5%的top-1準確率。最重要的是,它不會影響GPU推理的速度。
在特征集成方面,早期的做法是使用跳過連接[51]或超列[22],將低級物理特征集成為高級語義特征。隨著FPN等多尺度預測方法的流行,許多集成不同特征金字塔的輕量級模塊被提出。這類模塊包括SFAM[98]、ASFF[48]和BiFPN[77]。SFAM的主要思想是利用SE模塊對多尺度連接的feature map執行信道級重加權。至于ASFF,它使用softmax作為點級別調整,然后添加不同比例的特征地圖。在BiFPN中,提出了多輸入加權殘差連接進行尺度級重加權,然后添加不同尺度的特征圖。
在深度學習的研究中,一些人把重點放在尋找好的激活函數上。一個好的激活函數可以使梯度更有效地傳播,同時也不會造成太多的額外計算代價。2010年,Nair和Hinton[56]提出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按照高分到低分的順序執行。對于軟NMS[1],考慮了在IoU評分的貪婪NMS中,由于對象的閉塞可能導致置信評分下降的問題。DIoU NMS[99]開發人員的思路是在軟的基礎上將中心點距離信息添加到BBox篩選過程中NMS。值得一提的是,由于以上所有的后處理方法都沒有直接引用所捕獲的圖像特征,因此在后續無錨方法的開發中不再需要進行后處理。
3、方法
其基本目標是提高生產系統中神經網絡的運行速度和并行計算的優化,而不是低計算量理論指標(BFLOP)。我們提供兩種實時神經網絡的選擇:
對于GPU,我們在卷積層中使用少量的組(1 - 8):CSPResNeXt50 / CSPDarknet53
對于VPU,我們使用組卷積,但我們避免使用壓縮和刺激(SE)塊-具體包括以下模式:EfficientNet-lite / MixNet [76] / GhostNet [21] / MobileNetV3
3.1、架構選擇
我們的目標是在輸入網絡分辨率、卷積層數、參數數(濾波器大小2 濾波器通道/組)和層輸出數(濾波器)之間找到最優平衡。例如,我們的大量研究表明,就ILSVRC2012 (ImageNet)數據集[10]的對象分類而言,CSPResNext50比CSPDarknet53要好得多。然而,相反地,在檢測MS COCO數據集[46]上的對象方面,CSPDarknet53比CSPResNext50更好。
下一個目標是選擇額外的增強感受野的塊,以及針對不同的檢測器級別(如FPN、PAN、ASFF、BiFPN),從不同的主干級別選擇參數聚合的最佳方法。
對分類最優的參考模型并不總是對檢測器最優的。與classi- fier相反,檢測器需要以下內容:
更高的輸入網絡尺寸(分辨率)-用于檢測多個小尺寸物體
更多的層-為了一個更高的接收域來覆蓋增大的輸入網絡
更多的參數-為更大的能力,一個模型檢測多個不同大小的目標在一個單一的圖像
假設我們可以選擇接受野大小較大的模型(卷積層數量較多,3×3)和參數數量較多的模型作為骨干。表1顯示了CSPResNeXt50、CSPDarknet53和Effi- cientNet B3的信息。CSPResNext50只包含16個3×3的卷積層,一個425×425的感受野和20.6CSPDarknet53包含29個卷積層3×3,接受野725×725,接收野27.6M參數。這一理論證明,再加上我們的大量實驗,表明CSPDarknet53神經網絡是兩者中作為檢測器主干的最優模型。
不同大小的感受野的影響總結如下:
直到對象大小-允許查看整個對象
直到網絡大小——允許查看對象周圍的上下文
超過網絡大小——增加圖像點和最終激活之間的連接數量
我們在CSPDarknet53上添加SPP塊,因為它顯著增加了接收域,分離出了最重要的上下文特征,并且幾乎沒有降低網絡運行速度。我們使用PANet來代替YOLOv3中使用的FPN,作為不同骨干層對不同檢測器層的參數聚合方法。
最后,我們選擇了CSPDarknet53主干、SPP附加模塊、PANet路徑聚合脖子和YOLOv3(基于錨的)頭作為YOLOv4的架構。
在未來,我們計劃在檢測器上顯著擴展Bag of Freebies (BoF)的內容,理論上可以解決一些問題,提高檢測器的準確率,并以實驗的方式依次檢查每個特征的影響。
我們不使用交叉gpu批處理歸一化(CGBN或SyncBN)或昂貴的專用設備。這使得任何人都可以在GTX 1080Ti或RTX等傳統圖形處理器上復制我們的最新成果2080 ti。
3.2、BoF和BoS的選擇
為了改進目標檢測訓練,CNN通常使用以下方法:
激活方式:ReLU, leaky-ReLU,參數y-ReLU,ReLU6, SELU, Swish,或Mish
邊界盒回歸損失:MSE, IoU, GIoU,CIou, DIoU
數據增強:CutOut, MixUp, CutMix
正規化方法:DropOut, DropPath [36],Spatial DropOut[79],或DropBlock
通過平均值和方差對網絡激活進行標準化:批處理標準化(BN) [32],交叉gpu批處理標準化(CGBN或SyncBN)濾波器響應歸一化(FRN)[70],或交叉迭代批處理標準化(CBN) [89]
跳轉連接:剩余連接、加權剩余連接、多輸入加權剩余連接或跨階段部分連接(CSP)
在訓練激活函數方面,自PReLU和SELU更難訓練,而ReLU6是專門為量化網絡設計的,因此我們將上述激活函數從候選列表中刪除。在reqularization方法中,發布DropBlock的人將他們的方法與其他方法進行了詳細的對比,他們的正則化方法獲得了很大的成功。因此,我們毫不猶豫的選擇了DropBlock作為我們的正則化方法。在歸一化方法的選擇上,由于我們關注的是只使用一個GPU的訓練策略,因此沒有考慮syncBN。
3.3、進一步的改進
為了使所設計的檢測器更適合在單GPU上訓練,我們進行了如下的額外設計和改進:
介紹了一種新的數據增強、拼接和自對抗訓練方法。
應用遺傳算法選擇最優超參數
我們修改了一些現有的方法,使我們的設計適合于有效的訓練和檢測改進SAM、改進PAN和交叉小批標準化(CmBN)
Mosaic提出了一種混合4張訓練圖像的數據增強方法。因此混合了4種不同的上下文,而CutMix只混合了2個輸入圖像。這個半島低點檢測正常的上下文之外的對象。此外,批處理歸一化計算每層4張不同圖像的激活統計。這大大減少了對大型迷你批處理的需求。
自對抗訓練(SAT)也代表了一種新的數據增強技術,操作在兩個向前后階段。在第一階段,神經網絡改變原始圖像而不是網絡權值。通過這種方式,神經網絡對自己進行了對抗性的攻擊,改變原始圖像來制造圖像上沒有需要的對象的假象。在第二階段,訓練神經網絡以正常的方式在修改后的圖像上檢測目標。
CmBN表示CBN的修改版本,如圖4所示,定義為交叉小批標準化(CmBN)。這只收集單個批處理中的小批之間的統計信息。
我們將SAM從空間注意改為點態注意,將PAN的快捷連接改為連接,分別如圖5和圖6所示。
3.4、YOLOv4
YOLOv4包括:
YOLOv4用途:
免費贈品包(BoF)骨干:CutMix和Mosaic數據增強,DropBlock正則化,類標簽平滑
骨干專用包(BoS): Mish激活、跨階段部分連接(CSP)、多輸入加權剩余連接(MiWRC)
免費贈品包(BoF)檢測器:CIoU-loss,CmBN, DropBlock正則化,拼接數據增強,自對抗訓練,消除網格敏感性,使用多個錨點對單一ground truth,余弦退火調度[52],最優超參數,隨機訓練形狀
檢測器特價包(BoS): Mish激活,spp塊,sam塊,PAN路徑聚合塊,DIoU-NMS
4、經驗
在ImageNet上測試了不同訓練改進技術對分類器準確率的影響(ILSVRC 2012 val)數據集,然后對MS COCO(test-dev 2017)數據集檢測器的準確性進行分析。
4.1、實驗裝置
在ImageNet圖像分類實驗中,默認超參數為:訓練步驟為8000000;批大小為128,微批大小為32;采用多項式衰減學習率調度策略,初始學習率為0.1;熱身步驟1000次;動量衰減和重量衰減分別設為0.9和0.005。我們所有的BoS實驗使用相同的超參數作為默認設置,而在BoF實驗中,我們添加了一個額外的超參數50%的訓練步驟。在轉爐實驗中,我們驗證了這一點MixUp, CutMix, Mosaic, Bluring data augmentation,以及label smoothing regularization methods。在BoS實驗中,我們比較了LReLU、Swish和Mish激活函數的效果。所有的實驗都使用1080Ti或2080 Ti GPU 進行訓練。
在MS COCO目標檢測實驗中,默認超參數為:訓練步驟為500500;采用階躍衰減學習率調度策略,初始學習率為0.01,在40萬步和45萬步分別乘以因子0.1;動量衰減和重量衰減分別設為0.9和0.0005。所有架構都使用單一GPU在64個批處理的情況下進行多尺度訓練,而迷你批處理為8或4則取決于架構和GPU內存的限制。除超參數搜索實驗使用遺傳算法外,其他實驗均使用默認設置。遺傳算法采用YOLOv3-SPP算法進行GIoU缺失訓練,最小5k集搜索300個epoch。遺傳算法實驗采用搜索學習率0.00261,動量0.949,IoU閾值分配ground truth 0.213, loss normalizer 0.07。我們驗證了大量的BoF,包括網格靈敏度消除、拼接數據增強、IoU閾值、遺傳算法、類標簽平滑、交叉小批標準化、自對抗訓練、余弦退火調度、動態小批大小、DropBlock、優化錨定、不同類型IoU損失。我們還進行了各種實驗BoS,包括Mish, SPP, SAM, RFB, BiFPN,和Gaussian YOLO[8]。在所有實驗中,我們只使用一個GPU進行訓練,所以沒有使用同步bn等優化多個GPU的技術。
4.2、不同特征對分類器訓練的影響
首先,研究了不同特征對分類器訓練的影響;具體來說,類標簽平滑的影響,不同數據增強技術、雙邊模糊、混合、CutMix和馬賽克的影響,如Fugure 7所示,以及不同激活的影響,如Leaky-ReLU(默認)、Swish和Mish。
在我們的實驗中,如表2所示,通過引入諸如CutMix和馬賽克數據增強、類標簽平滑和Mish激活等特征,分類器的準確率得到了提高。因此,我們用于分類器訓練的bof骨干(免費贈品包)包括以下內容:CutMix和Mosaic數據增強和類標簽平滑。此外,我們使用Mish激活作為補充選項,如表2和表所示3。
4.3、不同特征對檢測器訓練的影響
進一步研究不同Bag-ofFreebies (BoF-detector)對檢測器訓練準確率的影響,如表4所示。通過研究在不影響FPS的情況下提高檢測器精度的不同特性,我們顯著擴展了BoF列表:
S:消除網格靈敏度方程bx = σ(tx)+ cx, by = σ(ty)+cy,其中cx和cy總是整數,在YOLOv3中用于計算目標坐標,因此,對于接近cx或cx + 1的bx值,需要極高的tx絕對值。我們通過將sigmoid乘以一個超過1.0的因子來解決這個問題,從而消除了無法檢測到物體的網格的影響。
M:馬賽克數據增強——訓練時使用四幅圖像拼接代替單一圖像
IoU閾值-使用多個錨點為一個單一的ground truth IoU (truth, anchor) > IoU閾值
遺傳算法-使用遺傳算法在前10%的時間段內選擇網絡訓練的最優超參數
類標簽平滑-使用類標簽平滑來激活sigmoid
CBN: CmBN——使用跨小批標準化來收集整個批內的統計信息,而不是在單個小批內收集統計信息
余弦退火調度-改變學習速率在正弦訓練
動態小批量尺寸-在小分辨率訓練中使用隨機訓練形狀自動增加小批量尺寸
優化的錨-使用優化的錨訓練與512x512網絡分辨率
GIoU, CIoU, DIoU, MSE -使用不同的損失算法進行有界盒回歸
進一步研究不同Bagof-Specials (boss -detector)對檢測器訓練精度的影響,包括PAN、RFB、SAM、Gaussian YOLO (G)和
ASFF,見表5。在我們的實驗中,使用SPP、PAN和SAM時,檢測器的性能最好。
4.4、不同主干和預訓練權重對檢測器訓練的影響
進一步我們研究了不同主鏈模型對檢測器精度的影響,如表6所示。我們注意到,具有最佳分類精度特征的模型在檢測器精度方面并不總是最好的。
首先,雖然CSPResNeXt的分類精度與CSPDarknet53模型相比,經過不同特征訓練的50個模型的檢測精度更高,CSPDarknet53模型在目標檢測方面的準確率更高。
其次,使用BoF和Mish進行CSPResNeXt50分類器的訓練提高了分類精度,但是進一步應用這些預先訓練好的權重進行檢測器訓練會降低檢測器的精度。然而,使用BoF和Mish進行CSPDarknet53分類器的訓練,提高了分類器和使用這種分類器預訓練權重的檢測器的準確率。最終的結果是,主干CSPDarknet53比CSPResNeXt50更適合檢測器。
我們觀察到,由于各種改進,CSPDarknet53模型在提高檢測器準確度方面表現出了更大的能力。
4.5、不同小批量尺寸對檢測器訓練的影響
最后,我們對不同小批量訓練的模型的結果進行分析,結果如表7所示。從表7所示的結果中,我們發現在添加BoF和BoS訓練策略后,迷你批處理的大小對檢測器的性能幾乎沒有影響。這一結果表明,引進后BoF和BoS,不再需要昂貴的使用gpu進行訓練。換句話說,任何人都能使用傳統的GPU來訓練優秀的檢測器。
圖8:不同目標探測器的速度和精度比較(有些文章指出他們的檢測器的FPS只適用于一個gpu: Maxwell/Pascal/Volta)
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,或特斯拉P100 GPU。至于表它列出了使用Volta的幀率比較結果它可以是泰坦Volta或者特斯拉V100 GPU。
6、結論
我們提供最先進的探測器,更快(FPS)和更準確(MS COCO AP50…95和AP50)比所有可用的檢測器。描述的檢測器可以在8-16的傳統GPU上訓練和使用GB-VRAM這使得它的廣泛使用成為可能。基于錨的一級探測器的最初概念已經證明了它的可行性。我們對大量的特征進行了驗證,選擇了其中的一些特征用于提高分類器和檢測器的準確率。這些特性可以作為未來研究和開發的最佳實踐。
更多信息請關注公眾號:
7、感謝
作者要感謝Glenn Jocher提出的馬賽克數據增強的思想,使用遺傳算法選擇超參數,解決網格靈敏度問題https://github.com/ ultralytics/yolov3。
希望文章對大家有所幫助,如果有錯誤或不足之處,還請海涵。真心想把自己所學所感所做分享出來,還請各位多多指教,真誠邀請您的關注!謝謝。點個贊,證明你還愛我
總結
以上是生活随笔為你收集整理的对象检测目标小用什么模型好_[目标检测] YOLO4论文中文版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据爬虫课程_数据分析之Py
- 下一篇: python多线程处理文件_python