一种基于激光点云数据的3D全景模型建模方法与流程

文档序号:16682592发布日期:2019-01-19 00:39阅读:1063来源:国知局
一种基于激光点云数据的3D全景模型建模方法与流程

本发明涉及激光点云数据领域,具体为一种基于激光点云数据的3d全景模型建模方法。



背景技术:

三维全景图是由在同一位置多角度拍摄的数张照片(后期可能会合成为一张照片),采用全景工具软件制作而成的数字模型。全景模型一般采用立方体或球体作为骨架,全景照片覆盖模型的表面。观察者置身于全景模型的中心位置,全景模型在观察者周围水平360度,垂直180度全方位无死角覆盖。可以使用普通计算机或手机等设备的全景浏览软件观看全景模型内壁的一部分,并用鼠标或触屏控制视角以观察其他部分;可以调整远近,以观察局部放大效果。观察者仿佛置身真实的环境之中,获得身临其境般的沉浸式感受。

三维全景具有广阔的应用领域,如旅游景点宣传、酒店宾馆介绍、建筑房地产展示、装修效果呈现、三维街景漫游等。三维全景既弥补了一般图像角度单一不够立体的缺憾,又省去了三维建模的巨大时间与金钱的开销,其具有高画质、沉浸感、操作简便等优点。

然而,由于全景模型的实现方法是采用一张或多张图片包围观察者的方式,虽然获得了视觉效果上的沉浸感、立体感,但其实质依然是平面的,在各种应用中仅限于“看”的层面,而无法应用于需要提取场景三维空间信息的工程设计方面,如电力设计领域。

三维电力线路设计过程中,尤其在成果展示阶段,需要在大场景中渲染线路设备,全方位地体现线路与周围环境的关系(尤其在城镇等人口密集区域),全景模型的全覆盖沉浸式效果可以以较小的代价满足这一点。然而,设计成果还需要展现线路设备与其附近的房屋、树木、道路等地物的相对位置信息,测量这些地物到电力线、杆塔等电力设备的距离,根据安全距离校核规范判断是否满足设计要求。这一点目前的全景模型无法满足,虽然看到的所有景物是远近不一的,而实质上距离是一样的。而若采用传统方式将周边地物逐个建模以构造大场景,则成本高、周期长、数据量大,且不可能将视野范围内的地物全部建模,达不到全覆盖的沉浸式效果。因此急需一种既能完整展现周围场景,又能对相关地物进行空间分析的低成本、短周期数字模型。全景模型满足了一方面需求,即设备周围场景的展示,但无法进行空间校核阻碍了这方面的应用。



技术实现要素:

为了克服现有技术方案的不足,本发明提供一种基于激光点云数据的3d全景模型建模方法,能有效的解决背景技术提出的问题。

本发明解决其技术问题所采用的技术方案是:

一种基于激光点云数据的3d全景模型建模方法,包括如下步骤:

s100、准备全景数据和激光点云数据;

s200、统一全景数据中的位置坐标与激光点云坐标,并进行激光点云分组、抽稀、坐标变换以及激光点云节点坐标的二次剔除;

s300、进行处理后的激光点云节点坐标的三角网构网以及三角网坐标点的反向变换,并形成全景模型;

s400、对全景模型中的每个全景节点进行渲染处理和全景数据操作,同时加载地物三角网模型;

s500、进行激光点云构造的地物三角网模型的提取与操作。

进一步地,在s200中,对每个激光点云分组包括如下步骤:

s201、根据节点位置坐标与预设半径r定义的球体以及之前的激光点云统计信息,将所有与当前全景球相交的激光点文件加载到内存;

s202、依次计算每个点与球心的距离,忽略距离大于r的点,对距离小于r的激光云点,将其坐标减去节点坐标后暂存;

其中预设半径r为本节点需要进行三维地物建模的最远距离,节点坐标即转换为相对于节点中心的坐标。

进一步地,在s200中激光云点的抽稀,包括设定一个xyz方向均可设置的抽稀距离d,并将d值赋值到各种坐标轴上,将当前节点激光点云包围在以d为间隔划分的若干个空间立方体上,依次遍历每个节点,并划分到所属立方体当中,每个立方体中仅保留1个激光点。

进一步地,将激光点云的空间三维直角坐标变换为经度、纬度和高程表示的坐标,具体变换步骤:

对于任意一个激光点p(x,y,z),将其转换为极坐标(r,φ,θ),紧接着转换为(u,v,w):

u=φ

v=θ

w=r-r

其中x表示正东方向,y表示正北,z表示高度,r表示p与o之间的距离,φ表示op在水平面投影与ox轴的夹角,θ表示op与oz的夹角;

转换完毕后,u的取值范围是0~360°,0°表示正东方向,随着u值的增大绕高度轴方向逆时针旋转,90°为正北方向,180°为正西方向,270°为正南方向,360°仍然为正东方向,当范围值与全景纹理图片的左右两侧不一致时,进一步调整u坐标的最小值和最大值,保持与全景纹理图片左右两侧一致;

同时将激光点云中的每个点的高程与周围点的高程进行对比,对明显低于周围点高程的点进行二次剔除

进一步地,将s200处理后的激光点云的节点进行不规则三角网构网操作生成三角网,构网过程中只进行uv坐标的平面构网,并根据构网后数据的uv坐标计算成全景纹理图片坐标,对于采用direct3d图像引擎,全景纹理图片坐标原点在左上角,x轴向右,范围0~1,y轴向下,范围0~1,其计算全景纹理图片坐标方法:

xt=u/360.0

yt=v/180.0

在激光点云构网中,仍需要构建整个球面背景,球面点的空间坐标和纹理坐标都可以采用设定的d值下的经纬度间隔以及半径r计算;

最后将构网后的激光点云坐标进行空间三维直角坐标的反向转换,并完成激光点云构网为三维模型,其中全景模型由两部分组成:一是采用激光点云构造的立体不规则三角网模型,另一个是传统的全景球。

进一步地,在s400中对于每一个全景纹理图片节点,先将纹理图片加载到内存,形成纹理对象,然后构造背景球三角网,同时加载地物三角网模型,加载完成后根据需要进行渲染,此后每次渲染分渲染背景模型和渲染地物模型两部分进行。

进一步地,在进行全景纹理图片节点的渲染时,从当前节点切换到下一节点,隐藏需要提供的前进动画,所述前进动画即摄像机分多步向下一个节点并在移动的过程中多次渲染实现,仅渲染背景球,在渲染前进动画过程中,准备好下一个节点的数据,同时卸载当前节点纹理数据。

进一步地,在s500中,在进行地物模型的提取之前进行地物模型提取区域的设定,该区域是由若干关键点首尾顺次连接构成的简单多边形所包围的区域,采用手动选取边界轮廓线和从文件加载预存的区域数据两种提取方式。

进一步地,对采用手动选取便捷轮廓线方式设定地物模型提取区域后的地物提取具体包括步骤:

s501、将轮廓线点坐标与激光点地物模型顶点都转换为(u,v,w)坐标;

s502、首先判断三角面图元与当前轮廓线的交点有无,若相交,则进行当前激光点云地物三角网中的三角面图元的剖分,并将三角面剖分为多个三角面,且剖分后的三角面各有一条边与轮廓线重叠,依次计算其当前激光点云地物三角网中的剖分的所有三角网;

s503、将当前地物轮廓内的所有三角面图元提取,存储为单独的地物三角面图元组,并采用地物的id加以标识;

s504、将所有轮廓线点坐标与激光点地物模型顶点坐标转换回空间三维直角坐标。

进一步地,在s500中,地物模型操作主要包括获取地物图元数据、电力线等带电体与地物之间的距离计算、射线碰撞检测以及地物属性信息的添加与检索。

与现有技术相比,本发明的有益效果是:

1、采用全景模型作为背景,以很低的成本实现了大场景效果,完整展现了电力设备与周围环境的关系,具有沉浸式临场感的优点。

2、仅对电力设备附近的地物进行三维建模,数据量小,渲染速度快。

3、采用激光点云进行建模,精度高,且可根据需求生成多种精度的模型。

4、建模过程自动化,仅需少量人工干预,节省人力成本,错误率低,大大提高工作效率。

5、激光点云地物模型与全景背景模型使用同一个纹理,两者无缝融合,完全保留一般全景模型的视觉效果,真实感更强。

6、可人工标记地物模型中的物体,并进行切割分组与属性设定。

7、分离后的激光点云地物模型可与其他建模手段生成的三维模型进行距离量测、碰撞检测、位置选择等操作。

8、建模成果可长期保存,无需每次重新建模,一次建模永久使用。

9、应用范围广,除电力线路设计还可以用于市政规划、遥控模型模拟训练等场合。

附图说明

图1为本发明的3d全景模型建模总体流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供了一种基于激光点云数据的3d全景模型建模方法包括如下步骤:

s100、准备全景数据和激光点云数据准备;

s200、统一全景数据中的位置坐标和激光点云坐标,并进行激光点云分组、抽稀、坐标变换以及激光点云节点坐标的二次剔除;

s300、进行处理后的激光点云节点坐标的三角网构网以及三角网坐标点的反向变换,并形成全景模型;

s400、对全景模型中的每个全景节点进行渲染处理和全景数据操作,同时加载地物三角网模型;

s500、进行激光点云构造的地物三角网模型的提取与操作。

本发明中采用以单张图片作为纹理的球形全景模型进行描述,若提供的图片数据是其他方式,可采用专业的全景数据处理软件处理为单张球形纹理图片。

在准备坐标数据时,需要将全景节点的位置坐标与激光点云坐标统一到同一坐标系下,本发明采用横轴墨卡托大地投影坐标为基准描述,需要获取每个激光点云文件的范围信息,若是las文件可直接读取,其他没有存储范围信息的文件应读取每个点进行计算,且此信息可存储到内存或者存储到文件中,以便于后续实用。

进行全景数据采集时,水平角度转换为相对于正北方向为0°的偏差值,单位为度。

在s200中,对每个激光点云分组具体包括步骤:

s201、根据节点位置坐标与预设半径r定义的球体以及之前的激光点云统计信息,将所有与当前全景球相交的激光点文件加载到内存;

s202、依次计算每个点与球心的距离,忽略距离大于r的点,对距离小于r的激光云点,将其坐标减去节点坐标后暂存。

其中预设半径r为本节点需要进行三维地物建模的最远距离,节点坐标即转换为相对于节点中心的坐标。

在s200中激光云点的抽稀,包括设定一个xyz方向均可设置的抽稀距离d,并将d值赋值到各种坐标轴上,将当前节点激光点云包围在以d为间隔划分的若干个空间立方体上,依次遍历每个节点,并划分到所属立方体当中。

在依次遍历每个点时,查询其中的点数,会有三种结果:一是,0个点,则忽略;二是,1个点,保留和采用该点;三是,2个或者以上的点,保留一个点,抛弃其他的点,同时保留2个或者以上的点中的1个点采用的策略是,获取离全景节点最近的点、获取高程最大的点、获取离立方体中心最近的点等,本发明中采用离全景节点最近的点。

将激光点云的空间三维直角坐标变换为经度、纬度和高程表示的坐标,变换步骤如下:

对于任意一个激光点p(x,y,z),将其转换为极坐标(r,φ,θ),紧接着转换为(u,v,w):

u=φ

v=θ

w=r-r

其中x表示正东方向,y表示正北,z表示高度,r表示p与o之间的距离,φ表示op在水平面投影与ox轴的夹角,θ表示op与oz的夹角。

转换完毕后,u的取值范围是0~360°,0°表示正东方向,随着u值的增大绕高度轴方向逆时针旋转,90°为正北方向,180°为正西方向,270°为正南方向,360°仍然为正东方向,当范围值与全景纹理图片的左右两侧不一致时,进一步调整u坐标可能达到的最小值和最大值,保持与全景纹理图片左右两侧一致。

假设图片最左侧表示正南方向,向右依次经过正西正北正东,最右侧回到正南,则应该对u坐标作如下转换

u=270–u

如果u小于0

u=u+360。

在进行激光点云的二次剔除时,将激光点云中的每个点的高程与周围点的高程进行对比,对明显低于周围点高程的点进行剔除,否则,认为是朝向观察者的点,进行保留,全景图像中物体都是面向球心的观察者,且未被别的物体遮挡的部分,而激光点原中可能存在背向观察点方向的点,在实际上该观察点是不可见的,若采用这些点首先会造成下一步构网的畸变,同时增加运算量,故应剔除背面点数据。。

将s200处理后的激光点云的节点进行不规则三角网构网操作生成三角网,构网过程中只进行uv坐标的平面构网,并根据构网后数据的uv坐标计算成全景纹理图片坐标,对于采用direct3d图像引擎,全景纹理图片坐标原点在左上角,x轴向右,范围0~1,y轴向下,范围0~1,其计算全景纹理图片坐标方法:

xt=u/360.0

yt=v/180.0

由于激光点云构网不可能覆盖整个球面范围,会出现空白以及空洞,在激光点云构网中,仍需要构建整个球面背景,球面点的空间坐标和纹理坐标都可以采用设定的d值下的经纬度间隔以及半径r计算,其三角网是规则的格网形式。

最后将构网后的激光点云坐标进行空间三维直角坐标的反向转换,并完成激光点云构网为三维模型,其中全景模型由两部分组成:一是采用激光点云构造的立体不规则三角网模型,另一个是传统的全景球。

构造好的地物模型三角网可保存为模型文件,使用时直接导入内存即可,背景球模型由于数据量少且计算简便,可在渲染时临时构造。

在s400中对于每一个全景纹理图片节点,先将纹理图片加载到内存,形成纹理对象,然后构造背景球三角网,同时加载地物三角网模型,加载完成后根据需要进行渲染,此后每次渲染分渲染背景模型和渲染地物模型两部分进行。

由于地物模型仅构造出面向节点中心的面,也只有在节点中心观察才是正确的,故在进行全景纹理图片节点的渲染时,从当前节点切换到下一节点,隐藏需要提供的前进动画,所述前进动画即摄像机分多步向下一个节点移动并在移动的过程中多次渲染实现,仅渲染背景球,以免硬气奇怪的视觉效果,在切换隐藏前进动画过程中,准备好下一个节点的数据,以便在动画完成后渲染下一个节点模型,同时卸载当前节点纹理数据。

在s500中,在进行地物模型的提取之前进行地物模型提取区域的设定,该区域是由若干关键点首尾顺次连接构成的简单多边形所包围的区域,采用手动选取边界轮廓线和从文件加载预存的区域数据两种提取方式,采用激光点云构造的地物模型若器变换后的激光点距离较近,则其三角网会连成一片,若干地物构造为一个整体,即使是独立的可表示一个地物的一组三角网,也无法判定地物属性,应根据需要进行人工辅助地物提取。

对采用手动选取便捷轮廓线方式设定地物模型提取区域后的地物提取包括如下步骤:

s501、将轮廓线点坐标与激光点地物模型顶点都转换为(u,v,w)坐标,之后对于轮廓线点坐标与激光点地物模型顶点的操作都在(u,v,w)坐标系上进行;

s502、首先判断三角面图元与当前轮廓线的交点有无,若相交,则进行当前激光点云地物三角网中的三角面图元的剖分,并将三角面剖分为多个三角面,且剖分后的三角面各有一条边与轮廓线重叠,依次计算其当前激光点云地物三角网中的剖分的所有三角网;

s503、将当前地物轮廓内的所有三角面图元提取,存储为单独的地物三角面图元组,并采用地物的id加以标识;

s504、将所有轮廓线点坐标与激光点地物模型顶点坐标转换回空间三维直角坐标。

步骤s502中,对于一个待拆分的三角面图元,首先计算三角面图元与当前轮廓线的交点,若无交点则忽略此三角面图元,根据交点将轮廓线拆分为若干多线段,保留三角形范围内的多线段,删除其他多线段,将原三角面图元的三个顶点与其内部的多线段的顶点重新构造三角网,构网完成后,将原三角面图元从未标记三角网中删除,替换成新生成的三角面图元。

在s500中,地物模型操作主要包括获取地物图元数据、电力线等带电体与地物之间的距离计算、射线碰撞检测以及地物属性信息的添加与检索;

1)获取地物图元数据,某些情况下需要使用地图的图元信息,例如将地物模型到处为指定格式的文件供别的程序使用,从三维场景中获取地物图元信息需要指定地物id以及模型的精度等级;

2)射线碰撞检测,三维线路设计中经常需要用鼠标选中地物以执行其他操作,首先将三维图形窗口中的鼠标点击位置转换为三维空间中的射线,再将射线与地物模型中的每个地物分组进行碰撞检测,若碰撞距离小于当前最小碰撞距离,则记录当前点击命中的三角面图元所述的地物id,处理完所有的可视节点即可得到命中的倾斜测量地物;

3)距离计算,电力线路设计中导入地物的主要目的是计算电力线等带电体与地物之间的距离,并与设计规范中的安全距离作比较,以判别当前设计是否合理,对于每个地物,获取三角网数据,依次计算这些三角面图元与电线的距离并取最小值;

4)附加属性信息,对于每个地物创建一个属性数据结构,采用地物id标识,地物属性可分为共有属性和私有属性两类,共有属性适用于每一种地物,包含地物类别、地物名称、地物颜色、是否显示等;私有属性适用于某一种或几种地物,如房屋高度、所有者、树木高度等。

地物属性可与地物轮廓合并保存到数据文件中,以便下次读取。

进一步说明地是,本发明用到的数据主要传统全景数据与激光点云数据,全景数据主要分为图像数据与位置信息两部分,图像一般有两种组成方式,一种是6张图像一组,即前后左右上下各用一张方形图片,采用立方体全景模型渲染;另一种是单张图像,采用球形全景模型渲染。

本发明以球形模型为例进行描述,位置信息主要记录每个全景图片组的采集位置、角度等信息,位置常采用经纬度高程或大地坐标方式表示,角度表示采集设备的朝向,如相对于正北方向的偏转角度,常见的激光点云数据一般采用通用的文件las格式存储,文件一般比较大,如数百兆字节,也有其他自定义激光点云格式,大小不一。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1