聶子一,張璞
(1.河北地質(zhì)大學(xué)信息工程學(xué)院,河北石家莊,050031;2.河北政法職業(yè)學(xué)院,河北石家莊,050067)
遙感圖像是通過航拍得到的圖像,隨著我國航天技術(shù)的不斷發(fā)展,遙感圖像的分辨率越來越高,在國土資源管理、環(huán)境監(jiān)測、氣象、軍事等不同領(lǐng)域具有越來越重要的價(jià)值。基于深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法參數(shù)較多,體積較大,計(jì)算速度慢,且由于遙感圖像中物體具有排列密集、物體尺度變化大并且物體背景復(fù)雜的特點(diǎn),使得遙感圖像中的目標(biāo)難以被準(zhǔn)確的檢測,如何根據(jù)遙感圖像快速檢測目標(biāo)便成為一項(xiàng)艱難的挑戰(zhàn)。
為解決上述問題,本文提出將輕量化網(wǎng)絡(luò)模型與YOLOv3 算法相結(jié)合的G-YOLOv3 遙感圖像目標(biāo)檢測算法,該算法使用嵌套殘差塊,在不改變本征特征圖大小的情況下,通過線性操作提取本征特征圖更深層次的特征,且在殘差塊中添加了注意力機(jī)制,加強(qiáng)了網(wǎng)絡(luò)的特征提取能力。
當(dāng)前基于CNN 網(wǎng)絡(luò)模型的目標(biāo)檢測算法分為兩類,基于候選區(qū)域的目標(biāo)檢測算法和基于回歸的目標(biāo)檢測算法,基于候選區(qū)域的目標(biāo)檢測算法也被稱為兩階段(two-stage)算法,兩階段檢測算法即是將目標(biāo)檢測分為兩個(gè)階段處理,第一階段為輸入圖像挑選出目標(biāo)候選區(qū)域,第二階段利用分類器對候選區(qū)域目標(biāo)進(jìn)行分類識別;R-CNN 是經(jīng)典的兩階段目標(biāo)檢測模型,在R-CNN 之后相繼提出基于CNN的Fast R-CNN、Fater R-CNN 等。基于回歸的目標(biāo)檢測算法被稱為單階段(one-stage)檢測算法,直接預(yù)測出物體所屬類別以及目標(biāo)所在位置,經(jīng)過單次檢測可直接得到最終的檢測結(jié)果。典型的單階段檢測算法有YOLO 系列算法、SSD 等[1]。單階段的檢測速度要比兩階段的檢測速度快,并且在檢測精確率這一方面,單階段檢測算法也在逐漸提高,但是檢測精確率變高會導(dǎo)致檢測速度變慢,如何實(shí)現(xiàn)檢測速度與檢測精確率的平衡、將目標(biāo)檢測算法在移動(dòng)終端或者嵌入式設(shè)備中應(yīng)用是需要解決的一個(gè)問題。文獻(xiàn)[1]使用CenterNet 模型做目標(biāo)檢測,將殘差模塊的標(biāo)準(zhǔn)卷積替換成深度可分離卷積[2],降低了網(wǎng)絡(luò)的計(jì)算量,減少冗余。文獻(xiàn)[3]基于原始的S 型網(wǎng)絡(luò),設(shè)計(jì)融入淺層特征融合模塊,加強(qiáng)了對圖像的特征提取。文獻(xiàn)[4]基于VGG 網(wǎng)絡(luò),提出將FCN[5]模型與DBSCAN 密度聚類算法[6]相結(jié)合的DC-DNN 模型,提高了對遙感圖像飛機(jī)的目標(biāo)檢測效果且具有較好的泛化能力。上述文獻(xiàn)中所提出的方法均存在網(wǎng)絡(luò)復(fù)雜、計(jì)算量大且特征圖冗余的問題,為解決此問題,本文在保持網(wǎng)絡(luò)檢測精度的條件下,借鑒輕量級神經(jīng)網(wǎng)絡(luò)模型[7],提出一種檢測速度快,復(fù)雜度低的遙感圖像目標(biāo)檢測算法G-YOLOv3 算法。
YOLOv3[8]算法的主干網(wǎng)絡(luò)Darknet-53 使用了大量的1×1 卷積和3×3 卷積,導(dǎo)致網(wǎng)絡(luò)過于復(fù)雜,計(jì)算和檢測速度也會變慢。G-YOLOv3 算法提出改變網(wǎng)絡(luò)結(jié)構(gòu)中的卷積方式,利用一系列低成本的線性運(yùn)算,使用更少的參數(shù)生成更多的特征圖。經(jīng)過實(shí)驗(yàn)結(jié)果得知,G-YOLOv3 算法的參數(shù)量是原YOLOv3 算法參數(shù)量的三分之二,檢測效果也比原算法的檢測效果好。
G-YOLOv3 算法框架如圖1 所示,該算法使用嵌套殘差塊,在不改變本征特征圖大小的情況下,通過線性操作提取本征特征圖更深層次的特征,且在殘差塊中添加了注意力機(jī)制,加強(qiáng)了網(wǎng)絡(luò)的特征提取能力。

圖1 G-YOLOv3 算法模型框架
GM 操作將卷積過程分為兩步,首先GM 采用正常的卷積計(jì)算,得到通道數(shù)較少的特征圖,然后利用線性操作,對特征圖進(jìn)行線性操作得到更多的相似特征圖,最后將不同的特征圖連接(Concat)在一起,組合成為新的輸出。嵌套殘差塊的詳細(xì)信息如圖2 所示。

圖2 嵌套殘差塊詳解
G-YOLOv3 算法中共涉及4 種不同的殘差塊,CGM-S模塊與GM-S-Conv 模塊殘差塊中添加了SE 注意力機(jī)制,抑制了圖像中無關(guān)的特征信息,從而提升網(wǎng)絡(luò)的特征表示性能;GM-Conv 模塊和GM-S-Conv 模塊將淺層特征信息與深層特征信息融合,減少因跨模塊而丟失的圖像特征。嵌套殘差模塊融合了多層次的圖像信息,有效的減少了網(wǎng)絡(luò)在訓(xùn)練過程中梯度消失的問題,在保持計(jì)算量較小的情況下,加強(qiáng)了網(wǎng)絡(luò)對遙感圖像中較小目標(biāo)的特征提取能力。
本文使用NWPU VHR-10 數(shù)據(jù)集,是一個(gè)用于檢測空間物體的10 級地理遙感數(shù)據(jù)集,目標(biāo)種類有10 種,將800張圖片按照4:1的比例劃分為訓(xùn)練集和測試集。本實(shí)驗(yàn)使用的是臺式計(jì)算機(jī),配置為Intel(R) Core(TM) i7-9700K,32 GB 內(nèi)存,64 位的Windows 10 系統(tǒng);開發(fā)環(huán)境為Pytorch 1.6,python3.7。實(shí)驗(yàn)采用的評價(jià)指標(biāo)為精確率(P)、召回率(R)、平均檢測精度(mAP)和F1 分?jǐn)?shù)。
實(shí)驗(yàn)是在YOLOv3 算法上進(jìn)行改進(jìn)的,通過修改主干網(wǎng)絡(luò)和使用k-means 算法對遙感圖像進(jìn)行聚類分析改變候選框,更加符合數(shù)據(jù)集目標(biāo)分布的特點(diǎn)。表1 是YOLOv3 算法和G-YOLOv3 算法對數(shù)據(jù)集中不同類別的實(shí)驗(yàn)對比數(shù)據(jù)。

表1 各類別的P、R對比

由表1 可以看出,改進(jìn)后的算法在一些尺度較小的類別中,例如飛機(jī)(airplane)、汽車(vehicle)、小船(ship)中的精確度和召回率都比原算法的精度有所提高,且檢測效果也比較好。對于尺寸較大的類別,例如籃球場(basketball court)、地面軌道場(ground track filed)的精確度和召回率的提升都不是很明顯。整體來看,改進(jìn)后的算法檢測小目標(biāo)的效果要比原算法的檢測效果要好,例如棒球場(baseball diamond)的召回率和橋(bridge)的精確度提高了,證明改進(jìn)后的算法比原來的算法效果有明顯的提升。
經(jīng)過對原算法和改進(jìn)后的G-YOLOv3 算法進(jìn)行訓(xùn)練與測試,隨機(jī)選取了部分遙感圖像目標(biāo)檢測進(jìn)行分析,實(shí)驗(yàn)結(jié)果如圖3 所示。

圖3 檢測目標(biāo)圖片效果對比圖
從檢測的結(jié)果中可以看出,G-YOLOv3 算法要比YOLOv3 算法更能夠精確的檢測出小目標(biāo),如羽毛球場(樣例1,2),在場景較為復(fù)雜的背景圖像中,G-YOLOv3 算法識別目標(biāo)分布較為密集圖片,如海港(樣例3,4)的效果要比YOLOv3 算法的識別效果要好。使用原YOLOv3 算法和改進(jìn)后的算法G-YOLOv3 算法做對比試驗(yàn),實(shí)現(xiàn)結(jié)果如表2所示。
由圖3 和表2 可以看出,改進(jìn)后的G-YOLOv3 算法在mAP 提升檢測2.7%的同時(shí),圖片檢測的平均時(shí)間減少了近二分之一,且G-YOLOv3 算法的參數(shù)量也比原來的參數(shù)量少了三分之一。改進(jìn)后的算法檢測精度和檢測效果都超過了原來的算法,證明改進(jìn)后的網(wǎng)絡(luò)在遙感圖像上的檢測效果具有較好的準(zhǔn)確性。

表2 實(shí)驗(yàn)結(jié)果對比
本文將輕量級神經(jīng)網(wǎng)絡(luò)的模型應(yīng)用到Y(jié)OLOv3 算法中檢測遙感圖像,并且針對數(shù)據(jù)集中目標(biāo)大小的不同,提出了改進(jìn)候選框的大小適應(yīng)當(dāng)前數(shù)據(jù),加強(qiáng)了對密集型目標(biāo)和小目標(biāo)的檢測能力,同時(shí)也減少了網(wǎng)絡(luò)所需要的參數(shù),提高了精確度和召回率,證明了改進(jìn)的算法具有一定的合理性。接下來將繼續(xù)研究如何改變現(xiàn)有的算法,繼續(xù)將模型輕量化。