王 鑫 張香梁 呂國芳
(河海大學計算機與信息學院 南京 211100)
隨著衛星與無人機等遙感技術的飛速發展,遙感圖像數據總量和類型都不斷增加,也為遙感圖像的處理提出了更多的挑戰和要求[1]。多時相遙感圖像的變化檢測,實質是利用同一地區不同時相的多幅遙感圖像,監測該地區的地物變化的過程。目前,遙感圖像變化檢測技術在許多領域都有著廣泛的應用,如土地利用變化監測、城市發展規劃和布局、水資源地理分布情況和質量勘測等[2–4]。
傳統的遙感圖像變化檢測方法主要借助底層或中層特征作為變化區域判別的依據。這些方法可以分為直接比較法和先分析后比較法。前者是指先通過比較像素或各種特征來構成差異圖,然后利用差異圖來提取變化的區域。直接比較法又包括圖像差值法、圖像比值法、變化矢量分析法等[5,6]。例如,文獻[6]提出一種基于PCA-K-means的算法,這是一種經典的直接比較法,其首先利用主成分分析(Principal Component Analysis, PCA)來提取兩幅圖像相減的差異圖像正交特征向量,然后使用K-means得到變化檢測圖像。直接比較法對數據預處理比較敏感,若預處理效果不好,檢測結果很容易受到噪聲影響。而先分析后比較法是先對兩幅圖像中的地物進行分析,根據分析的結果判斷變化區域。這類方法包括支持向量機、隨機森林、決策樹等[7,8]。上述兩類傳統的變化檢測方法,由于從圖像中所提取的特征都比較淺層,并不適合目前具有高分甚至超高分辨率的遙感圖像。
近年來,深度學習由于能從圖像中提取更深層次的特征,而廣泛應用于圖像處理和模式識別領域。目前,國內外學者提出了許多基于深度學習的遙感圖像變化檢測方法。從方法的框架上來看,大致可分為3類:(1) 先提取特征再進行檢測的方法,即先使用深度網絡對雙時相圖像提取圖像特征,再根據特征進行變化檢測[9];(2) 先預分類再進行檢測的方法,即先使用傳統算法對差分圖像進行預分類,挑選明確是變化與不變的樣本對深度網絡進行訓練,最后將不確定的樣本輸入訓練好的網絡,得到結果圖[10]。盡管這兩類方法都基于深度學習,其變化檢測的效果也優于傳統的方法,但它們在檢測過程中所需的閾值判斷、聚類和樣本選擇等步驟仍受到人為經驗的影響,容易產生誤差。(3) 基于全卷積網絡的方法,這是一種完全端到端的學習框架,中間不摻雜人為因素的干擾,整個過程更加魯棒、高效[11]。根據圖像的輸入方法,這類方法又可以細分為單輸入的網絡和雙輸入的網絡。單輸入網絡是將雙時相圖像級聯為一幅圖像后再輸入網絡[12,13]。例如,文獻[13]將雙時相圖像對串聯作為改進UNet++網絡的輸入,將不同語義層次的變化圖進行合并,生成最終的變化圖。相比較單輸入網絡而言,雙輸入網絡是借鑒了孿生網絡[14–16],將全卷積網絡前端特征提取部分改為兩個結構相同的網絡。例如,文獻[15]提出了3種全卷積神經網絡框架用于遙感圖像的變化檢測,其中一種是單輸入,另外兩種為雙輸入,實驗結果表明雙輸入的網絡架構更適用于變化檢測。文獻[16]提出一種基于DSIFN的方法,屬于雙輸入的基于全卷積網絡的方法,雙時相圖像通過孿生輸入網絡提取深度特征,在訓練時將降采樣后的變化圖的直接反饋引入網絡的中間層,獨立計算損失來更新網絡參數。
盡管基于全卷積網絡的方法取得了較好的變化檢測性能,但仍然存在一些不足:(1)全卷積網絡在提取雙時相圖像深度特征時,不易獲得圖像的結構變化信息(如邊緣信息等),這將不利于網絡后端檢測圖像的重建;(2)部分全卷積網絡為了滿足單輸入的要求,會將雙時相圖像串聯為一個圖像,較難區分每個圖像的深度特征,不利于最后變化圖的重建[17];(3)類似UNet[18]這種全卷積網絡,在變化檢測時會將前端原始深層圖像特征引入到后端,與圖像差異特征級聯在一起,這會帶來特征冗余問題。
為此,本文針對上述問題,提出了一種基于融合邊緣變化信息全卷積神經網絡的遙感圖像變化檢測方法。首先,為了獲取雙時相圖像的結構變化信息,提出計算兩時相圖像的邊緣檢測圖,以得到邊緣差異圖像,作為后續網絡的一個輸入。其次,為了充分提取和區分每個輸入的深度特征,搭建了一種基于VGG-16的3支路網絡框架,該框架將對雙時相圖像和邊緣差異圖像分別進行深度特征提取。最后,在變化判別部分,設計了一種通道注意力模塊,用于關注特征圖中的關鍵信息,同時抑制無用信息,從而進一步提升變化檢測的精度。整個方法的創新點在于融合了邊緣變化的信息和通道注意力的模塊,因此,本文將其稱為EANet (Edge-Attention Network)。
圖1為本文提出算法的總體框架。EANet由邊緣結構變化信息檢測、深度特征提取和變化區域判別3部分組成。深度特征提取部分包含3個支路,雙時相遙感圖像(即變化前的圖像和變化后的圖像)分別輸入支路T1和T2,邊緣差異圖像輸入第3個支路C3。變化區域判別部分將3支路提取得到的深度特征進行級聯,用于變化區域的判別。

圖1 本文所提方法的總體框架
在計算機視覺領域中,邊緣可以有效傳達圖像的結構信息。為此,本文采用 Canny算子[19],對雙時相圖像進行邊緣檢測,計算邊緣圖。

為了提取雙時相圖像及邊緣差異圖的深度特征,本文設計了一種基于VGG-16[20]的3支路網絡框架。在圖像處理領域,VGG-16作為一個強大而準確的分類網絡,在圖像分類和目標檢測等任務中取得了良好的效果。為此,本文采用在“ImageNet”數據集[21]上預先訓練好的VGG-16的前5層卷積和池化部分,對雙時相圖像和邊緣差異圖進行深度特征的提取。

在特征提取部分,經過卷積和池化后,最后一層生成的特征圖具備了較為豐富的全局信息,但也損失了很多細節。為了彌補這些損失,本文借鑒UNet中的跳躍連接(Skip-connection),在每進行一次轉置卷積后,使用跳躍連接將前端提取的特征圖引入后端,并與上一層轉置卷積得到的特征圖進行級聯。然后,為了關注特征圖中的關鍵信息,同時抑制無用信息,引入SE(Squeeze-and-Excitation)[22]模塊,將級聯后的特征圖先通過SE,再經過3層卷積層和轉置卷積層。最后,通過Softmax對特征進行分類,得到最終的變化檢測結果。
2.4.1 SE 模塊


實驗采用LEVIR-CD數據集[24],該數據集由637張超高分辨率(0.5 m/pixel)的Google Earth圖像對組成。每張圖像有RGB3個波段,大小為1024像素×1024像素。圖像來自美國得克薩斯州20個不同地區,捕捉時間從2002年到2018年不等,具有顯著的土地利用變化信息。

圖2 SE模塊結構示意圖
本文實驗運行環境為Linux,平臺為11 GB顯存的GPU(RTX2080Ti),采用Python3.6語言,Pytorch框架。訓練選用Adam優化算法,batch size為8,0.0001的學習率,200個epochs,耗時4 h。本文使用準確率(Accuracy, Acc)、查準率(Precision)、查全率(Recall)、F1測量值(F1-measure)作為算法評價指標[23]。
此外,實驗針對2.2節涉及的 maxVal和minVal參數設定方法如下:根據文獻[20]建議,m axVal和minVal的比率一般設定為2:1或3:1,因此本文首先設置 maxVal 為255,然后m inVal的取值從100~150逐次增加5并遍歷所有結果,最后根據實驗結果選擇效果最好的m axVal和m inVal的值。另外,針對2.3節涉及的卷積層使用k×k卷積核,k×k取值設定為3 ×3,且卷積核步長設定為1,其原因在于與7×7 或5 ×5 的卷積核相比,3 ×3卷積核能夠保證在具有相同感知野的條件下,提升網絡的深度,從而在一定程度上提升深度網絡的學習效果,同時在本文設計的基于VGG-16的3支路網絡框架中所采用的多個3 ×3卷積核比一個僅具有較大尺寸的卷積核擁有更少的參數,這也在另一方面保證了網絡訓練的效率。
3.3.1 提出算法的實驗結果
為了驗證本文提出的邊緣變化信息檢測和通道注意力模塊的作用,構建了不同的網絡形式,并進行了消融實驗。設BASIC為最基礎的雙輸入UNet網絡,該網絡不含邊緣變化信息檢測和通道注意力模塊;BSE表示在BASIC網絡后端加入通道注意力模塊。圖3給出了BASIC, BSE和本文提出EANet定性分析結果。
如圖3所示,為測試集中隨機選取的5對圖像的實驗結果圖。圖中前兩行為輸入的雙時相圖像(Input1和Input2),第3行為真實變化圖(Ground Truth, GT),第4行為BASIC網絡的變化檢測結果,第5行為BSE網絡的變化檢測結果,第6行為本文提出的EANet變化檢測結果。圖中黃色橢圓標出的是實際沒有變化卻預測為變化的像素區域,紅色方框標出的是實際變化卻預測為未變化的像素區域。由圖3可以看出,本文提出的算法,其檢測結果優于BSE 和BASIC。例如,圖3(a)示例1中,與GT相比,BASIC將實際未變化的區域判定成了變化區域(見黃色橢圓框標注);與BASIC相比,BSE由于加入了通道注意力,有效避免了對變化區域的誤檢,這說明了通道注意力模塊的有效性。再如,圖3(b)示例2中,BASIC和BSE都只能檢測到部分變化的區域(見紅色方框標注),而我們的方法檢測到了較為完整的變化區域,與GT圖最為吻合。這說明邊緣變化信息的融入強調了雙時相圖像的結構變化,從而減少了漏檢的像素區域。綜上結果反映了本文提出的融合邊緣變化信息和通道注意力模塊的EANet在遙感圖像變化檢測中的優越性。

圖3 不同網絡架構的變化檢測定性結果對比
表1為不同網絡架構的變化檢測定量結果對比。可以看出,本文提出的EANet網絡變化檢測結果最好,Acc(99.67%)、Recall(92.35%)、F1(93.85%)最高。此外,BSE的4個指標結果均優于BASIC,證明了通道注意力模塊重新分配特征通道的重要性,有利于網絡后端變化區域的判別。最后,將EANet與BSE比較發現,雖然EANet的Precision相對較低,但其Acc, Recall和F1均較高,綜合來說本文算法結果更好。

表1 不同網絡架構的變化檢測定量結果對比(%)
圖4為不同的網絡架構在訓練集和測試集上Loss曲線和F1曲線對比結果。其中,圖4(a)為Loss訓練曲線,圖4(b)為Loss測試曲線,圖4(c)為訓練F1曲線,圖4(d)為測試F1曲線。如圖4(a)所示,3個網絡模型均呈現了良好的訓練效果,在100個epoch之后Loss曲線趨于平緩。如圖4(b)所示,本文方法在測試集上的Loss曲線最優,BSE次之,可見在網絡中加入邊緣變化信息和通道注意力模塊都能夠增強網絡泛化的能力。如圖4(c)和圖4(d)所示,本文提出的網絡在測試集上的F1都要略微高于其余兩個網絡,說明該網絡變化檢測精度高。

圖4 不同的網絡架構在訓練集和測試集上Loss曲線與F1曲線對比
3.3.2 與其他算法的比較結果
將其余3個現有的算法在LEVIR-CD數據集進行變化檢測。第1種比較算法是傳統的基于PCA-Kmeans的算法[6];第2種比較算法是基于單輸入全卷積網絡Unet++的方法[13];第3種比較算法是基于雙輸入全卷積網絡DSIFN的方法[16]。這3種算法的具體描述參見引言部分。
圖5為與其他算法的比較結果圖。圖5第4列PCA-K-means檢測結果圖只能模糊地檢測出少量變化區域,圖中明顯有大量噪聲干擾,傳統方法的檢測結果很差,并不適用于高分辨率遙感圖像。圖5第5行Unet++算法的檢測結果,雖能檢測出變化區域,但是檢測結果圖邊界模糊。例如:圖5(b)列示例2的GT圖中,我們可以看到有很多邊界明顯的建筑物的變化,Unet++只能檢測出變化區域整體外部輪廓,而不能精細地將每一個變化的建筑物區分開來,不利于精確地檢測出每一處變化的位置,有很多誤檢的像素點。圖5第6行DSIFN算法的檢測結果有與GT圖比較有部分漏檢的像素點。例如:圖5(c)列示例3的紅色方框中,GT圖有4塊變化的區域,DSIFN只能檢測出3塊變化區域,本文算法檢測出了4塊變化的區域,與GT圖比較僅有少許像素點的差別。
表2為其他算法的比較結果精度對比。結合圖5和表2的結果,本文方法獲得了最佳的檢測效果。PCA-K-means算法 F1(10.50%)最低,檢測效果最差,深度學習比傳統方法更適用于高分辨率遙感圖像。Unet++算法F1(75.60%),雖也取得了較高的檢測結果,但是結合檢測結果圖可知圖像單個特征不充分導致檢測圖像邊界模糊,只能檢測出變化區域的外部輪廓,雙時相圖像使用孿生輸入網絡提取的圖像單個特征更有利于檢測圖像的重建。本文方法相對于DSIFN在檢測精度F1上有些微的提升。

圖5 不同算法的變化檢測定性結果對比
圖6為與其他算法在訓練和測試時Loss曲線和F1曲線的對比,圖6(a)為Loss訓練曲線,圖6(b)為Loss測試曲線,圖6(c)為F1訓練曲線,圖6(d)為F1測試曲線。如圖6(a)所示,與Unet++相比,雙端輸入的網絡訓練損失曲線下降速度快,雙端輸入的網絡是較好的訓練模式。在第100個epoch時,Unet++的Loss訓練曲線還未趨于平緩,訓練代價較大。如圖6(b)所示,本文框架在測試集上損失曲線最后下降的值最小,Unet++最大,則Unet++的泛化能力最差,單端輸入的深度學習網絡在變化檢測領域的泛化能力不如其余兩個雙輸入網絡。DSIFN和本文網絡均為雙端輸入網絡,本文網絡在泛化能力上略優于DSIFN。如圖6(d)所示,Unet++的測試精度遠沒有DSIFN和本文算法高,結合表2的精度對比數據,本文算法的檢測精度最高。

圖6 不同算法在訓練集和測試集上Loss曲線與F1曲線對比

表2 不同算法的變化檢測定量結果對比(%)
最后,本文還對提出的網絡和兩種深度網絡模型(Unet++和DSIFN)進行了模型計算力(FLOPs)、參數量(Params)及訓練時間的對比和分析,結果如表3所示。鑒于本文模型在深度特征提取部分采用了3個支路,比Unet++多出2條支路,比DSIFN多出1條支路,因此提出算法的計算力FLOPs和參數量Params略有提升。此外,由于本文方法在處理雙時相圖像時需要預先檢測出邊緣差異圖,所以其算法訓練時間也略高一些。盡管增加了計算代價,但是本文方法在變化檢測的精度方面有了顯著的提升,結果圖中誤檢數和漏檢數也減少了很多。未來工作將研究如何在保證精度提升的前提下,降低模型空間和時間代價。

表3 不同算法的計算效率結果對比
本文提出了一種融合了邊緣變化信息和SE模塊的EANet高分辨率遙感圖像變化檢測。首先對雙時相圖像進行邊緣檢測得到邊緣圖,相減得到邊緣差異圖。再使用3支基于VGG-16的模型提取雙時相圖像和邊緣差異圖的深度特征,強調雙時相圖像的結構變化信息。雙時相圖像和邊緣差異圖的特征圖輸入網絡后端變化判別部分用于變化檢測。在變化區域判別部分,每一次特征圖級聯后加入SE模塊,來強調攜帶信息量大的通道。網絡在公開的LEVIR-CD遙感數據集上進行了驗證。實驗表明,邊緣差值圖能有效傳遞邊緣變化信息,強調雙時相圖像的結構變化,加入SE模塊能提高檢測精度。將本文方法與其他3種變化檢測方法對比,本文方法在視覺效果和精度衡量上均優于其余3種方法。由于本文提出的方法能夠有效提取遙感圖像中變化區域的結構信息,從而提高變化檢測的精度,因此算法更適用于城市建筑群變化檢測等類似問題上。