倾斜摄影三维建筑物模型自动单体化算法制造技术

技术编号:15641432 阅读:212 留言:0更新日期:2017-06-16 12:08
本发明专利技术提出了一种倾斜摄影三维建筑物模型自动单体化算法。通过将建筑物数据转换为点云数据,再将点云数据映射到平面网格,根据平面网格中每个网格映射到的点的密度,提取出建筑物轮廓线。将提取出的建筑物轮廓线的顶点信息传入GPU片段着色器里,通过GPU编程,实现轮廓线范围内的建筑物高亮显示,由此实现单体化操作。传统的建筑物轮廓线的获取是通过对倾斜摄影数据人工矢量化方式,其效率低、成本高。本算法实现的建筑物轮廓线的自动获得,效率高,成本低,大幅提高了倾斜摄影数据的应用水平。

【技术实现步骤摘要】
倾斜摄影三维建筑物模型自动单体化算法
本专利技术涉及倾斜摄影数据单体化操作
,具体是指一种实现倾斜摄影三维建筑物模型自动单体化操作的算法。
技术介绍
单体化是相对于倾斜摄影数据特点而言的,指的是我们想要单独管理的一个个对象,且是可以被选中的实体;即用鼠标点击独立的一个对象时可以高亮显示,可以附上属性信息。只有具备了单体化的能力,数据才可以被管理使用,而不仅仅是被用来浏览查看。对于人工建模而言,如3Dmax建的模型,单体化是一件很容易实现的事情。即在人工建模的过程中,自然会把需要单独管理的对象制作为单独的模型,与其它对象分离开。对于倾斜摄影数据而言,它是连续的一张“皮”,所有地物都是连续的整体,不是分隔开来的。其建模机制在于首先从所拍摄的影像像对中生成稠密的点云,然后对点云进行抽稀,再构建三角网,最后贴上贴图。在这个过程中,是没有人工干预的。当前的建模算法并不会把建筑、地面、树木等地物区分出来,因此构建出来的是一个连续的Tin网。对于这样的数据,本身是无法选中单个建筑的,需要进行一定的中间处理才能实现单体化。而对于大多数实际应用而言,是需要能对建筑等地物进行单独的选中、赋予属性、查询属性等基本的GIS操作。因此,单体化成为倾斜摄影模型在GIS应用中绕不过的一个坎,是必须要解决的问题。目前,倾斜摄影数据单体化有3种解决思路。第一种最直观的思路,就是用建筑物、道路、树木等对应的矢量面,对倾斜摄影模型进行切割,即把连续的三角面片网从物理上分割开,从而实现单体化。我们可以称之为“切割单体化”。第二种利用三角面片中每个顶点额外的存储空间,把对应的矢量面的ID值存储起来;即一个建筑所对应的三角面片的所有顶点,都存储了同一个ID值,从而实现在鼠标选中这个建筑时,通过判断ID值,将该建筑物呈现出高亮的效果,这个可以称之为“ID单体化”。第三种是在三维渲染的时候,动态的把对应的矢量面叠加到倾斜摄影模型上,通过间接的方式,矢量面范围内的建筑等物体高亮显示,从而实现可被单独选中的效果,这种由于是渲染时动态呈现的,可以称之为“动态单体化”。本专利技术提出的单体化算法属于动态单体化范畴。目前传统的建筑物矢量底面的获取是通过已有DLG数据进行配准,此方法是最省事的,不过需要有数据基础。还有一种是通过对正射影像进行人工的矢量化方式来获取。自动化提取现在是一种新兴的获取方式,代表着未来的方向。
技术实现思路
本专利技术提出一种倾斜摄影三维建筑物模型自动单体化算法,可以克服传统单体化方式建筑物底面获取的缺陷,提高获取效率。提供自动提取建筑物轮廓线并结合GPU编程实现倾斜摄影数据单体化操作。本专利技术的技术方案是这样实现的:倾斜摄影三维建筑物模型自动单体化算法,其包括以下步骤:S1)从原有的倾斜摄影数据生成出点云数据,对点云数据进行预处理,剔除无效点;S2)将三维点云映射到二维平面;S3)根据点云数据范围建立相应的平面网格,对点云数据平面网格进行快速遍历,计算每个网格的点密度,根据网格的点密度确定网格是否在轮廓线上;S4)从平面网格里提取出建筑物轮廓线;S5)结合GPU的可编程渲染管线,实现将轮廓线范围内的建筑物高亮显示。上述技术方案中,步骤S3)中所述计算每个网格的点密度,具体为:网格大小由最小包围矩形和总点数共同确定,由此计算每个网格的点密度。上述技术方案中,步骤S3)中所述根据网格的点密度确定网格是否在轮廓线上,具体为:给每个网格赋予0或1的的属性,1表示在建筑物轮廓线上,0表示不在建筑物轮廓线上。上述技术方案中,所述步骤S4)具体为:从平面网格根据网格属性依据边界跟踪算法提取出建筑物轮廓线。上述技术方案中,步骤S5)具体包括:将提取出的建筑物轮廓线的节点坐标保存在数组里,并将数组里的元素传入片段shader里,在片段shader里编写着色器程序,判断点是否在多边形内。本专利技术的倾斜摄影三维建筑物模型自动单体化算法,实现了倾斜摄影数据单体化过程中建筑物矢量底面的自动提取,显著提高了倾斜摄影数据建筑物矢量底面的获取速度,降低了人力成本,推动了倾斜摄影数据的应用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1倾斜摄影三维建筑物模型自动单体化算法流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术的倾斜摄影三维建筑物模型自动单体化算法,其包括以下步骤:S1)从原有的倾斜摄影数据生成出点云数据,对点云数据进行预处理,剔除无效点。由于原始倾斜摄影数据包括无效数据,所以进行预处理,先剔除无效数据。S2)将三维点云映射到二维平面;即点P(x,y,z)变为P’(x,y)。S3)根据点云数据范围建立相应的平面网格,计算每个网格的点密度,根据网格的点密度确定网格是否在轮廓线上。具体来讲,步骤S3)包括以下两个子步骤:对点云数据平面网格进行快速遍历,网格大小由最小包围矩形和总点数共同确定,由此计算每个网格的点密度;给每个网格赋予0或1的的属性,1表示在建筑物轮廓线上,0表示不在建筑物轮廓线上。S4)从平面网格里提取出建筑物轮廓线;优选从平面网格根据网格属性依据边界跟踪算法快速提取出建筑物轮廓线。S5)结合GPU的可编程渲染管线,将提取出的建筑物轮廓线的节点坐标保存在数组里,并将数组里的元素传入片段shader里,在片段shader里编写着色器程序,判断点是否在多边形内,实现将轮廓线范围内的建筑物高亮显示。本专利技术使用C++语言和OpenGL实现了倾斜摄影数据建筑物轮廓线的自动提取并结合GPU编程实现单体化操作。实现该算法的计算机基本参数有:显卡:NVIDIAGeForceGTX550Ti1GB系统安装内存:8GB开发环境:VisualStudio2010操作系统:Windows764位(旗舰版)本专利技术通过自动提取倾斜摄影建筑物的轮廓线,结合GPU编程实现倾斜摄影建筑物的单体化操作。单体化本质上是为了解决倾斜摄影自动化建模软件输出的三维模型是连片的、无法单独选中要管理地物的问题。为了能进行查询和管理,我们需要能单独选中某个地物,能查询它对应的业务属性。目前流行的单体化方法都是一种间接方式,通过预先叠加对应的矢量底面来实现的。相较于传统的单体化过程中建筑物轮廓线的获取方式,本专利技术的算法不依赖于其他数据实现建筑模型单体化,可自动提取建筑物矢量轮廓线,并结合GPU编程实现的单体化,显著提高了倾斜摄影数据建筑物矢量底面的获取速度,降低了人力成本,推动了倾斜摄影数据的应用。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网
...
倾斜摄影三维建筑物模型自动单体化算法

【技术保护点】
倾斜摄影三维建筑物模型自动单体化算法,其特征在于,包括以下步骤:S1)从原有的倾斜摄影数据生成出点云数据,对点云数据进行预处理,剔除无效点;S2)将三维点云映射到二维平面;S3)根据点云数据范围建立相应的平面网格,对点云数据平面网格进行快速遍历,计算每个网格的点密度,根据网格的点密度确定网格是否在轮廓线上;S4)从平面网格里提取出建筑物轮廓线;S5)结合GPU的可编程渲染管线,实现将轮廓线范围内的建筑物高亮显示。

【技术特征摘要】
1.倾斜摄影三维建筑物模型自动单体化算法,其特征在于,包括以下步骤:S1)从原有的倾斜摄影数据生成出点云数据,对点云数据进行预处理,剔除无效点;S2)将三维点云映射到二维平面;S3)根据点云数据范围建立相应的平面网格,对点云数据平面网格进行快速遍历,计算每个网格的点密度,根据网格的点密度确定网格是否在轮廓线上;S4)从平面网格里提取出建筑物轮廓线;S5)结合GPU的可编程渲染管线,实现将轮廓线范围内的建筑物高亮显示。2.根据权利要求1所述的倾斜摄影三维建筑物模型自动单体化算法,其特征在于,步骤S3)中所述计算每个网格的点密度,具体为:网格大小由最小包围矩形和总点数共同确定,由此计算每个网格的点密度。3...

【专利技术属性】
技术研发人员:丁志在韩勇于吉光马纯永
申请(专利权)人:青岛海大新星软件咨询有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1