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