高振宇 劉亮 潘浩 馬御棠 黃修乾 耿浩 劉靖 徐崇斌 孫曉敏
(1 電力遙感技術(shù)聯(lián)合實驗室(云南電網(wǎng)有限責(zé)任公司電力科學(xué)研究院),昆明 650217)
(2 北京空間機電研究所,北京 100094)
(3 北京空間飛行器總體設(shè)計部,北京 100094)
近年來,隨著衛(wèi)星遙感空間分辨率的不斷提升,使其具備快速、大面積獲取輸電走廊地物信息的能力,在電力行業(yè)得到日益廣泛的應(yīng)用。在輸電線路的日常檢測過程中,通過不同時間遙感圖像的變化檢測,提取有變化的區(qū)域[1],可以及時發(fā)現(xiàn)地質(zhì)災(zāi)害、人為破壞和違章建設(shè)等潛在風(fēng)險。當(dāng)前變化檢測流程中,需要假設(shè)不同時期獲取的影像經(jīng)過了幾何校正[2],即用于變化檢測的不同圖像中相同的行列號理論上是一樣的。除了幾何校正之外,變化檢測的影像預(yù)處理還包括輻射糾正、數(shù)據(jù)融合等,通過圖像的預(yù)處理能在一定程度上減少色彩和光照變化等外部條件對變化檢測的影響。傳統(tǒng)變化檢測一般直接基于像元[3]來進行,利用圖像處理和計算機視覺技術(shù)來定位兩張圖像存在差異的像元。為了解決像元級別變化檢測精度不高而且碎塊較多的問題,對象級變化檢測[4-6]技術(shù)成為變化檢測的重要研究方向。檢測單元不再是獨立的像元,而是經(jīng)過特征的抽象轉(zhuǎn)變?yōu)閷ο蠹?,對象中包含了豐富的空間、紋理、形狀等特征,通過對象特征差異獲取變化檢測圖,能夠明顯提高變化檢測的效率和品質(zhì)[1,7]。
深度學(xué)習(xí)通過構(gòu)造深度神經(jīng)網(wǎng)絡(luò),能夠從海量的樣本中自動學(xué)習(xí)抽象特征。相比傳統(tǒng)基于人工經(jīng)驗挑選的特征,深度學(xué)習(xí)訓(xùn)練得到的特征更加準(zhǔn)確和抽象,能夠反映目標(biāo)的語義特征,因此具有良好的識別和泛化能力。深度卷積網(wǎng)絡(luò)在圖像識別中得到了廣泛應(yīng)用,出現(xiàn)了大量的深度卷積網(wǎng)絡(luò)模型,如VGG[8]、GoogLeNet[9]、ResNet[10]等。其中殘差網(wǎng)絡(luò)模型(ResNet)能夠較好的避免梯度消失問題,常常用來作為圖像特征提取的基礎(chǔ)網(wǎng)絡(luò)。由于深度卷積網(wǎng)絡(luò)模型的參數(shù)較多,對模型進行精簡的方法也被提出,比如 MobileNet[11]網(wǎng)絡(luò)將一個標(biāo)準(zhǔn)的卷積核分成深度卷積核和 1×1的點卷積核,能夠極大的降低網(wǎng)絡(luò)模型參數(shù)的數(shù)量,提高訓(xùn)練和計算速度。相比對整幅圖像進行識別,語義分割能夠?qū)崿F(xiàn)像元級別的分類,在遙感中可以用于土地利用分類。常用的語義分割模型包括:FCN[12]、U-Net[13]、Deeplab[14]系列等。
將深度學(xué)習(xí)應(yīng)用到衛(wèi)星遙感圖像變化檢測領(lǐng)域是目前變化檢測的研究重點和熱點,已經(jīng)有了大量的研究。文獻[15]提出了基于深度學(xué)習(xí)的高分遙感圖像變化檢測模型,將變化檢測轉(zhuǎn)換為語義分割問題,分割的兩個類別為沒有變化區(qū)域和變化區(qū)域,輸入的數(shù)據(jù)為多時相遙感數(shù)據(jù)得到的差分圖像;文獻[16]對 UNet孿生網(wǎng)絡(luò)進行改進,對多尺度圖像信息進行差分和融合,然后用特征金字塔模塊來獲取圖像多尺度的上下文信息,最后將編碼端和解碼端對應(yīng)層跳躍連接,進行端到端的預(yù)測,得到前后兩期礦區(qū)遙感影像的變化二值圖像;文獻[17]將RNN中的長短時記憶網(wǎng)絡(luò)應(yīng)用于變化檢測中,利用多時相遙感影像的時間信息來得到二值化的變化影像。在無監(jiān)督學(xué)習(xí)方面:文獻[18]用預(yù)先訓(xùn)練好的VGG模型來提取特征,對特征進行差異分析來得到變化檢測結(jié)果;文獻[19]提出了用于光學(xué)和雷達異構(gòu)圖像的變化檢測深度網(wǎng)絡(luò),采用無監(jiān)督的方式進行訓(xùn)練。通常,深度神經(jīng)網(wǎng)絡(luò)的輸入只有一張圖像以及對應(yīng)的一張地面真值圖,但用于變化檢測任務(wù)的神經(jīng)網(wǎng)絡(luò),其輸入需要一對圖像以及對應(yīng)的一張地面真值圖。孿生網(wǎng)絡(luò)[11]恰好可以完美的解決這個問題,并且將輸入的圖片對映射為高維空間中的特征對。
遙感圖像的變化檢測需要對每個像元是變化還是非變化進行識別,因此可以看作是一個語義分割問題。但是變化檢測的輸入一般包括2張不同時相獲取的圖像,而采用孿生網(wǎng)絡(luò)可以同時處理2組數(shù)據(jù),所以本文提出一種綜合語義分割與孿生網(wǎng)絡(luò)模型的變化檢測算法。算法采用 deeplabv3+語義分割模型來計算圖像的抽象特征,然后對輸出層進行歸一化并計算距離圖,最后利用對比損失函數(shù)來作為模型誤差進行訓(xùn)練。本文的創(chuàng)新點在于將語義分割網(wǎng)絡(luò)和孿生網(wǎng)絡(luò)進行組合來實現(xiàn)變化檢測,能夠在原始圖像分辨率上實現(xiàn)較高精度的變化檢測。
本文設(shè)計的變化檢測深度神經(jīng)網(wǎng)絡(luò)模型如圖1所示。輸入為不同時期獲取的一對遙感影像,每張影像都通過孿生網(wǎng)絡(luò)中的語義分割模型(本文采用了Deeplabv3+)來提取特征圖。孿生網(wǎng)絡(luò)中的模型參數(shù)是共享的,在訓(xùn)練的時候統(tǒng)一進行更新。每張圖像經(jīng)過語義網(wǎng)絡(luò)的處理都可以得到一張和原始圖像大小一致的特征圖像,輸入圖像包含了三個可見光通道(藍色、綠色、紅色),所以特征圖像的通道設(shè)置為3。根據(jù)2張?zhí)卣鲌D像可以計算每個像元對應(yīng)的歐式距離(一般指歐幾里得度量),結(jié)合樣本提供的標(biāo)簽數(shù)據(jù)并根據(jù)損失函數(shù)就可以計算殘差。
圖1 變化檢測深度神經(jīng)網(wǎng)絡(luò)Fig.1 The change detection deep neural network
本文設(shè)計的變化檢測深度網(wǎng)絡(luò)以語義分割模型為基礎(chǔ),綜合孿生網(wǎng)絡(luò)的結(jié)構(gòu)來計算損失函數(shù),訓(xùn)練的結(jié)果就是讓有變化的像元對應(yīng)的歐式距離盡可能大,讓沒有發(fā)生變化的像元歐式距離盡可能的小。圖1中,H代表了圖像的高度,W代表了圖像的寬度,H×W后面的數(shù)字代表了圖像的通道數(shù)量。
Deeplabv3+網(wǎng)絡(luò)是目前常用的深度學(xué)習(xí)網(wǎng)絡(luò)之一,是google公司設(shè)計的語義分割模型。如圖2所示,Deeplabv3+網(wǎng)絡(luò)將多尺度空洞卷積(dilated CNN)運用到深度卷積網(wǎng)絡(luò),通過解碼過程將編碼后的數(shù)據(jù)恢復(fù)到原始分辨率尺寸,能夠?qū)崿F(xiàn)精確的語義分割。Deeplabv3+包含一個深度卷積神經(jīng)網(wǎng)絡(luò)(deep CNN,DCNN)網(wǎng)絡(luò),這個網(wǎng)絡(luò)可以有多種選擇,比如:ResNet、MobileNet、Xception、DenseNet等。這個網(wǎng)絡(luò)的作用就是進行編碼。Deeplabv3+最后的輸出層的層數(shù)等于分類的數(shù)量。
圖2 Deeplab v3+網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Deeplab v3+network structure
孿生網(wǎng)絡(luò)用來計算圖像之間的相似性,輸入為2張圖像,分別通過網(wǎng)絡(luò)來生成特征圖,然后根據(jù)特征圖來計算2張圖像的相似度構(gòu)造損失函數(shù)。孿生網(wǎng)絡(luò)包含兩個分支網(wǎng)絡(luò),既可以相同也可以不同,當(dāng)擁有不同分支網(wǎng)絡(luò)時又被稱為“偽孿生網(wǎng)絡(luò)”。用于變化檢測的孿生網(wǎng)絡(luò)需要兩個相同的分支網(wǎng)絡(luò)(如圖1所示),兩個分支網(wǎng)絡(luò)的權(quán)重用相同的值初始化并通過隨機梯度下降算法接收相同的梯度,以從圖像對中提取對應(yīng)的特征對。
本文采用對比損失作為損失函數(shù)。對比損失的核心思想是擴大類間差異、減小類內(nèi)差異。它主要被運用在降維處理過程中,即對相似的樣本進行降維處理后,其對應(yīng)的特征仍然相似,而本不相似的樣本經(jīng)過降維處理后仍舊不相似,因而可以很好的反應(yīng)出樣本對之間的相似程度loss。其方程表達式如下
式中N代表特征圖中像元的數(shù)量;n為像元索引;dn代表樣本對語義分割網(wǎng)絡(luò)得到的特征對之間的歐式距離;y是樣本標(biāo)簽,當(dāng)y=0時,代表樣本對是相似或者匹配的,當(dāng)y=1時,代表樣本對是不匹配的;m是設(shè)置的一個閾值。其中,本文用于計算歐式距離的特征對已經(jīng)過歸一化處理,即dn的取值在0到1之間,m的取值需要保證m-dn的值為一個正數(shù),因此默認可以設(shè)置為2。由式(1)可以看出,當(dāng)樣本對相似(即y=0)時,函數(shù)只有前半部分 (1-y),若原本相似的樣本對之間的歐式距離較大,則說明此時網(wǎng)絡(luò)不佳,函數(shù)隨即會加大網(wǎng)絡(luò)損失;而當(dāng)樣本對不相似(即y=1)時,函數(shù)只剩后半部分y·m a x(m-dn,0)2,若原本不相似的樣本對之間的歐式距離較小,則說明此時網(wǎng)絡(luò)不佳,函數(shù)一樣會加大網(wǎng)絡(luò)損失。
利用“高分一號”衛(wèi)星、“高分二號”衛(wèi)星、“高景一號”衛(wèi)星、Google Earth和部分無人機的數(shù)據(jù)整理了一個不同季節(jié)的變化檢測數(shù)據(jù)集,訓(xùn)練集包括 10 000對圖片,驗證集和測試集各 3 000對,總共16 000對圖像。這個數(shù)據(jù)考慮了季節(jié)變化,而樹木等的生長變化不被當(dāng)作變化。制作訓(xùn)練集時,訓(xùn)練圖像的分辨率從0.03~1m,整體屬于高分辨率圖像的范疇。為了方便進行訓(xùn)練,原始數(shù)據(jù)被裁剪為256像元×256像元大小的圖像,并隨機進行了旋轉(zhuǎn),部分樣本數(shù)據(jù)如圖3所示。
訓(xùn)練時的操作系統(tǒng)為ubuntu 18.04 LTS,深度學(xué)習(xí)的訓(xùn)練框架選擇pytorch,計算機CPU為Intel? Xeon(R)CPU E5-2623 @2.60GHz×8,顯卡為 Nvidia Quadro M4000,顯存為 8Gbyte。訓(xùn)練的批樣本大?。╞atchsize)設(shè)置為32,訓(xùn)練周期(epoch)設(shè)置為50,初始的學(xué)習(xí)率為0.001,學(xué)習(xí)率隨著訓(xùn)練次數(shù)的增加逐漸降低。Deeplabv3+編碼部分的深度卷積框架選擇MobileNet,最后輸出層的通道設(shè)置為3。輸出層的數(shù)據(jù)采用L2 范數(shù)(normalization)進行歸一化。根據(jù)訓(xùn)練結(jié)果輸入的精度—召回率曲線如圖4所示。
圖4 精度—召回率曲線圖Fig.4 The precision-recall graph
從圖4可以看出,精度與召回率曲線表現(xiàn)良好,召回率在70%左右都能接近100%的正確率,這說明本文算法模型的有效性。F-Measure(又稱為F-Score)是精度和召回率加權(quán)調(diào)和平均,是信息檢索(IR)領(lǐng)域的常用的一個評價標(biāo)準(zhǔn),常用于評價分類模型的好壞。本算法訓(xùn)練后的 F-Measure值為 0.894。文獻[20]中基于對抗網(wǎng)絡(luò)對本文使用的數(shù)據(jù)庫進行了變化檢測,并對變化檢測得到的變化區(qū)域進行了區(qū)域合并,然后根據(jù)不同的交叉比(IoU)來對算法進行了評估,0.1、0.2、0.3代表了 IoU的閾值,即當(dāng)交叉比大于設(shè)定閾值時就認為分割后的目標(biāo)是正確的。本文采用同樣的方法來計算不同IoU下的準(zhǔn)確率和召回率,比較結(jié)果見表1。
表1 算法精度對比Tab.1 Comparison of accuracy of algorithms
將本文算法的結(jié)果與文獻[20]中基于對抗網(wǎng)絡(luò)的算法精度進行對比,可以看出本文的算法精度要優(yōu)于文獻[20]的模型。為了直觀的觀察變化檢測的效果,根據(jù)本文算法訓(xùn)練的模型來對測試的圖像數(shù)據(jù)進行處理,計算得到歐式距離圖,將距離歸一化到[0,1]之間,然后映射為彩色圖像,效果如圖5所示。
圖5 變化檢測測試數(shù)據(jù)效果Fig.5 Change detection test data effect
如圖5所示,最下一排是算法得到的變化檢測結(jié)果,紅色代表出現(xiàn)變化的概率高,藍色代表沒有出現(xiàn)變化。從結(jié)果中可以看出,檢測的結(jié)果與人工標(biāo)記的區(qū)域基本吻合,具有良好的一致性。
利用遙感數(shù)據(jù)能夠?qū)Υ蠓秶牡乇眍愋妥兓M行監(jiān)測,提高電網(wǎng)安全巡檢的效率,有效減少人工巡檢的工作量和危險性。尤其是,云南電網(wǎng)的線路大多分布在山地和丘陵區(qū)域,人工巡檢極為不便。因此,對輸電線路周圍環(huán)境變化進行監(jiān)測,能夠及時的發(fā)現(xiàn)可能的安全隱患,保障電力設(shè)施以及周邊居民的安全。為了驗證本文模型的實際檢測與泛化能力,選擇云南省昆明市西南區(qū)域的覆蓋區(qū)域來進行變化檢測,輸電線路沿著圖像中央的山體呈南北分布。
圖6是“高景一號”衛(wèi)星拍攝的2張同一個地區(qū)的影像,其中圖6(a)是2018年1月拍攝,圖6(b)是2018年11月拍攝。兩景衛(wèi)星影像經(jīng)過有理多項式參數(shù)(RPC)幾何校正后幾何位置基本上對齊。圖6中的紅色圓圈為220kV高壓線經(jīng)過的高壓塔的位置,紅色連線代表了高壓線的具體位置和分布情況。從不同時相的0.5m分辨率遙感圖像上可以看出,由于拍攝的季節(jié)不同,太陽高度角也相差較大,導(dǎo)致地表的反射率存在較大的差異,陰影的角度也不同。這些都增大了變化檢測的難度,如果用傳統(tǒng)的基于顏色或者亮度的算法監(jiān)測,就會出現(xiàn)大量錯誤檢測區(qū)域。
圖6 2018年1月和11月拍攝的高景圖像Fig.6 High-view images taken in January and November 2018
雖然兩幅圖像存在明顯的輻射品質(zhì)差異,但是本文算法很好的避免了輻射差異導(dǎo)致的錯誤檢測。為了驗證檢測的精度,本文采用人工解譯的方式來尋找圖像中存在變化的區(qū)域,然后用人工解譯得到的二值圖像和本文提出的變化檢測模型得到的變化區(qū)域二值圖統(tǒng)計變化檢測像元的整體精度,如表2所示。
表2 檢測精度分析Tab.2 Analysis of detection accuracy
對人工解譯的結(jié)果分析表明:由于拍攝時間相差不到一年,圖像中絕大部分的區(qū)域都沒有明顯變化。變化的地方主要出現(xiàn)在高壓線附近的新增蔬菜大棚(如圖7(b)和(c)中的黃色多邊形)。本文算法的檢測結(jié)果總體準(zhǔn)確率從84.5%提高到93.7%,召回率從81.1%提高到89.5%,特別是相比文獻[20]中的算法在變化檢測結(jié)果的空間分辨率上有顯著改善。但本文算法也將部分沒有變化的區(qū)域檢測為變化區(qū)域,這些區(qū)域主要分布在邊緣,容易受到幾何對齊的影響而被錯分為變化區(qū)域。采用本文提出的變化檢測模型能及時發(fā)現(xiàn)紋理變化明顯的區(qū)域,如:建筑物、植被變化區(qū)域等,有助于防范可能出現(xiàn)的地質(zhì)災(zāi)害、人為破壞和違章建設(shè)等潛在風(fēng)險,特別是人工巡線難以涉及的區(qū)域,如:密林、高山等地方。
圖7 距離高壓線一定范圍的變化檢測效果Fig.7 Change detection effect of a certain range from the high-voltage line
本文提出了一種將語義分割網(wǎng)絡(luò)和孿生網(wǎng)絡(luò)組合在一起進行遙感圖像變化檢測的算法,充分利用語義分割網(wǎng)絡(luò)強大的特征提取與分辨率復(fù)原能力,能夠較好的恢復(fù)變化區(qū)域的細節(jié)?;谕瑯拥木W(wǎng)絡(luò)參數(shù),采用孿生網(wǎng)絡(luò)對不同時相的遙感數(shù)據(jù)進行處理,保證了訓(xùn)練的有效與靈活性。實驗表明:本文算法能夠較好的處理不同時相獲取的遙感數(shù)據(jù),對輻射變化以及季節(jié)變化導(dǎo)致的色彩差異具有較好的識別能力,能夠有效服務(wù)輸電走廊的日常巡線工作,為電力線路的安全保障提供必要的技術(shù)支撐。