一种基于虚拟遥感影像的建筑高度智能识别方法

文档序号:30749777发布日期:2022-07-13 08:38阅读:133来源:国知局
一种基于虚拟遥感影像的建筑高度智能识别方法

1.本发明涉及遥感影像应用技术领域,更具体地,涉及一种基于虚拟遥感影像的建筑高度智能识别方法。


背景技术:

2.建筑物高度信息提取是遥感技术的一个重要应用,根据遥感数据的来源可以划分为光学遥感影像、激光探测及测距系统、合成孔径雷达等方法,其中光学遥感影像具有成本低、操作简便的优点。利用单张光学遥感影像测量建筑高度的主要几何原理是如图1所示,用建筑的影子长度乘以太阳高度角(h
so
)的正切值;或者用能反映高度的建筑边缘在影像中的长度乘以卫星高度角(h
sa
)的正切值。这种利用建筑阴影测量建筑高度的方法,一般流程是首先从图像中分离出建筑阴影,然后推算太阳高度角、方位角,最后根据阴影长度计算出建筑高度。现有利用建筑阴影提取建筑高度的方法,其识别的精度依赖于图像的分辨率、高度角、阴影和建筑是否重叠等因素。如果太阳高度角太大以至于阴影长度不可测量,那么将无法利用阴影长度测量建筑高度,同理,如果卫星高度角太大也会导致无法利用建筑的边缘长度信息。另外,在提取阴影的过程中需要调试各类参数以达到最好的提取效果,这些参数有可能依赖于调试所采用的图像而不具有好的泛化性。并且这类方法较为依赖人工,难以实现大面积的自动化提取信息。
3.近些年被广泛应用于图像识别领域的深层卷积神经网络(cnn)技术,为自动化地从单张遥感图像中提取建筑高度信息提供了可能性,但是训练cnn需要大量的训练集数据,这些训练集图像的建筑高度必须已知,而且如果希望训练得到的cnn能够应用于各种不同太阳和卫星的高度角和方位角的情况的话,训练集图像中的高度角和方位角参数也需要随机变化。虽然一张大面积的光学遥感图像能够包含大量不同高度的建筑图像,但是其高度角和方位角一般是相同的,因此想要根据实际遥感图像数据训练出泛化性能良好、适用于不同角度参数的cnn是很困难的。
4.因此,开发一种建筑高度智能识别的方法以克服cnn从单张光学遥感图像提取建筑高度信息时缺乏高度角和方位角变化的建筑图像训练集的困难是一个亟待解决的技术问题。


技术实现要素:

5.由于现有技术存在上述缺陷,本发明提供了一种基于虚拟遥感影像的建筑高度智能识别方法,以克服cnn从单张光学遥感图像提取建筑高度信息时缺乏高度角和方位角变化的建筑图像训练集的困难。
6.为实现上述目的,一方面,本发明提供一种基于虚拟遥感影像的建筑高度智能识别方法,其特征在于,包括以下步骤:
7.s1、当遥感影像中的方位角和高度角未知时,推算遥感图像的方位角和高度角;包括以下具体流程:
8.s11、估计太阳和卫星方位角:找出合适的阴影线段和建筑边缘线段分别反推太阳和卫星方位角;
9.s12、估计太阳高度角h
so
:当影像拍摄日期和建筑经纬度确定时,当天的任意时刻的太阳高度角和方位角是已知的,由于一天之内太阳方位角是惟一的,根据步骤s11已经得到的太阳方位角可以查出对应的太阳高度角h
so

10.s13、估计卫星高度角h
sa
:建筑高度h=l
ob tan(h
sa
),其中l
ob
为建筑阴影长度,然后卫星高度角的正切值即为tan(h
sa
)=h/l
ob
,从而得到了卫星高度角;
11.s14、估计一张卫星图像中其他建筑的建筑高度:由于步骤s12和s13已经得到卫星高度角和太阳高度角,根据建筑阴影长度l
ob
或者建筑转角边长度l
oa
可推算其他建筑的高度;
12.s2、生成随机参数的建筑轮廓;
13.建立建筑模型时,先采用一种算法随机生成一个建筑轮廓,然后随机生成建筑高度,从而得到一个随机的建筑三维模型;所述算法生成具有以下特点的建筑轮廓:特点1:轮廓构成一个单连通多边形区域;特点2:具有类似矩形的长短轴;特点3:轮廓每条边与边之间的角度均为90
°

14.s3、生成虚拟卫星遥感影像;
15.首先建立建筑、建筑周围的环境、光照等模型,然后用摄像头模拟卫星的位置进行拍照截图,输出正交投影的图片,再对截图以地面为参考坐标系进行投影变换,得到虚拟遥感影像;将所述虚拟遥感影像进行旋转使太阳方位角调整到45
°
得到分辨率为0.4米的第一灰度图片,再将所述虚拟遥感影像进行旋转使卫星方位角调整到45
°
得到分辨率为0.4米的第二灰度图片;
16.s4、训练卷积神经网络;
17.卷积神经网络输入层的信息包括:用于提取建筑阴影信息的所述第一灰度图片、用于提取建筑边缘信息的所述第二灰度图片以及太阳高度角和卫星高度角信息;所述卷积神经网络卷积层的卷积核大小为3
×
3,通过卷积-激活-池化逐步提取图像中的特征信息,图像的尺寸大小会逐渐减小,深度信息会逐渐增加;采用小批次梯度下降法进行训练,每个批次包含20张图像。每次生成信息的图像训练集包含1000张图像,800张图像用于作为训练集,剩下200张用于作为验证集。每批训练集训练10轮也即400个批次,训练完10轮之后返回步骤s3更新训练集和验证集,生成新的1000张图像,再进行训练10轮,一直循环直至训练集的均方根误差趋于稳定停止;
18.s5、自动化提取建筑高度信息;
19.将卫星遥感影像按照要求输入到步骤s4已经训练好的的卷积神经网络中,就可以自动化地对图像进行处理,并提取出建筑高度。
20.优选地,所述步骤s14中采用建筑阴影长度还是建筑本身边缘长度推算其他建筑的高度取决于哪个长度更易测量。
21.优选地,所述步骤s2和s3中建立建筑模型的算法可通过3d游戏引擎unity3d来实现。
22.优选地,所述步骤s2中随机生成一个建筑轮廓的算法包括以下步骤:
23.s21、随机生成一个半径为r的圆,作为目标轮廓的大致外接圆,所述半径是表征轮
廓大致大小的参数,半径的范围是可以设置的参数,取决于要识别的建筑的轮廓的大小范围;
24.s22、随机生成一个圆的内接矩形;随机选择短长轴比值η,η是一个随机变量,数值介于0与1之间,得到一个步骤s21生成的圆的内接矩形,所述矩形的长为a,宽为b;
25.s23、对矩形的长短边进行分段:随机生成一个正整数n
l
≤5,作为长边的分段数量,然后定义长度l1=a/n
l
,l2=a/(n
l-1),按照随机数均匀分布的区间(l1,l2),对5个小段长边进行分段;同理,按照短边分段数量ns=[n
l b/a],其中[
·
]为向上取整函数;
[0026]
s24、每个分段进行上下随机移动,移动距离取随机数0.5
·
(0,b/ns),使分段发生移动是为了使建筑轮廓在矩形的基础上具有一定的随机调整;
[0027]
s25、最后将轮廓随机旋转0-360
°

[0028]
优选地,所述步骤s3中的投影变换用matlab中的fitgeotrans函数进行处理。
[0029]
优选地,所述生成虚拟影像过程中采用的随机参数包括:
[0030]
1)建筑模型:建筑轮廓的半径r∈[5,30]米,随机生成建筑高度h∈[5,50]米,都是均匀分布;
[0031]
2)纹理:建筑的每个外表面和地面的纹理都是采用perlin噪声生成的,perlin噪声的尺度大小对于不同面是不相同且随机变化的;
[0032]
3)卫星方位角:卫星方位角实际对应摄像机的拍摄角度,拍摄角度的范围大小为[45,75]
°
,当角度为90
°
时即为俯视的角度;
[0033]
4)太阳方位角:设置的光照为平行光照,角度范围为[30,75]
°

[0034]
5)地形:地形的高低起伏范围为[0,2]m,也是用perlin噪声随机生成;
[0035]
6)建筑环境:随机设置了一些树木来考虑实际中建筑阴影可能被一定程度上遮挡的情况;
[0036]
7)环境光:环境光的强度每次随机生成,如果环境光强度为0意味着建筑背光面完全处于黑暗状态,就相当于没有漫反射,如果环境光强度为1,意味着为白色;
[0037]
8)从所述截图到0.4米分辨率的灰度图片处理过程中,设置了σ∈[0,1]的高斯滤波和γ∈[0.3,2]的伽马校正。
[0038]
优选地,所述第一灰度图片和第二灰度图片的大小为224
×
224
×
1像素。
[0039]
优选地,所述第一灰度图片和第二灰度图片在所述卷积层中进行5次循环,各次循环中的卷积层得到的图像的通道数量分别为32、64、128、256、512,各次循环池化后得到的图像的尺寸分别为112
×
112、56
×
56、28
×
28、14
×
14、7
×
7像素,然后通过全局均值池化得到1
×1×
512的特征信息;将得到的建筑阴影的特征信息和建筑边缘的特征信息分别按照太阳高度角和卫星高度角进行高度角矫正,也就是将512个数值乘以高度角的正切值tan(h);假如512中包含建筑阴影长度,那么乘以tan(h)之后便得到建筑高度;将特征信息连接起来得到1024个特征信息值,再进行两层全连接层加截断的激活层,所述激活层的截断值为50;最后一层是以平方和为损失函数的回归层。
[0040]
与现有技术相比,上述发明具有如下优点或者有益效果:
[0041]
(1)可以生成大量的随机参数(包括太阳高度角、卫星高度角、建筑高度)的等各种参数随机的虚拟遥感图像,不需要人工收集真实卫星图像数据集;
[0042]
(2)训练得到cnn具有良好的泛化性能,提高了自动化能力。对于不同来源的具有
不同色彩、对比度、光照强度特点的影像,不需要像传统的建筑阴影提取的方法进行人工调整参数;
[0043]
(3)训练得到的cnn能够综合利用建筑阴影、建筑边缘等信息进行建筑高度信息提取,而不是单一利用某一种信息进行高度测量,因此提高了识别精度;
[0044]
(4)采用一边生成训练集虚拟图像、一边训练cnn的策略进一步提高了cnn的训练效率;
[0045]
(5)cnn提取建筑高度信息时无需人工干预,极大地提高了提取过程的自动化程度和效率。
[0046]
本发明公开了一种基于虚拟遥感影像的建筑高度智能识别方法,包括推算遥感图像的方位角和高度角、生成随机参数的建筑轮廓、生成虚拟卫星遥感影像、训练卷积神经网络、自动化提取建筑高度信息等五个交替运行的步骤。本发明的识别方法可以生成大量的参数随机的虚拟遥感图像,训练得到的卷积神经网络具有良好的泛化性能和自动化能力,能够综合利用建筑阴影、建筑边缘等信息进行建筑高度信息提取,提高了识别精度;采用一边生成训练集虚拟图像、一边训练卷积神经网络的策略进一步提高了卷积神经网络的训练效率。
附图说明
[0047]
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未可以按照比例绘制附图,重点在于示出本发明的主旨。
[0048]
图1为从单张光学遥感影像中测量建筑高度的几何原理图;
[0049]
图2为太阳方位角和卫星方位角的示意图;
[0050]
图3为本发明实施例中生成随机参数的建筑轮廓步骤中随机轮廓算法的流程图;
[0051]
图4为本发明实施例中采用的卷积神经网络的结构图;
[0052]
图5为本发明实施例中随机生成的建筑轮廓图;
[0053]
图6为本发明实施例中卷积神经网络的训练进度图和测试结果;
[0054]
图7为本发明实施例中训练集建筑高度提取结果示例图;
[0055]
图8为本发明实施例中cnn预测高度、人工测量高度与准确高度对比图。
具体实施方式
[0056]
下面结合附图和具体的实施例对本发明中的结构作进一步的说明,但是不作为本发明的限定。
[0057]
实施例
[0058]
采用一种基于虚拟遥感影像的方法来智能识别建筑高度,包括以下步骤:
[0059]
s1、当遥感影像中的方位角和高度角未知时,推算遥感图像的方位角和高度角;包括以下具体流程:
[0060]
s11、估计太阳和卫星方位角:如图2所示,找出合适的阴影线段和建筑边缘线段分别反推太阳和卫星方位角;
[0061]
s12、估计太阳高度角h
so
:当影像拍摄日期和建筑经纬度确定时,当天的任意时刻
的太阳高度角和方位角是已知的,由于一天之内太阳方位角是惟一的,根据步骤s11已经得到的太阳方位角可以查出对应的太阳高度角h
so

[0062]
s13、估计卫星高度角h
sa
:建筑高度h=l
ob tan(h
sa
),其中l
ob
为建筑阴影长度,然后卫星高度角的正切值即为tan(h
sa
)=h/l
ob
,从而得到了卫星高度角;
[0063]
s14、估计一张卫星图像中其他建筑的建筑高度:由于步骤s12和s13已经得到卫星高度角和太阳高度角,根据建筑阴影长度l
ob
或者建筑转角边长度l
oa
可推算其他建筑的高度,采用哪一个公式取决于建筑阴影和建筑本身边缘的长度哪个更容易测量;
[0064]
s2、生成随机参数的建筑轮廓;
[0065]
使用unity3d建立建筑模型时,先采用一种算法随机生成一个建筑轮廓,然后随机生成建筑高度,从而得到一个随机的建筑三维模型;所述算法生成具有以下特点的建筑轮廓:特点1:轮廓构成一个单连通多边形区域;特点2:具有类似矩形的长短轴;特点3:轮廓每条边与边之间的角度均为90
°
;图3为生成随机参数的建筑轮廓步骤中随机轮廓算法的流程图,对应下面几个步骤:
[0066]
1)随机生成一个半径为r的圆,作为目标轮廓的大致外接圆,此半径是表征轮廓大致大小的参数,半径的范围是可以设置的参数,取决于要识别的建筑的轮廓的大小范围;
[0067]
2)随机生成一个圆的内接矩形。随机选择短长轴比值η(η是一个随机变量,概率密度函数为0-1斜线,即η接近1的概率大于接近0的概率),从而得到一个第一步中的圆的内接矩形(长为a,宽为b);
[0068]
3)对矩形的长短边进行分段:随机生成一个正整数n
l
≤5,作为长边的分段数量,然后定义长度l1=a/n
l
,l2=a/(n
l-1),按照随机数均匀分布的区间(l1,l2),对5个小段长边进行分段;同理,按照短边分段数量ns=[n
l b/a],[
·
]为向上取整函数;
[0069]
4)每个分段进行上下随机移动,移动距离取随机数0.5
·
(0,b/ns)(概率密度函数为1-0斜线分布,即线段分段移动距离越大,发生的概率越小),使分段发生移动是为了使建筑轮廓在矩形的基础上具有一定的随机调整;
[0070]
5)最后将轮廓随机旋转0-360
°

[0071]
s3、生成虚拟卫星遥感影像;
[0072]
首先建立建筑、建筑周围的环境、光照等模型,然后用摄像头模拟卫星的位置进行拍照截图,输出正交投影的图片,再对截图以地面为参考坐标系进行投影变换,得到虚拟遥感影像;所述投影变换用matlab中的fitgeotrans函数进行处理。将所述虚拟遥感影像进行旋转使太阳方位角调整到45
°
得到分辨率为0.4米的第一灰度图片,再将所述虚拟遥感影像进行旋转使卫星方位角调整到45
°
得到分辨率为0.4米的第二灰度图片;所述生成虚拟影像过程中采用的随机参数包括:
[0073]
1)建筑模型:建筑轮廓的半径r∈[5,30]米,随机生成建筑高度h∈[5,50]米,都是均匀分布;
[0074]
2)纹理:建筑的每个外表面和地面的纹理都是采用perlin噪声生成的,perlin噪声的尺度大小对于不同面是不相同且随机变化的;
[0075]
3)卫星方位角:卫星方位角实际对应摄像机的拍摄角度,拍摄角度的范围大小为[45,75]
°
,当角度为90
°
时即为俯视的角度;
[0076]
4)太阳方位角:设置的光照为平行光照,角度范围为[30,75]
°

[0077]
5)地形:地形的高低起伏范围为[0,2]m,也是用perlin噪声随机生成;
[0078]
6)建筑环境:随机设置了一些树木来考虑实际中建筑阴影可能被一定程度上遮挡的情况;
[0079]
7)环境光:环境光的强度每次随机生成,如果环境光强度为0意味着建筑背光面完全处于黑暗状态,就相当于没有漫反射,如果环境光强度为1,意味着为白色;
[0080]
8)从所述截图到0.4米分辨率的灰度图片处理过程中,设置了σ∈[0,1]的高斯滤波和γ∈[0.3,2]的伽马校正。
[0081]
s4、训练卷积神经网络;
[0082]
本实施例用来提取建筑高度信息的cnn结构如图4所示,输入的遥感影像需要知道太阳方位角和高度角、卫星方位角和高度角,如果这些角度参数不确定的话,可以根据步骤s1中的方法利用影像拍摄日期和经纬度估计出来。卷积神经网络输入层的信息包括:用于提取建筑阴影信息的所述第一灰度图片、用于提取建筑边缘信息的所述第二灰度图片以及太阳高度角和卫星高度角信息;所述第一灰度图片和第二灰度图片的大小为224
×
224
×
1像素。所述卷积神经网络卷积层的卷积核大小为3
×
3,通过卷积-激活-池化逐步提取图像中的特征信息,图像的尺寸大小会逐渐减小,深度信息会逐渐增加;图4中虚线框进行5次循环,各次循环中的卷积层得到的图像的通道数量分别为32、64、128、256、512,各次循环池化后得到的图像的尺寸分别为112
×
112、56
×
56、28
×
28、14
×
14、7
×
7像素,然后通过全局均值池化得到1
×1×
512的特征信息。左边得到的是建筑阴影的特征信息,右边得到的是建筑边缘的特征信息,然后分别按照太阳高度角和卫星高度角进行高度角矫正,也就是将512个数值乘以高度角的正切值tan(h),这样,假如512中包含建筑阴影长度,那么乘以tan(h)之后便得到建筑高度。将左右特征信息连接起来得到1024个特征信息值,再进行两层全连接层加截断的激活层(截断值为50,也就是说得到的高度值不超过50m),最后一层是以平方和为损失函数的回归层。整个cnn可以在matlab中的深度学习工具箱实现。
[0083]
因为训练集是利用unity3d生成的,理论上可以有无穷多的训练集,所以这里cnn的训练策略采用一边生成图像、一边训练的方法,而不是先生成一定量的训练集图片,然后统一训练。这样相当于每批训练集训练若干轮次之后,就会进行更新、生成新的训练集。
[0084]
采用小批次梯度下降法进行训练,每个批次包含20张图像。每次生成信息的图像训练集包含1000张图像,800张图像用于作为训练集,剩下200张用于作为验证集。每批训练集训练10轮也即400个批次,训练完10轮之后返回步骤s3更新训练集和验证集,生成新的1000张图像,再进行训练10轮,一直循环直至训练集的均方根误差趋于稳定停止;
[0085]
s5、自动化提取建筑高度信息;
[0086]
将卫星遥感影像按照要求输入到步骤s4已经训练好的的卷积神经网络中,就可以自动化地对图像进行处理,并提取出建筑高度。
[0087]
图5为步骤s2中算法生成的15个随机建筑轮廓的示例,可见该算法能够在矩形轮廓的基础上生成更具随机性的建筑轮廓。
[0088]
图6给出了125批训练集图像的训练进度,相当于一共使用了125
×
800万张图像进行训练,每张图像训练了10次。训练集误差最终下降到了3.5m左右,训练集的均方根误差理论上来说是无法下降到0的,因为训练集图像的分辨率是有限的,而且还有一些极端的情况,比如阴影被完全遮蔽、环境光很暗导致无法区分建筑背光面和阴影等情况,所以图6中
训练集均方根误差只有相对上的意义,可以用来观察cnn的训练进度。图6中训练集和验证集之间的差别是由于cnn针对训练集训练了10轮。图7为随机选取的100张训练集图像中cnn识别高度误差最大的10张图像,图片上方标出了绝对值误差的大小,id为该图片在100张图像中的排序。可以发现id为65、32、83这三张图像环境光强度太低导致阴影和背光面很难区分,而剩下的10张图像的或卫星高度角较高、或阴影被遮挡等导致识别的精度较低。
[0089]
本实施例选取纽约的若干建筑测试cnn提取真实遥感影像的性能。纽约地区大部分建筑的高度数据可以从nyc open data,building footprints网站中查到,在测试集中被认为是建筑的精确高度。每个建筑的遥感影像从google earth历史影像中选出较为清晰的,其卫星高度角和太阳高度角是未知的,因此按照步骤s1中的方法利用拍摄日期和经纬度进行估计。
[0090]
选取建筑的主要原则包括:
[0091]
1)建筑轮廓的大小符合r∈[5,30]米,建筑高度h∈[5,50]米;
[0092]
2)建筑的轮廓形状近似为矩形;
[0093]
3)卫星高度角在[45,75]
°
范围内,太阳高度角在[30,75]
°
范围内;
[0094]
4)建筑周围尽量没有其他建筑,因为目前采用前面的方法生成的虚拟遥感影像没有考虑周围有其他建筑物干扰的情况。
[0095]
按照上面的规则,这里选择了185张图像对训练好的cnn进行测试,如图8所示,总的均方根误差(rmse)随着训练进度的变化而减小,最终的均方根误差能够减小到6m左右。测试集中的每张图像的真实建筑高度与cnn预测高度对比图显示cnn的预测结果主要是随机误差,没有大的系统偏移误差。
[0096]
本领域技术人员应该理解,本领域技术人员在结合现有技术以及上述实施例可以实现变化例,在此不做赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
[0097]
以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1