本發(fā)明涉及邊界提取方法,特別涉及一種遙感影像像元及其鄰域一維過濾器的邊界提取方法。
背景技術(shù):
譜遙感影像記錄了地表一定區(qū)域范圍內(nèi)地物的光譜信息,通過邊界提取算法可以自動的獲得該遙感影像中地物之間的邊界;這些邊界對于分析遙感影像中的地物特征、獲得建筑物和植被的分布情況、構(gòu)造矢量化數(shù)字地圖十分重要,因此遙感影像的邊界提取廣泛的應(yīng)用于遙感解譯、土地利用類型變化、農(nóng)業(yè)與環(huán)境監(jiān)測領(lǐng)域,具有較高的實用價值。
目前感影像邊界提取主要采用的方法是:通過一個濾波器算法對一定卷積窗口范圍內(nèi)的遙感影像的像元進(jìn)行計算并獲得一個結(jié)果,如果這個結(jié)果高于一定閾值標(biāo)記為邊界,反之標(biāo)記為非邊界。當(dāng)前的方法主要存在的問題是:第一,閾值較難選擇,閾值取值較大那么會引起過多的邊界像元被忽略掉,閾值取值較小會引起遙感影像上大量本身不是邊界的像元被標(biāo)記為邊界。第二,一幅遙感影像中包含的地物眾多,用戶通常不是想提取出所有的邊界,而是根據(jù)應(yīng)用的需要提取特定一組地物之間的邊界信息,而現(xiàn)有的算法是全局性的將整個影像中所有可能的邊界均提取出來,很多邊界信息用戶根本就不需要,使用者需將提取的結(jié)果與原遙感影像進(jìn)行人工逐個位置比對進(jìn)行刪改,工作量較大。
因此需要一種方法,通過用戶輸入的一組邊界和非邊界樣本,在不需要輸入閾值的情況下識別用戶到底需要哪些特征的邊界并建立對應(yīng)的模型,提取出用戶真正需要的地物邊界信息。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是為了解決閾值選擇不準(zhǔn)確以及提取多余的邊界造成工作量大的問題,而提出的一種遙感影像像元及其鄰域一維過濾器的邊界提取方法。
上述的發(fā)明目的是通過以下技術(shù)方案實現(xiàn)的:
步驟一、輸入遙感影像InputMap,在該遙感影像上選取n個處在邊界上的像元和n個不處在邊界上的像元,根據(jù)n個處在邊界上的像元和n個不處在邊界上的像元構(gòu)造樣本位置集positionSet;
步驟二、構(gòu)造鄰域一維過濾器neighborFilter;
步驟三、通過鄰域一維過濾器neighborFilter過濾樣本位置集positionSet的位置樣本獲得訓(xùn)練樣本集simpleSet;
步驟四、利用神經(jīng)網(wǎng)算法學(xué)習(xí)訓(xùn)練樣本集simpleSet中的每一個訓(xùn)練樣本sample,獲得神經(jīng)網(wǎng)預(yù)測模型model;
步驟五、通過鄰域一維過濾器neighborFilter和神經(jīng)網(wǎng)預(yù)測模型model對輸入遙感影像InputMap的所有像元進(jìn)行處理,輸出邊界提取結(jié)果。
發(fā)明效果
針對現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種基于樣本與鄰域一維過濾器的遙感影像邊界提取方法。通過該方法可以通過用戶輸入的一組邊界和非邊界樣本,在不需要輸入閾值的情況下識別用戶到底需要哪些特征的邊界并建立對應(yīng)的模型,提取出用戶真正需要的地物邊界信息(如圖7~9)。
本發(fā)明提供一種基于樣本與鄰域一維過濾器的遙感影像邊界提取方法。通過該方法可以通過用戶輸入的一組邊界和非邊界樣本,在不需要輸入閾值的情況下識別用戶到底需要哪些特征的邊界并建立對應(yīng)的模型,提取出用戶真正需要的地物邊界信息。通過本方法可以獲得較高質(zhì)量的地物邊界信息,廣泛的應(yīng)用于遙感解譯、土地利用類型變化、農(nóng)業(yè)與環(huán)境監(jiān)測領(lǐng)域,具有較高的應(yīng)用價值。
附圖說明
圖1為具體實施方式一提出的一種遙感影像像元及其鄰域一維過濾器的邊界提取方法流程圖;
圖2為具體實施方式一提出的構(gòu)造樣本位置集positionSet過程圖;
圖3為具體實施方式四提出的構(gòu)造鄰域一維過濾器neighborFilter過程圖;
圖4為具體實施方式八提出的獲得訓(xùn)練樣本集simpleSet具體過程圖;
圖5為具體實施方式九提出的獲得神經(jīng)網(wǎng)預(yù)測模型model流程圖;
圖6為具體實施方式十提出的輸出邊界提取結(jié)果過程圖;
圖7為具體實施方式一提出的加載遙感影像示意圖;
圖8為具體實施方式一提出的在影像上選取處在邊界的像元和不處在邊界的像元示意圖;
圖9為具體實施方式一提出的程序運(yùn)行后獲得的結(jié)果示意圖。
具體實施方式
具體實施方式一:結(jié)合圖1本實施方式的一種遙感影像像元及其鄰域一維過濾器的邊界提取方法,具體是按照以下步驟制備的:
步驟一、輸入遙感影像InputMap,在該遙感影像上選取n個處在邊界上的像元和n個不處在邊界上的像元,根據(jù)n個處在邊界上的像元和n個不處在邊界上的像元構(gòu)造樣本位置集positionSet;
步驟二、構(gòu)造鄰域一維過濾器neighborFilter;
步驟三、通過鄰域一維過濾器neighborFilter過濾樣本位置集positionSet的位置樣本獲得訓(xùn)練樣本集simpleSet;
步驟四、利用神經(jīng)網(wǎng)算法學(xué)習(xí)訓(xùn)練樣本集simpleSet中的每一個訓(xùn)練樣本sample,獲得神經(jīng)網(wǎng)預(yù)測模型model;(simpleSet里面有很多sample,眾多sample經(jīng)過神經(jīng)網(wǎng)算法學(xué)習(xí)才能獲得一個預(yù)測模型)
步驟五、通過鄰域一維過濾器neighborFilter和神經(jīng)網(wǎng)預(yù)測模型model對輸入遙感影像InputMap的所有像元進(jìn)行處理,輸出邊界提取結(jié)果。
本實施方式效果:
針對現(xiàn)有技術(shù)存在的問題,本實施方式提供一種基于樣本與鄰域一維過濾器的遙感影像邊界提取方法。通過該方法可以通過用戶輸入的一組邊界和非邊界樣本,在不需要輸入閾值的情況下識別用戶到底需要哪些特征的邊界并建立對應(yīng)的模型,提取出用戶真正需要的地物邊界信息(如圖7~9)。
本實施方式提供一種基于樣本與鄰域一維過濾器的遙感影像邊界提取方法。通過該方法可以通過用戶輸入的一組邊界和非邊界樣本,在不需要輸入閾值的情況下識別用戶到底需要哪些特征的邊界并建立對應(yīng)的模型,提取出用戶真正需要的地物邊界信息。通過本方法可以獲得較高質(zhì)量的地物邊界信息,廣泛的應(yīng)用于遙感解譯、土地利用類型變化、農(nóng)業(yè)與環(huán)境監(jiān)測領(lǐng)域,具有較高的應(yīng)用價值。
具體實施方式二:本實施方式與具體實施方式一不同的是:步驟一中輸入遙感影像InputMap,在該遙感影像上選取n個處在邊界上的像元和n個不處在邊界上的像元,根據(jù)n個處在邊界上的像元和n個不處在邊界上的像元構(gòu)造樣本位置集positionSet具體過程為如圖2所示:
步驟一一、輸入遙感影像InputMap;
步驟一二、在遙感影像InputMap上人工選取n個處在邊界位置上的像元和n個不處在邊界位置上的像元;將每個像元構(gòu)造為位置樣本positionSimple={x,y,L};其中,位置樣本為一個三元組;x為像元在遙感影像上所處的列數(shù)、y為該像元在遙感影像上所處的行數(shù);L為邊界標(biāo)簽,當(dāng)像元處在邊界時邊界標(biāo)簽L=1,當(dāng)像元不處在邊界位置時邊界標(biāo)簽L=0;
步驟一三、構(gòu)造樣本位置集positionSet,將所有像元對應(yīng)的位置樣本加入到樣本位置集positionSet中。其它步驟及參數(shù)與具體實施方式一相同。
具體實施方式三:本實施方式與具體實施方式一或二不同的是:步驟一中n為20到500之間,默認(rèn)為100個。其它步驟及參數(shù)與具體實施方式一或二相同。
具體實施方式四:本實施方式與具體實施方式一至三之一不同的是:步驟二中構(gòu)造鄰域一維過濾器neighborFilter具體過程為如圖3所示:
步驟二一、建立鄰域一維過濾器neighborFilter,在鄰域一維過濾器中輸入遙感影像上位置為(x,y)的像元;
步驟二二、在遙感影像上以位置(x,y)為中心點(diǎn),在遙感影像上所處的行數(shù)上在中心點(diǎn)的兩邊各取M個像元存入左右鄰域暫存數(shù)組L1之中,在遙感影像上所處的列數(shù)上,中心點(diǎn)上方和下方的Y軸方向上各取M個像元存入上下鄰域暫存數(shù)組L2之中;
步驟二三、建立L1的3鄰域均值數(shù)組meanL1,根據(jù)meanL1建立L1的3鄰域元素標(biāo)準(zhǔn)差數(shù)組stdL1;
其中,meanL1的元素個數(shù)W與L1的元素個數(shù)相同,meanL1的第一個元素和最后一個元素的值設(shè)定為0,stdL1的第一個元素和最后一個元素的值設(shè)定為0;
步驟二四、建立L2的3鄰域均值數(shù)組meanL2,根據(jù)meanL2建立L2的3鄰域元素標(biāo)準(zhǔn)差數(shù)組stdL2,其中,meanL2的元素個數(shù)N與L2的元素個數(shù)相同,meanL2的第一個元素和最后一個元素的值設(shè)定為0;stdL2的第一個元素和最后一個元素的值設(shè)定為0;
步驟二五、將stdL1、meanL1、stdL2和meanL2組合為一個一維特征數(shù)組oneArray;
步驟二六、確定鄰域一維過濾器neighborFilter的輸出為一維特征數(shù)組oneArray。其它步驟及參數(shù)與具體實施方式一至三之一相同。
具體實施方式五:本實施方式與具體實施方式一至四之一不同的是:步驟二二所述M為11到51之間的奇數(shù),默認(rèn)值為11。其它步驟及參數(shù)與具體實施方式一至四之一相同。
具體實施方式六:本實施方式與具體實施方式一至五之一不同的是:步驟二三中meanL1的第二個到倒數(shù)第二個元素的計算公式如下:
其中,meanL1(i)為meanL1的第i個元素,L1(i-1)為L1的第i-1個元素,L1(i)為L1的第i個元素,L1(i+1)為L1的第i+1個元素;
所述stdL1的第二個到倒數(shù)第二個元素的計算公式如下:
其中,stdL1(i)為stdL1的第i個元素,L1(i-1)為L1的i-1個元素,L1(i)為L1的i個元素,L1(i+1)為L1的i+1個元素,meanL1(i)為meanL1的第i個元素。其它步驟及參數(shù)與具體實施方式一至五之一相同。
具體實施方式七:本實施方式與具體實施方式一至六之一不同的是:步驟二四中meanL2的第二個到倒數(shù)第二個元素的計算公式如下:
其中,meanL2(i)為meanL2的第i個元素,L2(i-1)為L2的i-1個元素,L2(i)為L2的i個元素,L2(i+1)為L2的i+1個元素;
所述stdL2的第二個到倒數(shù)第二個元素的計算公式如下:
其中,stdL2(i)為stdL1的第i個元素,L2(i-1)為L2的i-1個元素,L2(i)為L2的i個元素,L2(i+1)為L2的i+1個元素,meanL2(i)為meanL1的第i個元素。其它步驟及參數(shù)與具體實施方式一至六之一相同。
具體實施方式八:本實施方式與具體實施方式一至七之一不同的是:步驟三中通過鄰域一維過濾器neighborFilter過濾樣本位置集positionSet的位置樣本獲得訓(xùn)練樣本集simpleSet具體步驟為如圖4所示:
步驟三一、建立一個空的訓(xùn)練樣本集simpleSet;
步驟三二、設(shè)置樣本計數(shù)器sampleCounter為1;
步驟三三、取出positionSet中的第sampleCounter個元素放到暫存變量EP(temporaryParameter)當(dāng)中;
步驟三四、取出EP當(dāng)中的x和y,將x和y輸入給鄰域一維過濾器neighborFilter中,利用鄰域一維過濾器neighborFilter輸出一維特征數(shù)組oneArray;
步驟三五、建立一個訓(xùn)練樣本sample;其中,sample為一個二元組{input,output},樣本輸入數(shù)據(jù)input的值為oneArray,樣本輸出數(shù)據(jù)output的值為EP的邊界標(biāo)簽L;(樣本的一個變量標(biāo)記,到了sample階段input是一個數(shù)組,output為是否是標(biāo)簽的標(biāo)志)
步驟三六、將sample加入到simpleSet之中,計數(shù)器sampleCounter增加1;
步驟三七、如果增加1后的sampleCounter大于2×n那么轉(zhuǎn)到步驟三八,否則將增加1后的sampleCounter轉(zhuǎn)到步驟三三;
步驟三八、構(gòu)造訓(xùn)練樣本集simpleSet的過程結(jié)束。其它步驟及參數(shù)與具體實施方式一至七之一相同。
具體實施方式九:本實施方式與具體實施方式一至八之一不同的是:步驟四中利用神經(jīng)網(wǎng)算法學(xué)習(xí)訓(xùn)練樣本集simpleSet中的訓(xùn)練樣本sample,獲得神經(jīng)網(wǎng)預(yù)測模型model具體為如圖5:
步驟四一、取出simpleSet中的第一個元素,獲得該元素的輸入數(shù)據(jù)input的長度DL;
步驟四二、建立一個神經(jīng)網(wǎng),其中,神經(jīng)網(wǎng)輸入層包含DL個神經(jīng)元,神經(jīng)網(wǎng)中間層包含5個神經(jīng)元,神經(jīng)網(wǎng)輸出層對應(yīng)1個神經(jīng)元;
步驟四三、通過神經(jīng)網(wǎng)算法學(xué)習(xí)simpleSet中的所有元素,將simpleSet中每個元素的樣本輸入數(shù)據(jù)input作為輸入,將simpleSet中每個元素的輸出數(shù)據(jù)output作為輸出,根據(jù)輸入和輸出建立神經(jīng)網(wǎng)預(yù)測模型model。其它步驟及參數(shù)與具體實施方式一至八之一相同。
具體實施方式十:本實施方式與具體實施方式一至九之一不同的是:步驟五中通過鄰域一維過濾器neighborFilter和神經(jīng)網(wǎng)預(yù)測模型model對輸入遙感影像InputMap的所有像元進(jìn)行處理,輸出邊界提取結(jié)果具體過程為如圖6所示:
步驟五一、獲得輸入遙感影像的寬度width和高度height
步驟五二、建立一個黑色的寬度width和高度height的輸出結(jié)果圖resultMap
步驟五三、像素計數(shù)器pixelCounter置為1;
步驟五四、取出InputMap的第pixelCounter個像元在遙感影像上所處的列數(shù)x、遙感影像在影像上所處的行數(shù)y;
步驟五五、將x和y輸入給鄰域一維卷積過濾器neighborFilter,獲得輸出oneArray
步驟五六、將oneArray輸入給神經(jīng)網(wǎng)預(yù)測模型model,獲得預(yù)測輸出結(jié)果r;
步驟五七、如果r大于0.5那么表示當(dāng)前處理的像元為邊界,那么在結(jié)果圖resultMap的x和y位置標(biāo)記上白色;
步驟五八、像素計數(shù)器pixelCounter增加1;
步驟五九、如果增加1后的pixelCounter大于InputMap的像元個數(shù)那么轉(zhuǎn)到步驟五一十,否則轉(zhuǎn)到步驟五四;
步驟五一十、將resultMap作為邊界提取結(jié)果的輸出,將resultMap圖中白色的部分作為被提取出的輸出邊界提取結(jié)果。其它步驟及參數(shù)與具體實施方式一至九之一相同。