熊風光,張 鑫,韓 燮,況立群,劉歡樂,賈炅昊
1.中北大學 計算機科學與技術學院,太原 030051
2.北方自動控制研究所 仿真裝備研發部,太原 030051
隨著遙感技術的不斷發展,遙感圖像中所蘊含的語義信息也越來越豐富,因此如何針對遙感圖像進行語義分割,快速而準確地提取出重要的語義信息,并進行后期應用和開發,是一件非常重要的研究課題。遙感圖像的語義分割有著廣泛的應用范圍,涉及城市規劃、地質災害防治、軍事戰爭模擬等[1]。尤其是在軍事戰爭模擬方面,從遙感圖像中分割出的語義信息,對于真實戰場地形的快速生成、環境的快速搭建有著極其重要的作用[2]。
相較傳統的基于邊緣檢測[3]、閾值[4]、區域[5]的影像分割算法,基于深度學習的語義分割,利用深度神經網絡強大的特征學習能力來解決復雜的遙感圖像分割問題,更能滿足今天遙感圖像中語義分割的要求。但當前主流的深度卷積神經網絡的語義分割方法,往往存在著對小物體的特征獲取困難、分割精度不足的問題。為此,本文提出一種改進的Deeplabv3[6]算法,以優化對小物體的分割效果為目標,從改變單一的上采樣結構、降低ASPP模塊過大的感受野出發,構建出更加適合遙感圖像語義分割的網絡模型,從而解決小物體分割困難、分割精度不高等問題。
對于遙感圖像語義分割來說,當前一般分為傳統圖形學算法和基于深度學習的算法兩大類。傳統的語義分割算法包括基于邊緣檢測的影像分割算法、基于閾值的影像分割算法和基于區域的影像分割算法。基于邊緣檢測的影像分割算法模仿人類視覺過程,把圖像邊緣與背景分離出來,再知覺圖像細節,從而辨認出圖像對象輪廓。基于閾值的影像分割算法的基本思路是利用影像中感興趣的目標和背景在灰度特性上的差異性,用一個或幾個閾值將影像的灰度級分為幾類,屬于同一類的像素認定為同一個對象。基于區域的影像分割算法,從像元出發,按照區域屬性特征一致的準則,選定待分割目標內的一個小區域作為種子區域,再在其基礎上決定每個像元的區域歸屬,將其周圍的像元以一定的準則不斷加入,并將其作為新的種子區域,重復最終將具有指定特性的所有像元全部合并起來構成區域。這些方法雖然能夠分割出較為完整的場景,但是在分割精度上遠不如深度學習方法。
與之相比,基于深度學習的語義分割算法以其適應能力強、檢測效率高而得到了廣泛應用,該類檢測算法以卷積神經網絡為基礎,具有強大的特征表示能力,在背景模糊、環境復雜的情況下,仍然能夠學習到有用的特征,大幅提高了場景分割精度[7-10]。例如,文獻[11]提出了一種基于編碼器-解碼器的結構用于醫療影像分割;文獻[12]提出了使用膨脹卷積代替池化操作進行特征提取,保證了圖像分辨率的完整性;文獻[13]為語義分割提供了一種思路,其擁有與眾不同的并聯結構,可以隨時保持高分辨率表征,不只靠從低分辨率表征里,恢復高分辨率表征;文獻[14]從增強全局的特征融合以及語義特征質之間的相關性為切入點,提出了Position Attention和Channel Attention mechanism(位置注意力機制和通道注意力機制)的方法。
雖然,當前基于深度學習的語義分割方法在圖像的語義分割方面取得了較好效果,并提升了分割精度。但針對區域動輒數十公里、場景復雜多變的遙感圖像,以上諸多方法欲從中分割出目標小、背景復雜度高的植被、建筑物等對象,仍存在著分割效果不好、精度不高等問題[15]。因此,本文提出一種基于改進的Deeplabv3語義分割算法來解決該問題。
Deeplabv3的網絡結構分為骨干網絡(Resnet-50)、ASPP(空間膨脹卷積池化金字塔)模塊以及最后的上采樣部分。Resnet-50由49個卷積層和1個全連接層組成,構成了一個50層的卷積神經網絡(CNN),由于語義分割需要最終還原原始尺度大小的圖片,因此拋棄最后的全連接層[16],將49層后得到的特征圖送入ASPP模塊。ASPP模塊由4個不同膨脹率的膨脹卷積(Dilated convolution)組成,膨脹卷積不僅能夠完成類似池化操作的特征提取功能,而且因為卷積的特性使得該模塊可以不像池化操作一樣降低圖像分辨率,而是保留了圖像的尺寸,從而保留更多的位置語義信息。最終通過雙線性插值法將圖片還原為原始大小,得到最終的分類評定模型。分割流程如圖1所示。

圖1 Deeplabv3分割流程Fig.1 Deeplabv3 segmentation process
Deeplab v3算法的權重是基于MS-COCO數據集訓練所得,MS-COCO數據集具有車輛、人體、家具等80種類別。該數據集在語義方面與遙感圖像差距較大,因此原Deeplabv3算法不適用于語義豐富的遙感圖像場景。
故本文在以下兩方面進行改進:一是修改上采樣模塊,將單一的雙線性插值上采樣修改為一個類似Decoder的上采樣模式,融合主干網絡中池化操作丟失的空間位置信息,減少語義信息的丟失。二是修改ASPP模塊中四層膨脹卷積的膨脹率,加強網絡對小目標的分割能力。
2.2.1修改上采樣模塊
如圖2所示,在Deeplabv3原始網絡結構的最后上采樣階段,僅僅使用了1×1卷積和單一暴力的雙線性插值使特征圖還原到圖像原尺度得到最終的分類評定模型。這種做法雖然降低了網絡的深度具有較少的參數量,具有較低的運算成本,但其擁有的語義信息較為單薄,存在著因為下采樣而損失圖像精度的問題;且雙線性插值法上采樣參數不可學習,不利于得到較為精細的分割結果。同時,雖然網絡使用了ASPP模塊避免了部分由于池化造成的空間位置信息損失,但是Resnet-50作為網絡的主干網絡,對池化模塊的使用會不可避免地導致圖像分辨率降低和語義信息損失。因此,本文提出在Deeplabv3的基礎上,結合Resnet-50第一層7×7卷積得到的特征圖僅經過一次最大值池化,具有較大的分辨率以及較為完整的空間位置信息等特點,將ASPP之后的特征圖與上述經過Resnet-50第一層的特征圖進行通道維度上的合并,構建一個類似Decoder的模塊[17],利用低層中含有豐富空間位置信息的特征圖使得分割結果有更加精細的像素位置恢復。之后利用兩個3×3的卷積深化特征,再通過雙線性插值上采樣得到分割結果。改進后的上采樣模塊相較于原網絡僅增加了256+256×3×3×2=4 864個參數,對整個網絡運算成本影響較小。

圖2 原始網絡結構Fig.2 Original network structure
改進后的網絡模型結構如圖3所示,將原網絡的上采樣部分進行擴展,改進的網絡結構能夠在深層網絡中保持較高分辨率從而獲得更多的空間位置語義信息,以獲得較為精細的分割結果。

圖3 改進的網絡結構Fig.3 Improved network structure
2.2.2調整ASPP模塊各層膨脹率
深度卷積神經網絡對于分割任務也存在一定的缺陷。由于池化層參數不可學習和分辨率降低導致空間層級化信息丟失、小物體信息無法重建等問題的存在,使得語義分割一直處于瓶頸期,無法很好地提高分割精度。故而,Deeplab系列提出了膨脹卷積的設計[18],很好地避免了這些問題。膨脹卷積的結構如圖4所示。

圖4 具有不同膨脹率的膨脹卷積Fig.4 Dilated convolution with different dilated rate
膨脹卷積從字面意義上就很好理解,即在標準的卷積核中注入膨脹,以此來增加卷積的感受野。相比原來正常的卷積,膨脹卷積增加了一個超參數稱之為膨脹率,指的是卷積核之間的間隔數量(正常的卷積膨脹率為1)。空間膨脹卷積池化金字塔作為Deeplabv3的核心模塊,其結構借鑒了著名的SPP(spatial pyramid pooling),它將SPP中的池化窗口分別替換為原始卷積與膨脹率為6、12、18的膨脹卷積。由于發現膨脹率過大后卷積核中有效的權重變小,當膨脹率足夠大之后,卷積僅剩最中間的卷積核即退化成了1×1的卷積。因此最后一個特征使用了全局平均池化進行采樣,同時使用雙線性插值上采樣還原到對應尺度。最終將這5個特征在通道的維度上進行合并得到分類評定模型。由于Deeplabv3給出的ASPP模塊四層膨脹率為1、6、12、18,是對MS-COCO數據集進行實驗分析得到的,這樣的設計目的是為了獲得更大范圍的信息,對一些大物體有較好的分割效果,而對于小物體來說可能是有弊無利了。并且由于膨脹卷積較大的膨脹率導致稀疏的采樣輸入信號,使得遠距離卷積得到的信息之間沒有相關性,影響分類結果。對于遙感圖像,這樣的膨脹率過大,較大的感受野反而不利于遙感圖像中微小物體的分割。所以,如何調整ASPP模塊中膨脹率,同時處理好大小物體的關系是設計膨脹卷積網絡的關鍵。因此本文將ASPP模塊的四層膨脹卷積的膨脹率設置為1、3、6、9,修改后的ASPP模塊如圖5所示。

圖5 改進后的ASPP模塊Fig.5 Improved ASPP module
經修改后的膨脹率從一定程度上降低了ASPP模塊的感受野,平衡了網絡對于大小物體的敏感度。同時,降低膨脹率使采樣輸入信號較為密集,緩解了膨脹率過大導致卷積失效的問題。最終使得網絡能夠得到對小物體更精細的分割結果。
2.2.3改進算法在復雜環境下的分割能力分析
該改進算法以DeeplabV3算法為核心,其能夠從復雜環境中較好地分割出小物體,主要原因為:
(1)Resnet-50中使用的殘差模塊通過一個直連通道將輸入信息傳到輸出,保護了輸入場景的完整性,使得整個網絡只需要學習輸入與輸出的差別部分。
(2)Resnet-50中block3和block4的步幅stride從2變成1,且在block4中采用multi-grid的結構,簡化了對復雜場景的解析,保留了更多的原始場景的語義信息。
(3)改進后的ASPP可以很好地平衡復雜場景中大物體與小物體的語義信息獲取,有助于小物體的精準分割。
(4)改進后的上采樣過程,完成了對改進的ASPP模塊輸出信息與Resnet-50中殘差的融合,能夠在復雜場景中恢復小物體更加完整的空間位置信息,提升分割精度。
本文使用的數據集來自我國北方某城市的衛星遙感圖像,使用谷歌地圖下載,圖像尺寸為10 km×10 km,對圖片進行八等分裁剪,使用標注工具labelme進行標注,制作本文的數據集。
labelme是專門為語義分割算法的網絡訓練準備數據的工具,利用該標注工具,手動完成建筑物、道路、植被、水系四種類別的標注,最后得到json文件,操作界面如圖6所示。經過數據增強后,一共得到66 666張訓練集和33 333張測試集。

圖6 標注界面Fig.6 Marking interface
本文采用計算機為臺式電腦,配置為Intel i7-9900k,64 GB內存,Titan RTX×2,64位Ubuntu 20.04.1 LTS操作系統;開發環境為Tensorflow1.14、Opencv4.1和Python3.7。
原Deeplabv3及本文改進算法都是在tensorflow環境下運行,以66 666張遙感圖像為訓練集,33 333張做測試集,batch size為48,學習率為2×10-4,權重衰減使用l2正則化,權重衰減率為5×10-4。最終,平均并交比(mIou)穩定在94.92%左右,迭代至48 000次停止,如圖7所示。

圖7 mIou曲線Fig.7 Line chart of mIou
3.3.1本文模型檢測結果
本文網絡模型基于Deeplabv3,通過修改上采樣模塊,調整ASPP模塊中膨脹率大小,使得網絡對遙感圖像的分割能得到更精細的結果。經過本文網絡模型分割,選取了尺寸較大、場景較為復雜的真實地形進行測試,結果如圖8所示。
3.3.2評價指標
本文采用平均并交比(mIou)建筑物、植被、水系、道路并交比(Iou)、像素精確度(Pixel Accuracy)作為檢測評價指標。其中平均并交比和像素精確度分別定義如公式(1)和(2)所示:

對于遙感圖像語義分割,說到底還是一個分類任務,預測的結果也就是四種情況:true positive(TP)、false positive(FP)、true negative(TN)和false negative(FN)。Iou是計算真實值和預測值兩個集合的交集和并集之比,即公式中的k+1為類別數量(包含背景類)。pii為被正確預測的像素數量,Pij與Pji均表示被誤檢的像素數量。mIou則是對所有類的一個考量,將每一個類別的Iou進行相加之后平均,得到的即是基于全局的評價。像素精確度則是標記正確的像素數占總像素數的比例。pii為被正確預測的像素數量,Pij則為圖片中所有的像素數量。
3.3.3ASPP模塊膨脹率選擇實驗
本文針對環境較為復雜的城市遙感圖像作為研究對象,對植被、水系、建筑物、道路進行分割。在2.2.1小節的改進下,對ASPP中膨脹率進行調整實驗。實驗中分別選用了膨脹率為1、2、4、8,1、3、6、9,1、4、8、12和1、6、12、18四類進行實驗。實驗結果如圖9所示,效率分析如表1所示。

圖9 不同膨脹率分割結果對比Fig.9 Comparison of segmentation results of different dilated rate

表1 不同膨脹率效率分析Table 1 Efficiency analysis of different dilated rate
對比實驗結果可以看出,圖9(a)、(b)在mIou與Accuracy上差距并不大,但是隨著膨脹率的加大,圖9(c)、(d)mIou與Accuracy明顯降低。在實驗結果圖中也可以發現在微小建筑物與植被的分割細節上甚至是在道路的分割完整性上圖9(c)、(d)是不如(a)、(b)的。且由于圖9(b)mIou與Accuracy稍高,因此最終選擇膨脹率為1、3、6、9的ASPP模塊。
3.3.4主流分割算法對比實驗
為驗證本文改進網絡的優越性,故與主流算法進行對比分析。因此,本文設計實驗:以本文自制遙感建筑物數據集為實驗數據集,6 666張作為測試集,通過本文改進網絡結構(Article method)與原Deeplabv3算法、使用了Encoder、Decoder結構的U-net算法、使用了記憶池化的SegNet算法,保留高分辨率語義的HR-Net,使用雙注意力機制的DANet在平均并交比(mIou)及像素準確度(Accuracy)以及能表達微小物體分割效果的植被、建筑物Iou進行比較,分割結果對比如圖10所示。效率分析如表2所示。
從表2可以看出,在平均并交比(mIou)方面,原Deeplabv3算法的平均并交比為91.15%,U-net算法的平均并交比為87.95%,SegNet算法的平均并交比為86.88%,HR-Net的平均并交比為92.88%,DANet的平均并交比為95.16%,本文改進方法平均并交比為94.92%,比DANet算法略低,較原Deeplabv3算法和HR-Net算法提高了3.77個百分點和2.04個百分點;在植被并交比(Iou)方面,原Deeplabv3算法的并交比為85.25%,DANet算法的植被并交比為86.76%,HR-Net算法的植被并交比為82.83%,本文方法的植被并交比為88.66%,較原Deeplabv3算法及DANet算法提高了3.41個百分點和1.9個百分點。在建筑物并交比(Iou)方面,原Deeplabv3算法的并交比為90.06%,DANet算法的建筑物并交比為90.50%,HR-Net算法的建筑物并交比為91.64%,本文改進方法的建筑物并交比為93.83%,較原Deeplabv3算法及DANet算法提高了3.77個百分點和3.33個百分點。對于像素準確率(Pixel Accuracy)本文改進方法(Article method)達到了98.01%,較原Deeplabv3算法,DANet算法,分割效果最差的SegNet算法分別提高了2.40個百分點、0.67個百分點和4.16個百分點。
故本文方法在保持了原算法大物體分割精度的基礎上,提高了平均并交比和像素準確率,對微小物體有著更好的分割精度,對遙感圖像的語義分割效果更好。
本文針對遙感圖像的語義分割,對復雜環境下的微小物體分割難度大的問題進行研究,提出了基于深度學習的Deeplabv3改進算法,以修改上采樣模塊,調整ASPP模塊膨脹率構建了一個適合遙感圖像分割的網絡模型,加強了對復雜環境下小物體的分割能力。實驗結果表明:本文所提出的網絡模型有效地解決了對植被、建筑物等小物體的分割能力差的問題,提升了分割精度,具有很好的分割效果。