張芯睿, 趙清華, 王 雷, 董旭彬
(1.太原理工大學,太原 030000; 2.中國科學院空天信息研究院,北京 100000)
遙感圖像目標檢測在計算機視覺領域一直都占據著十分重要的地位。近年來,隨著航空遙感技術的快速發展,我國的遙感技術在光譜分辨率和空間分辨率等方面都取得了巨大的進步。目前,高分辨率遙感圖像在遙感圖像目標檢測方面已經得到廣泛應用,高分辨率遙感圖像為城市規劃、環境監測等民用方面提供了非常大的便利,同時在軍事作戰方面也發揮著重要的作用。
隨著目標檢測技術的不斷發展,基于深度學習的目標檢測算法逐漸進入研究人員的視線[1-5]。目前,目標檢測算法主要分為兩類:一類是基于回歸的目標檢測算法,典型的有YOLOv1~YOLOv3[6-8],SSD[9],此類算法不生成候選區域,采用直接回歸目標區域的檢測策略;另一類是以R-CNN系列為代表的基于區域建議的目標檢測算法。這兩類算法都在目標識別中得到廣泛應用,并且取得了不錯的效果,但遙感圖像成像容易受天氣因素影響,圖像常有云霧遮擋的現象;且遙感目標種類繁多,形狀大小各異,小目標分布密集,受這兩種情況的影響,檢測結果會發生誤檢、漏檢以及生成掩膜質量不高等情況。
針對上述問題,本文提出一種基于Mask R-CNN的遙感圖像目標檢測改進算法。
Mask R-CNN[10]是R-CNN系列算法中目標識別和語義分割能力最優秀的目標檢測技術之一,是在Faster R-CNN基礎上開發的一種新型模型,并在其基礎上做了諸多改進,如圖1所示,Mask R-CNN模型的特征提取網絡將特征金字塔與殘差網絡相結合,利用自下而上和自上而下兩條路徑結合多個尺度的信息來防止網絡退化,并將興趣區域池化層(Region of Interest Pooling,RoI Pooling)改為興趣區域匹配層(Region of Interest Align,RoI Align),RoI Align 采用雙線性插值法運算,結果采用浮點數的形式,解決了之前Faster R-CNN[11]中RoI Pooling兩次量化所產生的區域不匹配問題,最后在輸出部分增加了掩膜支路,不僅能夠對圖像進行分類和回歸,還實現了對目標的實例分割掩膜。
為解決在霧天識別困難的問題,本文在Mask R-CNN的基礎上加入去霧算法,還原出清晰的圖像。HE等[12]提出的暗通道先驗算法(Dark Channel Prior,DCP)在去霧中有良好的表現,但該算法計算量較大,去霧之后圖像偏暗,容易發生局部過亮或局部過暗的情況,如圖2所示。

圖2 暗通道去霧結果Fig.2 Results of dark channel defogging
在有霧圖像中,霧氣濃度分布往往是不均勻的,因此,本文根據文獻[13],利用有霧圖像顏色衰減先驗原理,提取圖像在HSV空間亮度分量V(x)和飽和分量S(x)的關系,定義了一種自適應霧濃度分布模型,其表達式為
G(x)=θ0+θ1V(x)+θ2S(x)-εg(x)
(1)
g(x)=edge(I(x))
(2)
式中:θ0=0.121 779;θ1=0.959 710;θ2=-0.780 245;ε為紋理系數;g(x)為Canny算子檢測得到的霧氣濃度紋理分布;edge(·)為檢測函數;I(x)為已知的有霧圖像。
根據本文提出的自適應霧濃度分布模型,采用局部大氣光估計,區分明暗區域修正大氣透射率,改善因大氣光估計和透射率估計不準確導致的顏色失真與偏移,并且減少算法計算量,盡可能保證目標檢測運算速率[14]。
2.1.1 修正透射率
HE等提出的暗通道先驗方法是利用暗通道先驗信息粗略估計透射率,再使用軟摳圖算法對透射率細化,計算量大,消耗的時間過長,本文采用導向濾波優化透射率,再利用容差機制對透射率修正,引入容差閾值M進行判別。將大氣透射率重新定義為

(3)

2.1.2 優化大氣光估計
在圖像去霧時,大氣光估計不準確會導致去霧之后圖像產生局部過亮或局部過暗的問題,因此本文采用局部大氣光估計,相較于全局大氣光估計更加準確。具體方法是首先提取圖像HSV空間的亮度分量,選取兩個不同尺寸的圓形濾波核,做形態學閉運算,結果使用交叉雙邊濾波進行平滑處理,防止大氣光存在的局部過亮問題。形態學閉運算如下
A1=close(V(x),C1)
(4)
A2=close(V(x),C2)。
(5)
濾波核半徑分別為C1=min(W,H)/10,C2=min(W,H)/20,單一尺度的濾波核很難適應亮度特征不同的圖像,因此本文設計兩個不同尺寸的形態濾波核,其中,W,H分別為有霧圖像的寬和高,最終得到的大氣光表達式為
(6)
2.1.3 圖像還原
在圖像處理領域中,有霧圖像數學模型被定義為
I(x)=J(x)t(x)+A(1-t(x))
(7)
式中:I(x)為接收到的有霧圖像;J(x)為去霧之后的清晰圖像;t(x)為大氣透射率;A為全局大氣光。
利用文獻[12]暗通道先驗理論,將上述修正后的透射率及大氣光值代入式(7)模型得到去霧之后的清晰圖像J(x),即
(8)
為防止透射率過小、去霧后圖像泛白,所以為透射率t設置了一個下限t0,取t0=0.1,當t 傳統的特征金字塔網絡都是由人工設計的,通過卷積層堆疊和不同分辨率大小特征層融合為目標提供更好的特征提取網絡,Mask R-CNN中的特征金字塔只融合了更深層次的特征,對其他層次的特征并沒有充分融合,并且在信息傳遞的過程中特征信息會有所流失,這樣的網絡結構并不能達到最優的效果。因此,本文使用神經架構搜索(Neural Architecture Search,NAS)[15-16]的方式,如圖3所示,利用循環神經網絡(Recurrent Neural Network,RNN)作為控制器。在訓練過程中將不同網絡結構的精確度P作為反饋信號反饋給控制器,并更新控制器中的網絡結構和精確度。通過不斷迭代實驗,從而得到一個最優的特征組合方式。 圖3 神經架構搜索Fig.3 Neural architecture search 運用上述方式改進后新的特征金字塔結構示意圖見圖4,本文采用ResNet101作為主干網絡,其中,R-C-B表示ReLU-Conv-BatchNorm,{P2,P3,P4,P5,P6}是由ResNet101輸出的不同尺度的特征層,經過重新融合之后得到與P2~P6尺寸相同的特征映射圖{N2,N3,N4,N5,N6},在兩個特征層尺寸不同的情況下采用全局池化(Global Pooling,GP)統一分辨率之后逐像素點相加。改進后新生成的特征映射圖融合了更多層次的語義信息,圖像紋理信息保留更加完整,其具體操作如圖5所示。 圖4 改進后的特征金字塔結構示意圖Fig.4 Schematic diagram of the improved feature pyramid structure 圖5 操作流程圖Fig.5 Flow chart of operation 考慮到遙感圖像中目標種類不同,大小各異,每個特征圖上生成固定尺寸、比例的anchor會造成定位偏移或漏檢現象。因此,本文調整anchor的大小,對不同深度的特征映射圖生成不同尺寸的建議區域[17]。如表1所示,N2,N3特征圖尺寸相對較大,小目標特征表現明顯,所以在這兩層的特征圖上分別增加了小尺寸的anchor,N5,N6特征圖尺寸較小,因此只生成兩種尺寸偏大的anchor,并將N6層的滑動窗口調整為5×5,以適應大目標的檢測,其余層的滑動窗口保持不變。 表1 各層anchor框尺寸Table 1 Dimensions of anchor boxes on each layer 調整anchor大小后,每個尺寸的anchor仍然會生成對應3種比例(1∶1,1∶2,2∶1)的anchor,其中,勢必也會生成大量重疊冗余的候選框,Mask R-CNN網絡使用非極大值抑制(NMS)直接過濾得到得分最高的候選框,而遙感圖像中的目標分布較為密集,并且所占像素較小,采用NMS篩選候選框會導致密集目標的漏檢情況,因此本文選擇Soft-NMS篩選候選框,利用線性函數抑制重疊候選框的得分,提升模型的召回率,即 (9) 式中:Si為檢測得分;M為最大得分檢測框;bi為其余候選框;μ為IoU閾值。 實驗數據由DOTA數據集[18]以及國內研究機構制作的同視場環境下GF-2衛星拍攝的遙感數據組成,總計5000張,包含飛機、輪船、儲罐、棒球場、網球場、橋梁、車輛等15類目標,平均每張圖像中大約含有7個目標,圖像尺寸從800像素×800像素到4000像素×4000像素不等,涵蓋了霧天和正常天氣狀況的遙感圖像,并使用Labelme對圖像目標進行標注,實驗所用的硬件環境如表2所示。 表2 實驗環境Table 2 Lab environment 實驗將各個改進的策略與Mask R-CNN相結合并進行對比實驗,分析各個方案的效果以及可行性,最后調整各個方案并分別與Mask R-CNN結合,對整體的算法進行測評,與其他深度學習目標檢測算法進行比較。在對本文改進后的Mask R-CNN算法進行訓練時,卷積層采用ReLU激活函數,學習率由0.001逐漸降低為0.000 01,衰減系數設為0.95,最大迭代次數設為4000。 將大約5000張數據集圖像隨機劃分,80%作為訓練集,20%作為測試集。使用目前較主流的目標檢測算法分別對有霧圖像和清晰圖像進行實驗,并進行比較,實驗選取平均準確率均值(mAP)和檢測速率作為評價指標,實驗結果如表 3所示。 表3 不同算法的檢測結果Table 3 Detection results of different algorithms 從表3中可以看出,YOLO,SSD這類基于回歸的一階段目標檢測算法由于不需要生成建議區域,因此檢測速率快,但是在檢測精度上不如Faster R-CNN,Mask R-CNN和Cascade R-CNN算法。本文算法的檢測精度均優于其他幾種傳統目標檢測算法,同時也優于YOLOv4 tiny,YOLO X這類最先進的輕量化算法,相較于原始Mask R-CNN算法,對清晰圖像和有霧圖像的檢測精度分別提升了5.37%和18.71%,在加入去霧算法之后,有霧圖像的目標檢測精度得到了明顯提升,由于增加額外計算量,檢測速率稍有下降,但基本不影響實際檢測需求。 霧天場景的檢測實驗結果如圖6所示。 圖6 加入去霧網絡的檢測結果Fig.6 Detection results with the addition of defogging network 由圖6(a)~6(c)可以看出,圖6(a)霧天圖像成像對比度低,圖6(b)直接用Mask R-CNN算法檢測效果較差,很容易造成誤檢和漏檢的情況。圖6(c)在加入暗通道算法去霧之后,雖然檢測結果得到了改善,但暗通道去霧之后圖像整體偏暗,造成的圖像失真現象會導致識別誤差。圖6(d)為本文算法檢測后的結果,改進后的算法有效改善了暗通道先驗方法去霧之后圖像偏暗和失真的情況,圖像還原得更加真實,并且識別出的目標輪廓信息更加清晰,掩膜更加完整,減少了漏檢和誤檢的情況發生。 從主觀角度可以直觀地看出,本文算法有效改善了暗通道去霧之后局部過暗或過亮的情況,但為了進一步驗證本文算法的有效性,從客觀角度出發,實驗選擇新增可見邊e、峰值信噪比(PSNR)和結構相似性(SSIM)作為評價指標,對應的數學表達式分別為 (10) (11) (12) 與原本HE暗通道先驗算法對比實驗結果如表4所示,隨機選取不同類別的200張圖像作為測試集,并取這200張圖像的均值作為最終評價標準,綜合分析以上3種評價指標,從表4可以看出,本文算法均取得了更加理想的效果。 表4 基于暗通道去霧的優化算法對比Table 4 Comparison of optimization algorithms based on dark channel defogging 為進一步驗證本文改進策略的有效性,選取清晰無霧的圖像對改進前后的Mask R-CNN算法進行分析,結果如表5所示。 表5 基于Mask R-CNN的優化算法對比Table 5 Comparison of optimization algorithms based on Mask R-CNN % 實驗以Mask R-CNN為基礎,分別加入不同改進策略分析各個策略對Mask R-CNN檢測結果的影響,從表5中可以看出,本文對特征金字塔以及區域建議網絡改進之后mAP和召回率均有提升,這是由于改進后的特征金字塔結構優化了特征信息的傳播路徑,使各個尺度的特征信息得到充分利用,減少圖像紋理信息的流失。并且,改進之后的區域建議網絡針對不同尺度的特征映射圖設計不同尺寸的anchor并且使用Soft-NMS篩選候選框,抑制重疊候選框的得分,使目標回歸更加精準,有效提升了模型的召回率。 對比改進前后圖像可以直觀地看出,原本Mask R-CNN算法由于特征金字塔信息在傳遞過程中流失嚴重,生成的掩膜質量較差,候選框回歸有所偏差;如圖7所示,改進后Mask R-CNN算法檢測結果更加精確,生成的掩膜在細節上表現更好、質量更高,區域建議網絡中生成的多尺度anchor尺寸能夠適應不同大小的目標,定位也更加準確。 圖7 基于Mask R-CNN的優化算法的清晰圖像檢測結果Fig.7 Detection results of clear images based on optimited Mask R-CNN 針對目前遙感圖像目標檢測中所存在的問題,本文采用改進的 Mask R-CNN 算法對遙感圖像目標檢測進行研究,在Mask R-CNN網絡中加入了一種基于暗通道先驗的去霧網絡,并對其中的透射率以及大氣光值進行了優化,防止暗通道算法去霧之后圖片失真現象,該網絡解決了霧霾天氣時識別困難的問題,本文改進了特征金字塔結構,使得各個尺寸特征信息得到充分利用,并且調整了區域建議網絡中錨框的尺寸,使目標的分類、回歸更加準確,與目前多種目標檢測算法相比較,本文的檢測結果更加優秀,準確率更高。在后續研究中,將致力于優化卷積神經網絡,提升目標檢測的精度和速率。2.2 改進的特征金字塔結構



2.3 改進區域建議網絡

3 實驗結果與分析
3.1 實驗設計

3.2 實驗結果對比

3.3 霧天場景檢測實驗結果


3.4 基于Mask R-CNN的優化算法對比


4 結束語