王思元
(哈爾濱師范大學(xué)地理科學(xué)學(xué)院 黑龍江 哈爾濱 150500)
在遙感影像解譯中,小目標(biāo)檢測(cè)是一項(xiàng)十分具有挑戰(zhàn)性的任務(wù)。小目標(biāo)的分辨率通常比較低,且特征較為模糊,在一定程度上增加了識(shí)別與定位的難度。此外,還存在小目標(biāo)被其他地物遮擋的情況。由于目標(biāo)的不完整性,在目標(biāo)檢測(cè)中,會(huì)出現(xiàn)漏檢錯(cuò)檢[1]。傳統(tǒng)的遙感影像小目標(biāo)檢測(cè)方法包括基于滑動(dòng)窗口的區(qū)域選擇、特征提取以及分類器三個(gè)部分。傳統(tǒng)的檢測(cè)方法難以適應(yīng)不同尺寸大小的目標(biāo),使用固定的窗口大小,對(duì)小目標(biāo)的檢測(cè)不夠靈活[2]。近年來(lái),在小目標(biāo)檢測(cè)方面,深度學(xué)習(xí)的方法逐漸占據(jù)主導(dǎo)位置。區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(region-based convolutional neural network, R-CNN)為小目標(biāo)檢測(cè)奠定了基礎(chǔ),通過(guò)引入?yún)^(qū)域候選網(wǎng)絡(luò)生成候選區(qū)域,然后再進(jìn)行分類和回歸[3]。單次多框檢測(cè)器(single shot multiBox detector, SSD)采用多尺度目標(biāo)檢測(cè)的方法,在不同層次的特征圖上進(jìn)行檢測(cè),更好地完成不同尺度的目標(biāo)檢測(cè)[4]。YOLO(you only look once)系列提出了一種端到端的實(shí)時(shí)目標(biāo)檢測(cè)方法。一次性完成目標(biāo)的檢測(cè)和定位,優(yōu)化目標(biāo)檢測(cè)流程,實(shí)現(xiàn)高效的實(shí)時(shí)檢測(cè)。盡管深度學(xué)習(xí)的方法在圖像處理的任務(wù)中取得了一定的成績(jī),但仍需要進(jìn)一步提升模型的性能、適應(yīng)能力以及魯棒性等,以更好地滿足實(shí)際應(yīng)用的需求[5-6]。
YOLO 系列算法是僅采用一個(gè)卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)端到端的目標(biāo)檢測(cè)方法。它將目標(biāo)檢測(cè)任務(wù)視為回歸問(wèn)題,一次性直接完成目標(biāo)檢測(cè)與定位,以實(shí)現(xiàn)高效的實(shí)時(shí)目標(biāo)檢測(cè)[7]。2015 年,YOLOv1 首次提出,經(jīng)歷多次迭代,2023年Ultralytics 公司發(fā)布了YOLO 的最新版本YOLOv8。YOLOv8 是一個(gè)無(wú)錨模型,即不使用預(yù)先定義的錨框匹配真實(shí)目標(biāo)框,而是直接預(yù)測(cè)對(duì)象的中心[8]。無(wú)錨檢測(cè)減少了箱體預(yù)測(cè)的數(shù)量,從而加快了非極大值抑制的速度。無(wú)錨檢測(cè)的方法在一定程度上也可以避免由于預(yù)設(shè)錨框參數(shù)設(shè)置不合理導(dǎo)致的重復(fù)檢測(cè)及漏檢的問(wèn)題[9]。YOLOv8的骨干網(wǎng)絡(luò)類似于YOLOv5,雖然仍然延續(xù)跨階段局部(cross stage partial, CSP)網(wǎng)絡(luò)思想,但使用C2f 模塊替換C3 模塊,使得模型更加輕量化,同時(shí)能夠獲得更加豐富的梯度流信息。YOLOv8 的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,主要分為骨干網(wǎng)絡(luò)(backbone)、頸部網(wǎng)絡(luò)(neck)和檢測(cè)頭(head)三部分。
YOLOv8 的優(yōu)點(diǎn)在于其具有更快的檢測(cè)速度,并且由于其結(jié)構(gòu)的特性,在實(shí)時(shí)應(yīng)用中可以實(shí)現(xiàn)較低的延遲。同時(shí),較強(qiáng)的特征提取能力使得模型能夠更準(zhǔn)確地捕捉細(xì)節(jié)特征,在不同的數(shù)據(jù)集上,均表現(xiàn)出更高的檢測(cè)精度[10]。但是YOLOv8 的整體模型較大,需要較高的計(jì)算資源,在一些資源受限的設(shè)備上可能會(huì)難以應(yīng)用。YOLOv8 在檢測(cè)有遮擋旋轉(zhuǎn)的目標(biāo)或者一些小目標(biāo)時(shí),效果會(huì)有一定的降低。
為了提升YOLOv8 在遙感影像小目標(biāo)檢測(cè)中的整體性能,本研究對(duì)模型做如下三個(gè)方面的改進(jìn)。第一,用更加輕量級(jí)卷積方法鬼影混洗卷積(ghost-shuffle conv,GSConv)代替YOLOv8 中Backbone 中的卷積,以減少模型的計(jì)算成本[11]。第二,引入Slim-neck 設(shè)計(jì)范式,進(jìn)一步優(yōu)化Neck 部分的結(jié)構(gòu),其中GS Bottleneck 模塊能夠有效地對(duì)網(wǎng)絡(luò)的特征處理能力進(jìn)行增強(qiáng),而VoV-GSCSP 模塊則可以提高特征利用效率及網(wǎng)絡(luò)的性能。第三,通過(guò)在特征推理階段添加切片輔助超推理(slicing aided hyper inference, SAHI)庫(kù)模塊,再次提高小目標(biāo)的檢測(cè)率[12]。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2 所示。
圖2 改進(jìn)后的整體網(wǎng)絡(luò)結(jié)構(gòu)圖
為了進(jìn)一步解決卷積神經(jīng)網(wǎng)絡(luò)中預(yù)測(cè)計(jì)算的速度問(wèn)題,研究人員引入一種新的輕量級(jí)卷積技術(shù)GSConv,在保持準(zhǔn)確性的同時(shí)減輕模型負(fù)擔(dān)[13]。在GSConv 中,輸入的數(shù)據(jù)首先通過(guò)一個(gè)卷積層,該層的輸出通道數(shù)為C2/2,然后進(jìn)行深度可分離卷積的操作,再將卷積層與深度可分離層的輸出進(jìn)行拼接操作,最后進(jìn)行混洗操作。它將通道重新排列以提高不同通道間的信息流動(dòng),在提高網(wǎng)絡(luò)的效率同時(shí)兼顧對(duì)不同通道的信息整合[14-15]。GSConv 最終的輸出特征圖共有C2個(gè)通道。GSConv 的計(jì)算成本只有標(biāo)準(zhǔn)卷積(standard convolution, SConv)的一半,但模型的學(xué)習(xí)能力卻與SConv 不相上下。GSConv 結(jié)構(gòu)如圖3 所示。
圖3 GSConv 結(jié)構(gòu)圖
Slim-neck 是一種新的設(shè)計(jì)范式,用于卷積神經(jīng)網(wǎng)絡(luò)的Neck 部分,旨在保持準(zhǔn)確度的同時(shí),降低計(jì)算復(fù)雜度及相關(guān)推理時(shí)間。Slim-neck 靈活地使用 GSConv、 GS Bottleneck 以及VoV-GSCSP 模塊進(jìn)行構(gòu)建。這種組合模式更加便于處理不同場(chǎng)景的任務(wù)。GS Bottleneck 基于GSConv 模塊,能夠加強(qiáng)網(wǎng)絡(luò)對(duì)特征的處理能力,GS Bottleneck 模塊的結(jié)構(gòu)如圖4 所示。VoV-GSCSP 則是利用一次性聚合方法設(shè)計(jì)的CSP 網(wǎng)絡(luò)模塊,以提高特征利用率及網(wǎng)絡(luò)的性能,VoV-GSCSP 模塊結(jié)構(gòu)圖如圖5 所示。
圖4 GS Bottleneck 模塊結(jié)構(gòu)圖
圖5 VoV-GSCSP 模塊結(jié)構(gòu)圖
SAHI 的核心思想是通過(guò)將圖像進(jìn)行切片來(lái)檢測(cè)小目標(biāo)。在本研究中,將此模塊添加到改進(jìn)模型中的特征推理階段,首先采用滑動(dòng)窗口將圖像分成若干區(qū)域,再進(jìn)行調(diào)整圖像尺寸大小的resize 操作,將預(yù)測(cè)圖片分區(qū)域進(jìn)行預(yù)測(cè),并同時(shí)對(duì)整張圖片預(yù)測(cè)。將預(yù)測(cè)的兩部分結(jié)果合并,用非極大值抑制完成過(guò)濾,實(shí)現(xiàn)整個(gè)推理過(guò)程。SAHI 可以不重新訓(xùn)練原始檢測(cè)模型,在不影響性能的情況下快速應(yīng)用,提升小目標(biāo)的檢測(cè)率,從而提升模型的整體性能。
本研究在Linux 18.04 操作系統(tǒng)上進(jìn)行實(shí)驗(yàn)驗(yàn)證。深度學(xué)習(xí)框架選用PyTorch,將初始學(xué)習(xí)率與權(quán)重衰減系數(shù)分別設(shè)置為0.01 和0.000 5,迭代次數(shù)設(shè)置為300 次。在推理預(yù)測(cè)階段,SAHI 的切片寬度及高度設(shè)置為100×100,寬度及高度的重疊率設(shè)置為0.2。實(shí)驗(yàn)選用DOTA 系列數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)。DOTA 數(shù)據(jù)集是一個(gè)用于航空影像中目標(biāo)檢測(cè)的大規(guī)模數(shù)據(jù)集[4]。DOTAv1.0 通過(guò)不同傳感器及平臺(tái)采集影像共2 806 張,實(shí)例數(shù)量188 282 個(gè)。數(shù)據(jù)集中采用四邊形邊界框標(biāo)注,包括飛機(jī)、船只、儲(chǔ)罐等15 種類別。根據(jù)本研究中的模型特性,將圖片裁剪為640×640,然后再輸入模型中進(jìn)行訓(xùn)練。
根據(jù)YOLO 系列模型的評(píng)價(jià)標(biāo)準(zhǔn),本研究選用如下幾個(gè)評(píng)價(jià)指標(biāo):準(zhǔn)確率(precision,P)、召回率(recall,R)、mAP50 以及mAP50-95 對(duì)模型的性能進(jìn)行評(píng)價(jià)。準(zhǔn)確率,即在所有預(yù)測(cè)為正樣本的結(jié)果中,預(yù)測(cè)正確的比例,如公式(1)所示。召回率,即在所有真實(shí)值為正樣本的結(jié)果中,預(yù)測(cè)正確的比例,公式如(2)所示。以準(zhǔn)確率和召回率作為兩坐標(biāo)軸,PR曲線下的面積就是該類別的平均精度(average precision,AP)。mAP50 指交并比為0.5 時(shí),所有類別的平均AP。mAP50-95 指交并比從0.5 到0.95,以0.05 為一個(gè)步長(zhǎng)上的平均mAP,如公式(3)和(4)所示。其中TP指模型正確預(yù)測(cè)的正樣本數(shù)量;FP指錯(cuò)誤預(yù)測(cè)的正樣本數(shù)量;FN指錯(cuò)誤預(yù)測(cè)為負(fù)樣本的數(shù)量。
本研究設(shè)計(jì)消融實(shí)驗(yàn),在軟硬件配置相同的情況下,驗(yàn)證模型中所添加模塊的有效性。表1 中詳細(xì)給出了實(shí)驗(yàn)結(jié)果數(shù)據(jù)。通過(guò)分析,改進(jìn)后的模型準(zhǔn)確率為0.783,原模型為0.752,改進(jìn)后的模型比原模型準(zhǔn)確率提升了3.1%。召回率由0.627 上升到0.666,提升了3.9%。mAP50 與mAP50-95 分別提升了4.1%和4%。改進(jìn)后的模型參數(shù)量與原模型相比下降了15.6%。此外,各模型的預(yù)測(cè)效果如圖6 所示。根據(jù)結(jié)果圖可以得出,添加了SAHI 模塊的改進(jìn)模型有效改善了漏檢現(xiàn)象,如圖6(f)所示,獲得了更好的預(yù)測(cè)效果。
表1 消融實(shí)驗(yàn)
圖6 消融實(shí)驗(yàn)結(jié)果對(duì)比圖
為了驗(yàn)證改進(jìn)模型的性能,選取目前較為主流的目標(biāo)檢測(cè)算法YOLOv3-tiny、YOLOv5n、YOLOv6n 進(jìn)行比較。上述幾種模型的實(shí)驗(yàn)環(huán)境均保證一致。對(duì)比結(jié)果如表2所示。從結(jié)果數(shù)據(jù)分析可知,YOLOv3-tiny 及YOLOv6n較與改進(jìn)后的模型相比,參數(shù)量較大,且通過(guò)準(zhǔn)確率、召回率、mAP50 以及mAP50-95 來(lái)看,改進(jìn)后的模型均優(yōu)于其他幾種模型。預(yù)測(cè)結(jié)果如圖7 所示。
表2 對(duì)比實(shí)驗(yàn)
圖7 對(duì)比實(shí)驗(yàn)結(jié)果對(duì)比圖
本文通過(guò)對(duì)YOLOv8 算法進(jìn)行改進(jìn),將改進(jìn)后的算法應(yīng)用于遙感影像中的小目標(biāo)檢測(cè)。根據(jù)消融實(shí)驗(yàn)及對(duì)比實(shí)驗(yàn)的結(jié)果數(shù)據(jù)來(lái)看,改進(jìn)后的模型與原模型相比在數(shù)據(jù)量、準(zhǔn)確率、召回率及平均精度上都有了一定的提高,對(duì)遙感影像中小目標(biāo)受遮擋不完整的情況也能夠準(zhǔn)確識(shí)別,對(duì)漏檢錯(cuò)檢的有一定程度的改善。但在后續(xù)工作中仍需進(jìn)一步優(yōu)化網(wǎng)絡(luò),提升模型在更多復(fù)雜場(chǎng)景中的表現(xiàn)能力。