付曉燕,岳彩榮,蔣之富
(1.西南林業(yè)大學(xué),云南 昆明 650224;2.國家林業(yè)和草原局西南調(diào)查規(guī)劃院,云南 昆明 650031)
森林資源動(dòng)態(tài)監(jiān)測(cè)已經(jīng)成為林業(yè)的重要工作,當(dāng)前森林資源變化檢測(cè)主要依靠目視判讀對(duì)比前后兩期遙感影像,根據(jù)像素值對(duì)比發(fā)現(xiàn)森林資源疑似變化區(qū)域。但遙感影像內(nèi)容豐富、覆蓋區(qū)域往往比較大,通過人眼識(shí)別、手工區(qū)劃變化區(qū)域,不僅工作量大、效率低,而且可能存在漏劃、錯(cuò)劃的情況[1]。目前,業(yè)內(nèi)還沒有非常有效的技術(shù)手段對(duì)遙感影像變化區(qū)域進(jìn)行自動(dòng)檢測(cè)、區(qū)劃。本文旨在通過研究多期遙感影像的變化特點(diǎn),提出自動(dòng)區(qū)劃遙感影像變化區(qū)域的算法、方法,并在林業(yè)最為常用的地理信息系統(tǒng)軟件ArcGIS上實(shí)現(xiàn)該算法,開發(fā)相應(yīng)的插件和軟件工具,以快速、較為準(zhǔn)確地通過兩期遙感影像對(duì)比自動(dòng)獲得監(jiān)測(cè)區(qū)的變化圖斑。
利用ArcGIS插件開發(fā)技術(shù)和ArcObjects SDK,在研究現(xiàn)有的遙感影像變化檢測(cè)算法的基礎(chǔ)上,提出一種快速進(jìn)行遙感影像變化檢測(cè)和變化區(qū)域分割、提取算法,實(shí)現(xiàn)遙感影像變化檢測(cè)半自動(dòng)區(qū)劃工具、遙感影像變化檢測(cè)自動(dòng)區(qū)劃工具。
研究內(nèi)容主要涉及到ArcGIS插件開發(fā)技術(shù)、遙感影像數(shù)據(jù)管理模塊開發(fā)、兩期遙感影像自動(dòng)檢查和搜索算法、遙感影像變化檢測(cè)和變化區(qū)域分割提取算法、算法優(yōu)化等內(nèi)容。需要指出的是,本文所說的林地,是指由林業(yè)主管部門管理的、有植被覆蓋的土地。
在有限的時(shí)間和資源基礎(chǔ)上,完全從底層開發(fā)影像數(shù)據(jù)管理功能已不太現(xiàn)實(shí),采用現(xiàn)有的、成熟的軟件平臺(tái)可以將重點(diǎn)放在遙感影像變化檢測(cè)算法的設(shè)計(jì)和改進(jìn)上,忽略細(xì)枝末節(jié)。基于這個(gè)原因,作者采用目前業(yè)內(nèi)最為成熟的ArcGIS軟件,作為影像數(shù)據(jù)加載、顯示、管理的基本平臺(tái),在ArcGIS軟件上,采用插件開發(fā)技術(shù)、ArcObjects SDK進(jìn)行影像數(shù)據(jù)處理、變化檢測(cè)的定制開發(fā)。
目前現(xiàn)有的軟件平臺(tái)在進(jìn)行變化檢測(cè)時(shí),均需要人為確保前后兩期影像是否為同一個(gè)區(qū)域、坐標(biāo)系是否一致、遙感影像范圍是否一致,影像檢測(cè)前往往需要裁剪、坐標(biāo)系變換等工作,增加了人為工作量。為減輕人為工作量,筆者設(shè)計(jì)了影像區(qū)域檢測(cè)模塊,對(duì)影像的坐標(biāo)范圍、坐標(biāo)系統(tǒng)進(jìn)行變化檢測(cè),自動(dòng)提取前后兩期影像的公共范圍。
影像變化檢測(cè)的關(guān)鍵在于變化檢測(cè)和變化區(qū)域提取算法研究和設(shè)計(jì),現(xiàn)有的軟件平臺(tái)主要采用監(jiān)督分類、無監(jiān)督分類兩類算法,監(jiān)督分類需要訓(xùn)練樣本,人為干預(yù)地方很多,要實(shí)現(xiàn)自動(dòng)變化檢測(cè),這一方法基本可以排除。無監(jiān)督分類大多基于統(tǒng)計(jì)理論,如主成分分析、NDVI指數(shù)、相似像素聚類等?,F(xiàn)有這些方法都基于嚴(yán)格的數(shù)學(xué)模型,從理論上說,能較好地提取變化區(qū)域,但在實(shí)際使用過程中,提取效果總是差強(qiáng)人意。筆者認(rèn)為主要原因在于,這些算法往往是基于比較好的影像數(shù)據(jù),設(shè)計(jì)算法的人也是基于規(guī)整的影像數(shù)據(jù),沒有考慮實(shí)際使用過程中諸多因素,如前后兩期影像的一小部分存在陰影,兩期影像校正效果不理想,局部存在偏移,兩期影像范圍不一致等等,導(dǎo)致產(chǎn)生很多偏差。故有必要對(duì)現(xiàn)有算法進(jìn)行改進(jìn),在算法的檢測(cè)過程中,對(duì)出現(xiàn)的偏差進(jìn)行自動(dòng)排除。
對(duì)于大范圍的高分辨率遙感影像,數(shù)據(jù)量往往很大,難以一次性對(duì)整幅遙感影像進(jìn)行分割,需要設(shè)計(jì)一種優(yōu)化算法。本文采用的是異步分割算法,該算法在邏輯上將整幅遙感影像劃分成多個(gè)格網(wǎng),分割過程是按格網(wǎng)進(jìn)行異步分割。格網(wǎng)只是邏輯劃分,無需進(jìn)行柵格影像切割,原因是ArcObjects開發(fā)的程序可同時(shí)對(duì)一幅遙感影像加載多次,這與多個(gè)ArcGIS進(jìn)程可以加載同一幅影像是相類似的。當(dāng)要分割一個(gè)格網(wǎng)區(qū)域時(shí),只需要指定格網(wǎng)的左下角坐標(biāo)、行數(shù)、列數(shù)和需要分割的影像文件位置,就可以指定一個(gè)分割范圍,然后工具啟動(dòng)多個(gè)線程對(duì)格網(wǎng)進(jìn)行異步分割。
計(jì)算機(jī)處理數(shù)據(jù)時(shí)有單線程和多線程之分,單線程就是進(jìn)程內(nèi)用1個(gè)主要線程進(jìn)行數(shù)據(jù)處理,多線程是啟用多個(gè)線程同時(shí)進(jìn)行數(shù)據(jù)處理。為提升分割效率,遙感影像分割肯定需要啟用多線程技術(shù)?,F(xiàn)在的計(jì)算機(jī)處理器普遍在4核心以上,可以充分利用多核心的優(yōu)勢(shì),進(jìn)行異步分割。本文設(shè)計(jì)了一種算法,該算法在運(yùn)行過程中,將會(huì)自動(dòng)獲取計(jì)算機(jī)物理核心數(shù)和可用內(nèi)存,根據(jù)物理核心數(shù),分配多個(gè)線程同時(shí)進(jìn)行分割。對(duì)于4核心處理器計(jì)算機(jī),工具最多啟動(dòng)2個(gè)線程;對(duì)于8核心計(jì)算機(jī),工具最多啟動(dòng)6個(gè)分割線程;對(duì)于16核心以上處理器,工具最多啟動(dòng)14個(gè)分割線程。也就是說,對(duì)于一臺(tái)16核心處理器的計(jì)算機(jī),如果內(nèi)存充足,工具將會(huì)啟動(dòng)14個(gè)分割線程同時(shí)進(jìn)行分割。假設(shè)每個(gè)分割線程分割的格網(wǎng)大小是3500×3500個(gè)像素,高分遙感影像分辨率為2m,則每個(gè)分割線程分割的面積是7000×7000m,即49.0 km2,14個(gè)線程可以同時(shí)分割686.0 km2的區(qū)域,因?yàn)樾枰指畹倪b感影像往往不是方形的,因此實(shí)際分割的有效區(qū)域可能會(huì)更小一些。通過多線程進(jìn)行優(yōu)化,可以極大地提升運(yùn)行效率。
在Visual Studio 2010開發(fā)工具上,應(yīng)用C#和.Net 4.0,結(jié)合ArcGIS插件開發(fā)技術(shù),筆者將以上算法編寫代碼,封裝成插件和對(duì)應(yīng)的軟件工具,以工具欄的形式鑲嵌在ArcMap主界面上,既能方便林業(yè)工作人員調(diào)用,也能充分利用現(xiàn)有ArcGIS工具,提升工作效率。
在用分割算法分割前,需要檢查影像坐標(biāo)系統(tǒng)、空間位置等是否正確。工具設(shè)計(jì)了影像質(zhì)量檢測(cè)和搜索算法,能根據(jù)遙感影像拍攝時(shí)間、遙感影像像素值,自動(dòng)確定子區(qū)域劃分方法。
根據(jù)搜索到的前后兩期遙感影像,在邏輯上劃分成3500×3500個(gè)像素大小的格網(wǎng),在格網(wǎng)內(nèi),再劃分成2×2個(gè)像素的細(xì)小格網(wǎng),按4個(gè)像素大小的區(qū)域進(jìn)行像素比較,對(duì)細(xì)小格網(wǎng)內(nèi)像素值很接近(如像素R、G、B值在15%以內(nèi))的,由該區(qū)域開始往外聚類,聚類后面積大于一定值(如100m2)的區(qū)域,標(biāo)記本期疑似區(qū)域。對(duì)搜索到的前期遙感影像,按相同方法處理,由該區(qū)域進(jìn)行聚類,標(biāo)記為前期疑似區(qū)域。用本期疑似區(qū)域按空間位置選中前期疑似區(qū)域的結(jié)果,將選中區(qū)域調(diào)用ArcObjects的圖層相減后,進(jìn)行多部件打散,刪除面積小于200m2的面,得到疑似前期林地轉(zhuǎn)變成本期非林地圖斑結(jié)果;分割結(jié)果中的前期疑似非林地圖斑減本期疑似林地圖斑,得到前期非林地轉(zhuǎn)化成本期有林地圖斑結(jié)果。
自動(dòng)分割完成后,分割邊界沿像素值邊界前進(jìn),可能存在分割邊界點(diǎn)過密、鋸齒狀明顯的問題,實(shí)際應(yīng)用仍然存在諸多不便,需要對(duì)圖斑邊界進(jìn)行抽稀、修正、去除面積過小的內(nèi)環(huán)(如內(nèi)環(huán)面積小于50m2),按林業(yè)經(jīng)營界線(如林班界)進(jìn)行進(jìn)一步分割,達(dá)到符合林業(yè)區(qū)劃標(biāo)準(zhǔn)的要求。
大范圍的高分遙感影像,數(shù)據(jù)量極大,自動(dòng)勾繪運(yùn)行速度可能較慢,需要進(jìn)一步優(yōu)化,優(yōu)化主要從兩方面進(jìn)行。
(1)盡量縮小自動(dòng)分割范圍。例如,在只需要監(jiān)測(cè)林地減少的情況,結(jié)合林業(yè)經(jīng)營資料,剔除非林地區(qū)域,僅僅在林地范圍內(nèi)進(jìn)行自動(dòng)勾繪;在只需要監(jiān)測(cè)林地增加的情況,結(jié)合林業(yè)經(jīng)營資料,剔除有林地區(qū)域;既要監(jiān)測(cè)林地增加、也要監(jiān)測(cè)林地減少的情況,盡量利用監(jiān)測(cè)區(qū)域的行政邊界,減少區(qū)劃范圍。
(2)充分利用現(xiàn)有計(jì)算機(jī)的多核心、大內(nèi)存等優(yōu)勢(shì),提高運(yùn)算性能?,F(xiàn)有的計(jì)算機(jī)一般都有四核甚至六核心以上處理,在變化區(qū)域勾繪時(shí),充分利用多核心優(yōu)勢(shì),同時(shí)異步分割多個(gè)3500×3500個(gè)像素格網(wǎng),如在六核處理器的計(jì)算機(jī)上,通過多線程技術(shù),同時(shí)對(duì)4個(gè)3500×3500個(gè)像素格網(wǎng)進(jìn)行自動(dòng)分割,對(duì)于具有16核心處理器的工作站,同時(shí)對(duì)14個(gè)3500×3500個(gè)像素的格網(wǎng)進(jìn)行自動(dòng)分割。
研究過程中發(fā)現(xiàn),格網(wǎng)的形狀最好為正方形,正方形方便程序處理和優(yōu)化。格網(wǎng)范圍也不能過大,格網(wǎng)大小不能超過3500×3500個(gè)像素但最好大于1000×1000個(gè)像,原因是ArcObjects開發(fā)的程序是基于32位進(jìn)程的,32位進(jìn)程占用的總內(nèi)存不能超過4GB,在分割過程中,需要存儲(chǔ)每個(gè)像素點(diǎn)的RGB分量、主要波段等信息,如果范圍過大,會(huì)導(dǎo)致內(nèi)存溢出。對(duì)于1m分辨率的高分遙感影像,3500×3500個(gè)像素相當(dāng)于3500×3500m的區(qū)域,即12.25 km2;對(duì)于2m分辨率的高分遙感影像,3500×3500個(gè)像素相當(dāng)于7000×7000米的區(qū)域,即49 km2,每個(gè)子區(qū)域的實(shí)際范圍并不小。需要說明的是,因?yàn)橐指畹倪b感影像往往不是方形的,還存在一些背景區(qū)域,在邊界上需要分割的有效影像會(huì)更小一些。格網(wǎng)如果劃分過小,會(huì)導(dǎo)致格網(wǎng)數(shù)量增加,降低數(shù)據(jù)處理效率,增加后期融合的工作量。對(duì)于2m的高分遙感影像,云南省的一個(gè)縣,格網(wǎng)劃分個(gè)數(shù)一般在40~80個(gè)之間。對(duì)于16核心的計(jì)算機(jī)來說,可最多啟用14個(gè)分割線程,每個(gè)線程分割時(shí)間大致在3~10分鐘,每個(gè)計(jì)算機(jī)物理核心平均運(yùn)行3到6輪可以分割一個(gè)縣,運(yùn)行時(shí)間視政區(qū)面積,大致在15~70分鐘可以完成一個(gè)縣的自動(dòng)分割。
因?yàn)樵诜指钸^程中,劃分了多個(gè)格網(wǎng),因此異步分割后還需要對(duì)分割結(jié)果進(jìn)行融合、合并操作,將按格網(wǎng)的分割結(jié)果融合成一個(gè)整體。融合操作主要采用ArcObjects的Merge算法進(jìn)行合并,合并后調(diào)用ArcObjects的GP工具的融合算法,按類別進(jìn)行融合和消除,并刪除面積小于200m2的細(xì)碎圖斑。在工具運(yùn)行過程中,可以調(diào)用ArcGIS的工具箱來進(jìn)行一些常見的空間分析運(yùn)算,這也是插件開發(fā)最大的優(yōu)點(diǎn)。
為便于使用,作者將算法封裝成多個(gè)模塊,利用C#4.0程序設(shè)計(jì)語言和Visual Studio 2010開發(fā)軟件,編寫成2個(gè)ArcGIS插件“遙感影像變化監(jiān)測(cè)半自動(dòng)區(qū)劃工具”和“遙感影像變化監(jiān)測(cè)自動(dòng)區(qū)劃工具”,輔助判讀工具可以內(nèi)嵌在ArcMap 10.2以上的版本中,方便與ArcGIS的其他工具協(xié)同操作,封裝后的工具欄運(yùn)行效果見圖1,上面的工具為半自動(dòng)區(qū)劃工具,下面的工具為自動(dòng)分割工具,因工具欄過短,無法顯示所有的文字。
圖1 工具欄運(yùn)行效果Figure 1 Segmentation toolbar running effects
半自動(dòng)區(qū)劃原理類似于Photoshop中的魔法棒,仍然需要借助人力查找到某個(gè)變化區(qū)域,在變化區(qū)域點(diǎn)一下鼠標(biāo),或者繪制一條線段,工具利用分割算法自動(dòng)分割該變化區(qū)域,因?yàn)樾枰肆φ业阶兓瘏^(qū)域,因此稱為半自動(dòng)區(qū)劃工具。通過在屏幕上單擊某個(gè)區(qū)域,工具自動(dòng)將該區(qū)域相鄰的像素進(jìn)行聚類和勾繪,勾繪方法和效果如圖2所示。在圖2的左圖,找到變化區(qū)域后,手工點(diǎn)一個(gè)點(diǎn)或者繪制一條線段,工具將會(huì)自動(dòng)分割并將結(jié)果形成面。勾繪結(jié)果自動(dòng)平滑后,效果不亞于手工勾繪。繪制過程中,如果存在已有圖斑,工具還能自動(dòng)扣除已經(jīng)有的圖斑,如圖2右下角的一小塊圖斑,工具可以自動(dòng)扣除,省去了手工捕捉的繁瑣工作過程。
圖2 半自動(dòng)區(qū)劃工具運(yùn)行效果Figure 2 Semi-automatic segmentation running effects
因自動(dòng)分割工具并不需要手工勾繪圖斑邊界,因此自動(dòng)分割工具欄按鈕要比輔助判讀工具欄界面簡潔,自動(dòng)分割工具欄只有6個(gè)按鈕(如圖1下半部分工具欄)。該工具欄最重要的按鈕是最右邊的遙感影像自動(dòng)分割按鈕,點(diǎn)擊該按鈕后,自動(dòng)分割運(yùn)行界面如圖3所示。自動(dòng)分割時(shí)需要錄入本期、前期遙感影像,通過圖3界面左側(cè)的功能區(qū)進(jìn)行數(shù)據(jù)錄入,通過圖3右側(cè)的進(jìn)程監(jiān)控區(qū)域進(jìn)程分割進(jìn)程監(jiān)控。
圖3 自動(dòng)分割工具運(yùn)行效果Figure 3 Automatic segmentation running window
自動(dòng)分割運(yùn)行效果如圖4所示,圖4為云南省昆明市高分1號(hào)遙感影像,遙感影像分辨率為2 m,圖4中左圖為本期變化后的影像,圖4右圖為前期未發(fā)生變化的影像,黃色邊界為自動(dòng)分割獲取的變化區(qū)域。自動(dòng)區(qū)劃能獲取到變化區(qū)域,但是在邊界線方面仍然不是很精細(xì),存在人工進(jìn)一步調(diào)整的必要。
圖4 自動(dòng)分割運(yùn)行效果Figure 4 Automatic segmentation running results
本文設(shè)計(jì)的方法,優(yōu)點(diǎn)是采用多線程技術(shù),提取速度較快,特別是對(duì)變化較為明顯的區(qū)域,效果較好。自動(dòng)和半自動(dòng)勾繪的邊界非常接近專業(yè)人員的勾繪(如圖2所示)。分割算法不僅適用于高分辨率遙感影像,也適應(yīng)于無人機(jī)航拍的高清影像。算法為筆者自行編寫,可以隨時(shí)根據(jù)業(yè)務(wù)需要進(jìn)行定制和更改,可以根據(jù)衛(wèi)星影像情況進(jìn)行優(yōu)化。但是改進(jìn)現(xiàn)有算法對(duì)計(jì)算機(jī)技術(shù)和算法要求很高,需要做很多測(cè)試,筆者在實(shí)現(xiàn)過程中也發(fā)現(xiàn)一些不足的地方,亟待解決,主要體現(xiàn)在以下3個(gè)方面:
(1)細(xì)長型的地物識(shí)別,可能會(huì)存在間斷的問題(如圖5所示)。如在林區(qū)開挖的小路,因路面寬度較小,受樹冠陰影影響較大,可能會(huì)存在間斷的問題,如何對(duì)其改進(jìn)也是技術(shù)上的一大難點(diǎn)。
圖5 難以連續(xù)分割的狹長小路Figure 5 Narrow path that is difficult to be divided
(2)遙感影像質(zhì)量較差時(shí)(如存在云、霧覆蓋)難以自動(dòng)區(qū)劃,需人工輔助區(qū)劃。云霧覆蓋導(dǎo)致的誤判,需要借助深度學(xué)習(xí)才能有所緩解,下一步研究往深度學(xué)習(xí)方向拓展。
(3)兩期影像配準(zhǔn)時(shí)要比較準(zhǔn)確,不能出現(xiàn)同一位置前后兩期影像偏差較大的情況。雖然在研究過程中對(duì)編寫的算法進(jìn)行了一定的偏移容差限制,但同一地物前后兩期遙感影像配準(zhǔn)偏差太大時(shí),容易導(dǎo)致誤判。