劉高天, 段 錦,2, 范 祺, 吳 杰, 趙 言
(1. 長春理工大學 電子信息工程學院, 長春 130022;2. 長春理工大學 空間光電技術研究所基礎技術實驗室, 長春 130022)
遙感圖像目標檢測在軍事、 民事等領域應用廣泛, 已成為遙感圖像領域的重要研究方向之一. 傳統遙感圖像目標檢測方法通常是基于數字圖像處理的方法, 即先進行閾值分割、 紋理/幾何特征提取, 然后使用模板匹配、 背景建模以及淺層學習等方法對目標進行檢測判別[1]. 但這類方法對遙感圖像泛化能力較差, 檢測效果不佳.
隨著深度學習的快速發展, 基于深度學習的目標檢測方法, 如SSD[2],YOLO[3],Faster-RCNN[4]等算法已廣泛應用于自然圖像目標檢測領域, 但相比于自然圖像, 遙感圖像因包含的目標信息過于豐富, 導致在對其進行目標檢測任務時, 易受信息過多、 目標類別分布不平衡等因素影響. 因此, 適用于自然圖像的深度學習目標檢測方法在面對遙感圖像時存在局限, 尤其在面對遙感圖像中如飛機、 車輛、 艦船這類小目標時, 由于這類目標的外觀信息少、 像素面積占比小、 易受復雜背景干擾, 使得檢測效果較差. 目前, 針對上述問題已有許多改進算法, 如辛鵬等[5]和Yuan等[6]提出了將Faster R-CNN引入到遙感圖像目標檢測中, 相比于傳統算法較好地提高了目標檢測的精度, 但并未充分利用卷積層的信息, 缺乏對多尺度信息的考量; 姚群力等[7]提出了一種基于SSD檢測器的MultDet模型, 采用輕量級卷積網絡提取多尺度特征信息, 并設計了反卷積特征融合模塊, 但該模型目標單一, 缺乏對其他遙感目標的檢測分析; Etten[8]針對小目標檢測問題在YOLO的基礎上提出了YOLT算法, 該方法在一定程度上提升了小目標檢測效果, 但增加了網絡的計算開銷; Ren等[9]提出了通過采用自上而下和跳躍鏈接的方式利用上下文信息, 提高遙感圖像中的小目標檢測能力, 但該方法只針對飛機與艦船兩類目標進行實驗, 缺乏可靠性研究; Dong等[10]提出了在Faster R-CNN的基礎上用Sig-NMS代替傳統的NMS(non-maximum suppression)方法, 但由于進行了額外計算, 增加了檢測時間; Wang等[11]針對遙感圖像背景雜亂的問題提出了一種基于多尺度注意力網絡的遙感目標檢測模型, 提高了檢測精度, 但缺乏對小尺度目標特性的考慮; Jiang等[12]提出了一種深度神經網絡優化模型, 該模型從目標在圖像中的特征表現考慮并結合對原始輸入數據構建的重新思考, 在一定程度上改善了小尺度矩形目標的檢測效果; 張裕等[13]以YOLOv3為基礎結合多尺度特征稠密連接方式, 設計了遙感目標檢測模型YOLO-RS, 提高了各檢測特征層之間的信息傳遞程度, 使不同尺度的特征能更好地融合, 在一定程度上提高了小目標檢測精度; Li等[14]提出了基于雙通道特征融合的遙感目標檢測模型RICAOD, 將局部上下文信息融入區域候選網絡, 提高了對候選框的篩選能力, 進而有效改善了對遙感目標的檢測效果.
上述算法均在一定程度上改善了遙感圖像中目標檢測的效果, 但在面對小目標檢測問題時仍存在局限. 首先, 上述算法并未考慮到隨著卷積網絡的加深, 感受野呈現緩慢的線性增長, 有限的感受野無法與小目標的特征尺度相匹配, 導致難以有效提取小目標特征; 其次, 忽視了加強層級聯系對于豐富輸出特征以及提升分類精度的作用. 針對上述問題, 為提升遙感圖像中小目標的檢測能力, 本文提出一種基于RFBNet[15]的改進算法. 該算法首先利用自校準卷積方式擴大了主干網絡中輸出層的感受野, 強化了對弱特征的提取能力; 其次通過多尺度特征融合, 增強了算法在淺層輸出中對多尺度信息的利用; 最后結合稠密預測思想, 以較低的計算開銷加強了輸出層之間的聯系, 豐富了輸出特征中的多尺度上下文信息, 進而提高了算法對遙感圖像目標的檢測能力.
為提升one-stage目標檢測算法性能, 且不增加計算開銷, Liu等[15]提出了RFBNet目標檢測算法. RFBNet模型結構如圖1所示. 該算法沿用了SSD檢測模型作為基礎模型, 提出感受野模塊(receptive fields block, RFB)并集成到SSD模型上. 模型的輸入尺寸固定在300×300, 主干特征提取網絡采用VGG16網絡[16], 但模型將VGG16網絡中最后兩個全連接層變為兩個卷積層. 在目標檢測階段, 被提取的主干特征經過RFB模塊擴大感受野以及多次下采樣操作生成多個不同尺度的特征圖, 用于后續進行多尺度預測.
圖1 RFBNet模型結構Fig.1 RFBNet model structure
該算法雖然通過RFB模塊有效提升了目標檢測的精度, 但仍延續了SSD模型的結構, 各特征圖間相互獨立缺乏聯系, 沒有較好地利用淺層特征圖空間信息豐富以及深層特征圖語義信息豐富的特點, 且不同尺度之間的非連續性表達忽視了上下文聯系.
感受野模塊基于人類視覺的RFs(receptive fields)結構, 將RFs的尺度、 離心率加入考慮范圍, 即使通過輕量級的網絡結構, 也能提取到高判別性的特征. 該模塊是一個多分支卷積結構, 內部結構包含兩部分: 1) 用不同卷積核尺度的多分支卷積塊模擬多尺度的pRFs; 2) 采用空洞卷積操作, 用于模擬人類視覺感知中pRF尺度與離心率間的關系. 該結構的核心是在保持相同參數量的同時, 生成更大分辨率的特征圖, 增加各層感受野以獲取更多的上下文信息.
圖2 常規卷積(A)和空洞卷積(B)操作示意圖Fig.2 Operation diagrams of conventional convolution (A) and atrous convolution (B)
空洞卷積(atrous convolution)也稱為擴張卷積, 由于其在小目標特征信息的處理上具有優勢, 因此廣泛應用于目標檢測領域. 相比常規卷積層增加了一個擴張率的參數, 該參數定義了卷積核處理數據時各值間的距離. 圖2為常規卷積與空洞卷積操作示意圖.
由圖2可見, 在特征圖(如7×7)相同的情形下, 常規卷積經過3×3卷積核處理只能獲得5×5的感受野, 而經過空洞率為2的3×3卷積核處理則能獲得7×7的感受野, 表明空洞卷積可獲得更大的感受野, 比常規卷積能更好地保留圖像的空間特征, 且不會損失圖像信息. 在卷積神經網絡中感受野的大小對于小尺度目標特征學習有較大影響, 較大感受野可獲得更密集的上下文信息, 有利于后續對圖像的分類識別.
RFBNet算法是對SSD算法的延續, 其優勢在于繼承SSD算法優點的同時, 通過RFB模塊擴大了主干網輸出特征的感受野, 從而有效提升了目標檢測的精度. 但其主干網采用VGG16進行特征提取, 在特征提取時感受野隨著層級加深增長緩慢, 無法適應小目標特征. 且由于繼承了SSD的模型結構, 因此忽視了層級聯系, 導致用于后續預測分類階段的輸出特征圖之間相對獨立, 不利于提高檢測的精度. 基于此, 本文對于遙感圖像目標檢測提出一種基于RFBNet的改進算法, 算法的網絡結構如圖3所示.
圖3 本文算法網絡結構Fig.3 Network structure of proposed algorithm
由圖3可見, 本文算法主要包括特征提取(features extractor)模塊、 特征融合(features fusion)模塊和稠密預測(dense prediction)模塊三部分. 首先利用以SC-VGG16全卷積網絡為主體的特征提取模塊進行主干特征提取, 然后將提取出的主干特征圖通過特征融合模塊進行維度調整、 上采樣、 堆疊融合以及批歸一化處理, 得到一個輸出特征豐富的融合特征圖, 并將其作為后續過程的輸入. 在稠密預測模塊中, 融合特征圖先經過3個分支分別生成6個不同尺度的稠密特征圖, 然后經過多尺度檢測和非極大值抑制(NMS)處理生成最終的預測結果.
針對原RFBNet算法存在的問題, 本文算法對3個模塊分別進行改進.
1) 特征提取模塊: 原RFBNet算法主干特征提取網絡采用由VGG16構成的全卷積網絡, 本文算法在此基礎上引用自校準卷積層代替VGG16中的標準卷積層, 并在最后新增一層卷積層用以生成多尺度特征. 該模塊擴大了主干網中輸出卷積層的感受野, 因此增強了主干網對小目標特征的提取能力, 豐富了輸出特征.
2) 特征融合模塊: 本文在RFBNet結構的基礎上, 引入特征融合思想設計特征融合模塊. 結合FSSD[17]的特征融合思想, 將Conv4-3和Conv7-fc以及新增的Conv8三層卷積輸出的3個特征圖進行融合, 通過BN(batch normalization)層批歸一化處理后作為淺層輸出特征用于后續過程. 該部分加強了主干輸出特征之間的聯系, 使最終的淺層輸出包含了豐富的多尺度上下文信息, 從而有利于提高預測的準確性.
3) 稠密預測模塊: 本文在原RFBNet算法的多尺度預測結構中, 借鑒了DSOD算法[18]的稠密預測思想, 設計稠密預測模塊. 提前在較淺位置上進行信息整合, 而非在最后輸出層進行所有信息的整合, 改變了原來各層輸出特征間相對獨立的關系, 使它們之間的聯系更緊密.
本文算法共有6層特征圖被提取, 用于預測分類. 淺層特征圖感受野小但包含了豐富的位置信息, 其對應產生的默認邊界框大小更適合小目標檢測, 但其缺乏目標分類重要的語義信息. 深層特征圖雖然包含了豐富的語義信息, 但對小目標的定位不精確. 因此本文保留了RFBNet的輸出特征選取方式, 對應參數列于表1.
表1 特征層及其結構參數
小目標由于攜帶信息少導致特征表達能力較弱, 經過多層次的卷積操作后能提取到的特征較少, 因此檢測困難. 而在遙感圖像目標檢測任務中該特點尤為突出, 因此需強化特征提取能力. SSD和RFBNet算法的特征提取網絡均為使用卷積層取代最后兩個全連接層的VGG16全卷積網絡. 該類特征提取網絡存在理論感受野小于實際感受野的缺陷, 且隨著網絡層次的加深感受野呈緩慢的線性增長, 從而導致感受野無法較好地與目標特征匹配, 使網絡的特征提取能力不足. 因此, 本文算法通過引入自校準卷積替換標準卷積擴展每個卷積層的感受野, 豐富輸出特征, 強化特征提取能力, 進而更好地提取小目標特征. 考慮到Conv4層前的卷積層生成的特征圖分辨率高、 空間信息豐富但語義信息少, 不利于弱特征的提取分類, 將這些層替換為新卷積層會突出較強特征, 加重過擬合現象. 因此需要替換的位置選擇在進行特征提取的Conv4層和Conv5層, 其各自包含3個卷積層. 同時為減小過擬合, 還在特征提取網絡中加入了BN層進行處理. 本文算法引用的自校準卷積[19]結構如圖4所示.
圖4 自校準卷積結構Fig.4 Self-calibration convolution structure
假設輸入特征為X={x1,x2,…,xci}, 輸出特征為Y={y1,y2,…,yco}, 則傳統的2D卷積可由K={k1,k2,…,kco}一組濾波器集合組成, 卷積式為
(1)
受限于該計算方式, 輸出的卷積特征感受野有限, 且特征的學習模式具有相似性, 從而導致學習到的特征圖可辨別程度較低.
圖5 特征融合結構Fig.5 Feature fusion structure
淺層特征圖分辨率大、 感受野小, 包含豐富的位置信息, 因此適合進行小目標檢測, 但淺層特征圖缺少有利于分類的抽象細節信息. 而深層特征圖尺度雖小, 但其中涵蓋了豐富且有利于分類的細節信息. 為加強對小目標的檢測, 本文算法基于FSSD(feature fusion single shot multibox detector)特征融合思想設計一個多尺度特征融合模塊, 如圖5所示. 該模塊將深層特征圖通過上采樣融合操作與淺層特征圖融合, 以增加淺層輸出特征中的語義細節.
融合過程: 在圖3所示的本文算法結構中, 特征提取部分增加了一個Conv8層, 用以提取10×10尺度的特征圖. 本文算法先將Conv4-3,Conv7-fc和Conv8三層輸出分別作為圖4中的3個特征用于輸入, 通過堆疊融合再通過BN層規范化處理最終得到首個輸出特征圖Feature4. 不同尺度的特征圖相融合, 在進一步擴大感受野的同時, 也融合了多個尺度的特征, 使相互獨立的特征圖之間不僅產生了相關性, 還使大尺度特征圖也獲得了豐富的抽象細節信息.
為使分類預測更準確, 輸出特征圖需含有豐富的語義信息. 在RFBNet模型結構中, 每個輸出特征圖擁有的語義信息都是通過對其前相鄰層輸出的全部維度特征學習得到, 導致計算量增大, 同時也使后續輸出特征圖只含有本層次的語義信息, 不利于后續的分類預測. 因此, 本文借鑒DSOD算法[18]的思想設計了稠密預測結構(dense prediction structure), 如圖6所示, 其中H,W,C分別表示特征圖的寬、 高和通道數.
圖6 稠密預測結構Fig.6 Dense prediction structure
由圖6可見, 在該結構中, 輸入特征(Feature4)為融合模塊輸出的首個38×38尺度特征圖, 結構中除首個尺度外, 其他尺度所對應的特征圖通道數只有50%是通過前面的較淺層學習所得, 另外50%是直接通過上一尺度特征圖進行下采樣后得到, 實現該過程的結構如稠密連接部分所示. 下采樣模塊由1個池化層和1個卷積層構成, 輸入特征圖通過池化、 卷積操作降低分辨率并將通道數減半. 本文算法從RFB1輸出的19×19尺度特征圖起, 開始僅學習半數的特征圖, 并復用前一層特征圖作另一半. 相比于RFBNet算法全維度學習方式, 本文算法不僅減少了模型的參數量、 降低了計算開銷, 還使最后的每層輸出特征圖都包含了豐富的多尺度語義信息.
實驗采用數據集UCAS_AOD和NWPU VHR-10. 數據集UCAS_AOD除去無目標圖, 共包含1 510張圖像, 其中1 000張飛機和510張車輛圖像. 飛機樣本共7 482個, 車輛樣本共7 114個. 數據集NWPU VHR-10包含目標圖像650張, 共含10類目標, 所標注實例數量為757架飛機、 302艘船、 655個油罐、 390個棒球場、 524個網球場、 159個籃球場、 163個田徑場、 224個港口、 124座橋梁和477輛車. 本文分別在上述兩個數據集上進行實驗, 按4∶1分配訓練集和測試集, 由于數據集NWPU VHR-10原始數據量較少, 因此通過調節亮度、 對比度、 飽和度及去霧等圖像增強方法對其進行數據擴增, 共擴增了650張圖像.
HE Jing-wen, WEI Yan-yan, SU Tong, PAN Xiao, CUI Yi, LI Zi-qiang, TANG Yun-xiang
實驗設備為64位Win10系統計算機和Ubuntu18.04系統計算機, 實驗平臺為Google的Colaboratory平臺(GPU型號為Tesla P100)和Ubuntu系統平臺(GPU型號為RTX2060S), 運行環境為Pytorch1.4.0, CUDA版本為10.1.
本文采用平均準確率均值(mean average precision, MAP)、 平均準確率(average precision, AP)、 精確率(Precison)和召回率(Recall)作為目標檢測中的評價指標. 精確率表示預測為正的樣本中真正正樣本所占的比例, 召回率表示樣本中的正樣本被預測正確的比例. 召回率和精確率的計算公式分別為
Recall=TP/(TP+FN),
(5)
Precison=TP/(TP+FP),
(6)
其中TP(true positives)表示被正確分類的正樣本數量, TN(true negatives)表示被正確分類的負樣本數量, FP(false positives)表示被錯誤分類為正樣本的負樣本數量, FN(false negatives)表示被錯誤分類為負樣本的正樣本數量. 精確率隨召回率的變化過程構成了PR曲線, 平均準確率均值MAP即為該曲線與坐標圍成的面積, 計算公式為
(7)
3.4.1 數據集UCAS_AOD
用本文算法在數據集UCAS_AOD上進行實驗, 并與SSD,RFBNet_E,RFBNet算法進行對比, 實驗結果列于表2. RFBNet算法是對SSD算法的改進, 基于SSD的結構設計了RFB模塊擴大感受野, RFBNet_E算法是在RFBNet的基礎上通過引入雙層特征融合構成首層輸出特征圖.
表2 不同算法在數據集UCAS_AOD上的評估結果
由表2可見, RFBNet算法的檢測精度明顯優于SSD算法, 驗證了擴大感受野能有效提高檢測精度; RFBNet_E算法精度高于RFBNet算法, 尤其在車輛目標的檢測上提升明顯, 驗證了多層特征融合對于提升小目標的檢測精度有效; 本文算法是在RFBNet算法的基礎上進行改進, 檢測精度達83.4%, 在飛機目標的檢測精度上略高于基準算法, 但在車輛目標上相比基準算法RFBNet提高了7.3%, 表明本文算法相比于原基準算法在遙感目標檢測上有明顯改善. 在檢測效率上, RFBNet比SSD算法推理時間縮短了0.029 s, RFBNet_E比RFBNet算法推理時間延長了0.013 s, 而本文算法相比于RFBNet算法時間縮短了0.011 s. 推理時間表示單幅圖像的處理時間, 推理時間越短檢測效率越高. 實驗結果表明, 本文算法相比于基準算法RFBNet檢測效率更高.
圖7 不同算法的PR曲線對比Fig.7 Comparison of PR curves of different algorithms
圖8 不同算法的檢測結果對比Fig.8 Comparison of detection results of different algorithms
圖8為本文算法與SSD,RFBNet,RFBNet_E算法在數據集UCAS_AOD上對部分數據的檢測結果. 由圖8可見: 4種算法在飛機目標上的檢測效果差異較小, 無錯檢和漏檢現象, 但從圖中對應位置上目標的檢測置信度上看, 本文算法的檢測置信度更高; 在車輛目標上, SSD算法漏檢現象最嚴重, 效果最差, 而本文算法相比于其他算法在漏檢問題上有顯著改善. 兩類目標的檢測效果差異較大是由于飛機和車輛之間的形狀特征差異較大, 整體呈現矩形形狀的車輛目標容易受背景區域中相似物體的干擾, 因此兩類目標的檢測效果有差異. 但綜合對比可見, 本文算法在檢測精度及漏檢率上相比于其他算法均有明顯改善. 因此, 本文算法比基準算法在飛機和車輛兩類遙感目標的檢測上更具優勢.
為進一步分析本文算法的性能, 驗證本文改進算法相對于基準算法的有效性, 在數據集UCAS_AOD上進行了消融實驗, 結果列于表3, 其中R,S,F,D分別表示基準算法RFBNet和本文算法的改進措施. 由表3可見: 通過對比實驗1,2和3,5表明, 引入本文算法提出的特征融合方式進行改進后的算法, 相對于原算法檢測精度分別提升了2.1%和1.4%, 驗證了本文提出的特征融合方式的有效性; 通過對比實驗1,3和2,5表明, 引入稠密預測結構的改進算法相比于改進前的算法, 檢測精度分別提高了1.4%和0.7%, 驗證了稠密預測結構針對于原預測結構對層級聯系的加強是有效的; 通過對比實驗1,4和5,6表明, 引入自校準卷積方式改進算法后相比改進前的算法, 檢測精度分別提升了1.0%和1.2%, 表明主干特征提取網絡在引入自校準卷積替代標準卷積后, 有效強化了網絡的特征提取能力. 綜合可見, 本文改進算法相比于基準算法更有效.
表3 不同改進算法的消融實驗結果
3.4.2 數據集NWPU VHR-10
數據集UCAS_AOD中只含有兩類目標, 缺乏目標多樣性, 因此為驗證本文算法在遙感圖像目標檢測中的可靠性, 下面在數據集NWPU VHR-10上將本文算法與其他算法進行對比實驗. 相比于數據集UCAS_AOD, 數據集NWPU VHR-10包含的目標類別更廣, 且不同目標類別之間, 如田徑場、 籃球場與艦船、 飛機等目標相對比, 特征差異大且尺度變化更明顯, 因此在數據集NWPU VHR-10上的檢測難度相對更高. 考慮到數據集NWPU VHR-10的目標尺度特性, 在進行實驗前本文先對其進行k-means聚類分析, 重新設定先驗框信息. 在數據集NWPU VHR-10上, 不同算法的評估對比結果列于表4.
表4 不同算法在數據集NWPU VHR-10上的評估結果
由表4可見: 在數據集NWPU VHR-10上, 本文算法對10類目標的平均檢測精度達94.8%. 在其中9類目標上的檢測效果優于基準算法, 驗證了本文算法相比于基準算法在遙感圖像目標檢測中更有優勢; 相比于Faster-RCNN[4],Mask RCNN[20],YOLOv4[21]等目標檢測算法, 本文算法在多類目標的檢測中效果最佳, 平均檢測精度分別高出Faster-RCNN[4],Mask RCNN[20],YOLOv4[21]算法的18.4%,10.8%,8.1%. 相比于其他面向遙感目標檢測的算法, 如YOLO-RS[13],Sig-NMS[10],RICAOD[14]算法, 本文算法在多類目標的檢測上均有明顯優勢, 且平均檢測精度分別提高了8.7%,11.9%,7.7%.
下面進一步分析本文算法在數據集NWPU VHR-10上對小目標的檢測性能, 該數據集中小目標通常指飛機、 車輛、 艦船這3類目標. 本文將這3類目標平均檢測精度的均值作為小目標的檢測精度. 由表4可見: 本文算法在小目標上的平均檢測精度達92.2%, 遠高于其他目標檢測算法; 相對于Sig-NMS和YOLO-RS及文獻[12]算法, 針對小目標檢測設計的本文算法精度分別提高了9.1%,1.4%,4.9%, 優勢明顯; 雖然相比于RICAOD算法本文算法平均精度略有不足, 但在這3類小目標檢測上較接近. 因此實驗結果驗證了本文算法對小目標檢測的有效性.
圖9為本文算法對數據集NWPU VHR-10中部分數據的測試結果. 由圖9可見, 本文算法雖然在車輛目標中存在輕微漏檢現象, 但整體檢測效果表明了本文算法對于遙感圖像目標檢測的可靠性.
圖9 本文算法在數據集NWPU VHR-10上的測試結果Fig.9 Test results of proposed algorithm on NWPU VHR-10 dataset
綜上所述, 本文基于RFBNet算法從三方面進行了改進, 改進算法提高了遙感圖像中各類目標的檢測精度, 強化了對遙感圖像中小目標的檢測能力. 用本文算法分別在數據集UCAS_AOD和NWPU_VHR-10上進行實驗, 得到平均檢測精度分別為83.4%和94.8%, 相比于基準算法檢測效果明顯提高, 相比于其他遙感目標檢測算法精度優勢明顯, 證明了本文算法在遙感圖像目標檢測中的有效性和可靠性.