楊少敏,張 戩,高 雅
(1.常州市自然資源局,江蘇常州 213003;2.江蘇省測繪研究所,江蘇南京 210013)
隨著對地觀測技術的快速發展,亞米級甚至厘米級空間分辨率的遙感影像被不斷獲取,為基礎測繪、地理國情監測、城市規劃等部門進行精細化制圖提供了數據基礎。然而,隨著高分辨率遙感影像以每日TB級數據量的持續增加,當前面向對象的高分辨率遙感影像解譯方法仍然難以有效地處理海量高分辨率遙感影像數據,無法對測繪地理信息數據進行準確更新,存在使用范圍有限、遷移能力較弱、增量學習困難、依賴人工設計特征等缺陷。
近年來,以深度學習為代表的人工智能技術快速發展,目前已經在圖像分類、目標檢測、語義分割、人臉識別、語音識別、視頻分類和自然語言處理等多個領域成功運用。近年來,圖像處理方面的研究大多集中于卷積神經網絡,并發展了一系列卷積神經網絡基礎模型。采用深度學習進行影像解譯主要有以下幾個優點。
(1)具有增量學習能力。目前,主流的深度學習優化方法往往利用基于小批量樣本的隨機梯度下降法,無須一次將所有樣本供給與模型進行訓練,通過增量迭代的方式令模型進行學習,因此可以利用大量的歷史數據進行訓練。
(2)模型遷移能力強。深度學習在進行具備小數據量的領域或任務時,可以基于相近領域或任務的大數據進行預訓練,采用小數據量的領域數據對于深度神經網絡進行微調,從而實現不同領域或任務的遷移學習。
(3)無須人工設計特征。深度學習與傳統機器學習的最大不同就在于,無須人工設計特征,由深度學習模型自動提取并進行訓練,因此可以避免大量的特征工程工作以及人為設計對訓練精度的影響。
深度學習采用卷積神經網絡將像素特征轉化為邊緣特征,再轉化為基元特征,最后轉化為訓練目標的特征,形成分類器,流程如圖1所示。
卷積神經網絡[1]是神經網絡的一種,主要用來處理可以表示為多維數組的數據,如彩色圖像等可以表示為3通道的二維數組。卷積神經網絡的主要特點在于:局部連接、權值共享、池化以及層次化。局部連接源于局部相關性理論,即采用部分神經元接受圖像信息;權值共享,即整張圖片使用同一個卷積核內的參數,此種設計方式大大降低了網絡模型的參數規模。卷積神經網絡最先被成功應用于手寫字體識別,而后隨著計算機技術的發展,卷積神經網絡在ImageNet 2012挑戰賽中一舉奪冠,引起圖像處理領域的廣泛關注,之后成為目標檢測、場景識別、語義分割等眾多領域的基準模型。

圖1 深度學習影像解譯流程
池化操作源于局部不變性,即圖像經過簡單的平移、旋轉、縮放,池化操作在相同位置依舊可以提取到相同的特征,最常用的池化操作有最大池化和平均池化,最大池化保留池化核內最大值,平均池化保留池化核內所有值的均值。最大池化對影像紋理提取較好,平均池化對背景信息保留較好,通過池化可以降低卷積層輸出的特征維度,但保留了大部分的重要信息,從而可以降低網絡復雜度,提高網絡計算效率,緩解過擬合現象。全連接層連接所有特征,將結果輸入到分類器中。在卷積神經網絡的最后,會有一兩個全連接層,全連接層上的每個神經元同上一層所有神經元相連,將上層輸出的二維特征圖轉化為一維向量,輸入到分類器中。
卷積神經網絡的主要構成包括卷積層、池化層和全連接層[3]。卷積操作的作用類似一個濾波器,如公式(1)所示:

其中I(i-m,j-n)表示輸入影像I在坐標(i-m,jn)處的像素值,K(m,n)代表相應的卷積核權重。卷積核的權重經過學習得到,對于一張圖片,卷積滑動過程中卷積核權重不變,即通過同一卷積核提取圖片不同位置的相同特征。單個卷積核只能提取一種類型的特征,為了提取多個特征,會并行使用多個卷積核進行卷積操作,卷積和池化運算如圖2所示。
影像解譯基于影像語義分割技術,而語義分割是一種像素級別的處理圖像方式,對比于目標檢測其更加精確,能夠自動從圖像中劃分出對象區域并識別對象區域中的類別。全卷積網絡(FCN)是一種語義分割的模型,FCN是通過擴展普通的卷積網絡(CNN)建立的,因此FCN有更多參數而且訓練時間更長。FCN能夠對圖像進行像素級的分類,與經典的CNN在卷積層之后使用全連接層得到固定長度的特征向量進行分類不同,FCN可以接受任意尺寸的輸入圖像,采用反卷積層對最后一個卷積層的feature map進行上采樣(upsampling),使它恢復到輸入圖像相同的尺寸,從而可以對每個像素都產生了一個預測,同時保留了原始輸入圖像中的空間信息,最后在上采樣的特征圖上進行逐像素分類,從而解決語義分割問題。全卷積網絡的結構如圖3所示[2]。
本文基于Pytorch框架實現全卷積網絡模型(見圖4)。首先獲取預訓練的VGG卷積神經網絡。修改VGG網絡的最后一層分類層,將最后一層的全連接操作修改為1*1的卷積操作,然后從VGG的最后一層開始,反向運算整個VGG網絡,不斷對特征圖進行上采樣,還原至原始圖像的大小,同時在每次上采樣的過程中,添加上來自于下采樣過程中的信息,將底層細節信息傳遞至高層,并對每個像素進行打分,將預測出分類結果與樣本庫中的掩膜進行比對,計算損失值,通過反向傳播算法進行參數權重的調整。經過多次迭代,分類的損失值收斂,根據此模型進行分類預測,根據預測結果采用滑動窗口算法生成的圖像結果,圖像中的每個像素都被劃分到其中一個類別。

圖2 卷積和池化運算

圖3 全卷積網絡結構

圖4 基于VGG的全卷積網絡模型架構
深度學習遙感影像解譯的基礎是訓練樣本庫,需要利用大量訓練樣本對深度神經網絡模型進行訓練,從而使得深度神經網絡模型學習到泛化能力強的語義特征,為影像語義分割奠定基礎。因此,在訓練之前需要構建大量的高精度訓練樣本數據。訓練樣本庫構建(見圖5)需要矢量與相應的影像數據,矢量數據來源主要來自于測繪成果的DLG數據中抽取的矢量數據,影像數據的來源主要是來自于測繪成果的DOM數據中抽取的影像,如覆蓋城市主城區的航拍數據和衛星遙感影像等。
通過分析,發現數據存在以下問題:(1)矢量數據的采集時間與影像的采集時間不一致,兩者在語義上存在一定誤差。(2)部分矢量數據標注精細程度不足。因此,在制作樣本庫之前,要通過人工篩選,清洗包含噪聲的矢量數據與對應影像區塊,對于部分標注精細程度不足的部分,采用人工重新標注的方式完善矢量數據。
數據經過以上處理后,即可構建訓練樣本庫。由于深度學習模型計算是基于柵格數據進行運算的,所以首先要將矢量數據通過格式轉換變成柵格數據。然后根據需要模型解譯的地物類型,將相應類型的柵格數據進行疊置合并,形成掩膜數據。為了使掩膜數據與影像數據的對應地塊準確套合,往往還需要進行投影轉換,進行幾何配準。樣本庫的制作到這里就完成了,但是為了便于模型讀取和運算,還要將掩膜和影像切割成小塊,形成兩組柵格數據包,一個是掩膜數據,一個是影像數據。
模型部署在Nvidia Tesla GPU上,使用準備好的訓練樣本庫進行模型訓練,本文模型的編碼部分均利用ImageNet預訓練參數,設置為VGG作為編碼器。實驗設置迭代12 800步,利用SGD優化其進行優化,動量設置為0.9,權重衰減為1e-4,利用多項式誤差衰減學習策略微調學習率,初始學習率為0.03,學習策略衰減指數為0.9。對于影像進行隨機裁剪使得網絡輸入影像大小為512×512,設置水平與垂直翻轉做數據增強,訓練批次大小設置為16,訓練時采用批次正則化方法(Batch Nornmalization),預測時關閉。

圖5 訓練樣本庫構建流程
本文采用GID數據集進行傳統人工設計特征解譯方法與深度學習解譯方法的效果對比。GID數據集(Gaofen Image Dataset)由武漢大學夏桂松團隊制作。它包含從中國60多個不同城市獲得的150張高分辨率Gaofen-2(GF-2)圖像(7 200×6 800)。這些圖像覆蓋了超過50 000平方千米的地理區域。GID中的圖像具有高的類內分集以及較低的類間可分離性。分為建成區、農用地、林地、草地、水系與未標記區域,共6類。采用深度學習模型預測的精度達到95%以上,比對效果如表1所示。
通過對比傳統人工設計方法與深度學習土地覆蓋分類方法,可以看到除了基于融合特征的方法在草地的提取精度上略高于深度學習模型,其余基于深度學習方法得到的無論是整體還是單一土地覆蓋分類精度都遠遠優于傳統人工設計特征。證明了深度學習方法的多層非線性映射更能夠表征高分辨率影像中復雜地物的本質特征,解決了復雜地物本質特征難以獲取問題。
利用本文所述的模型在常州市影像樣本庫上訓練,采用滑動窗口預測方法對常州市的影像進行解譯,提取水系、建筑、植被和道路四類要素,解譯結果如圖6所示,精度結果如表2所述。

表1 傳統人工設計特征與深度學習精度結果對比

圖6 影像解譯結果

表2 基于深度學習影像解譯精度結果
基于數據驅動的深度學習方法具有端到端學習,無須人工設計特征,逐層提取高層語義特征等優良特性,深度學習方法現已被廣泛應用于遙感影像自動解譯中。全卷積神經網絡是一種被廣泛使用的影像語義分割技術,并被引入到影像解譯領域中,全卷積網絡的關鍵是將傳統卷積神經網絡最后一層全連接層改成了卷積層,并通過上采樣將特征圖恢復成原始影像的大小,對每個像素進行分類。在使用全卷積模型對影像進行解譯之前需要構建大數據量、高精度的訓練樣本庫以提高訓練精度。隨著深度學習技術的發展,越來越多的傳統遙感影像技術可以和深度學習相結合,影像解譯的應用也越來越廣泛,如利用影像解譯技術可以自動對基礎測繪地形要素進行更新,可以進行地表覆蓋變化檢測,快速、高效的提供大范圍地表變化信息,不但可以為城市擴張監測、土地利用調查等應用提供數據支持,同時為地形圖快速更新提供了可靠的數據來源等。