李惠惠,范軍芳,陳啟麗
(1 北京信息科技大學高動態導航技術北京市重點實驗室,北京 100192;2 北京信息科技大學自動化學院,北京 100192)
遙感圖像包括車輛、飛機等敏感目標,因此基于遙感圖像的目標檢測在城市管理,國防安全等領域具有重要意義。通過遙感圖像進行目標檢測的首要目的,在于找出其中的特定目標并準確識別出目標的具體類別。但是遙感圖像普遍存在目標密集、目標遮擋、背景復雜等難題,降低了目標檢測與識別的準確率。由于小目標覆蓋面積小、像素面積占比少、特征表達不充分、拍攝距離較遠、圖像覆蓋范圍較大等特點,俯瞰角度拍攝導致的目標形態畸變,使得基于遙感圖像的小目標檢測具有更大挑戰。因此提高遙感圖像的小目標檢測精度是一個具有較高研究價值的方向。
傳統的遙感圖像目標檢測方法一般采用滑動窗口進行區域選擇,再利用尺度不變特征變換等方法對目標進行特征提取,最后選用機器學習方法進行分類,存在識別準確率低、檢測速度慢、泛化能力較差,在復雜背景下檢測效果不佳。目前,卷積神經網絡已成為目標檢測與識別的主要方向。基于深度學習的目標檢測算法主要包含兩類:一類是雙階段的目標檢測算法,如Faster R-CNN、Mask R-CNN等;另一類是單階段的目標檢測算法,如SSD、YOLO系列等。YOLOv3是2018年 Redmon等提出的,使用圖片的全局區域進行訓練,能夠將目標和背景更好的區分。張裕等以YOLOv3為基礎,提出了多尺度特征稠密連接的遙感圖像目標檢測模型YOLO-RS,保留了圖像更多的目標信息,提高了不同尺度的特征層之間的信息交互。在2020年4月,Bochkovskiy等在YOLOv3的基礎上提出了YOLOv4,新增CSP和PAN結構,并且采用了一些實用的技巧實現了檢測速度和精度的權衡。余培東等在YOLOv4的基礎上嵌入SE模塊,根據待檢測目標尺度特點調整錨點框,平均準確率得到了顯著提升。2020年6月,Ultralytics公司開源了新的目標檢測網絡框架YOLOv5,總體架構和YOLOv4類似,在細節上進行了改進,在檢測速度和精度上都更勝一籌。但目前主流的深度學習算法隨著卷積網絡的加深,感受野緩慢增長,容易被大目標主導,而小目標在檢測器提取的特征較少,在整個學習過程中容易被忽略,從而不能發揮其最優效果。因此提出一種基于YOLOv5的改進算法,并通過實驗驗證了該算法的優越性。
YOLOv5算法由輸入端、主干網絡、Neck網絡和輸出端4個部分組成。其網絡結構圖如圖1所示。

圖1 YOLOv5結構圖
YOLOv5的輸入端采用和YOLOv4一樣的Mosaic數據增強。其主要原理是:選定1張圖片和隨機3張圖片進行隨機裁剪,再拼接成一張圖片作為訓練集圖片送入神經網絡。這樣不僅可以豐富數據集的背景,提高系統的魯棒性,而且減少了GPU內存的損耗,加快了網絡的訓練速度。
YOLOv5的主干網絡是CSPDarknet53,主干網絡包括Focus結構、CSP1_X結構、SPP模塊等。其中Focus結構主要用來進行切片操作,在不損失任何信息的情況下通過增加特征圖的維度來縮小特征圖的尺寸,目的是為了使特征圖在每一個特征信息沒有變化的前提下增加圖像的特征數。骨干網絡采用CSP1_X結構,加入殘差結構后在進行反向傳播,加強了特征融合能力并有效防止了梯度消失。SPP模塊采用4種尺寸最大池化操作,然后進行Concat合并組合,能夠增大特征網絡的感受野,有效分離特征信息,最終將輸出恢復到同初始輸入一致。
Neck網絡采用FPN結合PAN的結構,加強了網絡的特征融合能力,FPN結構利用上采樣的方式提高對小目標的測試能力。PAN結構使底層的定位信息更好地傳遞到頂層。兩個結構相融合,提高了對遮擋目標的測試效果。
YOLOv5以GIOU_Loss做為損失函數,數值越小,代表預測結果越好,改善了模型預測效果。網絡采用加權非極大值抑制對多個目標框進行篩選,保留最優目標框,提高了目標識別的準確性。
文中提出的算法是在YOLOv5網絡的基礎上進行改進的,網絡結構圖如圖2所示。下面分別從聚類優化錨框尺寸、優化特征提取器和引入卷積注意力機制3個方面進行詳細介紹。

圖2 改進的YOLOv5結構圖
在不增加訓練成本的前提下,為了使原始數據集中的數據更好的滿足訓練需求,需要對原始數據進行預處理。YOLOv5模型中的初始錨框是由COCO數據集設計生成的9個錨框,涵蓋了大小不同的目標,并且目標大小的差距很大。為了更精確識別小目標,需要對數據集中目標邊界框進行尺寸優化。實驗訓練的數據集大多數都是小目標,針對存在的問題,采用車輛和飛機的數據集做目標檢測,部分錨框的設計并不是最合理,因此需要聚類優化錨框尺寸,盡可能增加先驗框與實際目標框的匹配度,使其與訓練的數據集更加匹配。在數據集進行聚類,以矩形框的平均交并比作為相似度對車輛和飛機的所有標注目標進行訓練,使得數據集得到最合適的錨框,提高了YOLOv5算法測試性能。
原始圖像經過8倍、16倍、32倍下采樣后送到特征融合網絡在檢測層得到13×13小尺寸、26×26中尺寸、52×52大尺寸的特征圖,3種尺寸的特征圖用來檢測不同大小的目標,原始特征提取模型如圖3所示。

圖3 原始YOLOv5特征提取模型
在卷積神經網絡中,深層卷積得到的特征圖語義信息豐富,但是會丟失位置信息,且對目標的位置信息不夠精確,因此在原始算法的基礎上增加下采樣,有利于小目標的檢測。原始圖像經過4倍、8倍、16倍、32倍下采樣后送到特征融合網絡得到13×13小尺寸、26×26中尺寸、52×52大尺寸以及新尺寸的特征圖,4種尺寸的特征圖用來檢測不同大小的目標,改進后的模型如圖4所示。本次改進得到的新尺寸特征圖,有利于更好的學習目標特征,使得檢測的目標位置更加準確,特征圖感受野更小,提升目標檢測效果。

圖4 改進后的特征提取模型
注意力機制能夠聚焦圖像的局部信息,針對不同部分的特征圖賦予不同的權重,獲取感興趣的信息,抵制無用信息。為了使模型獲取更優特征,本文引入輕量的卷積注意力模塊(convolutional block attention module, CBAM),其網絡結構如圖5所示。在卷積神經網絡任意給定一個中間特征圖,CBAM會分別沿著通道和空間兩個獨立的維度推斷注意力圖,然后將注意力與輸入特征映射相乘來進行特征的自適應細化。為了更加關注感興趣區域,特別是受遮擋的目標,在主干網絡引入卷積注意力機制,強化了目標特征,提高了目標的檢測精度。

圖5 CBAM網絡結構圖
使用Google Earth軟件對車輛和飛機的圖像進行截取,包括目標密集、目標遮擋、背景復雜的遙感圖像。自制數據集共包含1 000張圖片,其中包含500張車輛圖片和500張飛機圖片,訓練集、測試集、驗證集劃分比例為8∶1∶1。對數據集進行YOLO格式的標注,使用VOC數據集進行訓練測試。數據集的可視化結果如圖6所示,分別為數據集類別、數據集物體中心點位置分布、數據集分布大小。


圖6 數據集的可視化結果
實驗在Win10 系統,i7-10750H CPU、NVIDIA GTX 2060 顯卡下,使用Python 語言以Pytorch框架搭建運行環境,并使用CUDA 10.1以及對應的CUDNN 添加到環境中使用GPU提高計算效率。
準確率是指預測為正的樣本中是真正的正樣本的比例,計算方式為:

(1)
式中:為指被分配正確的正樣本;為被錯誤分配的正樣本。
召回率為指樣本中的正樣本被預測正確的比例,計算方式為:

(2)
式中:為被分配正確的正樣本;為被錯誤分類的負樣本。


(3)

(4)
實驗的參數配置如表1所示。

表1 參數設置


圖7 模型的mAP曲線

圖8 模型的損失函數
為了驗證改進算法的有效性,對比了YOLOv3、YOLOv4、Faster-RCNN、YOLOv5以及改進的YOLOv5,得到的對比結果如表2所示。

表2 不同算法檢測結果對比

為了進一步證明改進算法的優越性,將在不同場景下對比原始YOLOv5和改進YOLOv5的檢測效果,對比結果如圖9~圖12所示。其中,圖9(a)~圖12(a)為原始算法的檢測效果,圖9(b)~圖12(b)為改進后算法的檢測效果。從圖9~圖12可以看出,圖9中原始算法在檢測遮擋目標時,存在漏檢;圖10中原始算法在目標與背景相似時,出現漏檢;圖11中原始算法出現了誤檢;圖12中原始算法在邊界區域且存在遮擋的飛機目標出現漏檢。而改進后的算法彌補了這些不足,比原始算法具有更好的魯棒性和抗干擾能力。

圖9 車輛目標密集場景

圖10 車輛背景相對復雜

圖11 飛機遠距離且存在負樣本

圖12 飛機遮擋且目標密集場景
將以原始模型YOLOv5在預處理中加入下采樣算法的YOLOv5+下采樣,使用聚類算法的YOLOv5+聚類,使用CBAM模塊的YOLOv5+ CBAM以及提出的算法進行對比實驗,得到的結果如表3所示。

表3 YOLOv5和改進的YOLOv5檢測結果對比
通過表3可知,在YOLOv5中使用聚類算法,對目標邊界框進行優化,相對原始算法,mAP、Precision、Recall分別提升0.7%、3.8%、3.3%,驗證了聚類算法提高目標檢測的準確度;在YOLOv5中引入下采樣,在檢測層增加新尺度特征,相對原始算法,mAP、Precision、Recall分別提升1.0%、3.8%、3.0%,驗證了下采樣能更加關注小目標的信息,提高小目標檢測精度;在YOLOv5中引入CBAM注意力機制,對無用信息進行抑制,更加關注目標信息,相對原始算法mAP、Precision、Recall分別提升1.1%、4.1%、3.3%,驗證了引入卷積注意力機制可提高目標檢測性能;在YOLOv5中同時引入CBAM注意力機制、聚類算法、下采樣,相對原始算法,mAP、Precision、Recall分別提升2.2%、4.3%、4.4%,驗證了提出的算法更有效。
針對遙感圖像小目標檢測存在的目標密集、背景復雜、存在負樣本等問題,提出了一種改進YOLOv5遙感圖像小目標檢測算法,該算法對錨框尺寸進行優化,使得到的每個錨框大小更準確,有效提升YOLOv5算法測試性能。通過增加卷積注意力機制,更加關注感興趣區域,抑制無用信息,抑制復雜背景對目標識別的干擾。通過增加下采樣,有利于更好的學習目標特征,使得檢測的目標位置更加準確。本算法檢測性能最好,對于存在遮擋場景的目標也可以準確的檢測,相對其他算法具有優越性。接下來我們將對網絡進行壓縮,剪枝等處理,對模型進行輕量化,能夠更好的移植到嵌入式平臺。