馮靈清,杜凱杰,劉宇晶
(山西農(nóng)業(yè)大學 信息科學與工程學院,山西 晉中 030800)
隨著目標檢測技術的趨于成熟,大、中型目標檢測已經(jīng)不能滿足實際需求,對小目標的檢測能力研究已成為目標檢測領域一個重要的應用方向。如果能對船體這種典型的小目標進行精確的檢測,有助于海域活動船體的檢測和海洋作業(yè)效率的提高,對船只管理、海運交通監(jiān)視、海上救援、軍事應用、維護國家海洋權益和海洋安全等具有重要的現(xiàn)實意義和戰(zhàn)略意義[1]。小目標檢測一直是目標檢測研究的難點,因為小目標對象不但分辨率較低、分布比較密集,另外還存在尺度不均衡、檢測過程易受背景干擾等問題,這些原因造成小目標檢測難度偏大,因此小目標檢測能力的提高成為一個亟待解決的問題,李成[2]提出小目標檢測能力的提高重點在提升算法。本文提出基于NAM-YOLOv7的目標檢測方法來進行航拍船體檢測的研究,具有現(xiàn)實可行性及重要的研究意義。
本文試驗采用公開數(shù)據(jù)集AI-TOD的部分數(shù)據(jù)。AI-TOD中包含8類不同的檢測目標,有ship,airplane,bridge,person,storage-tank,swimming-pool,vehicle,wind-mill 8種標簽類別,包含11 214個樣本數(shù)據(jù)圖,實驗使用數(shù)據(jù)集從原始數(shù)據(jù)集中單獨分離出了僅包含ship標簽的數(shù)據(jù)作為樣本數(shù)據(jù)圖,并在樣本數(shù)據(jù)圖中劃分80%作為訓練數(shù)據(jù)集,剩余20%作為驗證數(shù)據(jù)集,包含4 792個訓練樣本數(shù)據(jù)圖,1 174個測試樣本數(shù)據(jù)圖。部分樣本數(shù)據(jù)如圖1所示。實驗數(shù)據(jù)圖尺寸為640×640(像素)大小,為了適應各種不同網(wǎng)絡對數(shù)據(jù)圖的輸入要求,首先需要對不同尺寸的遙感飛機圖像數(shù)據(jù)進行歸一化處理,使其具有很好的適用性和實用性。
圖1 部分樣本數(shù)據(jù)
通過Labelme軟件將數(shù)據(jù)集中目標的類別和位置信息進行標注,格式為(class_name,x,y,w,h),參數(shù)class_name表示目標類別的標簽名稱,(x,y)表示歸一化后目標的中心點坐標,w和h分別表示歸一化后目標框的寬度和高度。同時,對較清晰的目標標注時,使矩形框盡量包含整個目標,對于通過軌跡預示船只位置的數(shù)據(jù)圖僅使矩形框包含軌跡終點的目標部分。
1.2.1 YOLOv7算法
YOLOv7網(wǎng)絡[3]由3個部分組成:input、backbone和head。input用于輸入,backbone層用于提取特征,head層用于預測,該算法模型結構如圖2所示。
圖2 YOLOv7整體框架
1.2.2 NAM模塊
NAMAttention[4]是一種基于歸一化的輕量級的高效的注意力計算方式,NAM模塊重新設計了通道注意力和空間注意力子模塊,通道注意力子模塊使用了Batch Normalization中的縮放因子,如公式(1)所示,通道注意力子模塊如圖3所示,空間注意力子模塊如圖4所示。
圖3 通道注意力模塊
圖4 空間注意力模塊
(1)
本文所做實驗的硬件環(huán)境為:圖像處理設備GPU型號為NVIDIA GeForce RTX3090 GPU,中央處理器大小為11th Gen Intel(R) Core(TM) i7-11700K @3.60GHz CPU,內(nèi)存為64 GB。改進YOLOv7模型是基于PyTorch的深度學習框架,采用Annaconda3(64-bit)+Python3.8+CUDA11.1+cuDNN8.1+PyTorch1.8.1的深度學習環(huán)境[5]。
實驗參數(shù)設置如表1所示。
表1 參數(shù)設置
YOLOv7和NAM-YOLOv7檢測結果通過以下幾種情況介紹。
2.1.1 有效檢測結果對比
從YOLOv7和NAM-YOLOv7有效檢測結果對比可以看出,在船體圖像邊緣模糊、輪廓不清晰的情況下,檢測結果如圖5(a)所示,YOLOv7算法容易出現(xiàn)漏檢情況,對目標的特征提取能力偏低,且船體檢測精度很低;在強背景干擾和邊緣檢測干擾的情況下,檢測結果如圖5(b)所示,YOLOv7算法存在明顯的漏檢情況,對邊緣小目標的特征提取能力一般;在通過船體軌跡預示目標位置與小目標密集雙重干擾情況下,檢測結果如圖5(c)所示;在近岸復雜背景干擾的情況下,檢測結果如圖5(d)所示;YOLOv7算法也都存在明顯的漏檢和誤檢情況。而從上述幾種情況的檢測結果可以看出,本文改進算法通過構建NAMAttention模塊,融入全局注意力機制,加強主干網(wǎng)的空間特征提取能力,抑制不太顯著的特征來提高檢測效率,這種輕量級的高效的注意力機制,顯著降低了船體目標的漏檢概率,增強了算法模型對密集小目標的檢測能力,使模型對小目標船體的位置判斷更加準確。
注:A圖表示原標注圖,B圖表示YOLOv7檢測結果,C圖表示NAM-YOLOv7檢測結果
2.1.2 無效檢測結果對比
從YOLOv7和NAM-YOLOv7無效檢測結果對比可以看出,在背景圖的高度密集陰影與小船體目標高度相似干擾的情況下,檢測結果如圖6(a)所示,模型對小目標船體的位置判斷準確性降低,對目標樣本和干擾樣本的辨識度不夠,對提取的兩種特征的比對不夠細致,注意力機制對高強度陰影的干擾問題作用依舊不明顯,YOLOv7和NAM-YOLOv7的誤檢情況和對真實目標的漏檢情況均比較嚴重,其最主要的原因是目標邊緣模糊、輪廓不清晰、目標過小而且樣本數(shù)據(jù)的背景干擾過于嚴重;在目標近岸且目標船體顏色與岸上復雜背景下的多種物體顏色高度相似干擾情況下,檢測結果如圖6(b)所示,改進算法模型對數(shù)據(jù)樣本不太顯著特征抑制率明顯降低,對近岸密集小目標船體的檢測能力降低,YOLOv7和NAM-YOLOv7的漏檢情況均比較嚴重,其最主要的原因是目標船體的顏色與岸上的建筑物顏色過于相似,而且目標船體臨近岸邊幾乎與海岸融為一體,由此造成的干擾過于嚴重[5]。
注:A圖表示原標注圖,B圖表示YOLOv7檢測結果,C圖表示NAM-YOLOv7檢測結果
2.1.3 小目標檢測精確度對比
研究通過對比分析YOLOv7算法模型和改進后的NAM-YOLOv7算法模型在小目標檢測精確度方面的變化,驗證NAM-YOLOv7算法模型的性能,在相同的環(huán)境配置下,保持訓練集和測試集的數(shù)據(jù)比例不變,對兩個檢測實驗進行對比分析,如表2所示。
表2 YOLOv7和NAM-YOLOv7對比結果
從表2中YOLOv7和NAM-YOLOv7的對比結果中可以看出,YOLOv7的測試精確率為79.8%,而NAM-YOLOv7的測試精確率達到了84.9%,相比之下NAM-YOLOv7的測試精確率提升了5.1%,因此,對原算法模型YOLOv7的改進有效提高了小目標檢測的準確率,注意力機制NAM模塊的添加對原算法模型YOLOv7起到了很好的優(yōu)化作用。
本研究采用YOLOv7算法和NAM-YOLOv7算法對測試集中的1174幅作物圖像進行了測試。檢測精確率變化如圖7所示,可以看出YOLOv7算法模型的檢測精確率隨迭代次數(shù)的變化情況以及NAM-YOLOv7算法模型的檢測精確率隨迭代次數(shù)的變化情況,平均精度均值變化如圖8所示,可以看出YOLOv7算法模型檢測的平均精度均值隨迭代次數(shù)的變化情況以及NAM-YOLOv7算法模型檢測的平均精度均值隨迭代次數(shù)的變化情況。
圖7 YOLOv7和NAM-YOLOv7檢測精確率對比
圖8 YOLOv7和NAM-YOLOv7平均精度均值對比
綜上實驗過程的比對分析表明,改進后的算法模型NAM-YOLOv7對小目標檢測的誤檢率和漏檢率均有一定的降低,精確率有所提高,在多種場景下均有良好的適用性。實驗數(shù)據(jù)證實了本文所改進算法的有效性。
針對原算法模型在進行小目標檢測時出現(xiàn)漏檢和誤檢比較嚴重的情況下,本文提出一種基于YOLOv7改進的算法模型,該模型通過在原模型的backbone層構建注意力機制NAM模塊得到改進的算法模型NAM-YOLOv7,改進后的算法在精度和速度上取得了更佳的平衡,在強復雜背景和近岸復雜背景等干擾情況對邊緣模糊、輪廓不清晰小目標和密集小目標等船體檢測中顯著改善了漏檢和誤檢的問題,能夠滿足對航拍船體數(shù)據(jù)集小型目標的檢測,并且有良好的泛化能力[6]。但是實驗過程中,由于數(shù)據(jù)集目標太小以及存在多種干擾情況,訓練耗費的迭代次數(shù)較多,同時改進的算法模型也還存在比較嚴重的誤檢和漏檢情況,針對這些問題仍需要進一步深入研究。