宋文宣,彭代鋒
(南京信息工程大學 遙感與測繪工程學院,南京 210044)
變化檢測是利用覆蓋同一地區的多時相影像確定地物或自然現象發生變化的過程,進而揭示地球表面的時空變化規律。遙感影像由于其覆蓋范圍廣、成像周期短、波譜信息豐富等優勢而廣泛應用于變化檢測研究中,在資源調查、環境評估、城市擴張監測以及災害應急響應等方面具有重要意義[1-3]。一般而言,變化檢測流程大致包括預處理、變化信息提取和精度評價3個階段。根據變化檢測基元的不同可將變化檢測方法分為兩類:像素級變化檢測與對象級變化檢測。其中,像素級變化檢測以獨立像元作為檢測單元,通過逐像素地分析像元光譜、紋理等特征差異提取變化信息,包括影像差值法、影像比值法、回歸分析法、植被指數法、主成分分析法(principle component analysis,PCA)、多元變換探測法和變化向量分析法等[4]。此類方法一般針對原始輸入影像或者特征變換后影像,通過像元的統計特征計算差異影像,并利用閾值分割、聚類等方法提取變化信息。王桂婷等[5]使用期望最大化算法(expectation maximization,EM)算法和貝葉斯理論實現了差值影像變化閾值的自動獲取;Celik[6]通過主成分分析計算像素鄰域信息,并通過 K-means聚類算法得到變化圖。為考慮上下文信息,呂鵬遠等[7]提出了一種空-譜先驗條件隨機場對像元鄰域信息建模,保持了變化地物的輪廓和細節信息。與像素級變化檢方法不同,對象級變化檢測以影像對象作為變化檢測的基本單元,可充分顧及上下文信息,避免“椒鹽”噪聲的影響,且可有效利用對象豐富的幾何結構特征。李亮等[8]利用像斑灰度直方圖和聯合灰度直方圖計算歸一化互信息,并根據條件熵最小原則計算變化閾值,進而實現一種基于歸一化互信息的對象級遙感影像變化檢測方法。馮文卿等[9]使用變化向量分析得到不同尺度變化檢測結果,并利用模糊融合和決策級融合實現多尺度變化信息融合。Wang等[10]提出一種改進的種子增長分割方法生成影像對象,并提取對象坡度、截距和斜率等特征,最后通過特征歸一化和閾值處理得到變化圖。Chen等[11]提出了一種基于粒子群優化的最優特征選擇方法,并使用面向對象的混合多元統計分析(object-based hybrid multivariate alternative detection,OB-HMAD)模型進行對象級變化分析,在選取更優特征的同時取得了較好變化檢測效果。
近年來,機器學習特別是深度學習技術迅猛發展,極大地推動了變化檢測技術的變革。特別地,深度學習是一種數據驅動的表征學習方法,可通過訓練過程直接學習輸入數據的多尺度多維度深度特征,極大地降低了特征工程的要求。Zhang等[12]利用深度置信網絡(deep belief network,DBN)直接從原始圖像提取深度不變特征,并利用二維極坐標聚類方法生成變化圖。Hou等[13]根據預訓練的VGG16網絡構建多時相影像多尺度深度特征表達以計算多尺度差異影像,并引入低秩策略計算多尺度變化圖,最后通過加權融合得到最終變化圖。此外,深度神經網絡(deep neural network,DNN)具有強大的非線性問題建模能力,可獲得比傳統分類器更優的分類性能。因此,可直接將變化檢測看做一個求解從原始多時相影像到變化圖的函數映射問題,進而通過DNN直接學習這種映射關系,實現端到端的變化檢測。Daudt等[14]首先基于哨兵-2多光譜影像建立了大規模像素級變化檢測數據集,并以每個像素為中心構建15×15的影像塊作為訓練樣本,然后根據監督學習策略訓練一個卷積神經網絡(convolutional neural network,CNN)直接學習每個像素的變化屬性。Mou等[15]提出了一種聯合CNN和循環神經網絡(recurrent neural network,RNN)的端到端變化檢測網絡,其中CNN可以學習多時相影像光譜-空間特征,而RNN可以捕捉多時相影像時間依賴關系,進而直接生成多類別變化圖。萬冉冉等[16]提出了一種基于Siamese卷積網絡的變化檢測方法,通過共享權重參數的分支網絡提取多時相影像塊特征,并使用基于全連接網絡的決策層網絡計算變化概率,最終生成影像塊的變化圖。然而,這類方法需要為每個像素構建影像塊,造成大量的計算冗余,降低了變化檢測的效率和可靠性。全卷積網絡(fully convolutional network,FCN)將整張訓練影像作為輸入,經過訓練直接得到其分割結果,極大地提升了網絡訓練的精度和效率。基于FCN思想,Daudt等[17]提出了基于UNet的端到端變化檢測網絡,可實現快速的端到端變化檢測。為克服全局池化的影響,Lei等[18]引入金字塔池化(pyramid pooling,PP)層,提高了變化檢測結果的精度。然而,如何有效利用全卷積網絡特征提高變化檢測效果仍需進一步研究。為此,本文提出了一種改進的全卷積網絡變化檢測方法,可綜合利用全卷積網絡多尺度特征,進一步提高了變化檢測的精度和可靠性。
圖1顯示了本文方法的整體技術路線流程圖。首先,準備多時相變化檢測數據集,包括影像裁剪,訓練集、驗證集以及測試集的劃分,數據增強等操作;然后,構建全卷積變化檢測網絡,并根據訓練集和驗證集進行網絡訓練、模型參數調優以及最優模型保存;接著,針對測試集影像,直接將其輸入到訓練好的模型中,生成對應的變化圖;最后,結合真值變化圖,計算變化檢測精度指標,進而實現精度評價。特別地,本文方法無需對輸入影像進行輻射校正等預處理,可直接輸入兩期影像,并根據訓練好的網絡模型生成變化圖,實現端到端的變化檢測。假設兩時相影像分別為X1和X2,全卷積變化檢測網絡模型為F,則生成的變化圖M可表示為式(1)。

圖1 技術路線流程圖
M=F(X1,X2)
(1)


圖2 改進全卷積網絡變化檢測架構圖
(2)
其中,為提高深度網絡特征表達能力,抑制梯度消失現象,引入殘差卷積模塊。如圖3所示,殘差卷積模塊由主卷積分支和輔助卷積分支組成,通過對兩個分支結果疊加生成殘差輸出特征圖。經過編碼器的一系列池化操作,生成的特征圖細節信息丟失,空間定位精度較低。擴張卷積可在不犧牲空間分辨率的情況下增加感受野,同時增強網絡對多尺度信息的表達能力。為此,在編碼器末端引入擴張卷積模塊(atrous convolution module,ACM),通過不同擴張率的擴張卷積單元級聯方式增加網絡對多尺度地物變化的捕捉能力。假設輸入特征圖為fin,使用3個不同擴張率的擴張卷積為AConv1、AConv2、AConv3,則經過ACM模塊輸出的特征圖fout可表示為式(3)。

圖3 殘差卷積模塊示意圖
fout=fin+AConv1(fin)+AConv2(AConv1(fin))+AConv3(AConv2(AConv1(fin)))
(3)
在解碼階段,通過對不同尺度差值特征圖執行“上采樣+殘差卷積”操作,逐步提高特征圖分辨率,直至達到原始影像尺寸(圖2)。同時,編碼器中特征圖空間信息豐富而語義信息層次較低,解碼器中特征圖具有較高層次語義信息而空間細節信息貧乏。為此,引入跳躍連接操作以綜合利用高、低層次特征圖信息,提高輸出特征圖的空間位置精度。最后,將特征圖輸入sigmoid分類器層以生成兩時相影像變化概率圖yp,進而使用閾值操作生成最終變化圖y,即
(4)
式中:T表示變化閾值。
為提高變化檢測可靠性,聯合使用二值交叉熵和交并比(intersection over union,IoU)損失函數作為網絡訓練過程中的優化函數。假設yp表示生成的變化圖,yt表示對應的真值圖,則變化檢測損失函數Lcd可定義為
Lcd=Lbce+Liou
(5)
Lbce=-∑ytlog(yp)+(1-yt)log(1-yp)
(6)
(7)
式中:Lbce表示二值交叉熵損失函數;Liou表示IoU損失函數。
實驗采用兩組數據集進行,其中數據集一使用Ji等[19]中提出的兩期高分辨率航空影像。其中,兩期影像成像位置為新西蘭Christchurch,包含典型城郊地物要素如建筑物、汽車、裸地、道路、樹木等,主要變化類型為建筑物的新增或損毀,配準誤差為1.6個像素,影像包含紅、綠、藍3個波段,成像時間分別為2012年、2016年,分辨率為0.075 m,影像大小為32 507像素×15 345像素。為方便GPU訓練,實驗中將兩期影像和對應的真值變化圖裁剪大小為256像素×256像素的非重疊影像塊,且剔除沒有變化像素的影像塊,最終生成的數據集包含1 922幅有效影像塊,并按8∶1∶1的比例隨機劃分訓練集、驗證集和測試集。
數據集二來自Lebedev等[20]提出的高分辨率遙感影像變化檢測數據。該數據集包含11幅同一地區的RGB多光譜影像。其中7幅為真實多時相影像,大小為4 725像素×2 200像素;剩余4幅為通過添加人工地物生成的多時相影像,大小為1 900像素×1 000像素。其中,不同幅影像分辨率變化范圍為3~100 cm,季節因素導致的地表變化較大。在真值變化圖制作過程中忽略季節、亮度、光照等因素導致的變化,僅將人工地物的出現或消失解譯為實際變化信息,最終得到的變化類型包括建筑物、汽車、道路、油罐等。為方便GPU訓練,將11幅影像裁剪大小為256像素×256像素的影像塊,且保證每個影像塊都包含一部分變化區,最終將裁剪后的影像劃分為10 000組訓練集影像、3 000組驗證集影像和3 000組測試集影像。
實驗中使用Pytorch作為深度學習訓練框架。網絡中所有卷積核大小均設置為3×3,為加快網絡收斂,使用ResNet34預訓練權重作為編碼器進行特征提取。訓練階段batchsize設置為8,epoch設為20,優化器選擇Adam,初始學習率設置為1E-4,并根據MultiStepLR策略進行學習率衰減,即每訓練5個epoch后將學習率減半。同時,每個epoch訓練結束后利用驗證集計算變化檢測精度以保存最優模型。在測試階段,直接將測試集影像輸入到保存的最優模型中生成變化概率圖,并以0.5作為閾值生成最終的二值變化圖。為抑制過擬合現象,訓練過程中使用隨機平移、尺度變換、旋轉(90°、180°、270°)、翻轉(水平方向、垂直方向、對角線方向)等策略對訓練集樣本進行增強操作。
為定量評價本文變化檢測方法的有效性,根據生成的變化圖和真值圖計算總體精度(overall accuracy,OA)、F1、Kappa系數作為精度評價指標。對于3種精度指標,OA、F1和Kappa值越大則變化檢測效果越好。
為綜合驗證本文變化檢測方法的有效性,將其與經典的“編碼器-解碼器”結構的全卷積網絡變化檢測方法進行比較,即SegNet-CD[21]、UNet-CD[22]和FCN-PP。特別地,對比實驗中直接將兩期影像疊加看成一個6波段影像輸入到網絡中進行訓練,進而直接輸出變化圖。為定性評估不同方法的性能,挑選典型測試樣本以展示不同方法的變化檢測目視效果,如圖4和圖5所示。

圖4 數據集一中不同方法變化檢測結果(白色表示變化區,黑色表示未變化區)

表1 不同方法變化檢測結果精度統計

圖5 數據集二中不同方法變化檢測結果
圖4顯示了數據集一中不同方法變化檢測結果,可以看出,與SegNet-CD(圖4(d))、UNet-CD(圖4(e))和FCN-PP方法(圖4(f))相比,本文方法(圖4(g))生成的變化圖具有較低的誤檢率和漏檢率,取得了更優的變化檢測結果。具體而言,如圖4前兩行矩形框所示,SegNet-CD方法生成的變化圖中包含較多錯檢,UNet-CD方法和FCN-PP方法中錯檢率得到不同程度地降低,而本文方法可以最大限度地降低錯檢,取得與參考圖更為一致的結果圖。圖4后兩行中矩形框區域則顯示了不同方法抵抗漏檢的能力,其中SegNet-CD方法得到的變化圖中有大面積的建筑物變化區無法檢測,UNet-CD方法和FCN-PP方法中漏檢的建筑物可以得到部分檢測,而本文方法可更好地降低漏檢率,同時生成的變化圖中建筑物輪廓更加清晰準確。為定量評估不同方法變化檢測結果,根據變化圖與對應的參考圖計算OA、F1和Kappa精度指標,如表1所示。可以看出,SegNet-CD方法精度最低,這是由于編碼器的連續池化操作導致特征圖細節信息丟失,而SegNet-CD方法中僅使用反卷積操作實現特征圖上采樣,無法有效恢復圖像細節信息,進而導致生成的變化圖具有較多漏檢和錯檢,同時邊緣定位精度較差。UNet-CD方法中引入跳躍連接操作,通過將編碼器中具有豐富空間信息的低層次特征圖與解碼器中空間信息貧乏的高層次特征圖進行級聯可以更好地恢復圖像細節信息,進而更有效地捕捉建筑物變化信息。因此,與SegNet-CD相比,UNet-CD精度較高,其OA、F1和Kappa指標值分別提高0.15%、0.45%、0.54%。與UNet-CD方法相比,FCN-PP方法通過引入金字塔池化模塊,進一步提高了變化檢測精度。本文方法中,通過利用編碼器中多尺度差值特征圖,可以在解碼階段更好地融合不同尺度特征圖的差異信息,同時使用擴張卷積模塊可綜合利用不同感受野信息,進而有效捕捉不同尺度的建筑物變化信息。因此,本文方法取得最優變化檢測結果,且建筑物邊緣定位精度較高(圖4(g))。與SegNet-CD相比,本文方法的OA、F1和Kappa指標值分別提高1.26%、3.78%、4.53%。
圖5顯示了數據集二中不同方法變化檢測結果。從目視效果可以看出,對比方法得到的變化圖中存在大量漏檢,而本文方法可較好抑制漏檢,得到的變化圖與真值圖最為接近。特別地,本文方法可較好捕捉復雜地物目標變化(道路、建筑物和汽車等)。如圖5第2行紅色矩形框所示,本文方法可較好提取變化道路的輪廓信息,而對比方法均無法檢測。圖5第4行紅色矩形框顯示了汽車等小目標變化,本文方法可較好檢測出汽車等小目標,而對比方法均檢測失敗。表1展示了不同方法的定量精度指標,可以看出,SegNet-CD方法精度最低,UNet-CD方法通過引入跳躍連接,取得更優精度指標,其OA、F1和Kappa指標值分別提高0.58%、2.91%、2.96%。FCN-PP方法使用金字塔池化模塊增大網絡感受野,精度指標進一步提高。而本文方法通過引入多尺度擴張卷積模塊可有效捕捉多尺度變化信息,取得最優精度指標。與SegNet-CD方法相比,其OA和Kappa指標值顯著改善,分別提高2.21%、10.64%、10.83%。
高分辨率遙感影像結構復雜、尺度變化大,為提取多尺度變化信息,本文在編碼器末端使用不同膨脹率的擴張卷積以級聯方式構建ACM,在增大網絡感受野的同時有效捕捉了影像多尺度變化信息。為驗證該模塊的有效性,本文對其進行了消融實驗。圖6顯示了兩組數據集中不同策略下3種變化檢測結果定量精度指標柱狀圖,其中without ACM 表示不使用ACM模塊,with ACM表示使用ACM模塊。可以看出,由于增大了網絡感受野同時有效捕捉了多尺度變化信息,ACM模塊可顯著提高變化檢測精度,3種精度指標都得到不同程度的提高,其中數據集一中3種精度指標OA、F1和Kappa分別提高0.53%、1.67%、1.98%,數據集二中OA、F1和Kappa分別提高0.17%、0.72%、0.72%,證明了ACM模塊的有效性。

圖6 ACM模塊對變化檢測精度影響柱狀圖
此外,殘差卷積模塊可有效抑制梯度消失現象、改善網絡性能。由于編碼器中使用預訓練權重,為驗證該模塊的影響,本文在解碼器中對該模塊進行消融實驗,如圖7所示,其中without Res 表示不使用殘差卷積模塊,with Res表示使用殘差卷積模塊。可以看出,兩組數據集中使用殘差卷積模塊均可進一步改善網絡性能、提高變化檢測精度。其中,數據集一中OA、F1和Kappa 3種精度指標分別提高0.72%、1.87%、2.31%;數據集二中OA、F1和Kappa 3種精度指標分別提高0.12%、0.56%、0.55%。

圖7 殘差卷積模塊對變化檢測精度影響柱狀圖
本文提出了一種基于改進全卷積網絡的端到端變化檢測方法,可利用輸入的兩期原始影像直接學習其變化信息,對提高人工智能時代變化檢測的自動化和智能化程度具有重要意義。通過共享權重的編碼器結構可分別提取兩時相影像多尺度特征圖,進而計算差值特征圖以有效融合多層次變化信息,且利用擴張卷積模塊可有效捕捉多尺度變化信息。通過兩組高分辨率遙感變化檢測數據集的實驗表明,與其他基于全卷積網絡的變化檢測方法相比,本文方法可顯著地降低變化檢測虛檢率和漏檢率,有效改善對復雜多尺度地物變化的檢測能力,同時提高變化區的邊緣定位精度,進一步提高了變化檢測的精度和可靠性。