劉星雨 王 建 朱 恰 馬紫雯 周再文 高賢君
(長江大學(xué)地球 科學(xué)學(xué)院, 湖北 武漢 430100)
隨著國家經(jīng)濟快速發(fā)展,城市建設(shè)不斷增強,建筑物作為城市重要組成成分之一,其變化信息對城市管理、城市規(guī)劃等業(yè)務(wù)具有重要意義[1-2]?,F(xiàn)階段的建筑物變化檢測方法主要有兩種,一種是依靠傳統(tǒng)的人工方法進行調(diào)查取證,該方法效率低,綜合性差、經(jīng)濟性低,消耗大量人力物力且無法做到全面檢測[3]。第二種方法是利用監(jiān)控攝像頭,使用視頻檢測技術(shù)等設(shè)備,建成資源動態(tài)監(jiān)測系統(tǒng)。該方法成本高、時間長、不適用于大范圍的監(jiān)測[4]。近年來,遙感技術(shù)突飛猛進,遙感影像因其具有分辨率高、覆蓋范圍廣、調(diào)查周期短、回收方便、成本較低等特點使其在現(xiàn)實生活中的很多重要領(lǐng)域發(fā)揮著不可或缺的作用,如地圖制圖與更新、城市規(guī)劃與管理、災(zāi)害應(yīng)急響應(yīng)、資源調(diào)查、軍事目標(biāo)識別等等。變化檢測是遙感技術(shù)的主要應(yīng)用之一[5],其中以城市建筑物作為重要的人工地物之一的建筑物變化檢測,更是成為國內(nèi)外學(xué)者研究的熱點[6]。
建筑物變化檢測一般包含兩種模式:一種是直接進行變化檢測,從檢測結(jié)果中提取建筑物;另一種是先提取出建筑物后,再進行建筑物變化檢測。由于第一種方法對糾正和匹配的精度要求較高,目前學(xué)者們多采用第二種模式進行建筑物變化檢測研究[7]。遙感圖像上的建筑物,具有很多特征,如陰影、形狀、紋理布局等。目前存在的變化檢測方法可分為基于像素的變化檢測、基于特征的變化檢測、基于目標(biāo)的變化檢測三大類[8]?;谙袼氐淖兓瘷z測,是對不同時相的遙感圖像進行像素級的比較,直接得出每個像素的變化情況,如張永梅等[9]提出了對多個時相的遙感圖像進行基于比值法并結(jié)合對象特征的像素級變化檢測?;谔卣鞯淖兓瘷z測主要是依靠提取出的色調(diào)、形狀、結(jié)構(gòu)紋理等特征信息進行比較分析。這種方法受配準(zhǔn)精度影響小,且特征在圖像上的表現(xiàn)一般具有穩(wěn)定性,因此其不易受圖像時相變化的影響。季順平等[10]、袁修孝等[11]提出了基于陰影檢測的建筑物變化檢測方法。劉波[12]等提出一種基于正樣本單分類器學(xué)習(xí)框架下的建筑物變化檢測算法,利用一種單分類器和形狀特征判定其變化。基于目標(biāo)的變化檢測最主要的特點是將圖像看作多個具有語義信息的對象的組合,將其作為檢測單元進行檢測。林雨淮等[13]提出一種面向?qū)ο蟮慕ㄖ镒兓瘷z測和提取技術(shù),劉瑩等[14]提出利用圖割能量函數(shù)模型的高分變率遙感影像建筑物變化檢測。以上方法都獲得了較好的成果,但基于像素的變化檢測方法忽略了目標(biāo)的整體性,且對前后時相圖像配準(zhǔn)精度要求高,像素之間的唯一偏差會產(chǎn)生大量的偽變化;基于特征的變化檢測目前仍是多種特征的簡單組合,將它們充分利用、取長補短從而獲得更加準(zhǔn)確可靠的檢測結(jié)果仍需進一步研究;目標(biāo)級的變化檢測在研究和實際應(yīng)用中難度較大。
差值分析法在變化檢測中有廣泛應(yīng)用[15],但簡單的差值法難以反映單一種類地物的變化情況且其閾值的設(shè)定對檢測精度影響較大。鑒于目前的深度學(xué)習(xí)能夠提取并分析從低至高的多層次信息,有利于提高建筑物檢測結(jié)果的精度,為變化檢測提供更好的檢測基礎(chǔ)。因此,本文提出一種結(jié)合深度學(xué)習(xí)及差值分析的遙感影像建筑物變化檢測方法。首先利用全卷積深度學(xué)習(xí)網(wǎng)絡(luò)對影像進行建筑物提取,將其優(yōu)化處理后再利用差值法進行分析。本文的方法可以針對建筑物進行檢測,去除閾值對檢測精度的影響,提高檢測精度。
1.1.1基于Unet的建筑物分類初提取
本文利用Unet模型對建筑物進行分類提取,它的基本結(jié)構(gòu)是編碼與解碼,Unet模型如圖1所示。先對圖像進行卷積、歸一化、激活、下采樣,然后用卷積核進行反卷積對下層特征圖進行上采樣,上采樣可以彌補網(wǎng)絡(luò)下采樣損失的信息,最終得出一張與輸入圖像尺寸相同的分割圖。Unet是目前應(yīng)用最廣泛的一種圖像分割模型,它能在很少的圖片中對圖片進行端到端的訓(xùn)練,并取得較好的結(jié)果[16]。經(jīng)過深度學(xué)習(xí)初提取后得到的圖像是一幅灰度圖且包含很多非建筑物區(qū)域,因此我們需要對初提取結(jié)果進行優(yōu)化。圖1中數(shù)字表示通道數(shù),圖例中卷積層數(shù)字的單位是像素(pixel)。
圖1 Unet模型圖
1.1.2建筑物多特征聯(lián)合驗證優(yōu)化
建筑物初提取后,利用建筑物的幾何結(jié)構(gòu)、陰影等特征進行驗證,識別出真正的建筑物,去除初提取圖像中的虛假目標(biāo),再通過特征點的提取與重構(gòu)、多邊形擬合等方法達到建筑物的邊界輪廓優(yōu)化的目的,解決輪廓不整齊等問題。
建筑物特征驗證指數(shù)如高賢君等[17]提出的相交邊界陰影比率η,其定義見公式(1),NESD為區(qū)域膨脹邊界與偏移建筑物區(qū)域相交部分,NESD為EBSD上所有像素個數(shù),NSD為EBSD上陰影個數(shù),建筑物的η值較高而裸地的η值較低,可以通過對η設(shè)定合理的限定值來區(qū)分建筑物。
(1)
根據(jù)道路對象與建筑物在形狀上的差異提出用來區(qū)分建筑物與道路對象的指數(shù)ILF,其定義見公式(2),L為矩形長度,W為矩形寬度,np為該對象像素的總個數(shù)。道路的ILF較大,建筑物的ILF較小,通過設(shè)置閾值可將道路與建筑物分開[18]。
(2)
此處的后處理優(yōu)化主要是利用形態(tài)學(xué)和建筑物驗證方法進行處理。以圖2(a)所示的原始圖像為例,進行基于深度學(xué)習(xí)優(yōu)化的建筑物提取,圖2(b)為深度學(xué)習(xí)的特征圖,基于此提取初步結(jié)果進行優(yōu)化后的結(jié)果如圖2(c)所示??梢钥闯?建筑物基本能被準(zhǔn)確地提取出來。
圖2 基于深度學(xué)習(xí)建筑物提取結(jié)果
變化檢測的方法多種多樣,差值法是其中應(yīng)用較為廣泛的方法之一,其概念簡單直接、易于理解、方便運用、具有很強的實用性[19]。
1.2.1差值法基本原理
差值分析法的基本原理是對多時相圖像進行配準(zhǔn)后用相對應(yīng)像元的灰度值做減法,結(jié)果即代表了變化部分。差值法的表達公式如式(3)所示。
D(i)=|T1(i)-T2(i)|
(3)
式中i代表像元的坐標(biāo)(x,y),T1、T2代表前后兩個不同時相的圖像。建筑物的變化分為增加的建筑物和減少的建筑物兩部分,增加的建筑物用式(4)表示,減少的建筑物用式(5)表示。
D(i)=T2(i)-T1(i)
(4)
D(i)=T1(i)-T2(i)
(5)
得到初步結(jié)果后,可以根據(jù)實際情況設(shè)置一個閾值,小于該閾值的視為未變化,大于該閾值的則為變化區(qū)域[20]。
1.2.2多時相建筑物結(jié)果的差值處理
影響遙感影像的因素很多,且其包含的地物種類多種多樣,建筑物只是其中一種,將差值法直接運用到建筑物變化檢測中顯然會存在很多誤差和噪聲。
本文的方法流程見圖3。利用差值法進行運算前,先對前后兩個不同時相的遙感影像進行處理。T1、T2分別為前后兩個不同時相的遙感影像,利用深度學(xué)習(xí)的方法提取出兩個不同時相圖像的建筑物,然后對得到的提取圖像進行優(yōu)化,包括建筑物驗證和邊緣處理兩部分,得到只包含建筑物的二值圖像,1代表建筑物、0代表背景,最后使用差值法對兩幅圖像做減法,得到的結(jié)果僅反映了建筑物部分的變化,不受圖片其他地物的影響。
圖3 本文方法流程圖
1.2.3差值結(jié)果的形態(tài)學(xué)后處理
利用差值法思想,用后時相結(jié)果減去前時相結(jié)果,可以獲取建筑物增加的部分,如圖4(a)所示。反之可以獲取建筑物減少的部分,如圖4(b)所示。但其未經(jīng)處理的圖像有很多噪聲,影響了對變化建筑物的判斷,因此,進一步利用形態(tài)學(xué)的腐蝕、膨脹等方法對差值檢測的基本結(jié)果進行優(yōu)化處理,以修復(fù)問題區(qū)域。
圖4 差值法形態(tài)學(xué)優(yōu)化結(jié)果
灰度數(shù)學(xué)形態(tài)學(xué)的運算對象為圖像函數(shù),設(shè)f(s,t)是輸入圖像,b(x,y)是結(jié)構(gòu)元素,Df和Db表示f和b的定義域,用結(jié)構(gòu)元素b對圖像f進行膨脹的運算見公式(6)
(f⊕b)(s,t)=max{f(s-x,t-y)+
b(x,y)|(s-x,t-y)∈Df,(x,y)∈Db}
(6)
用結(jié)構(gòu)元素b對圖像f進行膨脹的運算為
(fΘb)(s,t)=min{f(s+x,t+y)+
b(x,y)|(s+x,t+y)∈Df,(x,y)∈Db}[21]
(7)
膨脹可以擴大邊界,使圖像邊界向外擴張,消除單個塊邊緣預(yù)測弱的現(xiàn)象,可以用來填補目標(biāo)區(qū)域中的空洞,起到平滑對象邊緣的作用,對圖像進行膨脹會使明亮區(qū)域的面積擴大[4]。
腐蝕可以平滑對象邊緣,弱化或分割圖像之間的半島形連接,是一種可以使圖像向內(nèi)收縮的過程,使用腐蝕處理對于去除小的、孤立的無意義的區(qū)域有很好的效果。建筑物提取的結(jié)果中,可能會存在前后時相建筑物邊界之間有細小的差異的情況,這些細小的差異是沒有意義的,它們不代表建筑物的變化,對于這種情況,使用腐蝕的方法可以很好地去除。
但是單獨使用腐蝕膨脹算法的效果并不好,并且還會使圖像的質(zhì)量下降,連續(xù)的腐蝕和膨脹可以降低對圖像面積的影響[22],因此本文采用形態(tài)學(xué)中的組合運算:開運算與閉運算。開運算就是先腐蝕后膨脹,閉運算是先膨脹后腐蝕。
用b對f進行開運算的定義為
f·b=(fΘb)⊕b
(8)
用b對f進行閉運算的定義為
f·b=(f⊕b)Θb
(9)
開運算可以去掉圖像的單個像素點,在纖細處分離物體,使圖相邊界相對平滑且不明顯改變其面積,閉運算主要功能可以填補圖像中小的孔洞,本文使用參考點位于中心15 pixel×15 pixel的結(jié)構(gòu)元素,對圖像進行開運算。
以圖4所示影像的前后時相圖像為例,對提取的建筑物進行差值計算后的結(jié)果進行優(yōu)化,最終的結(jié)果如圖4(e)、(f)所示??梢钥闯?該方法可以較為準(zhǔn)確地檢測出變化的建筑物,排除一些細碎雜物的干擾。
本實驗中原始輸入影像大小為512 pixel×512 pixel,從而構(gòu)建特征金字塔。實驗的編程語言為python,編程平臺為JetBrains PyCharm 2017.1。實驗環(huán)境為:i7-9700k處理器,32 GB內(nèi)存,NVIDIA RTX2080Ti 8 G顯卡,GPU加速庫采用CUDA10.0。DeepLearning框架以Keras作為前端,TensorFlow為后端。
為了更好比較兩種方法的實驗結(jié)果,本文采用式(10)表示的準(zhǔn)確率A(Accuracy)、式(11)表示的召回率R(Recall)、式(12)表示的精確率P(Precision)來進行評定,其中ncorrect表示正確的樣本個數(shù),ntotal表示總樣本個數(shù),TP(True positive)表示將正類正確預(yù)測為正類數(shù),FP(False Positive)表示將負類錯誤預(yù)測為正類數(shù),FN(False Negative)表示將正類錯誤預(yù)測為負類數(shù)。
(10)
(11)
(12)
為了實驗本文提出的方法與直接差值分析法的效果,以圖5~7為例進行建筑物變化檢測。變換的建筑物已在圖像中標(biāo)注。表1給出了精度對比,由表1中數(shù)據(jù)可以看出,本文方法的準(zhǔn)確率、召回率、精確率皆高于簡單差值法。尤其是召回率和精確率得到了大幅度提升。
表1 不同方法變化檢測精度比較 單位:%
從圖5~7所示的三組影像的結(jié)果對比可以看出簡單差值法能檢測出部分變化信息,但準(zhǔn)確度不高,容易受除建筑物外其他地物的影響,如車輛、耕地等。檢測結(jié)果中對房屋輪廓等邊緣信息的檢測較為明顯,對細節(jié)的檢測結(jié)果較差,且含有大量的偽變化信息。本文提出的檢測方法可以準(zhǔn)確地檢測出變化區(qū)域,清晰地體現(xiàn)建筑物的邊緣和細節(jié)信息。簡單差值法是在灰度圖的基礎(chǔ)上直接進行差值分析,受陰影、天氣、閾值等因素影響較大,本文方法先提取建筑物并將灰度圖轉(zhuǎn)化為二值圖像,避免了道路、植被、耕地等地物的干擾,轉(zhuǎn)化為二值圖像后極大地減少了陰影和天氣造成的影響。
圖5 影像A建筑物變化檢測結(jié)果
圖6 影像B建筑物變化檢測結(jié)果
圖7 影像C建筑物變化檢測結(jié)果
針對目前人為進行建筑物變化檢測存在的效率低、工作量大等問題,結(jié)合圖像差值法在變化檢測中的廣泛運用,本文將圖像差值法與建筑物變化檢測相結(jié)合,提出一種先對遙感影像進行建筑物提取、優(yōu)化,再引入差值法對提取結(jié)果進行變化檢測的方法。一方面該方法較為簡單,便于理解、易于實現(xiàn),能清楚地反映變化區(qū)域,另一方面它極大地減小了普通的差值分析法中閾值的設(shè)定對變化檢測精度的影響。在腐蝕、膨脹處理后更是可以減少圖像噪聲,使圖像質(zhì)量更高更完美,清晰地突出變化部分。
該方法能有效地檢測變化的建筑物,在實際應(yīng)用中效果顯著,但由于前后時相圖像的匹配偏差以及投影偏差,在后處理時選取的開運算的核可能會在一定程度上影響檢測精度,這也是后期需要深入研究的地方。