劉亦凡,張秋昭,王光輝,李益斌
(1.中國礦業(yè)大學(xué) 環(huán)境與測繪學(xué)院,江蘇 徐州 221116;2.自然資源部國土衛(wèi)星遙感應(yīng)用中心,北京 100048;3.江蘇蘇州地質(zhì)工程勘察院,江蘇 蘇州 215129)
利用遙感影像提取建筑物在建設(shè)用地規(guī)劃、災(zāi)害評估、建設(shè)數(shù)字城市和GIS數(shù)據(jù)更新方面有重要的作用。雖然國內(nèi)外眾多學(xué)者已經(jīng)探索出很多方法,但是由于高分辨率遙感影像中存在同物異譜、異物同譜、噪聲陰影和地物遮擋等問題,很難實(shí)現(xiàn)高精度自動(dòng)化提取[1-2]。
傳統(tǒng)遙感影像提取建筑物的方法主要依賴于人工制作的特征,如局部特征(邊緣角點(diǎn)等)[3-4]、紋理特征[5]、形態(tài)學(xué)特征[6]、多光譜屬性特征[7]和陰影特征[8]等。同時(shí)支持向量機(jī)[9-10]、分水嶺算法[11]和遺傳算法[12]等也廣泛應(yīng)用于遙感影像建筑物提取。然而這些方法普適性稍差,分類性能取決于人工篩選的低級特征,表達(dá)能力也有限。因此,在圖像分割中提取和使用具有代表性的高級特征,對建筑物的準(zhǔn)確提取是十分重要的。
近年來,深度卷積神經(jīng)網(wǎng)絡(luò)在語義分割領(lǐng)域得到廣泛應(yīng)用[13]。如全卷積神經(jīng)網(wǎng)絡(luò)FCN[14]、SegNet[15]等神經(jīng)網(wǎng)絡(luò)都能夠得到每一個(gè)像素在其類別最大的概率,最終完成像素級別的分類。然而FCN和SegNet對于物體的邊緣信息不敏感,提取邊界明顯的建筑物時(shí)效果不佳。UNet網(wǎng)絡(luò)是Ronneberger等[16]提出的一種處理醫(yī)學(xué)影像的網(wǎng)絡(luò),它能夠結(jié)合高層特征和低層特征,恢復(fù)邊緣信息,成為眾多語義分割比賽中的佼佼者。但是在遙感影像中,建筑物類別復(fù)雜,淺層的網(wǎng)絡(luò)訓(xùn)練到一定程度會(huì)出現(xiàn)梯度消失的問題。文獻(xiàn)[17]表明更深層次的網(wǎng)絡(luò)會(huì)產(chǎn)生更好的性能,He等[18]提出深度殘差網(wǎng)絡(luò)(deep residual network,ResNet),利用恒等映射層拓展層數(shù),為解決問題提供了新思路。
本文提出了一種以UNet為框架,以ResNet-34為前端編碼器、轉(zhuǎn)置卷積為后端解碼器的Res-UNet結(jié)構(gòu)。Res-UNet對比其他2種結(jié)構(gòu),能夠有效結(jié)合2種結(jié)構(gòu)的優(yōu)勢,可以融合上下文信息,提取多層級特征,同時(shí)解決了梯度消失的問題,從而提升了神經(jīng)網(wǎng)絡(luò)方法提取遙感影像中建筑物的精度。
本文提出的Res-UNet網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,主要分為左側(cè)編碼、右側(cè)解碼和中間金字塔式跳躍連接3個(gè)部分。
圖1 本文提出的Res-UNet結(jié)構(gòu)圖
左側(cè)編碼部分的ResNet-34網(wǎng)絡(luò)用于提取特征,將網(wǎng)絡(luò)輸入尺寸設(shè)計(jì)為256像素×256像素的三波段RGB影像。輸入層后面跟著歸一化層和最大池化層。網(wǎng)絡(luò)中的激活函數(shù)為ELU(exponential linear unit),定義如式(1)所示。
(1)
ELU的輸出均值接近于零,x>0的線性部分加速收斂速度,同時(shí)緩解梯度消失;x≤0的非線性部分使輸入變化或噪聲更魯棒。4次2×2的最大池化層用于下采樣,起到了降維和保持圖像整體尺度不變的作用。在特征提取過程,共有4個(gè)階段,每個(gè)階段有若干殘差模塊,如圖2所示,殘差單元計(jì)算見式(2)、式(3)。
yl=h(xl)+F(xl,Wl)
(2)
xl+1=f(yl)
(3)
式中:xl和xl+1是第l個(gè)殘差單元的輸入和輸出;F(xl,Wl)是殘差函數(shù);h(xl)是恒等映射函數(shù);f(yl)是ELU激活函數(shù),一般情況下,h(xl)=xl。同一階段下特征圖尺寸與數(shù)量相同,進(jìn)入下一階段時(shí)特征圖尺寸變?yōu)樵瓉淼?/2,數(shù)目變?yōu)樵瓉淼?倍。
圖2 殘差計(jì)算單元
右側(cè)解碼部分也由4個(gè)階段組成,每個(gè)階段通過1×1卷積層、轉(zhuǎn)置卷積層和1×1卷積層進(jìn)行上采樣,同階段特征圖尺寸和數(shù)量與左側(cè)一致。中間跳躍連接部分受到FPN[19]的啟發(fā),設(shè)計(jì)為金字塔型層級結(jié)構(gòu),將左右兩側(cè)的特征圖進(jìn)行疊加再輸入下一層級,實(shí)現(xiàn)上下文多尺度特征融合。在網(wǎng)絡(luò)的最后,通過一個(gè)1×1卷積層和sigmoid激活函數(shù)輸出特征向量概率圖,將建筑物與背景分離。本文的網(wǎng)絡(luò)結(jié)構(gòu)解決了層數(shù)增加導(dǎo)致的梯度消失問題,金字塔結(jié)構(gòu)融合了不同層級的多尺度特征,有助于恢復(fù)建筑物邊緣信息。
全民學(xué)習(xí)共享平臺(tái)呈現(xiàn)了全新的教學(xué)服務(wù)平臺(tái),給課程教學(xué)帶來開闊的視野,提供強(qiáng)大的課程服務(wù)和學(xué)生管理能力,給教學(xué)傳播帶來新的契機(jī)。教研組可以申請、創(chuàng)建微信雨課堂教室,分享具體課程內(nèi)容資源。教學(xué)團(tuán)隊(duì)可以自主制作視頻和實(shí)驗(yàn)?zāi)0?,讓更多的人能夠有所體驗(yàn),而且雨課堂可以不用下載APP,占用空間很小,觸手可及,用完就能退出。在內(nèi)容設(shè)置安排上,要以直觀且清晰的關(guān)鍵詞來設(shè)計(jì)大數(shù)據(jù)信息,在線學(xué)員可以根據(jù)不同的需求和興趣點(diǎn)到達(dá)不同的頁面空間,開展學(xué)習(xí)活動(dòng)。
將影像數(shù)據(jù)輸入到網(wǎng)絡(luò)之前需要對數(shù)據(jù)進(jìn)行預(yù)處理,主要有兩個(gè)目的:一是數(shù)據(jù)增廣,當(dāng)數(shù)據(jù)集較少時(shí),可以通過旋轉(zhuǎn)、翻轉(zhuǎn)或隨機(jī)裁剪等方式擴(kuò)大數(shù)據(jù)量;二是數(shù)據(jù)增強(qiáng),使數(shù)據(jù)變得更加多樣,避免模型偏向某一特定方位的特征。由于建筑物尺寸大小存在差異,為了使網(wǎng)絡(luò)能夠?qū)W習(xí)到不同尺度的特征,首先利用雙線性插值法,將影像分別放大和縮小至原尺寸的0.5倍、0.75倍和1.5倍;其次用256像素×256像素的滑動(dòng)窗口裁剪,其中對一些房屋密集區(qū)以一定的步長進(jìn)行過采樣;然后利用隨機(jī)旋轉(zhuǎn)、隨機(jī)翻轉(zhuǎn)和隨機(jī)添加噪聲處理裁剪后影像;最后對所有數(shù)據(jù)進(jìn)行歸一化。
利用滑動(dòng)窗口對影像數(shù)據(jù)進(jìn)行裁剪時(shí),如果裁剪尺寸為128像素×128像素,下采樣至16倍時(shí),8像素×8像素的特征圖不足以表達(dá)復(fù)雜的空間信息,恢復(fù)至原尺寸時(shí)細(xì)節(jié)較差;如果裁剪尺寸為512像素×512像素時(shí),將超出計(jì)算機(jī)的內(nèi)存占用,導(dǎo)致計(jì)算資源不足。因此本文的滑動(dòng)窗口尺寸為256像素×256像素,以128的步長進(jìn)行裁剪。
神經(jīng)網(wǎng)絡(luò)基于梯度下降的原理更新權(quán)重,隨著迭代次數(shù)增加,模型逐步趨于收斂,但是不同迭代次數(shù)也會(huì)導(dǎo)致模型參數(shù)變化。因此本文提出一種集成多模型得到最終預(yù)測結(jié)果的方法,在訓(xùn)練進(jìn)入平緩區(qū)后,保存最后幾輪模型結(jié)果做集成,可以防止迭代次數(shù)過多導(dǎo)致的過擬合現(xiàn)象,降低隨機(jī)誤差。
第一步預(yù)測階段采用TTA(test time augmentation)策略,將原始預(yù)測圖送入網(wǎng)絡(luò)前旋轉(zhuǎn)0°、90°、180°和270°,上下翻轉(zhuǎn)和水平翻轉(zhuǎn)得到6張每個(gè)像素點(diǎn)數(shù)值在(0,1)之間的預(yù)測圖,將6張概率圖中相對應(yīng)的每個(gè)像素點(diǎn)用直接平均法得到新的概率圖。第二步用訓(xùn)練好的4個(gè)模型同時(shí)預(yù)測,得到的預(yù)測結(jié)果進(jìn)一步取平均值,準(zhǔn)備下一步后處理工作。
通常利用深度學(xué)習(xí)訓(xùn)練獲得模型得到的預(yù)測結(jié)果都不夠齊整,有些建筑物存在椒鹽噪聲、孔洞和邊界不平滑等現(xiàn)象,因此需要閾值過濾和后處理來優(yōu)化結(jié)果。首先利用選擇好的閾值,對概率圖進(jìn)行二值化,用于區(qū)分建筑物與背景,然后對有空缺的建筑物孔洞填充,再選擇合適的像素值用于去除較大圖斑,最后進(jìn)行高斯濾波和形態(tài)學(xué)運(yùn)算對邊界進(jìn)行平滑,以上運(yùn)算由OpenCV處理。整體的工作流程如圖3所示。
圖3 本文方法的工作流程
選取合適閾值的策略是通過對訓(xùn)練集和驗(yàn)證集進(jìn)行預(yù)測,預(yù)測結(jié)果閾值以5為步長,從50取至160,計(jì)算每個(gè)閾值下的F1值,選取最大的F1值作為測試集的二值化閾值。
實(shí)驗(yàn)數(shù)據(jù)為CCF衛(wèi)星影像識別比賽中南方某地亞米級高分辨率遙感影像集,光譜為RGB可見光波段。選取建筑物類別作為樣本。影像中建筑物種類較多,有小區(qū)、工廠和平房等,將建筑物標(biāo)記為前景,其他地物標(biāo)記為背景,數(shù)據(jù)預(yù)處理后整個(gè)數(shù)據(jù)集共10 598張。在訓(xùn)練時(shí)以8∶2的比例隨機(jī)分為8 478張訓(xùn)練集和2 120張驗(yàn)證集。
在訓(xùn)練階段,將預(yù)處理過的數(shù)據(jù)集輸入網(wǎng)絡(luò),經(jīng)過大量測試,為了得到效果最好的模型,選用BCE+Dice_loss作為損失函數(shù),選擇Adam算法作為優(yōu)化器,進(jìn)行權(quán)值更新。訓(xùn)練一共迭代106 000次,批處理圖像個(gè)數(shù)為8張,學(xué)習(xí)率設(shè)置為0.000 1,每迭代10 600次,對驗(yàn)證集loss監(jiān)視,如果不再繼續(xù)減小,則下一次迭代次數(shù)減小為原來的1/10。
為了對模型的性能做定量評價(jià),本文選擇精確率、召回率和F1值作為像素級語義分割的評價(jià)指標(biāo)。F1值代表了精確率與召回率的加權(quán)平均值,通常選取F1值最高的作為最佳模型,計(jì)算公式如式(4)~式(6)所示。
(4)
(5)
(6)
式中:TP表示預(yù)測為正樣本,實(shí)際預(yù)測正確(正確提取的建筑物);FP表示預(yù)測為正樣本,實(shí)際預(yù)測錯(cuò)誤(錯(cuò)誤提取的建筑物);FN表示預(yù)測為負(fù)樣本,實(shí)際預(yù)測錯(cuò)誤(預(yù)測為背景,實(shí)際為建筑物)。
本文實(shí)驗(yàn)使用Tensorflow+Keras深度學(xué)習(xí)框架,在Linux系統(tǒng)下,通過一塊12 GB顯存的NVIDIA TITAN V顯卡完成訓(xùn)練,實(shí)驗(yàn)過程中的準(zhǔn)確率和損失曲線如圖4所示。
圖4 模型訓(xùn)練過程中準(zhǔn)確率和損失值變化
1)不同網(wǎng)絡(luò)結(jié)構(gòu)對比。首先對SegNet、UNet和Res-UNet的提取效果進(jìn)行對比,圖5(c)至圖5(e)是同一區(qū)域不同模型的預(yù)測結(jié)果,一些重要區(qū)別用圓圈標(biāo)記。圖5中紅圈處的建筑物較為密集,SegNet和UNet提取的建筑物之間有黏連,Res-UNet提取分離度較好;圖5中藍(lán)圈和黃圈處Res-UNet提取邊界也更加完整。表1給出了測試集不同模型的評價(jià)指標(biāo)對比,可以看出,Res-UNet的精確率與召回率均優(yōu)于SegNet和UNet,F(xiàn)1值分別提升了0.8%和1%。
2)閾值過濾與后處理對比。為了進(jìn)一步優(yōu)化預(yù)測結(jié)果,進(jìn)行閾值過濾和后處理操作。在前文具體介紹了選取閾值的方法,圖6為F1值隨著閾值增加的變化曲線??梢钥闯鯢1值有先增加后減少的趨勢,通過計(jì)算,最大F1值的閾值為105。本文對不同閾值過濾結(jié)果進(jìn)行了對比,如圖7(c)至圖7(e)所示,閾值導(dǎo)致的變化用圓圈標(biāo)記。圖7中藍(lán)圈處,如果選取的閾值太大,一些模糊的建筑物邊界就會(huì)被剔除掉,提取建筑物的尺寸就會(huì)縮小;圖7中黃圈處,如果設(shè)置的閾值太小,會(huì)有與建筑物邊緣紋理特征相似的像素點(diǎn)存在,導(dǎo)致建筑物比實(shí)際大,有些建筑物之間有黏連;圖7中紅圈處,會(huì)有一些不屬于建筑物的噪聲存在。表2為測試集預(yù)測結(jié)果的精度評定,閾值較小時(shí),存在大量不屬于建筑物的像素點(diǎn),導(dǎo)致精確率較低;閾值較大時(shí),屬于建筑物的概率較低的像素點(diǎn)被過濾,導(dǎo)致召回率較低。綜上所述,所選閾值必須處在二者的平衡位置,才能得到最佳效果。
圖5 不同網(wǎng)絡(luò)結(jié)構(gòu)建筑物提取結(jié)果
表1 測試集不同網(wǎng)絡(luò)結(jié)構(gòu)的F1值對比
后處理過程中,首先對上一步得到的預(yù)測結(jié)果進(jìn)行多模型集成,然后選擇合適的像素值去除較大圖斑,最后利用高斯濾波和形態(tài)學(xué)運(yùn)算使建筑物邊界平滑,進(jìn)行孔洞填充使建筑物更加完整,最終效果圖如圖7(f)所示。由表2分析表明F1值的提升主要為精確率的提升,說明經(jīng)過后處理的建筑物更加完整。
圖6 閾值增加導(dǎo)致的F1值變化
圖7 不同閾值下建筑物提取結(jié)果和后處理結(jié)果
表2 測試集不同閾值和后處理結(jié)果對比
本文提出了一種Res-UNet深度神經(jīng)網(wǎng)絡(luò)進(jìn)行高分辨率遙感影像建筑物的提取方法,解決了梯度消失的問題,有助于恢復(fù)高級邊緣特征信息。實(shí)驗(yàn)表明,本文算法與SegNet和UNet相比,能有效提高建筑物提取精度,并且通過模型集成、閾值過濾和后處理,有效剔除了噪聲,使建筑物邊界更加平滑,預(yù)測結(jié)果得到進(jìn)一步優(yōu)化。利用深度學(xué)習(xí)進(jìn)行分割任務(wù)雖然比傳統(tǒng)方法精度高,但是它主要有兩個(gè)缺點(diǎn):一是需要大量的樣本數(shù)據(jù);二是訓(xùn)練需要經(jīng)驗(yàn)設(shè)置參數(shù)。在后續(xù)工作中,將參考弱監(jiān)督方法并結(jié)合先驗(yàn)知識,提高適用能力。