陳巖,奚硯濤,檀明,許強,萬家華
(1.合肥學(xué)院 人工智能與大數(shù)據(jù)學(xué)院,合肥 230601;2.合肥學(xué)院 中德應(yīng)用優(yōu)化研究所,合肥 230601;3.中國礦業(yè)大學(xué) 資源與地球科學(xué)學(xué)院,江蘇 徐州 221006;4.安徽新華學(xué)院 大數(shù)據(jù)與人工智能學(xué)院,合肥 230031)
建筑物是重要的地理空間數(shù)據(jù),是基礎(chǔ)地理信息數(shù)據(jù)庫中的核心構(gòu)成要素之一?;诟叻直媛蔬b感影像的建筑物智能解譯對于城市規(guī)劃、城市建模、地理制圖、災(zāi)害與環(huán)境管理等具有重要意義[1-2]。
近年來,以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)為代表的深度學(xué)習(xí)方法被廣泛應(yīng)用于遙感場景分類、地物對象識別檢測和土地利用覆蓋分類等方向,并取得了良好效果[3-4]。與傳統(tǒng)基于光譜和面向?qū)ο蟮姆椒ㄏ啾?,CNN可以有效改善椒鹽噪聲,提高解譯目標邊緣精度。U-Net[5]是基于標準CNN設(shè)計的具有對稱編解碼結(jié)構(gòu)的語義分割模型。相比基于圖塊的(patch-based)[6]的CNN語義分割方法,U-Net實現(xiàn)了端到端的語義分割,并在云[7]、車輛[8]、浮油[9]和海冰[10]等目標對象的自動提取和解譯中獲得了SOTA(state of the art)的結(jié)果。但需要指出的是,U-Net等深度卷積神經(jīng)網(wǎng)絡(luò)使用的最大池化層以舍棄位置信息為代價獲取高級語義特征,利用上采樣和編解碼結(jié)構(gòu)進行恢復(fù),使得整個網(wǎng)絡(luò)過于復(fù)雜,模型訓(xùn)練耗時長,難以優(yōu)化,對訓(xùn)練使用的計算環(huán)境要求較高。另外,對于高分遙感影像建筑智能解譯,由于建筑物多尺度特征,及其與周邊地物對象的尺度差異性,為了提取高級語義特征,保證建筑物完整性,同時保留更多空間細節(jié),需要充分考慮訓(xùn)練樣本尺寸和感受野大小[11]。當輸入圖像尺寸過大時,模型計算開銷增加,內(nèi)存和GPU負荷增大,訓(xùn)練難度進一步提升。
本文通過修改標準U-Net模型編解碼結(jié)構(gòu)中輸入樣本尺寸、卷積層數(shù)量、卷積核數(shù)量、最優(yōu)化算法和特征融合方法,針對中低配置計算環(huán)境,設(shè)計了面向復(fù)雜場景高分遙感影像建筑智能解譯的U-Net語義分割模型。為進一步優(yōu)化、提升模型效率,本文在修改的U-Net模型中引入了空間置棄層(spatial dropout)[12],設(shè)置兩組實驗情景,定量對比分析了實驗結(jié)果,得出了有意義的結(jié)論。本文的主要貢獻包括兩點。一是首次將空間置棄層引入U-Net模型,并取得了更高的精度,例如目標邊緣更準確,為進一步優(yōu)化U-Net和經(jīng)典深度卷積神經(jīng)網(wǎng)絡(luò)提供了新的思路。二是實驗設(shè)計改進的輸入樣本尺寸、卷積層數(shù)量、卷積核數(shù)量、學(xué)習(xí)率等超參數(shù)以及實驗使用的特征融合方法和最優(yōu)化算法,為使用中低配置計算環(huán)境訓(xùn)練和測試U-Net以解決高分辨率遙感影像建筑解譯問題提供了有意義的參考。
標準U-Net是由Ronneberger等于2015年設(shè)計開發(fā),最初用于醫(yī)學(xué)細胞分割。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,采用了對稱的編解碼結(jié)構(gòu)。拆分來看,可以將整個網(wǎng)絡(luò)看作由九個卷積塊組成。相應(yīng)的卷積塊通過跳躍連接(skip connection)方式進行多尺度特征融合。在九個卷積塊中,五個編碼卷積塊用于特征提取,四個解碼卷積塊用于恢復(fù)目標位置信息并最終實現(xiàn)逐像素分類。每個編碼卷積塊由若干個卷積層、非線性激活層、批歸一化層(batch normalization,BN)[13]和最大池化層構(gòu)成。每個解碼卷積塊由若干個上采樣層、特征融合層、卷積層、非線性激活層和BN層構(gòu)成。
圖1 標準U-Net網(wǎng)絡(luò)結(jié)構(gòu)
標準U-Net的輸入樣本為572像素×572像素的三通道圖像。在首個編碼卷積塊中,經(jīng)過兩次卷積和ReLU(rectified linear unit,ReLU)非線性激活后,對得到的特征圖進一步做BN和最大池化操作。其中,卷積層卷積核數(shù)量為64,每個卷積核通道數(shù)為3,尺寸為3像素×3像素。此后各編碼卷積塊中的卷積核數(shù)量依次成倍增加至1 024個,通道數(shù)與上層輸出特征圖通道數(shù)保持一致,卷積核尺寸保持不變。在最后一個編碼卷積塊中,對其輸出進行兩倍上采樣操作,并將上采樣輸出與第4個編碼卷積塊的輸出進行融合,再依次進行兩次卷積和ReLU非線性激活、一次BN運算,最終進入解碼卷積塊。其中,標準U-Net特征融合采用的是沿通道拼接(concatenate)的方式。依次將上采樣輸出與對應(yīng)的編碼卷積塊輸出進行融合、上采樣,并最終基于1*1卷積操作和softmax分類器輸出388像素×338像素的逐像素分類結(jié)果圖。模型訓(xùn)練使用的損失函數(shù)為交叉熵,最優(yōu)化算法為隨機梯度下降(stochastic gradient descent,SGD)。
本文通過修改標準U-Net網(wǎng)絡(luò)編解碼結(jié)構(gòu)中輸入樣本尺寸、卷積層數(shù)量、卷積核數(shù)量、最優(yōu)化算法和特征融合方法,針對中低配置計算環(huán)境,設(shè)計了面向高分遙感影像建筑智能解譯的U-Net語義分割模型。其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,圖中SPD層指代空間置棄層。為了減小內(nèi)存和GPU負荷,本文將輸入樣本大小從572像素×572像素修改為224像素×224像素,將編碼卷積塊和解碼卷積塊中的卷積層全部減少一層,輸入樣本通道數(shù)保持不變。為了減少模型參數(shù),對標準U-Net各編解碼卷積塊進行了降維操作。例如,將第一個編碼卷積塊中卷積核數(shù)量從64減少為16,依次按照四倍數(shù)量減少,最后一個編碼卷積塊卷積核數(shù)量為256個,同時使用逐層特征圖融合方法替代沿通道拼接特征融合。相比于標準U-Net面向不規(guī)則自然細胞分割的設(shè)計,本文充分考慮高分遙感影像中建筑物特征[14],即人工構(gòu)造的建筑物的形狀(俯視輪廓)多以矩形和直角多邊形為主,同時具有規(guī)律顯著的紋理特征和較為均勻的灰度分布。因此,上述修改對于高分遙感影像建筑物解譯是合適的,實驗結(jié)果也證明了這一點。最后,為了提高模型訓(xùn)練收斂速度,本文使用Adam[15]最優(yōu)化算法取代隨機梯度下降法。
圖2 改進的U-Net網(wǎng)絡(luò)結(jié)構(gòu)
盡管標準U-Net使用了BN加速模型訓(xùn)練防止過擬合,但其效果受限于batch size[16]。當 batch size較小時,會導(dǎo)致模型誤差增加。對于高分遙感影像建筑智能解譯這樣的語義分割任務(wù),要求的輸入樣本尺寸較大,如果設(shè)置更大的batch size,將會導(dǎo)致GPU負荷增加。因此,為了進一步優(yōu)化模型,本文在修改的U-Net基礎(chǔ)上引入了空間置棄層進行實驗。空間置棄層是Tompson等提出的一種用于圖像領(lǐng)域的dropout[17]方法。與密集連接中常用的dropout隨機將若干隱層節(jié)點置零相比,空間置棄層則隨機將若干特征圖全部元素置零。該方法已在部分自然圖像和醫(yī)學(xué)影像分類和識別任務(wù)中取得良好效果。
模型訓(xùn)練和測試使用的數(shù)據(jù)集來自于武漢大學(xué)季順平團隊開發(fā)的WHU building dataset數(shù)據(jù)集[18]。該數(shù)據(jù)集樣本圖像分別采集自不同遙感平臺和城市,可用于建筑語義分割和變化檢測研究。本文實驗使用的數(shù)據(jù)集是其中的航空圖像數(shù)據(jù)集(aerial imagery dataset),如圖3所示。該數(shù)據(jù)集中原始遙感影像采集自新西蘭Christchurch市,空間分辨率為0.075 m,覆蓋面積達450 km2,包含22萬個獨立建筑??紤]內(nèi)存和GPU限制,原始影像被降采樣為0.3 m空間分辨率,并按順序裁剪為8 189個大小512像素×512像素的子圖。其中,訓(xùn)練集包括4 736個子圖,驗證集包括1 036個子圖,測試集包括2 416個子圖。在本文的實驗中,本文從三個子數(shù)據(jù)集中隨機提取了5 772個訓(xùn)練樣本,并通過程序動態(tài)分配用于訓(xùn)練、驗證和測試的數(shù)據(jù)樣本。但需要指出的是,實驗過程中設(shè)置了隨機種子點,保證了每次參與訓(xùn)練、驗證和測試的數(shù)據(jù)的一致性。
圖3 aerial imagery dataset航空圖像數(shù)據(jù)集
考慮到計算環(huán)境,模型訓(xùn)練使用的batch size設(shè)置為10;為保證模型有效收斂,學(xué)習(xí)率設(shè)置為0.000 01;損失函數(shù)采用交叉熵,并基于Adam優(yōu)化,替換標準U-Net中使用的隨機梯度下降法;迭代次數(shù)設(shè)置為1 000;模型使用總體精度作為評價指標。實驗使用的軟硬件環(huán)境如表1所示。
表1 實驗軟硬件環(huán)境
模型實現(xiàn)主要基于Tensorflow 2.0深度學(xué)習(xí)框架。對于數(shù)據(jù)預(yù)處理、載入及結(jié)果可視化,本文分別使用了相關(guān)的Python第三方庫,如numpy、matplotlib、os和glob等。實驗按照數(shù)據(jù)預(yù)處理與載入、模型框架構(gòu)建、模型訓(xùn)練與測試和結(jié)果可視化的技術(shù)路線實施。為減小樣本存儲容量,首先將原數(shù)據(jù)集輸入樣本和標注樣本數(shù)據(jù)格式進行了轉(zhuǎn)換:輸入樣本從24位深TIF格式轉(zhuǎn)換為24位深JPG格式;標注樣本從1位深TIF格式轉(zhuǎn)換為8位深PNG格式。模型框架主要采用Tensorflow 2.0深度集成的keras接口進行構(gòu)建,這其中包括實現(xiàn)卷積、最大池化、批歸一化、上采樣、特征融合及空間置棄操作的所有接口。同樣,模型的訓(xùn)練、驗證及模型測試評價均采用keras接口。結(jié)果可視化則采用matplotlib.pyplot庫實現(xiàn)。模型實現(xiàn)使用的核心接口如下所示,各接口返回值類型及參數(shù)可參見文獻[19]。
1)數(shù)據(jù)預(yù)處理與載入。采用的函數(shù)描述如下。
①Object glob.glob(parameters):獲取圖像文件全路徑。
②Object tensorflow.image.decode_jpeg(parameters):解碼JPG格式圖像。
③Object tensorflow.image.decode_png(parameters):解碼PNG格式圖像。
④Object tensorflow.data.Dataset.from_tensor_slices(parameters):輸入與標注特征切片與重構(gòu)。
2)?模型框架構(gòu)建。采用的函數(shù)描述如下。
①Object tf.keras.layers.Input(parameters):模型輸入。
②Object tf.keras.layers.Conv2D(parameters):卷積。
③Object tf.keras.layers.BatchNormalization(parameters):批歸一化。
④Object tf.keras.layers.MaxPooling2D(parameters):最大池化。
⑤Object tf.keras.layers.UpSampling2D(parameters):上采樣。
⑥Object tf.keras.layers.concatenate(parameters):特征融合。
⑦Object tf.keras.layers.SpatialDropout2D(parameters):空間置棄。
⑧Object tf.keras.models.Model(parameters):模型構(gòu)建。
3)?模型訓(xùn)練與測試。采用的函數(shù)描述如下。
①Object tf.keras.models.Model.compile(parameters):模型設(shè)置(如學(xué)習(xí)率、優(yōu)化器、損失函數(shù)、評價尺度等)。
②Object tf.keras.models.Model.fit(parameters):模型訓(xùn)練。
③Object tf.keras.models.Model.evaluation(parameters):模型測試。
④Object tf.keras.models.Model.predict(parameters):模型應(yīng)用(預(yù)測)。
4)?結(jié)果可視化。采用的函數(shù)描述如下。
①Object matplotlib.pyplot.plot(parameters):繪制坐標軸。
②Object matplotlib.pyplot.figure(parameters):繪制圖像。
③Object matplotlib.pyplot.imshow(parameters):可視化。
為比較改進前后模型效率,在樣本尺寸、卷積層數(shù)量和卷積核數(shù)量保持一致前提下,設(shè)置了兩組對比實驗場景,分別命名為MUNET-SGD-CONCATENATE和MUNET-SPD-ADAM-ADD。前者與標準U-Net網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)化方法和特征融合方法保持一致,后者采用Adam替換標準U-Net的SGD優(yōu)化方法,并采用逐維度加和特征融合方法取代沿通道維度聯(lián)合特征融合方法。模型參數(shù)數(shù)量、訓(xùn)練時間和總體精度等改進前后主要指標如表2所示。模型訓(xùn)練總精度變化曲線如圖4所示。隨機提取三個樣本進行預(yù)測,結(jié)果如圖5所示。樣本的選擇主要考慮了樣本圖像中建筑物尺度和背景復(fù)雜度,例如樣本1中包含尺度差異較大的建筑物,而樣本2和樣本3中背景包含的地物類別、紋理和顏色相對更加復(fù)雜。
圖4 模型訓(xùn)練精度變化曲線
圖5 模型預(yù)測結(jié)果
表2 模型改進前后主要指標對比
從結(jié)果可以看出,面向復(fù)雜場景的高分遙感影像,通過對標準U-Net模型輸入樣本尺寸、卷積層數(shù)量和卷積核數(shù)量進行修改,模型在本研究使用的中低配置計算環(huán)境下運行良好,并獲得了更高的精度。標準U-Net采用沿通道維度聯(lián)合的特征融合方法,大大增加特征維度,參數(shù)數(shù)量增加顯著。使用逐維度加和的特征融合方法并且引入空間置棄模塊后,參數(shù)數(shù)量顯著減少。如表2所示,修改后模型的總參數(shù)數(shù)量減少了195 840個,模型訓(xùn)練所用時間縮短1 h。另外,Adam優(yōu)化方法的使用使得模型訓(xùn)練收斂更快,例如,MUNET-SPD-ADAM-ADD僅在第13個epoch就達到了90%的精度,而MUNET-SGD-CONCATENATE直到第59個epoch才達到90%精度。值得注意的是,在MUNET-SGD-CONCATENATE實驗結(jié)果中,每一次epoch驗證集的精度均高于訓(xùn)練集精度,這種精度變異情況一直持續(xù)至訓(xùn)練結(jié)束。這可能是由于訓(xùn)練集和驗證集中樣本特征分布不均引起,即驗證集中特征數(shù)量相對于訓(xùn)練集更少,或僅集中于較窄特征分布內(nèi)。當引入空間置棄層后,在未對驗證集做數(shù)據(jù)增強或特征分布修改等后處理操作情況下獲得了更好的結(jié)果,精度變異情況不再出現(xiàn),如圖6所示。
圖6 訓(xùn)練集與驗證集精度與loss曲線
在圖5展示的結(jié)果中可以看出,修改后的模型可以更完整地提取建筑物,同時大大降低了類似于椒鹽噪聲的局部錯分,并且建筑物邊界更加分明、準確,“羽化狀”邊界問題得到了改善。但是,盡管在原始影像上部分小尺度建筑物的顏色和紋理特征比較突出,但仍然被錯分為背景(圖7)。一方面可能由于網(wǎng)絡(luò)結(jié)構(gòu)中最大池化作用導(dǎo)致的信息丟失;另一方面,空間置棄層的使用也或多或少對細節(jié)特征的提取產(chǎn)生了一定的影響。但總體而言,修改后的模型可以有效地支持中低配置計算環(huán)境下深度網(wǎng)絡(luò)的訓(xùn)練和測試,同時大大提高了面向復(fù)雜場景高分辨率遙感影像建筑智能解譯精度,減少了模型參數(shù)和模型訓(xùn)練時間。
圖7 小尺度建筑物的漏分
本文面向復(fù)雜場景高分辨率遙感影像建筑智能解譯,設(shè)計了可有效運行于中低配置計算環(huán)境的U-Net語義分割模型。在保持U-Net整體框架結(jié)構(gòu)不變的基礎(chǔ)上,通過修改輸入樣本尺寸、卷積核數(shù)量和卷積層數(shù)量,減小了模型訓(xùn)練負荷。另外,使用Adam替換了隨機梯度下降優(yōu)化方法,逐維度加和的特征融合方法替換了沿通道維度聯(lián)合的特征融合方法,這些改進加速了模型訓(xùn)練收斂速度,減少了模型參數(shù)數(shù)量和模型訓(xùn)練時間,同時提高了面向復(fù)雜場景高分辨率遙感影像建筑智能解譯精度。本文首次將空間置棄層引入U-Net模型中,發(fā)現(xiàn)其可以有效改善由于數(shù)據(jù)集特征分布不均衡引起的精度變異問題,無須經(jīng)過對原始數(shù)據(jù)集進行數(shù)據(jù)增強或二次特征分布均衡化,就可以很好地解決精度變異問題。本文還提供了基于Tensorflow 2.0構(gòu)建U-Net模型的完整思路和接口描述,為研究人員實現(xiàn)快速構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò)解決遙感圖像分類問題提供了基礎(chǔ)支持。實驗設(shè)計的輸入樣本尺寸、卷積層數(shù)量、卷積核數(shù)量、學(xué)習(xí)率等超參數(shù)以及實驗使用的特征融合方法和最優(yōu)化算法,都為進一步優(yōu)化U-Net的研究提供了新的思路。然而,需要指出的是,由于模型中最大池化操作的使用,平衡小尺度建筑物特征保留和大尺度建筑物完整提取仍然是一個有待解決的問題。在未來的研究中,將會引入一些后處理模塊,如以條件隨機場為代表的概率模型圖,或通過使用多模態(tài)融合、圖像金字塔和空洞卷積等特征增強和多尺度融合方法提高模型面向多尺度建筑物解譯的魯棒性,并在此基礎(chǔ)上進一步考慮如何有效改善面向中低配置計算環(huán)境的深度卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練效率。