本发明公开一种在高分辨率遥感影像中识别建筑物的方法,实现了高精确度的高分辨率遥感影像中提取建筑物的提取,属于遥感影像处理领域。
背景技术:
高分辨率遥感影像可以提供清晰的地物细节信息,为大范围的制图、土地利用变化监测提供有力的数据保障。通过在高分辨率遥感影像中识别建筑物有效监控城市的建筑发展趋势、进行精确的地籍调查、发现违建和违法问题,具有重要的实际应用价值。
当前的技术在遥感影像中识别建筑物的方法主要包括以下几类:一、引入训练数据集,利用传统的支持向量机、神经网技术对影像中的像元进行逐个的分类,由于高分辨率遥感影像具有较高的类内异质性,单一的像元在波段值上较难与其他地物区分,所以此类方法分类精度较低,获得的结果影像通常较为混乱。二、基于视觉特征的词袋模型(bovw)的场景分类方法,此类方法虽然可以获得较高分类精度,但是由于bovw方法属于场景分类,不能逐个像元的对影像进行提取,所以无法精确的定位影像中的建筑。三、是基于深度学习卷积神经网的方法,此类方法虽然效果较好,但是需要远远超过输入遥感影像本身量级的样本来训练深度网络,单纯的对一景影像分类代价十分巨大,而且当新的影像中包含神经网未知的(如屋顶颜色、方向)的建筑时,还需要补充大量样本进行计算。
因此需要引入一种方法,可以基于像元及其领域的异质以及少量训练样本性找到建筑物像元与非建筑物像元的差别,精确的在高分辨率遥感影像中确定建筑物的位置。
技术实现要素:
针对现有技术提出的问题,本发明提出了一种在高分辨率遥感影像中提取建筑物的方法。通过建立位置异质性处理器,可以分析影像中一个位置与另外一个位置在一定邻域范围内的异质性,进而通过建立像元规律性过滤器实现像元关键特征的提取,并基于训练数据对影像中的每一个像元是否隶属于建筑物进行判断,实现高精确度的高分辨率遥感影像中提取建筑物的提取。
本发明所述的一种在高分辨率遥感影像中识别建筑物的方法,包括以下步骤:
s1.输入遥感影像image,该影像包含bandnum个波段,该影像的大小为rownum行,colnum列,指定跨度阈值spannum;输入由samplenum个样本点构成样本集testset;
s101,输入遥感影像image,该影像包含bandnum个波段,该影像的大小为rownum行,colnum列;
s102,指定跨度阈值spannum;跨度阈值的取值区间为[5,10],默认值为5;
s103,在影像上选取samplenum个样本点构成样本集testset;
testset为一个samplenum个样本集合{p1,p2,p3,..psamplenum},对于其中任意一个样本pi其内容为pi={hs,ls,lable,character},其中hs表示pi在影像中所处行,ls表示pi在影像上所在处列,label的值为1或者-1,其中1表示pi所在位置为建筑物,-1表示pi所在位置为非建筑物,样本规律性特征character为4个元素的数组;
s2.建立影像位置异质性处理器heterooperator;heterooperator需要输入两个位置点px1和px2,输出为异质性差值heterodifference;
s201,建立影像位置异质性处理器heterooperator;heterooperator的输入为两个位置点px1和px2;
px1的内容为px1={hs1,ls1},其中hs1表示px1在影像中所处的行,ls1表示px1在在影像中所处的列,px1的内容为px1={hs1,ls1},其中hs1表示px1在影像中所处的行,ls1表示px1在在影像中所处的列;
s202,设置异质性差值heterodifference=0;
s203,设置行暂存变量counteri=0;
s204,设置列暂存变量counterj=0;
s205,取出image上(行为hs1-2+counteri,列为ls1-2+counterj)的像元,并存储在变量pixel1中;
s206,取出image上(行为hs2-2+counteri,列为ls2-2+counterj)的像元,并存储在变量pixel2中;
s207,计算pixel1与pixel2的差距diff,计算公式如下:
s208,计算heterodifference=heterodifference+diff;
s209,计算counterj=counterj+1;
s210,如果counterj<(spannum/2)则转到s205,否则转到s211;
s211,计算counteri=counteri+1;
s212,如果counteri<(spannum/2)则转到s204,否则转到s213;
s213,计算heterodifference=tanh(heterodifference);
s214,输出异质性差值heterodifference;
s3,构建影像像元规律性过滤器filter,filter的输入为一个位置点pixelfilter,输出为该位置的规律性数组regular:
s301,构建影像像元规律性过滤器filter,filter的输入为一个位置点pixelfilter;
pixelfilter的内容为pixelfilter={hsp,lsp},其中hsp表示pixelfilter在影像中所处的行,lsp表示pixelfilter在影像中所处的列;
s302,计算过滤范围参数filterscope=round(spannum/4+0.5);
其中round为进行四舍五入;
s303,构建模板数组一mask1=[-filterscope,-filterscope,filterscope,filterscope],模板数组二mask2=[-filterscope,filterscope,-filterscope,filterscope];
mask1和mask2为数组,两个数组均包含4个元素,数组的下标为从1到4;
s304,构建规律性数组regular=[0,0,0,0];
temp为数组,数组均包含4个元素,数组的下标为从1到4;
s305,循环变量counterp=1;
s306,建立px2变量,px2的hs2=hsp,px2的ls2=lsp;
s307,建立px1变量,px1的hs1=hsp+spannum×mask1[counterp],px1的ls1=lsp+spannum×mask2[counterp];
其中mask1[counterp]表示mask1的第counterp个元素,mask2[counterp]表示mask2的第counterp个元素;
s308,输入px1和px2,执行影像位置异质性处理器heterooperator,获得heterodifference;
s309,regular[counterp]=heterodifference;
其中regular[counterp]表示regular的第counterp个元素;
s310,counterp=counter+1;
s311,如果counterp<=4则转到s306,否则转到s312;
s312,输出regular;
s4,通过filter处理testset的所有元素;
testset中每一个样本通过filter的处理获得规律性特征character;
s401,取出testset中的一个元素pi={hs,ls,lable,character};
s402,建立变量pixelfilter,pixelfilter的hsp=hs,pixelfilter的lsp=ls;
s403,输入pixelfilter,执行filter,获得regular;
s404,pi的character=regular;
s5,构建结果影像resultimage,resultimage的行数与列数与image相同;
通过filter处理image中的所有像元,并与testset的样本进行比较,获得是否为建筑物的判断结果;根据判断结果设定resultimage中像元的颜色,白色对应建筑,黑色对应非建筑;
s501,取出image中的每一个像元,像元其位置所在行为hsc,所在列为lsc;
s502,建立变量pixelfilter,pixelfilter的hsp=hsc,pixelfilter的lsp=lsc;
s503,输入pixelfilter,执行filter,获得regular;
s504,样本计数器counters=1,统计值sums=0;
s505,取出testset中的第counters个样本,获得该样本的label和character;
s506,计算带下标距离labeldiff:
s507,sums=sums+labeldiff;
s508,counters=counters+1;
s509,如果counters<=samplenum则转到s505,否则转到s510;
s510,如果sums>0则转到s511,否则转到s512;
s511,将resultimage上行为hsc列为lsc的像元标记为黑色,转到s513;
s512,将resultimage上行为hsc列为lsc的像元标记为白色;
s513,处理过程结束。
本发明的有益效果如下:
针对现有技术提出的问题,本发明提出了一种在高分辨率遥感影像中提取建筑物的方法。通过建立位置异质性处理器,可以分析影像中一个位置与另外一个位置在一定邻域范围内的异质性,进而通过建立像元规律性过滤器实现像元关键特征的提取,并基于训练数据对影像中的每一个像元是否隶属于建筑物进行判断,实现高精确度的高分辨率遥感影像中提取建筑物的提取。通过本发明专利,可以遥感影像分辨率较高的情况下,输入一个包含建筑物和非建筑物样本集,就可以实现高精度的建筑物提取。
附图说明
图1为本发明实施例1输入遥感测试用影像图;
图2为本发明实施例1测试用影像和两个测试位置图;
图3为实施例1本发明方法计算结果图;
图4为本发明实施例2输入测试用影像图;
图5为本发明实施例2测试用影像和两个测试位置图;
图6为实施例2本发明方法计算结果图。
具体实施方式
通过以下实施例描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅仅是举例说明,本发明的保护范围是由所附权利要求书限定的,本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,这些变更和修改均落入本发明的保护范围。
实施例1
1、在算法的第一步,输入一个遥感测试用影像,其输入影像如图1所示:
对于该影像其参数如下:
遥感影像image;
包含波段bandnum=4(红、绿、蓝、近红外);
跨度阈值spannum=5;
rownum=1500;
colnum=1150;
samplenum=10;
该影像对应的样本集testset,包含以下内容:
p1={171,101,1,[0,0,0,0]};
p2={308,382,1,[0,0,0,0]};
p3={100,602,1,[0,0,0,0]};
p4={162,721,1,[0,0,0,0]};
p5={520,910,1,[0,0,0,0]};
p6={532,190,-1,[0,0,0,0]};
p7={610,120,-1,[0,0,0,0]};
p8={630,710,-1,[0,0,0,0]};
p9={950,98,-1,[0,0,0,0]};
p10={1308,882,-1,[0,0,0,0]};
2、第二步获得了影像位置异质性处理器heterooperator;
第三步,获得了像元规律性过滤器filter;
在第四步,通过filter处理testset的所有元素,testset的的每一个元素的character部分发生变化:
样本集testset的内容:
p1={171,101,1,[0.21,0.43,0.032,0.34]};
p2={308,382,1,[0.26,0.22,0.34,0.22]};
p3={100,602,1,[0.35,0.13,0.14,0.23]};
p4={162,721,1,[0.034,0.23,0.13,0.37]};
p5={520,910,1,[0.22,0.23,0.21,0.34]};
p6={532,190,-1,[0.91,0.72,0.002,0.22]};
p7={610,120,-1,[0.001,0.002,0.013,0.023]};
p8={630,710,-1,[0.003,0.004,0.004,0.003]};
p9={950,98,-1,[0.002,0.006,0.043,0.001]};
p10={1308,882,-1,[0.03,0.05,0.02,0.07]};
3、在算法的第五步,以两个位置像元为例进行计算:参见图2的测试用影像和两个测试位置图;
对于测试位置1:
像元经过filter的计算结果[0.33,0.31,0.37,0.35],第五步sum的计算结果小于0,算法将该像元标记为白色;
对于测试位置2:
像元经过filter的计算结果[0.03,0.021,0.015,0.003],第五步sum的计算结果大于0,算法将该像元标记为黑色;
4、在算法的第五步,遥感影像中每一个像元都计算之后,获得的结果影像resultimage的结果如图3所示;
结论:对比图1、图3可以看出本发明提供的方法成功对遥感影像中的建筑物进行了识别。
实施例2:
1、在算法的第一步,输入一个遥感影像,其输入影像如图1所示:
遥感影像image;
包含波段bandnum=3(红、绿、蓝);
跨度阈值spannum=5;
rownum=600;
colnum=600;
samplenum=6;
该影像对应的样本集testset,包含以下内容:
p1={31,436,1,[0,0,0,0]};
p2={261,262,1,[0,0,0,0]};
p3={447,34,1,[0,0,0,0]};
p4={380,420,-1,[0,0,0,0]};
p5={407,207,-1,[0,0,0,0]};
p6={473,544,-1,[0,0,0,0]};
2、第二步获得了影像位置异质性处理器heterooperator;
第三步,获得了像元规律性过滤器filter;
第四步,通过filter处理testset的所有元素,testset的内容变为如下结果:
样本集testset的内容:
p1={31,436,1,[0.21,0.35,0.33,0.27]};
p2={261,262,1,[0.35,0.21,0.25,0.34]};
p3={447,34,1,[0.37,0.54,0.22,0.27]};
p4={380,420,-1,[0.02,0.031,0.045,0.007]};
p5={407,207,-1,[0.23,0.004,0.034,0.041]};
p6={473,544,-1,[0.03,0.201,0.074,0.034]};
3、第五步,以两个位置像元为例进行计算:参见图5的测试用影像和两个测试位置图;
对于测试位置1:
像元经过filter的计算结果[0.25,0.317,0.421,0.206],第五步sum的计算结果小于0,算法将该像元标记为白色;
对于测试位置2:
像元经过filter的计算结果[0.07,0.092,0.102,0.032],第五步sum的计算结果大于0,算法将该像元标记为黑色;
4、第五步,遥感影像中每一个像元都计算之后,获得的结果影像resultimage的结果如图6所示:
结论:对比图4、图6可以看出本发明提供的方法成功对遥感影像中的建筑物进行了识别。