楊甜甜,郭大波,孫 佳
(山西大學(xué) 物理電子工程學(xué)院,山西 太原 030006)
科學(xué)技術(shù)的發(fā)展使得我們能夠獲取到超高分辨率的光學(xué)遙感圖像[1],尤其是城區(qū)遙感圖像,分類更為復(fù)雜. 如何在復(fù)雜的遙感圖像中獲取到對人們有用的信息已經(jīng)成為了國土規(guī)劃、 地理監(jiān)測、 智慧城市等領(lǐng)域的熱點(diǎn)問題. 圖像語義分割是計(jì)算機(jī)視覺中最具挑戰(zhàn)性的任務(wù)之一,其為圖像中的每一個(gè)像素標(biāo)注語義標(biāo)簽. 高分辨率遙感圖像包含豐富的語義信息,相對于一般圖像的語義分割而言,有待分割對象的距離變化較小和分割目標(biāo)相對較少等有利因素,因而更便于在現(xiàn)有技術(shù)條件下進(jìn)行針對性研究.
基于傳統(tǒng)的計(jì)算機(jī)視覺圖像語義分割方法有: 基于邊緣的分割(邊緣松弛法、 邊界跟蹤法等)、 基于閾值的分割(閾值檢測法、 最優(yōu)閾值化等)、 基于區(qū)域的分割(分裂與歸并、 分水嶺分割等)[2]. 王宏勝等[3]利用一種改進(jìn)的種子區(qū)域生長算法對農(nóng)村地區(qū)房屋進(jìn)行提取,結(jié)果表明,基于小區(qū)域種子提高了算法的抗噪能力,但需要人為進(jìn)行多次閾值干預(yù); 翟慶羽等[4]采用最優(yōu)閾值分割法,在抑制其他地物信息的基礎(chǔ)上精確分割出了水體細(xì)節(jié)部分,在遙感圖像中的水體類分割方面具有很大的優(yōu)勢,但其泛化能力不夠強(qiáng). 這些傳統(tǒng)的分割法只能提取到圖像的紋理信息、 顏色、 形狀等低層特征,且需人工提前設(shè)計(jì)特征,在消耗了大量的人力物力后得到的分割效果仍不理想.
自深度學(xué)習(xí)技術(shù)出現(xiàn)以來,語義分割進(jìn)入了新的快速發(fā)展時(shí)期. 研究者利用深度神經(jīng)網(wǎng)絡(luò)接收原始圖像數(shù)據(jù),通過端到端的自動(dòng)學(xué)習(xí),提取到圖像的低層、 中層和高層特征,實(shí)現(xiàn)像素級分類,極大地提高了語義分割的精度和效率[5]. 目前,深度學(xué)習(xí)中主要的語義分割算法有全卷積網(wǎng)絡(luò)(Fully Convolitional Networks, FCN)[6],U-Net[7],SegNet[8]等. 2016年,Maggiori等[9]首次將FCN應(yīng)用于遙感圖像分割領(lǐng)域中,該方法與帶有全連接的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)相比更加高效,但其對圖像的細(xì)節(jié)信息保留不夠完整; Zhang等[10]基于FCN提出影像自適應(yīng)分割并開發(fā)了多級分類器,使其在建筑物單一項(xiàng)上提高了提取精度; 張浩然等[11]提出一種基于U-Net網(wǎng)絡(luò)與全連接CRFs網(wǎng)絡(luò)相結(jié)合的方法,通過調(diào)試全連接CRFs模型的推算流程參數(shù),實(shí)現(xiàn)了對建筑物的精準(zhǔn)提取,但存在建筑物分割邊界模糊的問題; 楊建宇等[12]采用傳統(tǒng)的SegNet網(wǎng)絡(luò)對遙感影像中的農(nóng)村建筑物進(jìn)行提取,但傳統(tǒng)的SegNet方法分割精度較低,且訓(xùn)練耗時(shí)較長; 張哲晗等[13]基于SegNet網(wǎng)絡(luò),融合了端到端的編碼器-解碼器(Encoder-Decoder)網(wǎng)絡(luò)結(jié)構(gòu)思想,設(shè)計(jì)了SegProNet網(wǎng)絡(luò)結(jié)構(gòu),在保留圖像像素的空間語義信息的同時(shí)進(jìn)行地物識別分割,其方法主要提高了分割速度,在分割精度上還有待提升; He等[14]提出殘差學(xué)習(xí)(Residual Learning)的框架,用于對更深層次的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,這些殘差網(wǎng)絡(luò)(ResNet)不僅更容易優(yōu)化,并且可以從增加的深度中獲得準(zhǔn)確性. 如: Lin等[15]采用一種遠(yuǎn)程殘差連接的網(wǎng)絡(luò)結(jié)構(gòu)(RefineNet),將下采樣中缺失的信息融合進(jìn)來,從而產(chǎn)生高分辨率的預(yù)測圖像; 徐勝軍等[16]將殘差網(wǎng)絡(luò)與空洞卷積融合,提高了遙感圖像中建筑物的分割精度,但是對植被、 道路等分割效果不佳; 王宇等[17]提出一種用殘差網(wǎng)絡(luò)作為編碼器(Encoder),用反卷積網(wǎng)絡(luò)作為解碼器(Decoder)的Encoder-Decoder深度學(xué)習(xí)框架,實(shí)現(xiàn)對建筑物的分割,提高了對建筑物單一項(xiàng)的分割精度,且對建筑物的邊緣細(xì)節(jié)分割不夠精細(xì).
針對上述算法中存在的分割精度不理想、 邊界細(xì)節(jié)分割效果不佳等問題,本文結(jié)合U-Net網(wǎng)絡(luò)融合多尺度特征的優(yōu)點(diǎn)和殘差網(wǎng)絡(luò)提高圖像特征重復(fù)利用率的優(yōu)點(diǎn),提出了一種基于U-Net網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的遙感圖像語義分割模型. 仿真分析有效地表明了該模型可以提高對遙感圖像中建筑物、 植被、 道路、 水體等的整體分割精度,并在“CCF衛(wèi)星影像的AI分類與識別競賽”[18]的數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn).
本文提出的模型整體結(jié)構(gòu)主要分為3部分: 編碼器、 解碼器和殘差連接. 其中編碼器主體由殘差網(wǎng)絡(luò)組成,提高了圖像特征的重復(fù)利用率,提取到更深層次的高級語義信息; 解碼器主要由上采樣層和卷積層組成,通過上采樣恢復(fù)圖像分辨率,最后輸出分割圖像; 殘差連接能夠減少下采樣過程中空間信息的損失程度,使得上采樣恢復(fù)的特征圖中包含更多低層次的語義信息,提高分割精度. 算法整體網(wǎng)絡(luò)框架如圖1 所示.
圖1 本文算法整體框架Fig.1 The over all frame work of the proposed method
編碼器由圖1 中的Layer1~Layer5組成. 原始的U-Net 網(wǎng)絡(luò)編碼器中所采用的池化層對圖像細(xì)節(jié)信息捕捉不夠精細(xì),容易造成分割邊緣處出現(xiàn)分割斷裂的現(xiàn)象,而且網(wǎng)絡(luò)適應(yīng)能力較差,因此,本文提出編碼器采用ResNet殘差網(wǎng)絡(luò)代替U-Net 網(wǎng)絡(luò). ResNet殘差網(wǎng)絡(luò)能夠?qū)D像的低層特征傳輸?shù)礁邔?,?shí)現(xiàn)信息融合,盡可能地保證信息的完整性,還解決了梯度消失的問題. 殘差網(wǎng)絡(luò)是從輸入直接引入一個(gè)短連接線到非線性層的輸出上,該映射公式為
y=H(x,wh)+x,
(1)
式中:y表示輸出;x表示輸入;H(x,wh)為殘差映射,是殘差模塊中短路連接的起點(diǎn)和終點(diǎn)之間的網(wǎng)絡(luò)所要擬合的函數(shù);wh是第h層的系數(shù)矩陣. 通過對式(1)求偏導(dǎo)數(shù)可得
(2)
由(2)式可得,其偏導(dǎo)數(shù)始終大于1,因此隨著網(wǎng)絡(luò)層數(shù)的加深梯度也不會(huì)消失,解決了梯度消失的問題. 需要注意的是,式(1)中輸入x與輸出y的維度一般是不同的,故引入?yún)?shù)ws完成維度匹配
y=H(x,wh)+wsx,
(3)
式中:ws是系數(shù)矩陣.
向Layer1輸入大小為320×320×3的圖像,經(jīng)過7×7,64,stride=2,padding=3的卷積,輸出160×160×64的圖像,再進(jìn)入Layer2. Layer2與Layer3所用殘差塊網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示.
圖2 編碼器中第2層和第3層殘差塊結(jié)構(gòu)圖
圖2(a)為Layer2的結(jié)構(gòu)圖,先經(jīng)過3×3max pool,64,stride=2,padding=3,輸出80×80×64的圖像,再輸入殘差塊(Residual block). Residual block 1-1輸入圖像為80×80×64; Conv1的1×1卷積為降維; Conv3的1×1卷積為升維,完成特征維度匹配; Add 操作完成特征融合. Layer2的Residual block1-2、 Residual block1-3與Residual block 1-1完全相同,重復(fù)以上操作3次即可.
圖2(b)為Layer3中Residual block的結(jié)構(gòu)圖,輸入圖像為80×80×256; Conv1的1×1卷積為降維; Conv2中stride=2的3×3 卷積將80×80的圖像縮小到40×40; Conv3的1×1卷積為升維; 最后到輸出處進(jìn)行Add特征融合時(shí)因?yàn)閳D像尺寸不同,需要將輸入圖像進(jìn)行下采樣,通過stride=2的1×1卷積層實(shí)現(xiàn). Layer3中Residual block 2-2、 Residual block 2-3、 Residual block 2-4輸入圖像為40×40×512,就不需要進(jìn)行下采樣了,所以stride=1,這3個(gè)殘差塊結(jié)構(gòu)均相同,重復(fù)3次即可. Layer4、 Layer5結(jié)構(gòu)和Layer3相同,不同的是通道數(shù)變多,輸出尺寸變小.
這種網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)點(diǎn)是在卷積的同時(shí)就完成了維度上的適應(yīng),輸入可以直接加到輸出上,這樣使得計(jì)算量減少一半以上. 該模塊還避免了因梯度消失而造成模型性能下降的問題,降低了深層網(wǎng)絡(luò)的訓(xùn)練難度,更容易優(yōu)化. 同時(shí)該模塊縮短了前后層之間的距離,有效地提高了特征的學(xué)習(xí)能力,有助于提取出更多細(xì)節(jié)信息,在反向傳播過程中梯度信息也更容易傳播,一定程度上提高了模型的結(jié)果精確度.
解碼器由圖1 中的Layer6~Layer10組成. Layer6如圖3(a)所示,直接對輸入進(jìn)行反卷積操作,將特征圖大小擴(kuò)大一倍,通道數(shù)縮小為原來的一半. Layer7~Layer10如圖3(b)所示,它的輸入由兩部分組成: 上一級解碼器的輸入和殘差連接層的輸入. 先將上一級解碼器的輸出與殘差連接層提取的多尺度特征進(jìn)行合并,此時(shí)通道數(shù)變?yōu)樵瓉淼亩叮龠M(jìn)行降維; 之后再通過反卷積操作,將特征圖尺寸擴(kuò)大一倍,再降維將通道數(shù)縮小為原來的一半(Layer9降維將通道數(shù)縮小為原來的1/4). 起到了補(bǔ)充信息的作用,改善上采樣時(shí)信息不足的問題. 通過Layer6~Layer10后,特征圖像恢復(fù)到320×320×64,經(jīng)過特征提取器后,最后輸出與原始圖像對應(yīng)的320×320×5的目標(biāo)區(qū)域分割圖. 該設(shè)計(jì)網(wǎng)絡(luò)可以利用較少的訓(xùn)練集進(jìn)行訓(xùn)練,得到較好的分割結(jié)果.
圖3 解碼器結(jié)構(gòu)圖Fig.3 The structure diagram of decoders
本文采用殘差連接代替?zhèn)鹘y(tǒng)的跳層連接. 使用殘差路徑(ResPath),通過帶有殘差連接的卷積層鏈將編碼器中的低層次特征與解碼器中高層次的特征相連接. ResPath降低了二者在語義上的差距,使二者在拼接前具有一致的深度. 本文在ResPath1,2,3,4中分別使用了4,3,2,1個(gè)卷積層.
圖4 殘差連接Fig.4 ResPath
本文模型網(wǎng)絡(luò)參數(shù)如表 1 所示.
表 1 模型網(wǎng)絡(luò)參數(shù)表Tab.1 Table of parameters of proposed module networks
本文所使用的數(shù)據(jù)集來自“CCF衛(wèi)星影像的AI分類與識別競賽”. 將該數(shù)據(jù)集中的訓(xùn)練樣本分為5類: 植被、 水體、 道路、 建筑、 其他. 采用數(shù)據(jù)集中的6幅圖像,3幅大小為7 939×7 969,3幅大小為5 190×5 204,其中4幅作為訓(xùn)練圖像,2幅作為測試圖像,圖片格式為png格式.
該數(shù)據(jù)集圖像尺寸過大,樣本數(shù)量過少,在網(wǎng)絡(luò)訓(xùn)練過程中容易產(chǎn)生過擬合的現(xiàn)象,因此,本文對圖像進(jìn)行了數(shù)據(jù)增強(qiáng),豐富圖像訓(xùn)練集,提升網(wǎng)絡(luò)的泛化能力. 首先采用滑動(dòng)窗口將圖像切割成大小為320×320的小尺寸圖像,然后采用了隨機(jī)旋轉(zhuǎn)、 縮放、 平移、 翻轉(zhuǎn)、 添加噪聲、 對比度色彩調(diào)整共6種方式對數(shù)據(jù)集進(jìn)行擴(kuò)充. 經(jīng)擴(kuò)充后的訓(xùn)練集共包含75 540幅320×320的圖像.
本實(shí)驗(yàn)所采用的CPU是Corei7-8 700k,顯卡是Nvidia GeForce GTX 1 080 ti,顯存容量為11 G,本文運(yùn)行的所有代碼都是在Keras+Tensorflow深度學(xué)習(xí)框架下運(yùn)行的,使用ResNet101網(wǎng)絡(luò)作為預(yù)訓(xùn)練模型,反向傳播采用隨機(jī)梯度下降算法[19]. 在訓(xùn)練階段,采用adam優(yōu)化器多元學(xué)習(xí)率策略來動(dòng)態(tài)調(diào)整學(xué)習(xí)率,避免訓(xùn)練過程中梯度消失的問題; 模型的初始學(xué)習(xí)率設(shè)置為2×10-4; 訓(xùn)練的batch_size=6; 每輪迭代steps_per_epoch=圖像總數(shù)/batch_size; 計(jì)劃訓(xùn)練epochs為280; 采用早停法控制訓(xùn)練過程,若損失loss在10個(gè)epoch內(nèi)沒有下降則停止訓(xùn)練,最終在epochs為118時(shí)訓(xùn)練停止.
為了得到效果最好的模型,本文使用Dice損失函數(shù)[20]評估訓(xùn)練結(jié)果,能夠解決樣本不均衡問題. 定義Dice損失函數(shù)為
(4)
式中:TP,F(xiàn)P,F(xiàn)N分別為遙感圖像像素正確分類數(shù)目、 背景像素錯(cuò)誤分類數(shù)目、 遙感圖像像素錯(cuò)誤分類數(shù)目,X,Y分別為真實(shí)值和預(yù)測值.Dice值表示真實(shí)值與預(yù)測值的相似度,Dice值越大說明圖像分割準(zhǔn)確性越高.
圖像分割一般使用精確率(precision, P)和召回率(recall, R)對遙感圖像分割結(jié)果進(jìn)行定量分析.P和R的定義式分別為
(5)
(6)
因?yàn)镻和R本身的限制,無法對分割結(jié)果進(jìn)行全面評價(jià),所以本文采用F值作為綜合評價(jià)指標(biāo),其定義為
(7)
當(dāng)參數(shù)a=1時(shí),則
(8)
同時(shí)還使用了語義分割當(dāng)中標(biāo)準(zhǔn)的準(zhǔn)確率度量方法MIoU[21]進(jìn)行評價(jià),其定義為
(9)
式中:k為類別總數(shù);pij為i類別的像素被預(yù)判為j類別像素的總數(shù)量;pji為j類別的像素被預(yù)判為i類別像素的總數(shù)量;pii為i類別的像素被預(yù)判為i類別像素的總數(shù)量;pij和pji屬于被分錯(cuò)的像素?cái)?shù)量;pii屬于被分對的像素?cái)?shù)量.
本文網(wǎng)絡(luò)模型所訓(xùn)練的P,R,F(xiàn)和IoU如圖5 所示.
圖5 訓(xùn)練過程中各性能指標(biāo)的變化趨勢Fig.5 The chart of the tendency of several performance withepochs in the training process
圖6 所示為該實(shí)驗(yàn)中的部分可視化結(jié)果,第1列圖像為原始彩色遙感圖像; 第2列圖像為人工標(biāo)記真實(shí)類別; 第3列圖像為使用U-Net網(wǎng)絡(luò)所產(chǎn)生的分割圖; 第4列圖像為使用本文模型所產(chǎn)生的分割圖; 第1行為建筑物密集的分割對比圖; 第2行為其它類密集的分割對比圖; 第3行為植被密集的分割對比圖; 第4行為道路密集的分割對比圖; 第5行為水體密集的分割對比圖.
圖6 遙感圖像語義分割結(jié)果Fig.6 Semantic segmentation results for remote sensing images
從圖6中第1行分割對比圖中可以看出,本文模型對于建筑物密集的圖像也能做到較為準(zhǔn)確的分割,在建筑物邊緣分割上也比較精確,而U-Net網(wǎng)絡(luò)在建筑分割上出現(xiàn)了比較明顯的分割錯(cuò)誤; 從圖6 中第2行、 第3行與第5行分割對比圖中可以看到,本文模型在河流、 建筑、 植被等比較復(fù)雜的圖像中,河流、 植被也能得到比較好的分割效果; 從圖6 中第4行分割對比圖中可以看出,本文模型在道路細(xì)節(jié)特征方面分割效果不佳,出現(xiàn)了分割錯(cuò)誤的現(xiàn)象,導(dǎo)致原圖中的細(xì)小道路沒有被分割出來,但與U-Net網(wǎng)絡(luò)分割效果相比結(jié)果較好.
為了驗(yàn)證本文模型的訓(xùn)練效果,將本文模型的分割結(jié)果與FCN-8s,U-Net和Seg-Net 3種經(jīng)典語義分割模型進(jìn)行對比,結(jié)果如表 2 所示.
表 2 不同模型在相同數(shù)據(jù)集下的測試結(jié)果Tab.2 Test results of different models under the same data set
表 2 中加粗?jǐn)?shù)字表示最優(yōu)結(jié)果. 由數(shù)據(jù)可得,本文所使用模型的P,R,F(xiàn)和MIoU指標(biāo)均優(yōu)于其它3種經(jīng)典語義分割算法.
實(shí)驗(yàn)中為了驗(yàn)證各模塊對整體模型的影響,將原始U-Net 模型、 添加Residual block后的模型、 添加ResPath后的模型與本文模型進(jìn)行了對比實(shí)驗(yàn),對比結(jié)果如表 3 所示.
表 3 各模塊對整體模型性能的影響Tab.3 The influence of each module to the performanceof the overall model
本文模型是以U-Net 網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò)進(jìn)行的,U-Net網(wǎng)絡(luò)P為0.915 7,R為 0.926 0,F(xiàn)為0.920 4,MIoU為0.798 5; 添加Residual block與 ResPath后的本文模型在這3項(xiàng)指標(biāo)上均有提升,其中P與U-Net網(wǎng)絡(luò)相比提高了2.09%,表明該文方法能夠提取到更多的細(xì)節(jié)信息,圖中對比度較低的一些區(qū)域也能被有效分割出來,MIoU與U-Net網(wǎng)絡(luò)相比提高了3.13%,F(xiàn)與U-Net網(wǎng)絡(luò)相比提高了2.74%,R與U-Net網(wǎng)絡(luò)相比提高了3.32%,充分證明了本文算法的有效性.
本文針對遙感圖像語義分割提出一種基于U-Net網(wǎng)絡(luò)和多殘差網(wǎng)絡(luò)結(jié)合的遙感圖像語義分割模型,該模型在U-Net網(wǎng)絡(luò)模型基礎(chǔ)上引入殘差塊,加強(qiáng)特征傳播,減少了信息的損失程度; 采用殘差連接,減少了下采樣過程中空間信息的損失程度,使得上采樣恢復(fù)的特征圖中包含更多低層次的語義信息,提高了分割精度. 實(shí)驗(yàn)結(jié)果表明,與其它經(jīng)典分割模型相比,本文算法對遙感圖像具有較高的分割精度,在植被、 建筑、 道路等目標(biāo)復(fù)雜的圖像中也能得到比較準(zhǔn)確的分割結(jié)果,具有很好的魯棒性. 在后續(xù)研究中,擬考慮加入空洞卷積與注意力機(jī)制進(jìn)一步優(yōu)化結(jié)構(gòu),實(shí)現(xiàn)更加精確的遙感圖像語義分割.