蔣镕圻,彭月平,謝文宣,謝郭蓉
(1.武警工程大學信息工程學院,陜西 西安 710086;2.武警工程大學研究生大隊,陜西 西安 710086)
目標檢測作為計算機視覺領域中的重要分支,在智能監控、航空航天、工業檢查等諸多領域發揮著十分重要的作用,近年來一直備受關注并被眾多學者研究。小目標的檢測是目標檢測領域的一個重點問題,由于小目標在視頻或圖像中所占像素小,相關特征不明顯,同時目前的目標檢測算法大多是基于卷積神經網絡(convolutional neural network,CNN),在經過多次卷積和池化操作后,大量的小目標特征信息被丟棄而導致檢測結果存在較多的錯檢和漏檢,所以其一直以來都是目標檢測任務中一項難點[1-2]。而在實際場景中,大多數目標以小目標形式出現,因此研究小目標的檢測是目標檢測任務中一項十分重要且具有挑戰性的工作。
傳統的人工提取目標特征的算法對于小目標檢測存在較大的局限性[3],目前小目標檢測的算法都是基于CNN[4-6],主要包括以YOLO[7]系列、SSD[8]系列等為代表的單階段檢測算法,以Fast R-CNN[9]系列、Mask R-CNN[10]等為代表的二階段檢測算法,以及以Cascade R-CNN[11]為代表的多階段檢測算法。當下目標檢測任務主要針對應用場景的不同而選擇合適的檢測算法:單階段算法檢測速度最快,但準確率較低;二階段和多階段檢測算法能夠獲取較高檢測精度,卻犧牲了檢測速度。
由于目標檢測問題很大一部分是基于視頻,對檢測的實時性要求較高,所以本文以目前最優的單階段目標檢測算法YOLOv4[12]為基礎,選擇小目標數據集VEDAI[13]中的目標為檢測對象,結合scSE注意力機制[14]和空間金字塔池化[15](spatial pyramid pooling,SPP)對YOLOv4 網絡進行改善。首先使用K-means++聚類算法對錨定框進行優化,并以優化后的YOLOv4 算法為baseline。分別研究和分析:①scSE 注意力模塊嵌入至模型的骨干網、頸部以及檢測頭前,這3 個位置對算法性能帶來的影響;②在網絡頸部第1 和第2 次上采樣后增加SPP模塊對算法性能的影響。實驗結果表明,在骨干網的“Add”和“concat”特征融合操作后嵌入scSE 注意力模塊能有效提升算法對小目標的檢測精度,mAP@0.5 值較YOLOv4 提升了2.4%,而將其嵌入至算法模型更深的頸部和檢測頭前并不能帶來算法性能的提升,相反可能降低檢測性能。在網絡頸部增加SPP模型能有效增強網絡頸部特征圖信息表達能力,使算法對小目標的檢測更加友好。最后根據上述實驗結果,提出scSE-IYOLOv4 檢測算法,算法綜合了在YOLOv4 骨干網嵌入scSE模塊、在頸部增加 SPP模塊的改進方式。實驗證明scSE-IYOLOv4 能顯著提升小目標的檢測精度,在VEDAI 測試集上mAP@0.5 值較YOLOv4 提升了4.1%,在PASCAL VOC 數據集上mAP@0.5 提升了2.2%。
1.1.1 算法模型結構配置
YOLOv4[12]是一種實時性較強的單階段目標檢測算法,該算法由用于特征提取的骨干網Backbone、特征融合的頸部Neck 和進行分類和回歸操作的檢測頭 Head 3 部分組成。與經典的YOLOv3目標檢測算法相比,YOLOv4 算法在YOLOv3 的“Darknet53+FPN+YOLO-Head”算法結構的基礎上,融合了近年來深度神經網絡中優秀的算法模型思想和訓練技巧。模型骨干網在Darknet基礎上,融合 CSPNet[16]算法的思想,形成CSPDarknet,達到了在降低網絡計算量的同時保證網絡準確率的效果;頸部由YOLOv3 采用的特征金字塔網絡(feature pyramid networks,FPN)改為加入空間金字塔池化層[15](spatial pyramid pooling,SPP)的路徑聚合網絡[17](path aggregation network,PANet),其將骨干網輸出的深層特征向淺層傳遞,改善了FPN 網絡由淺層特征向深層傳遞導致的淺層特征丟失的問題;檢測頭部延續了YOLOv3 中的YOLO-Head,見表1,最終形成“CSPDarknet+PAN-SPP+YOLO-Head”的模型結構。

表1 YOLOv3 與YOLOv4 網絡對比 Table 1 Comparison of YOLOv3 and YOLOv4 network
1.1.2 算法檢測流程
如圖1(a)所示,YOLOv4 在輸入端將輸入圖像尺寸調整為608×608 輸入至網絡進行訓練和檢測;利用CBM 卷積層和殘差模塊Resunit 堆疊而成的CSP模塊組成的骨干網,在加深網絡層數以得到更豐富的語義信息特征圖的基礎上有效地防止了梯度消失或爆炸的問題,并在骨干網中通過5 次步長為2、kernel 大小為3 的卷積層進行下采樣實現特征圖的降維;在網絡頸部分別進行2 次上采樣并以PAN+SPP模型結構實現淺層特征與高層語義特征的融合以及多尺度感受野的融合,更加充分地利用了淺層網絡的細節特征,改善了小目標特征丟失的問題;檢測頭利用回歸+分類的思想,將輸入圖像分別劃分為76×76、38×38、19×19 的3 種不同尺寸大小的柵格圖,分別實現了對小型、中型和大型目標的檢測,相比于2 階段檢測算法,YOLOv4 在有效提升檢測精度的同時,節省了大量的計算資源和訓練時間成本,提升了檢測速度。
圖1(b)~(c)中CBM 和CBL模塊是融合了批量歸一化(batch normalization,BN)并使用Mish 和Leaky relu 激活函數的卷積層;圖1(d)為殘差模塊Resunit 的結構,其中“Add”操作是將相同尺寸大小的特征圖進行相加;圖1(e)為SPP模塊結構,其中“concat”操作是將相同大小的特征圖進行通道拼接;圖1(f)為CSP模塊結構,結合CSPNet 的思想由多個殘差塊堆疊組成。

圖1 YOLOv4 網絡結構((a) YOLOv4 網絡結構圖;(b) CBM模塊結構;(c) CBL模塊結構;(d) Resunit模塊結構;(e) SPP模塊結構;(f) CSP模塊結構) Fig.1 YOLOv4 network structure ((a) YOLOv4 network structure diagram;(b) CBM module structure;(c) CBL module structure;(d) Resunit module structure;(e) SPP module structure;(f) CSP module structure)
受SENet[18]中提出的SE模塊啟發,文獻[14]設計了3 種基于SE模塊的變體,即:空間壓縮通道激勵模塊sSE、通道壓縮空間激勵模塊cSE,以及將cSE 和sSE模塊并行組合形成的scSE模塊。上述3 種注意力模塊已在語義分割任務中進行了測試,實驗證明scSE模塊在語義分割任務中能發揮出優于通道注意力和空間注意力的效能。
(1) cSE模塊的核心思想是將特征圖的全局空間特征壓縮為各通道的描述符,根據各個通道之間的依賴不同對特征圖進行調整,提高網絡對于重要通道特征的表征能力。具體是將輸入的特征圖U=[u1,u2,…,uc](其中通道ui∈RH×W,H和W分別為特征圖的高和寬)通過全局池化層[19]將特征圖全局空間特征嵌入到向量z(其中z∈R1×1×C,C為通道數),其第k個通道處的值為

其中,i,j分別為輸入特征圖中第k個通道特征圖上每個參數所處的高、寬空間位置(i∈H,j∈W),即每個參數的坐標。
再將得到的向量z通過權重分別為W1和W2的全連接層,并依次經過ReLU 激活函數(δ(…))和Sigmoid 歸一化處理(σ(…))得到第i個通道ui的特征重要性程度,其中的值為

(2) sSE模塊通過壓縮特征圖的通道特征,激勵重要空間特征來提高網絡對重要空間特征的學習。假設輸入特征圖U=[u1,1,u2,2,…,ui,j,uH,W](ui,j∈R1×1×C表示位置在特征圖(i,j)處的所有通道特征信息),通過通道數為C權重為Wsq的一個1×1 的卷積塊對輸入特征圖進行通道壓縮,輸出通道數為1,尺寸為H×W的特征圖為

將得到的特征圖q經Sigmod 歸一化(σ(…)),得到特征圖中每個空間位置(i,j)的空間信息重要性程度σ(qi,j),以增強對重要空間位置特征。
(3) scSE模塊是cSE 和sSE模塊的并行組合。通過對輸入特征圖U分別做通道和空間上重要性程度的提取,并進行相加處理后,將得到的具有高重要性(即同時具有重要通道和重要空間特征)的特征子圖進行更強的激勵,促使網絡學習更有意義的特征信息。
YOLOv4 網絡預設了9 個共3 類目標框(Anchor box=12,16;19,36;40,28;36,75;76,55;72,146;142,110;192,243;459,401),分別用于76×76,38×38和19×19 的3 個不同尺度的YOLO 檢測頭預測出目標的Bounding box。這些Anchor box 是在常規大小目標數據集PASCAL VOC 上通過邊框聚類得到的Anchor box,涵蓋了大到汽車、自行車,小到鳥類等多尺度的目標,從原預設的Anchor box 的尺寸可以看出其檢測的目標大小差距較大對于普通場景下的目標檢測任務具有較好的適用性,但針對目標大小較為極端的數據集,使用原預設的Anchor box會使YOLO 檢測頭計算交并比IOU 時篩選不出合適的Bounding box,會嚴重影響模型的性能。因此為提升Bounding box 的檢出率,本文預先針對數據集中目標大小進行邊界框聚類分析。
本實驗使用K-means++聚類算法對VEDAI 數據集中目標的Anchor box 進行聚類分析,與傳統的K-means 聚類算法[20]相比,K-means++優化了初始點的選擇,能顯著改善分類結果的誤差,以獲得更適合小目標數據集的Anchor box 的大小,提高小目標檢測的精度。K-means++算法首先隨機選取某一個樣本目標框區域作為初始聚類中心,然后計算每個樣本xi與已有聚類中心點的距離D(x),并計算每個樣本被選為下一個聚類中心的概率,即

再通過輪盤法選出下一個聚類中心。重復上述計算距離D(x)和概率P(x)的步驟直到得出K個目標框。最后不斷重復計算每個樣本到聚類中心K個點的距離,將該樣本點劃分到距離最小的聚類中心的類中并更新聚類中心,直到Anchor box 的大小不再發生改變。
目前,實驗已證明嵌入scSE模塊的CNN 在語義分割任務中能夠取得良好的性能提升,但對于目標檢測任務,scSE 注意力模塊能否有效提升算法的檢測性能仍是有待考究的問題。
在小目標檢測任務中隨著網絡層次的不斷加深,特征圖中小目標的特征也愈發微弱,因此造成漏檢和誤檢。而scSE 注意力本身是將特征圖中重要的空間和通道特征增強,使得網絡在訓練過程中能抓住目標特征的“重點”學習。但在具體情況下將scSE 注意力模塊嵌入至網絡哪個位置更加有效至今沒有一套理論說法。
本文將對scSE模塊嵌入至網絡模型中的不同位置所發揮的性能進行研究。根據YOLOv4 檢測模型結構,可在YOLOv4 的骨干網、頸部和檢測頭3 個區域分別嵌入scSE 注意力模塊,由于其是對重要通道和空間特征進行增強,因此可將scSE 注意力模塊分別嵌入到上述3 部分中的每一特征融合區域(即Add 和concat 層后以及模型檢測頭之前),由此產生3 種基于YOLOv4 算法的新網絡模型:scSE-YOLOv4-A,scSE-YOLOv4-B 和scSE-YOLOv4-C,圖2 展示了scSE模塊嵌入的具體位置。
圖2(a)將scSE模塊嵌入至YOLOv4 網絡骨干網CSPDarknet 的每個殘差塊的Add 層和每一CSP模塊中的concat 層后;圖2(b)表示scSE模塊嵌入至YOLOv4 頸部PAN 結構的每一特征融合concat層后;圖2(c)表示在YOLOv4 的每一個檢測頭前分別嵌入一個scSE模塊。

圖2 3 種嵌入scSE模塊的YOLOv4模型((a) scSE-YOLOv4-A 算法的修改區域;(b) scSE-YOLOv4-B 算法的修改區域;(c) scSE-YOLOv4-C 算法的修改區域) (圖中“?”代表圖1 中的concat 操作,“⊕”代表圖1 中的Add操作,“”表示嵌入scSE模塊前后的轉換符號) Fig.2 Three YOLOv4 mode embedded in the scSE modules ((a) Modification area of scSE-YOLOv4-A algorithm; (b) Modification area of scSE-YOLOv4-B algorithm; (c) Modification area of scSE-YOLOv4-C algorithm) (In the figure,“?”represents the concat operation in Fig.1,“⊕”represents the Add operation in Fig.1,“”represents the conversion before and after embedding the scSE module)
受SPPNet 網絡[15]的啟發,YOLOv4模型在骨干網后加入了SPP模塊,結構如圖3 所示。

圖3 YOLOv4 網絡中SPP模塊結構圖 Fig.3 SPP module structure diagram in YOLOv4 network
圖3 輸入的特征圖通過一個卷積層后,分別經過5×5,9×9 和13×13 的3 個不同尺寸的內核做最大池化處理,再通過concat 將得到的特征圖進行通道的拼接,輸出的通道數變為原通道數的4 倍,其特征圖尺寸不變。其中每個池化層設步長stride 為1,填充padding=(k-1)/2 (k為最大池化中內核的尺寸),得到輸出特征圖尺寸為

其中,n為輸入特征圖的大小;p為填充padding;s為步長;為向下取整。由式(5)可得,通過池化層得到的特征圖大小與輸入時保存一致。
Maxpool 層在保持特征圖平移不變性的同時,擴大了感受野,而SPP模塊通過使用不同大小內核的Maxpool層得到特征圖局部區域感受野和接近全局的感受野信息,并進行特征融合。融合不同尺度感受野的操作能有效豐富特征圖的表達能力,增強骨干網輸出特征的接受范圍,分離出重要的上下文信息[21],有效提升了模型的檢測性能。
在YOLOv4 中,SPP模塊位于特征圖大小為19×19 的骨干網后,經過SPP模塊的特征信息直接送入特征圖大小為19×19的YOLO檢測頭進行結果預測。基于上述基礎,本文分別在YOLOv4 網絡第一次和第二次上采樣后,即網絡第123 層和140 層加入SPP模塊,以增強輸入到38×38 和76×76 尺寸YOLO 檢測頭的特征圖特征信息的表達能力,實現更好地檢測效果,本文將加入SPP模塊的改進YOLOv4 網絡稱為YOLOv4-SPP3 (圖4)。

圖4 YOLOv4-SPP3 算法的修改區域 Fig 4 Modification area of YOLOv4-SPP3 algorithm
本實驗模型訓練使用硬件平臺為 Intel(R) Xeon(R) Gold 5218 CPU,GeForce RTX 2080 Ti 11 G GPU;模型測試推理平臺為AMD R7 4800H 2.9 GHz CPU,GeForce RTX 2060 6 G GPU。軟件使用Ubuntu系統,python 3.7,PyTorch 1.5.0 深度學習框架。
本實驗采用針對車輛等小目標檢測的航空圖像VEDAI (Vehicle detection in aerial imagery)公共數據集[13],該數據集共包括來自美國猶他州的1 210 張1024×1024(或512×512)大小的衛星圖像,其包含車輛、船、飛機在內共3 640 個實例,9 個類別,即“轎車”“卡車”“野營車”“拖拉機”“飛機”“輪船”“皮卡”“面包車”和“其他”,如圖5 所示。所有目標分別分布在田野、草地、山脈、市區等背景豐富的地區,平均每幅圖像有5.5 輛車,占據了圖像總像素的0.7%左右,VEDAI 作為小目標檢測的公共數據集具有一定的挑戰性。

圖5 VEDAI 數據集中不同類別的目標圖像 Fig.5 Different types of target images in the VEDAI dataset
實驗首先將VEDAI 數據集中的原標簽轉換為適合YOLO 網絡的txt 標簽文件,選擇512×512 尺寸VEDAI數據集圖片并隨機從1 210張圖片中抽取960 張圖片作為訓練集,將余下的250 張圖片作為測試集,訓練集和測試集占比為8∶2。
實驗采用 K-means++算法對數據集目標的Anchor box 進行聚類分析,并以平均交并比(Avg IOU)作為聚類的評價標準,結果如圖6 所示。其展示了取k個初始Anchor box 下Avg IOU 的結果。

圖6 K-means++算法聚類結果 Fig.6 K-means++algorithm clustering results
為保證預測結果的精度,同時避免選取過多的Anchor box 帶來巨大的運算量,本實驗選取k=9,Avg IOU=79.52%時聚類產生的Anchor box,其寬和高分別為(22,10),(10,21),(20,18),(14,29),(38,14),(24,26),(20,67),(40,35),(64,63)。
本實驗采用準確率(precision,P)、召回率(recall,R)、F1 分數、mAP (mean average precision,即平均AP 值)4 項性能指標評判網絡性能[22],其中mAP 指標用于多標簽圖像分類任務的評價,是多類別目標檢測中衡量模型整體檢測精度的重要指標。其中檢測精度P、召回率R和mAP分別為


其中,XTP為被正確檢測出來的目標數;XFP為被錯誤檢出的目標數;XFN為未被檢測出來的目標數;c為分類數;AP為單個目標類別的平均精度,其中
實驗設置輸入圖片大小尺寸為512×512,階段初始學習率為0.001,每50 次迭代后將學習率衰減為原來的0.1 倍,動量為0.9,衰減系數為0.000 5,使用SGDM 梯度優化算法,batchsize 設為3,設置訓練Epochs 為230 次。
3.3.1 K-means++優化結果對比實驗
實驗首先對比了使用K-means++聚類算法優化錨定框Anchor box 后,在VEDAI 數據集上,YOLOv4 算法對小目標的檢測性能的變化。將未經優化的目標框與通過K-means++聚類得到的目標框的YOLOv4 網絡在VEDAI 數據集上進行了訓練,并在測試集上進行驗證,結果見表2。

表2 目標框優化結果對比(%) Table 2 Comparison of target frame optimization results (%)
表2 通過平均準確率P、平均召回率R以及mAP@0.5 的3 個指標對比分析了使用K-means++算法優化目標框對網絡性能帶來的影響。其中YOLOv4-1 表示使用未經優化的Anchor box 的原始網絡,YOLOv4-2 表示使用優化的Anchor box 的網絡。從結果可以看出,優化目標框使其適合對VEDAI 數據集上小目標的框定能夠明顯提升網絡的檢測精度,mAP@0.5 提升了6.4%。
3.3.2 改進YOLOv4 網絡模型的效能評估和分析
本實驗將3.2 節提出的3 種scSE模塊嵌入式網絡模型 scSE-YOLOv4-A,scSE-YOLOv4-B,scSE-YOLOv4-C 和3.3 節中提出的YOLOv4-SPP3網絡模型在VEDAI 訓練集上進行訓練,并在測試集上對模型性能進行評估,對比原YOLOv4模型檢測性能,研究scSE模塊嵌入至檢測網絡的不同位置所帶來的性能的變化,以及在不同檢測頭之前增加SPP模塊給網絡性能帶來的改變,以實現對網絡更好的優化設計,實驗結果如圖7 和表3 所示。

圖7 不同模型訓練過程中mAP 的變化 Fig.7 Changes in mAP during training of different models

表3 不同模型在測試集上的效能評估(%)Table 3 The effectiveness evaluation on different models in the test set (%)
圖7 為不同網絡在訓練200 個Epochs 的過程中訓練模型在測試集上返回的mAP值的變化,其中測試集上IOU 閾值設為0.6。
表3 為將訓練好的模型在測試集上測試得到的模型性能評估指標結果,其中IOU 閾值設置為模型評估通用的0.5,即mAP@0.5。
通過圖7 和表3 可以看出,在骨干網的“Add”和“concat”特征融合層后嵌入scSE 注意力模塊能有效提升算法對小目標的檢測性能,mAP@0.5 值較YOLOv4 提升了2.4%;而將scSE模塊嵌入至網絡的頸部和頭部,模型性能并沒有得到提升,相反mAP@0.5 值產生了1.2%和0.5%的下降。本文認為將scSE 注意力模塊嵌入至網絡不同部位所以會產生截然不同的實驗效果,是由于骨干網中特征圖的語義信息并不豐富,仍然保留著目標在特征圖中的中、淺層的紋理信息和輪廓信息,而這些信息對于小目標的檢測至關重要,在骨干網中嵌入scSE 注意力模塊能更好對特征圖中小目標的空間特征和通道特征進行增強,而在網絡更深層的頸部和頭部,其特征圖表現出更豐富的語義特征、更大的感受野以及更小的特征圖尺度,scSE 注意力模塊難以再從特征信息高度融合的小尺度特征圖中有效區分出重要的空間和通道特征,相反,嵌入注意力模塊可能造成網絡對重要特征學習的偏差,導致檢測精度下降。
圖7 和表3也證明了2.3節提出的YOLOv4-SPP3算法的有效性。同時增加SPP模塊的YOLOv4-SPP3網絡較YOLOv4 網絡在測試集上性能有所提升,mAP@0.5 值較YOLOv4 提升了2.4%。由此證明,在頸部增加多尺度感受野的融合,能增強特征圖對不同尺度感受野的表達能力,豐富局部區域的目標特征與全局特征圖下的目標特征信息,有效提升YOLOv4模型對目標在圖像上的定位和分類,得到更高的檢測精度。
3.3.3 scSE-IYOLOv4 算法性能測試及對比實驗
結合3.3.2 節的實驗結果,可以發現在骨干網嵌入scSE 注意力模塊和在網絡頸部增加SPP模塊能有效提升YOLOv4 算法對小目標的檢測性能,因此需將兩者相結合,提出一種嵌入scSE模塊的改進YOLOv4 小目標檢測算法——scSE-IYOLOv4 算法,該算法結構如圖8 所示。

圖8 scSE-IYOLOv4 算法結構圖 Fig.8 scSE-IYOLOv4 algorithm structure diagram
為了驗證算法的有效性,可將scSE-IYOLOv4算法在VEDAI 數據集上進行了訓練,并在VEDAI測試集上測試,結果見表4,并與在YOLOv4 骨干網相同位置嵌入不同注意力模塊進行對比,結果見表5。

表4 模型改進前后在VEDAI 測試集上的檢測結果對比(%)Table 4 Comparison of test results on the VEDAI test set before and after model improvement (%)

表5 不同注意力模塊對YOLOv4 網絡性能的影響(%)Table 5 The impact of different attention modules on YOLOv4 network performance (%)
由表4 和表5 可知,scSE-IYOLOv4 算法在小目標的檢測上較YOLOv4 算法表現更好,mAP@0.5值提升了4.1%,并對比嵌入其他注意力模塊的改進網絡,scSE-IYOLOv4 算法達到了77.1%的最高mAP@0.5 值。同時實驗也證明了在骨干網中嵌入注意力模塊確實能改善模型的檢測性能,嵌入cSE,sSE 和scSE模塊的改進網絡,其檢測性能均能得到不同程度的提升,mAP@0.5 值分別有1.1%、0.5%和2.4%的提升。同時,對比嵌入cSE模塊和sSE模塊的YOLOv4 算法的實驗結果,本文進一步發現,相比于空間注意力(如sSE模塊),通道注意力(如cSE模塊)能給目標檢測網絡YOLOv4 帶來更高的性能提升,這恰恰與語義分割相反[14]。
圖9 為使用YOLOv4 和scSE-IYOLOv4 算法在VEDAI 數據集檢測得到的部分結果圖。從中可以看出,原網絡在小目標檢測中很難找到合適目標框,存在較多的誤判和較低的置信度,而改進后的網絡能夠更加準確地給出正確的目標框,并提升了目標判別的置信度,同時有效減少了目標類別的誤判。

圖9 改進模型檢測結果對比Fig.9 Comparison of improved model detection results ((a) YOLOv4;(b) scSE-IYOLOv4)
本實驗還將本文提出的scSE-IYOLOv4 網絡與YOLOv3 網絡、文獻[2]提出的改進的YOLOv3 網絡以及基于DENG 等[23]提出SE-IYOLOv3 網絡的思想設計的SE-YOLOv4 網絡在VEDAI 數據集的測試集上進行檢測性能的對比,具體結果見表6。
結合表6 對比不同算法在VEDAI 數據集上的檢測精度,本文提出的scSE-IYOLOv4模型表現出了最高的檢測性能,證明了該算法在小目標檢測上的有效性。

表6 不同算法性能對比(%) Table 6 Performance comparison of different algorithms (%)
同時實驗還進一步選擇PASCAL VOC 數據集,測試了scSE-IYOLOv4 檢測算法在檢測常規大小目標時的表現。本文使用了2007 和2012 的2 個版本圖片進行訓練和測試,其中將除VOC2007 版測試集以外的數據集全設定為訓練集。圖10 為訓練100 個 Epochs 后 YOLOv4,scSE-YOLOv4 和scSE-IYOLOv4 訓練集上總損失值的變化曲線,表7 為訓練后的模型在測試集上的檢測結果。
如圖10 和表7 所示,本文算法在普通目標的檢測效果上也有一定程度的提升,在VOC 數據集上較原網絡提升了2.2%。

圖10 模型在VOC 數據集上訓練的情況Fig.10 Comparison of test results before and after model improvement

表7 VOC 測試集上測試結果(%) Table 7 Test results on VOC Test-set (%)
為提升目標檢測任務中小目標的檢測精度,本文基于YOLOv4 網絡模型結合scSE 注意力機制和空間金字塔池化SPP模塊對YOLOv4 算法進行優化,并提出scSE-IYOLOv4 的小目標檢測算法。使用的VEDAI 數據集,采用K-means++聚類對目標樣本進行錨定框大小的優化。在YOLOv4 算法的基礎上,分別研究、分析并證明注意力模塊并非嵌入至網絡的每個位置都能得到性能的提升,只有在YOLOv4 算法模型骨干網的“Add”和“concat”層后嵌入注意力模塊,才能提升算法對小目標的檢測精度,其中嵌入scSE 注意力模塊,在VEDAI 測試集上mAP@0.5 提升了2.4%。本文還發現在網絡頸部增加SPP模型能有效增強網絡頸部特征圖信息表達能力,使算法對小目標的檢測更加友好,在VEDAI 測試集上mAP@0.5 提升了2.4%。最后通過實驗本文提出的scSE-IYOLOv4 檢測算法,即在YOLOv4 算法的骨干網嵌入scSE模塊,在頸部增加SPP模塊。實驗證明,本文算法能顯著提升對小目標的檢測精度,在VEDAI 測試集上mAP@0.5 值較YOLOv4 提升了4.1%,并且該算法對常規大小的目標也能得到一定效果的提升,在PASCAL VOC數據集上mAP@0.5 提升了2.2%。
但嵌入注意力模塊和增加SPP模塊會提升算法的參數量和浮點運算量,降低算法檢測的實時性。在下一步的研究中,將考慮對模型進行壓縮、剪枝來輕量化scSE-IYOLOv4 網絡模型,在保證算法檢測精度的基礎上提升模型檢測的實時性。