惠康華, 楊衛(wèi), 劉浩翰, 張智*, 鄭錦, 百曉
(1.中國民航大學 計算機科學與技術學院, 天津 300300; 2.北京航空航天大學 計算機學院, 北京 100191)
目標檢測旨在判別當前輸入圖像中目標的位置及目標所屬類別,一直以來都是計算機視覺領域的熱門研究方向之一,被廣泛應用在軍事[1-2]、交通、航空航天、工業(yè)、自動駕駛等領域。Viola等[3]通過采用滑動窗口的方式檢查目標是否存在窗口之中,在檢測器中使用積分圖、AdaBoost以及級聯(lián)結構,獲得了較好的檢測效果。Dalal等[4]為平衡特征不變性和非線性,在均勻間隔單元的密集網(wǎng)格上計算重疊的局部對比度歸一化,實現(xiàn)在目標局部變形和受光照影響下的檢測穩(wěn)定性。Felzenszwalb等[5]針對檢測速度慢、物體形變敏感的問題,提出DMP(Dynamic Movement Primitives)算法,通過硬負挖掘、邊框回歸和上下文啟動等技術,在PASCAL VOC-07數(shù)據(jù)集上mAP達到33.7%。以上基于手工設計特征的傳統(tǒng)方法在早期的目標檢測中至關重要,但隨著數(shù)據(jù)規(guī)模的增長和檢測場景的復雜化,所提取到的特征信息難以滿足精度需求。
2012年AlexNet[6]在圖像識別領域取得巨大成功,如何將卷積神經(jīng)網(wǎng)絡(CNN)引入目標檢測領域中成為重要的研究內(nèi)容。2014年,Girshick等[7]提出RCNN算法,首次將CNN應用到目標檢測領域,在PASCAL VOC-07數(shù)據(jù)集上mAP達到58.5%,檢測效果遠超傳統(tǒng)算法。在此基礎上,學者們提出SPPNet[8]、Fast RCNN[9]、Faster RCNN[10]等2階段檢測算法。相較于傳統(tǒng)算法,卷積網(wǎng)絡的方式能夠提取到更加豐富的圖像特征信息,自主生成預設多尺度錨框的方式也更有利于模型捕捉目標,精度和速度都獲得大幅度提升,但兩階段的圖像處理方式仍是一個較耗時的工作,難以滿足當下檢測實時性要求。
2016年,Redmon等[11]提出單階段檢測模型YOLOv1,直接將圖像輸入模型進行特征提取,并在輸出特征圖上應用初始錨框捕捉目標,最后輸出檢測結果,形成統(tǒng)一的端到端模型,達到實時檢測的要求。此后,單階段檢測模型開始成為學者們的熱點研究內(nèi)容。RetinaNet[12]針對小目標物體難以檢測的問題,提出特征金字塔結構,將不同階段特征圖進行特征融合,增強多尺度表征能力,并在不同尺度特征圖上分別進行物體的檢測,有效提升了小目標的檢測精度。CornerNet[13]將目標檢測分為圖像分類和目標定位兩個子任務,通過網(wǎng)絡分支實現(xiàn)高效準確的目標檢測,解決了遮擋和多目標問題。FCOS[14]將目標檢測視為回歸問題,使用全卷積網(wǎng)絡,在特征圖上預測每個像素點是否屬于目標和邊界框位置,實現(xiàn)了高效訓練并獲得了較好的檢測性能。Swin Transformer將卷積模塊替換為基于self-attention的swin block,實現(xiàn)更快地捕捉大量數(shù)據(jù)中的關鍵信息,從而提高模型泛化能力,獲得較好的檢測效果[15]。FGKD提出一種新的目標檢測模型壓縮方法,提取全局和關注區(qū)域的特征信息,并使用蒸餾技術傳遞給小型網(wǎng)絡,既保持了模型檢測精度又顯著降低了模型大小[16]。
隨著特征提取網(wǎng)絡及目標框回歸工作的不斷優(yōu)化改進,衍生出了SSD[17]、YOLO[18-20]等一系列優(yōu)秀的單階段檢測模型。其中YOLOv5為當前使用最廣泛也是效果最好的目標檢測模型之一。但檢測過程中,YOLOv5初始錨框的不同會使得模型整體檢測性能差距較大,并且在檢測復雜場景下的多尺度目標時由于缺少豐富的多尺度特征信息,存在錯檢或漏檢現(xiàn)象。為解決上述問題,本文基于YOLOv5提出一種增強多尺度目標檢測模型:
1)多尺度自適應錨框初始化。通過Kmeans++聚類算法,獲得適應當前檢測場景的多尺度初始錨框,使網(wǎng)絡更容易捕捉到不同尺度目標,有利于目標邊界框的回歸,提升模型檢測精度。
2)增強多尺度C3結構(EM-C3)。在YOLOv5默認的C3結構基礎上,增加多條不同尺度的并行卷積支路,在保留原有特征信息的同時,提取并融合多尺度的特征信息,增強模型的全局感知能力。
YOLOv5針對差異化的硬件提供YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x共4個不同尺寸的模型,各模型僅在深度和寬度上有所不同,基本結構均由輸入端、骨干網(wǎng)絡、頸部和頭部四部分組成。輸入端通過自適應錨框計算、自適應圖像縮放和Mosaic數(shù)據(jù)增強等策略對輸入圖像進行預處理;骨干網(wǎng)絡通過Conv結構、C3結構對輸入圖像進行特征提取;頸部通過FPN模塊和PAN模塊進行特征的多尺度融合,實現(xiàn)不同尺度目標特征之間的信息傳遞;頭部采用分類、目標框回歸和置信度損失進行損失計算,并完成目標框的預測及調(diào)整。
本文基于YOLOv5模型,在輸入端,改進初始錨框生成策略,使用Kmeans++聚類算法,獲取適應當前檢測場景下的多尺度初始化錨框,增強模型對多尺度目標的捕捉能力;在Bottleneck結構中增加多條不同尺度的并行卷積支路,獲得更加豐富的多尺度特征信息,增強網(wǎng)絡的全局感知能力。以上述改進策略為基礎,提出改進的EM-YOLOv5模型。以EM-YOLOv5s為例,其網(wǎng)絡結構如圖1所示。
圖1 增強多尺度YOLOv5s網(wǎng)絡結構
目標檢測算法中,錨框是算法預定義的多個不同長寬比的先驗框。訓練過程中,在初始錨框的基礎上輸出預測框,進而與Ground Truth比較,計算損失并反向更新錨框,迭代網(wǎng)絡參數(shù)。
檢測過程中,不同層次特征圖包含不同的圖像特征,淺層的特征圖包含豐富的初級語義信息,對位置信息敏感,有助于小尺度目標的檢測。深層的特征圖包含圖像的高級語義信息,側重于表達圖像的復雜特征,對位置信息不敏感,適合大尺度目標的檢測?;谏鲜鎏匦?通常在淺層特征圖上預設小尺度錨框,在深層特征圖上預設大尺度錨框,使得網(wǎng)絡更容易匹配不同尺度目標。
此外,在復雜多尺度檢測場景下,存在初始錨框包含目標不全或包含噪聲的現(xiàn)象,增加了模型檢測難度。如圖2(a)所示,馬的初始錨框大于目標尺度,并且人也包含在其中,增加了特征噪聲信息,不僅增大了目標分類難度,而且干擾目標框回歸。在圖2(b)中,馬的初始錨框小于目標尺度,特征信息丟失嚴重,模型難以較好地完成檢測任務。在圖2(c)中,初始錨框框定多個目標,模型很難區(qū)分檢測目標,容易引起漏檢。同時,由于大尺度目標分辨率大,對錨框偏移感知較弱。而小目標分辨率較小,對位置信息敏感,錨框偏移較小的幅度,對小目標檢測影響都是巨大的。
圖2 初始錨框設定
綜上所述,為檢測目標提供更匹配的錨框,對模型檢測性能的提升具有重要意義。
YOLOv5模型在訓練開始前,將數(shù)據(jù)集通過Kmeans聚類算法隨機生成n個原始錨框,然后計算各個錨框之間的距離,迭代生成數(shù)據(jù)集的初始錨框,并以此為輸入,最終生成模型的預測框。
王千等[21]指出,在Kmeans算法中,采用隨機初始化聚類中心的方式,容易在迭代優(yōu)化聚類中心的過程中造成局部最優(yōu)解的情況。不同的聚類中心可能導致完全不同的聚類結果,造成生成的初始錨框難以合理匹配目標大小,增加目標框回歸的難度,最終導致模型收斂不理想。伍育紅[22]指出Kmeans聚類算法對于噪聲和異常點敏感,使錨框在學習過程中向非目標方向靠攏,生成的錨框匹配程度不高。
Kmeans算法是隨機選擇K個初始聚類中心,當隨機聚類中心接近且聚類中心陷入局部最優(yōu)解時,多個錨框只適應局部數(shù)據(jù)分布,導致聚類錨框不適應整體數(shù)據(jù)分布,最終影響模型檢測性能。Kmeans++聚類算法則是生成一個聚類中心,其他聚類中心以此為基礎計算得出。通過在初始化時就拉大各聚類中心之間的距離,一定程度上緩解了上述存在的問題。其具體算法流程如下。
輸入:一組P={P1,P2,…,Pk,…,Pn}?Rd點集合,k為聚類中心編號,n為數(shù)據(jù)集樣本數(shù)量,d為維度。
步驟1從數(shù)據(jù)集中隨機選取1個樣本點作為初始聚類中心C1。
步驟3重復步驟2,選出K個初始聚類中心。
步驟4針對數(shù)據(jù)集中的每個樣本pk,計算它到K個聚類中心的距離,并將其分到距離最小的聚類中心所對應的類中。
步驟6重復步驟4和步驟5,直到聚類中心的位置不再變化。
輸出:K個聚類中心{C1,…,CK}。
Kmeans++聚類算法,在各步驟下最大程度地保證了初始錨框之間的差距,生成多尺度錨框,不僅減少了錨框之間的性能冗余,也有利于多尺度目標的捕捉,降低模型出現(xiàn)漏檢現(xiàn)象概率。文獻[23-24]驗證了Kmeans++在其他目標檢測模型下的適配性,通過合理的初始錨框選擇提升了模型檢測性能。
基于上述考慮,在獲取初始化錨框時,為保證初始化聚類中心符合數(shù)據(jù)集的整體分布,使聚類結果更適應多尺度的檢測需求,本文采用Kmeans++聚類算法來獲取多尺度初始化錨框。
1.4.1 C3模塊
Conv作為復合卷積模塊,是YOLOv5模型中的基本組成結構,如圖3所示,由一個卷積層、BN層以及激活函數(shù)層組成,用于提取圖像特征信息。Bottleneck是殘差模塊,通過多次堆疊集成在C3模塊中,其結構如圖4所示,用于獲取更高級含義的圖像語義特征信息。其中,圖4(a)結構使用在骨干網(wǎng)絡中,圖4(b)使用在頸部網(wǎng)絡中。
圖3 Conv結構
圖4 Bottleneck結構
C3是骨干網(wǎng)絡的核心模塊,由2個并聯(lián)的分支組成,結構如圖5所示。在第1個分支中輸入特征圖先經(jīng)過一個Conv模塊,然后通過堆疊的n個Bottleneck模塊,提取高級語義信息。第2個分支通過1個Conv層后與第1個分支的輸出拼接之后,再通過1個Conv層進行特征融合后輸出。
圖5 C3結構
1.4.2 增強多尺度C3模塊
借鑒VGG[25]、GoogleNet[26]和CSPNet[27]的設計思想,C3模塊將輸入信息分別通過兩條支路,一條支路通過堆疊的Bottleneck結構,獲得高級的語義特征信息,另一條支路是過Conv模塊的shortcut連接,保留原始的特征信息。最后,兩條并行卷積支路進行特征融合,強化特征信息。因此提取特征的核心在于Bottleneck結構的設計。
要提升模型的特征提取能力,通常采用更深的網(wǎng)絡結構或更多的卷積核加深網(wǎng)絡寬度以獲得更豐富且復雜的特征信息。為增強模型的特征信息提取能力,本文在Bottleneck結構的基礎上,橫向增加3個Conv卷積模塊,用于提升模型對高級語義特征的提取能力。為增強模型對多尺度特征的感知能力,3個Conv模塊的卷積核大小分別設置為3×3、5×5、7×7且以并行的方式進行各尺度特征的提取。最后,3條支路與模塊輸入的恒等映射和第1個3×3卷積的恒等映射進行特征的深度融合,其結構稱為增強多尺度Bottleneck(EM-Bottleneck)。EM-Bottleneck不僅增加了多尺度特征信息,殘差結構也最大程度保留原始特征信息,減少淺層特征丟失,提升了模型的特征提取能力。如圖6所示,在backbone中同時存在shortcut 1和shortcut 2分支,稱之為EM-Bottleneck_1;在neck中,只存在shortcut 2分支,稱之為EM-Bottleneck_2。
圖6 增強多尺度Bottleneck結構
在原有的C3結構中,一條支路通過堆疊多個Bottleneck進行特征提取,將改進的EM-Bottleneck結構替換原有的Bottleneck結構得到改進的EM-C3_m_n模塊。當m=1時,EM-Bottleneck選用EM-Bottleneck_1,反之選用EM-Bottleneck_2,n表示EM-Bottleneck串行堆疊次數(shù),結構如圖7所示。
圖7 EM-C3結構
本文實驗使用VOC2012[28]、COCO[29]和VisDrone2019[30](VisDrone)3個通用的目標檢測數(shù)據(jù)集對模型進行性能驗證。VOC2012數(shù)據(jù)集有20個類別,訓練集選用VOC2012的train+val部分,共有16 551張圖像,測試集選用VOC2007的test部分,包含4 952張圖像。COCO2017數(shù)據(jù)集包含80個類別共20萬張圖像,目標標注超過50萬個,是目標檢測領域最廣泛公開的目標檢測數(shù)據(jù)集。VisDrone2019包含10個類別,訓練集有19 471張圖像,驗證集共1 648張圖像,測試集中包含4 833張圖像。VisDrone是一個無人機視角的大型數(shù)據(jù)集,共有260萬個標注框,每張圖像包含大量的小目標,考驗模型的小目標檢測能力。
本文實驗的操作系統(tǒng)為Ubuntu18.04.5,CPU型號為Intel(R) Xeon(R) Gold 6230 CPU@2.10 GHz,運行內(nèi)存64GB,GPU型號NVIDIA Corporation GV100GL[Quadro GV100],顯存大小為32 GB。模型基于Pytorch1.7.1深度學習框架實現(xiàn),編程語言為Python,使用CUDA11.4進行GPU加速。
本文算法使用的初始化訓練參數(shù)設定為:batch_size大小為32,輸入圖像尺寸為640×640,采用隨機梯度下降優(yōu)化器SGD,并使用余弦學習率衰減策略來訓練網(wǎng)絡,初始學習率為0.01,權重衰減率為0.000 5,動量因子設置為0.937。
本文使用以下指標作為評價標準:1)mAP@0.5,表示模型在IOU閾值為0.5時的平均精度;2)mAP@0.5∶0.95,表示IOU閾值從0.5到0.95,步長為0.05時各個AP的平均值,其中AP值是指P-R曲線上的精度值沿召回率從0到1變化時的平均值;3)精度P,表示模型預測的所有目標中預測正確的比例,也稱為查準率;4)召回率R,表示在所有真實目標中預測正確的目標比例,也稱為查全率;5)推理時間表示模型檢測一張圖像所需要的時間。相關計算公式如下:
(1)
(2)
(3)
式中:P(R)表示P-R曲線,即在不同IOU閾值下計算精度和召回率的值,并在二維坐標系上得到的曲線;TP表示樣本的真實類別是正例,并且模型預測的結果也是正例;FP表示樣本的真實類別是負例,但是模型將其預測為正例,預測錯誤;AD表示所有的預測框;FN表示樣本的真實類別是正例,但是模型預測為負;AGT表示所有的先驗框。
2.4.1 多尺度自適應錨框實驗及分析
為驗證相比于其他聚類算法,采用Kmeans++算法獲取的初始化錨框更有助于模型提升檢測性能,本文在3個通用目標檢測數(shù)據(jù)集上做了對比實驗,其結果如表1所示。
表1 初始錨框對比
由表1可以看出,采用Kmeans++算法得到的初始錨框在3個數(shù)據(jù)集中的各項評價指標相較Kmeans算法均有提升。在VOC和COCO數(shù)據(jù)集中,檢測目標通常為常規(guī)尺度,對初始錨框的偏移感知較弱,檢測性能略有提升。值得注意的是,在VisDrone小目標數(shù)據(jù)集上的效果提升較為顯著。由于小目標易受環(huán)境干擾,錨框偏移較小幅度對其影響都是巨大的,如果在初始錨框的匹配上就存在位置偏移,則將對檢測產(chǎn)生消極影響。Kmeans++通過改變初始聚類中心的生成方式,增大初始錨框之間差距,使錨框更適應整體數(shù)據(jù)分布,得到了匹配度更好的多尺度錨框,進而提升了模型的檢測性能。
進一步地,為探究聚類算法生成的初始錨框與目標尺度的匹配程度。本文在現(xiàn)有Kmeans和Kmeans++算法基礎上,增加了兩個常用、易實現(xiàn)的Agglomerative層次聚類算法[31]和高斯混合模型(GMM)聚類算法[32]。并在VOC2012數(shù)據(jù)集上進行聚類,計算生成不同數(shù)量錨框下的Avg IOU值,結果如圖8所示。
圖8 4種算法在VOC數(shù)據(jù)集上的聚類結果
其中Avg IOU用來反映聚類錨框和目標錨框的之間的匹配程度,值越大,說明聚類得到的錨框和目標錨框在尺度上的匹配效果越好。
由圖8可以看出,Kmeans++算法與GMM算法整體檢測性能相當,好于Kmeans和Agglomerative算法。但GMM聚類對初始參數(shù)的依賴性很高,需要根據(jù)數(shù)據(jù)集分布,設定初始高斯分布參數(shù),且在不同數(shù)據(jù)集下性能不穩(wěn)定、計算復雜度高。由表1可知,相較于Kmeans++,GMM在VOC2012數(shù)據(jù)集上mAP@0.5提升0.1%,但在VisDrone上mAP@0.5下降1.6%。綜合穩(wěn)定性、計算復雜度、初始參數(shù)設置等因素,Kmeans++更適用于多尺度檢測場景。
Agglomerative基于貪心策略進行聚類,VOC數(shù)據(jù)集中存在極大或極小尺度的離群點,易導致算法陷入局部最優(yōu)解。由于距離策略的選擇,也可能出現(xiàn)大簇合并小簇,而不是合并較近的點。使得Agglomerative算法沒有完全釋放性能,在計算復雜度增大同時,檢測性能更差。
綜上所述,從數(shù)據(jù)分布的適配程度、計算復雜度、初始參數(shù)多個維度進行考慮,本文選擇Kmeans++算法用于初始錨框的生成。
2.4.2 增強多尺度C3結構實驗及分析
為驗證增強多尺度C3結構與模型的契合度,設計兩組實驗。第1組實驗將YOLOv5s模型 backbone中C3結構替換為EM-C3結構,測試其在不同數(shù)據(jù)集上的檢測性能,結果如表2所示。
表2 EM-C3與C3結構在不同數(shù)據(jù)集上對比結果
C3表示在YOLOv5s中采用標準的C3模塊,EM-C3表示在YOLOv5s中采用EM-C3模塊。由表2 可知,采用優(yōu)化后的EM-C3結構在VisDrone數(shù)據(jù)集性能略有提升,而在VOC2012數(shù)據(jù)集上檢測精度提升顯著,其中mAP@0.5∶0.95提升5%。其原因在于,EM-C3結構通過增加3×3、5×5和7×7共3條并行卷積支路分別提取圖像的不同尺度特征。在EM-C3模塊視角下,增加的多尺度特征都基于更大感受野,細節(jié)信息新增不明顯。而從模型角度,淺層EM-C3為深層EM-C3提供了豐富的細節(jié)多尺度特征信息,且目標尺度越大,特征信息受益越多。
進一步地,針對YOLOv5s的C3結構和EM-C3結構,生成樣例圖像檢測的熱力圖,改進前后的模型均檢測出全部4個先驗目標,如圖9所示。在引入多條并行多尺度卷積支路后,常規(guī)尺度和大尺度的待檢測目標,在類別預測準確率上均有提升。值得關注的是,在第1組熱力圖中,車的目標框中包含了人,而人的信息在檢測中屬于噪聲。EM-C3經(jīng)過多尺度特征信息融合,能更好地識別出不同目標特征之間差異。通過淡化非目標特征的方式,專注于當前目標的檢測,使模型獲得了更準確的目標類別預測概率和目標框。在第2組檢測熱力圖中,右側的人存在信息丟失。C3模型僅關注人腹部信息,EM-C3結構模型則利用多尺度特征信息向外擴展,得到人更全面的特征信息。與此同時,模型也獲得窗戶等在內(nèi)的環(huán)境信息。但在特征融合中,通過多尺度目標特征之間的充分融合,獲得了更強的目標信息表征,并間接降低了環(huán)境信息的影響。因此,模型獲得更高的目標預測準確率且沒有出現(xiàn)誤檢。在第3、4組熱力圖中,由于待檢測目標位于圖像前景,尺度較大,不受遮擋,信息較充分,模型在特征融合中,更有效地抑制了環(huán)境等冗余特征,使得關注點只在目標區(qū)域內(nèi)有所擴大。
第2組實驗將YOLOv5s、YOLOv5m、YOLOv5l3個模型backbone中的C3結構替換為EM-C3結構,在VOC2012數(shù)據(jù)集上驗證其檢測性能。表3為EM-C3與C3結構在不同規(guī)模模型上對比結果。
由表3可知,在不同規(guī)模模型下,采用EM-C3結構模型相比原模型檢測性能均有不同程度的提升。其中YOLOv5s-EM_C3提升幅度明顯,在評價指標mAP@0.5∶0.95上提升5個百分點。在計算資源受限且小目標多的場景下,由于小目標難以提取到具有鑒別力的特征且易聚集,但又不能盲目部署大模型,使得此類情形下檢測難度加大。改進后的EM-YOLOv5s模型可以較好地適用于此檢測場景。其原因在于,EM-C3通過增加多條不同尺度的并行卷積支路,在保留原有特征信息的同時,獲得了更多不同尺度的特征信息。在經(jīng)過特征融合之后,模型對圖像信息的捕捉和理解也更好,能夠分辨目標之間更細微的特征差異。一方面可以提升檢測目標的預測概率,另外一方面也可以幫助區(qū)分不同目標特征差異,減少錯檢。檢測精度上相比YOLOv5s提升較大,且新增參數(shù)量較少。同時,隨著模型的增大,更多的卷積層數(shù)和卷積核個數(shù)會彌補并行支路帶來的多尺度特征增強。
為驗證模型的收斂能力,將日志數(shù)據(jù)加以處理,繪制YOLOv5s和EM-YOLOv5s模型loss曲線對比圖。其中l(wèi)oss值為box_loss、obj_loss和cls_loss總損失之和,結果如圖10所示,從中可見在引入EM-C3結構之后,函數(shù)收斂更快,損失值更小;與圖9中模型改進前后熱力圖檢測效果對比相對應,從數(shù)據(jù)和檢測效果兩個維度表明,在增加多條并行卷積支路后,更多尺度的特征信息,使得模型的關注點更多,感受野更大,從而提升了模型的檢測能力。
圖10 Loss對比圖
本文還將各模型數(shù)據(jù)在訓練輪數(shù)和mAP@0.5維度上進行統(tǒng)計,結果如圖11所示。由圖11可見,改進后模型在第40個epoch時檢測性能曲線開始趨于平緩,并且得益于多條不同尺度并行支路的設計,多個改進模型均在訓練的相同階段獲得了相比原模型更豐富的特征信息,使得檢測精度有所提升。
圖11 不同規(guī)模模型檢測性能對比圖
2.4.3 EM-YOLOv5檢測效果及分析
為直觀地展示改進前后模型檢測效果差異,本文用YOLOv5s模型與EM-YOLOv5s模型對VOC2012數(shù)據(jù)集中3組不同場景下的圖像實例進行檢測,實驗結果如圖12所示。
由圖12可見:第1組圖像中,YOLOv5s將昆蟲錯檢為鳥類,而EM-YOLOv5s與圖像先驗信息一致;第2組圖像在多目標的檢測場景下,YOLOv5s模型漏檢狗目標,EM-YOLOv5s則進行了準確預測和目標框定;第3組圖像兩個模型都檢測出目標,但是在分類置信度上,EM-YOLOv5s表現(xiàn)更好。其原因在于,EM-YOLOv5s在經(jīng)過多尺度特征融合之后,對圖像的語義信息有了更深層次的理解。針對特征信息相似的目標,可以分辨目標之間的細微特征差異,降低模型錯檢概率,也能減少特征被視為屬于同一物體的情況,防止出現(xiàn)漏檢,并且對目標的位置及類別可以進行更加準確的判斷。
2.4.4 與主流模型對比實驗及分析
為驗證EM-YOLOv5模型的有效性,在VOC2012數(shù)據(jù)集上,將其與主流的單階段和兩階段目標檢測算法進行對比實驗,結果如表4所示。
表4 EM-YOLOv5與主流檢測模型對比實驗
由表4可知:
1)EM-YOLOv5模型的檢測性能比YOLOv5模型均有較大提升,且在小模型上提升效果更為明顯。其中EM-YOLOv5s相比于YOLOv5s在模型評價指標mAP@0.5∶0.95上提高5.2%。對比YOLOv5s與EM-YOLOv5s、YOLOv5m與EM-YOLOv5m、YOLOv5l與EM-YOLOv5l模型,發(fā)現(xiàn)各模型在更嚴格的評價指標mAP@0.5∶0.95上的提升幅度要大于mAP@0.5。采用自適應錨框策略和EM-C3結構之后,各模型在合理的初始錨框和多尺度特征融合背景下,能更好地捕獲不同尺度目標并提取豐富的多尺度語義信息,從而實現(xiàn)更準確的目標框回歸和分類任務。因此,在面對更加嚴格的評價指標時,模型仍然具有出色的檢測性能。由于多條并行卷積支路的引入,模型的復雜度也有所提升,在檢測時間上EM-YOLOv5s相較YOLOv5s增加1.9 ms,但5.9 ms的檢測時間在眾多模型中仍然處于較好的水平。
2)在對比輕量化模型方面,將YOLOv5的初始backbone結構替換為輕量化的EfficientNetV2[33]、GhostNet[34]獲得了稱之為YOLOv5-EfficientNetV2、YOLOv5-GhostNet的檢測模型。二者在檢測速度上均優(yōu)于EM-YOLOv5s,但在檢測性能上仍然存在較大差距,其中mAP@0.5∶0.95最大相差11.4個百分點,較差的檢測性能,使其難以應對較高精度要求的檢測場景。
3)將EM-YOLOv5模型與之前的主流模型如YOLOv3、YOLOv3-spp、YOLOv3-tiny、SSD和Faster RCNN進行對比。其中,YOLOv3-tiny獲得了最佳的2.9 ms檢測時間,但mAP@0.5∶0.95為31.6%的檢測性能與其余模型差距巨大,難以應對精度要求較高的檢測需求。YOLOv3-spp為其余主流模型中檢測性能最好,超過EM-YOLOv5s,但相比于EM-YOLOv5m,精度和速度上均有差距。
相比于2階段檢測模型,單階段檢測模型在同時兼顧檢測精度和實時性上更具優(yōu)勢。本文在YOLOv5模型的基礎上,通過自適應錨框和增強多尺度C3結構的改進,檢測精度得到了進一步的提高。總體而言,EM-YOLOv5是一種適用于目標尺度不一檢測場景的高性能檢測模型。
本文在YOLOv5的基礎上提出一種增強多尺度的目標檢測算法,解決了原模型初始錨框難以匹配檢測目標及多尺度檢測能力不強的問題。
實驗結果表明,本文提出的EM-YOLOv5模型相比于YOLOv5和其他主流目標檢測模型在檢測精度方面有較大提升,適合對精度要求較高的多尺度的檢測場景。相較輕量化的目標檢測模型,本文在速度方面仍有繼續(xù)提升的空間,這也是后續(xù)的研究方向之一。