尚群鋒,沈 煒,帥世淵
(浙江理工大學 信息學院,杭州 310018)
遙感技術(remote sensing technique)是指通過自身輻射或反射的電磁波、可見光等對物體進行探測與識別.根據(jù)該技術所提供信息生成的地表遙感影像圖,被廣泛應用于自然災害檢測[1]、城市規(guī)劃[2]與土地覆蓋檢測[3]等領域.通過對地表紋理、位置、陰影、形狀、大小與物體空間位置等信息細致地觀測,高分辨率遙感影像可以清楚地表達表紋理與空間信息的特征,為提取城市信息提供服務,因此探索深度學習語義分割網(wǎng)絡模型在高分辨率遙感影像中的應用具有重要研究價值與意義.
高分辨率遙感影像含有豐富的地理信息,利用傳統(tǒng)機器學習對遙感影像特征分析與特征提取的過程都具有一定復雜性,不能夠有效地對空間結構與物體邊緣特征進行提取,有顯著的局限性.而深度學習網(wǎng)絡模型有學習能力強、覆蓋范圍廣與可移植性好等優(yōu)點,能夠通過神經(jīng)網(wǎng)絡模型對空間特征與物體邊緣特征進行提取,可以有效解決上述問題,使得深度學習對遙感影像語義分割的研究成為焦點,有助于改善高分辨率遙感影像的分割精度.潘等人[4]采用隨機森林回歸機器學習算法對建筑物進行提取,從視覺顯著性的角度分進行分析,可以有效地提取建筑物;黃等人[5]提出改進迭代條件模型的遙感影像語義分割方法,首先對遙感影像使用L0 梯度最小化模型去噪,然后使用迭代條件模型,再更新遙感影像中每個點的標記,實現(xiàn)對遙感影像語義分割,提升了物體整體的分割效果,但是得到的遙感影像還是存在椒鹽問題;李等人[6]提出基于深度殘差網(wǎng)絡的高分辨率遙感影像分割方法,該方法通過運用深度殘差與全卷積網(wǎng)絡進行端到端語義分割模型的構建,并在全卷積網(wǎng)絡中引入空洞卷積,解決分割粗糙問題,在小尺度對象上也具有較好的分割效果.蘇等人[7]提出一種基于UNet 改進的深度卷積神經(jīng)網(wǎng)絡,分為預訓練階段與訓練階段.預訓練階段對以影像進行翻轉、色彩調整與加噪等處理,實現(xiàn)對數(shù)據(jù)集的擴充.訓練階段把每個類地物轉換為二分類模型進行目標訓練,隨后將各個分類子圖進行連接生成最終的語義分割圖像,采用集成學習的策略提高分割精度.這些方法在一定程度上都提升了分割精度,但存在著一些不足之處,例如空間信息丟失,細節(jié)信息被忽略等問題,而反卷積神經(jīng)網(wǎng)絡模型[8]可以利用上池化與反卷積結構有效解決上述問題,優(yōu)化模型的分割效果.然而反卷積網(wǎng)絡對預測小物體分割仍存在分割精度不足,需進一步研究與探索.
針對上述問題,本文提出新的方法,利用編碼結構與解碼結構對應特征層連接的方式與數(shù)據(jù)預訓練模型對反卷積網(wǎng)絡模型優(yōu)化,有效對遙感影像物體空間信息、邊緣信息與像素之間的關系進行處理,提高了模型的分割精度.
反卷積網(wǎng)絡(Deconvolutional Networks,DeconvNet)語義分割模型分為編碼與解碼結構,且對稱.在編碼與解碼過程中,分別進行下采樣與上采樣,如圖1為下采樣與上采樣結構,池化(Pooling)代表下采樣,上池化(Unpooling)代表上采樣.池化可以通過提取單一的值對當前感受野去噪,且保留有效的信息,有助于分類.但是在池化過程中,其空間信息會丟失,導致預測不精確.對于這個問題,模型中運用上池化層和反卷積層來防止空間信息的丟失.池化層使用switch variables 記錄池化索引的位置,在上池化中利用switch variables索引記錄的位置,映射到對應的空間位置來保留空間信息,從而提升圖像分割精度.
圖1 下采樣與上采樣結構
在上池化產(chǎn)生稀疏特征圖,反卷積通過多個濾波器學習[9],使最終結果更加的準確.圖2為反卷積兩種實現(xiàn)方式[10],圖2(a)表示邊緣填充零,圖2(b)表示間隔填充零.
圖2 反卷積的方式
本文根據(jù)文獻[11]中特征層連接的方法,提出了改進反卷積網(wǎng)絡模型,并將模型分為編碼與解碼兩部分:編碼部分由5組結構組成,且均含有卷積層、BN層與池化層;解碼部分也由5組結構組成,都含有上池化層、反卷積層、BN層與設計的連接層.改進反卷積網(wǎng)絡模型的結構如圖3所示,圖中矩陣框與下方數(shù)字表示特征圖和其維度.黑色箭頭表示卷積+BN+ReLU、池化、上池化、反卷積+BN 以及反卷積+Softmax 等操作.下文將詳細介紹網(wǎng)絡的各層結構.
由于原始遙感圖像偏大,直接把原始圖像輸入到神經(jīng)網(wǎng)絡中,需要消耗大量的內存和顯存,所以要進行預處理后作為輸入層,本文選擇的預處理后遙感圖像尺寸為512×512像素三通道圖像.
對于編碼結構的設計,本文采用5組結構大致相同,參數(shù)略有不同的卷積,每組包含多個卷積層.以第1組編碼結構(第2層到第3層)為例進行詳細介紹.第2層使用64組3×3×3的卷積核,在卷積時,對輸入層圖像進行上下左右邊界進行像素擴充,擴充像素值設置為0,卷積的步長設置為1,卷積后產(chǎn)生64個特征映射圖.然而卷積操作是線性操作,為了讓模型非線形擬合的能力,本文使用的激活函數(shù)為ReLU (Rectified Linear Units),來增加模型的非線性能力:
在每次卷積后,還需要對得到的特征圖進行BN[12](Batch Normalization)操作,目的是對特征圖進行歸一化處理.第3層的卷積和前一層類似,不同的卷積層可以提取不同特征.表1中列舉第1組編碼結構參數(shù)的設置.
圖3 改進反卷積網(wǎng)絡模型結構
表1 編碼第一組結構
第4層是池化層.由于卷積產(chǎn)生的特征圖將會占用大量內存空間,導致模型訓練困難,可以利用池化操作來解決這個問題,不僅降低特征向量的維度,而且有效防止過擬合.池化層采用2×2的核,步長為2最大池化,即每4個相鄰的像素中保留最大的值,將卷積層的特征圖尺寸縮小為0.25倍.
其他4組的編碼結構和第一組類似,依次進行卷積與池化操作,第5組最后得到512個64×64個特征圖.在第5組末尾面增加兩個卷積層,進一步進行特征的提取,第一個卷積層使用的是7×7的卷積核,產(chǎn)生1024個特征圖.第2個卷積層使用1×1的卷積核,最終產(chǎn)生1024個10×10特征圖.
解碼結構目的是把特征圖還原為原始尺寸,通過上池化、反卷積與設計的連接層,能夠對空間信息與物體邊緣特圖有效提取.在反卷積的過程中,設置卷積的滑動窗口大小為3×3,步長為1.解碼結構首先是一個反卷積層與5組反卷積結構組成,每組對應多個反卷積層、一個上池化層與一個連接層.這一個反卷積層產(chǎn)生512個16×16特征圖.其余5組反卷積結構,以第一組解碼結構為例進行詳細地介紹.首先對512個16×16特征圖進行上池化,得到512個32×32特征圖,然后與編碼結構第五組最后一層卷積進行特征連接,此時特征圖變?yōu)?024個,經(jīng)過3次反卷積操作之后,得到512個32×32密集的特征圖.接著對第二組解碼結構進行相同的操作,以此類推.表2為解碼結構每組最后一個反卷積層的尺寸.
表2 解碼結構各組尺寸
最后通過反卷積操作,得到512×512×2的特征圖像.
對于建筑物像素級別分類,屬于二分類任務.通過Softmax 將每一個像素點值映射為一個概率值,從而確定每一個像素值是否屬于建筑物類,達到像素級別的預測,即:
其中,pi代表當前分類的概率值,yi代表當前預測的值.
損失函數(shù)選擇是非常關鍵的,它是BP算法[13]的核心部分,也是用來衡量預測值和標簽值之間的差異,通過計算誤差,將得到的誤差進行反向傳播.網(wǎng)絡模型在訓練過程中使用交叉熵[14]作為損失函數(shù),可以有效地對模型進行預測,交叉熵的損失函數(shù)如下:
其中,n代表類別,yi代表label的真實值,代表為預測值.
本次實驗采取ubuntu 下的keras 深度學習框架,使用Pycharm軟件進行程序編寫,實驗平臺的配置如下:CPU為Intel(R)Pentium(R)CPU G3260 @ 3.30 GHz,GPU為NVIDIA GTX 6G,1 TB 硬盤.
數(shù)據(jù)集是馬薩諸塞州建筑物拍攝的遙感影像[15],每幅圖像的大小為1500×1500像素,數(shù)據(jù)集覆蓋了城市、郊區(qū)和農村地區(qū),面積超過2600平方公里.由于原始遙感影像較大,需要對圖像進行預處理,產(chǎn)生符合網(wǎng)絡輸入的大小.這里運用了對數(shù)據(jù)集進行動態(tài)擴充的方法,動態(tài)地進行訓練.在訓練時,通過隨機scale的方式,進行動態(tài)加載,讓模型消除欠擬合或過擬合.圖4為數(shù)據(jù)預處理過程,首先對原始遙感影進行隨機的scale,再進行隨機翻轉或旋轉遙感影像,這時得到的遙感影像不符合網(wǎng)絡模型的輸入圖像大小,需要對圖像進行裁剪,得到符合模型的輸入圖像.然而在每次迭代結束時,就需要重新獲取輸入圖像,從原始遙感影像到輸入圖像的過程,實現(xiàn)對數(shù)據(jù)集的擴充.這樣做的目的是為了不斷有新的數(shù)據(jù)加載到模型中,提高模型的分割效果.
圖4 數(shù)據(jù)的預處理
評價指標是用來評估不同算法在某一方面的效果是否最佳,這樣可以幫我們對算法進行不同程度的優(yōu)化.為定量分析圖像語義分割精度,本文采用像素精確度、召回率、準確率來對模型評估.
像素精確度定義為預測正負樣本正確個數(shù)的和總樣本個數(shù)的比值.
召回率定義為預測正樣本正確個數(shù)和標注圖像中正樣本總數(shù)的比值.
準確度定義為預測正樣本正確的個數(shù)和預測為正樣本的總數(shù)的比值.
F1定義為召回率和準確率的調和均值,是綜合考慮召回率和準確率的指標.
上述公式中,F1為真正例,代表的是正樣本預測結果為正確的數(shù)目;FN為假反例,代表的是負樣本被預測為正樣本的數(shù)目;TP為假正例,代表的是正樣本被預測為負樣本的數(shù)目;TN為真反例,代表的是負樣本預測結果為正確的數(shù)目.
如圖5曲線圖代表使用改進的反卷積網(wǎng)絡模型在馬薩諸塞州建筑物拍攝的遙感影像數(shù)據(jù)集進行訓練的像素精確度和損失函數(shù)曲線,圖5(a)代表的是像素精確度,在模型訓練到400次epoch的時候,訓練集上的精確度為96%左右,測試集上的精確度達到95%左右,達到良好的效果;圖5(b)代表的是損失函數(shù)曲線,模型在訓練400次左右的時候趨向于平穩(wěn)且在0.1附近.
圖6中對標注圖像與改進DeconvNet、DeconvNet和UNet網(wǎng)絡測試集上兩組圖像進行比較.從圖中可知改進DeconvNet 建筑物提取比其他模型的效果要好,充分說明改進DeconvNet 能有效的對建筑物進行提取.
從表3為評估模型的指標,在建筑物數(shù)據(jù)集上改進DeconvNet網(wǎng)絡模型的綜合指標要高于DeconvNet和UNet網(wǎng)絡模型,說明通過特征連接和數(shù)據(jù)的動態(tài)訓練,可以有效提高模型的分割精度.
圖5 精確度與損失函數(shù)曲線圖
圖6 模型效果對比
針對傳統(tǒng)神經(jīng)網(wǎng)絡模型對遙感影像中小物體語義分割精度不足的問題,本文采用編碼與解碼結構特征連接的方式改進反卷積網(wǎng)絡,有效地提升了小物體分割精度,同時提出數(shù)據(jù)預訓練模型,對數(shù)據(jù)進行動態(tài)加載,解決了網(wǎng)絡模型過擬合問題.在公開數(shù)據(jù)集上的實驗結果表明,相比于DeconvNet和UNet模型,改進DeconvNet模型能有效處理遙感影像的物體空間信息、邊緣信息與像素之間的關系,并有較好的像素準確率.
表3 網(wǎng)絡模型評估標準對比(單位:%)