基于外存八叉树的三维激光点云实时渲染技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于外存八叉树的三维激光点云实时渲染技术
邱炎;梁玉斌;崔铁军
【摘要】为了解决海量点云数据的实时渲染问题,采用基于外存储器构建细节层次八叉树索引结构的方法用于三维点云数据实时渲染,并用8G内存的普通计算机对
天津师范大学教学区10.2 GB的扫描点云数据进行实验验证.结果表明:实时渲染时的帧率在16f/s上下浮动,且无明显延迟,表明该方法支持超过内存容量的三维激光
扫描点云数据的实时渲染.
【期刊名称】《天津师范大学学报(自然科学版)》
【年(卷),期】2017(037)003
【总页数】4页(P58-61)
【关键词】实时渲染;八叉树;层次细节模型;三维激光点云数据
【作者】邱炎;梁玉斌;崔铁军
【作者单位】天津师范大学城市与环境科学学院,天津300387;天津师范大学城市
与环境科学学院,天津300387;天津师范大学城市与环境科学学院,天津300387【正文语种】中文
【中图分类】P237
三维激光扫描是目前获取地理空间数据的重要手段之一[1],与传统测量手段相比,三维激光扫描测量技术可以快速、直接地获取目标物表面大量三维测量数据[2].随
着三维激光扫描技术的深入应用,三维激光扫描获取的点云数据量越来越大,大规模三维激光扫描点云的实时渲染已成为点云数据交互式处理的瓶颈问题.近年来,
国内外学者针对海量激光扫描点云数据的实时渲染开展了大量研究.Levoy和Whitted[3-4]首次引入基于点的三维模型渲染方法,该模型可以表达出任意连续
的三维表面,用于海量数据的编辑和渲染.Rusinkiewicz等[5]提出了可用于大规模三维数字模型实时渲染的QSplat系统,该系统的核心算法将采样点存储在层次外包球的内部,在渲染阶段将基于点的渲染系统与基于视角的多层金字塔模型相结合,实现数据的实时渲染.Martinez-Rubi等[6]基于WebGL实现了海量点云数据的网络可视化,该研究使用多分辨率的八叉树对点云进行渲染,为减少构建八叉树所耗费的时间,将整体区域根据一定规则划分为多个子单元,并对每个子单元构建八叉树,最终根据所有八叉树中节点的空间范围将多个八叉树进行合并.李婕[7]提出一
种针对车载激光扫描点云数据的管理与可视化方法,该方法使用虚拟内存技术和快速显示技术处理点云数据,给出了点云分块索引模型的数据组织方法,实现了百万数量级点云数据的可视化[8].张会霞[9]提出一种基于数据库的点云管理方法,实现了点云数据的分块组织及检索.陈驰等[10]提出一种车载激光扫描点云数据的快速
可视化方法,采用双层四叉树索引方法实现激光点云数据的管理与动态调度,从而做到千万数量级车载点云数据的可视化.
虽然近年来国内外研究者对三维激光扫描点云数据的组织管理和实时渲染进行了大量研究,但大部分研究中点云数据的规模为千万数量级,当点云数据量进一步扩大,渲染方法的扩展性就成为实时渲染的关键.因此,针对超过计算机内存容量的三维
激光扫描点云,本研究提出一种基于外存八叉树的实时渲染方法,以期用于大规模三维激光扫描点云数据的可视化和交互式处理.
基于外存八叉树的大规模三维激光扫描点云实时渲染主要包括海量点云数据预处理和基于外存八叉树的细节层次实现两大部分.具体操作步骤为:首先,将大规模点
云数据划分为多个点云分块,每个分块包含一定数量的扫描点;其次,以最近邻点数为阈值滤除每个点云分块中的孤立点;再次,遍历经过去噪的点云分块,统计测
区覆盖的空间范围;最后,再次读取经过去噪的点云分块,在外存储器上建立不同细节层次的八叉树索引结构.
1.1 海量点云数据的预处理
海量点云数据的预处理包括点云数据的分块和点云去噪两部分.海量点云数据的数
据量通常超过一般计算机的内存容量,因此无法直接将全部点云数据读入内存进行处理.点云数据的分块处理将全部点云数据划分为多个较小的点云分块,每个点云
分块包含一定数量的扫描点,可以直接读入内存进行处理.
建筑室内外场景中常常存在玻璃等镜面反射对象,镜面反射将引起噪声扫描点.噪
点则会造成测区外包盒(bounding box)计算错误,从而导致最终生成错误的八叉树索引结构.因此,在数据预处理阶段必须进行点云去噪.扫描点由激光扫描仪顺
序扫描获得,因而同一个点云分块中的扫描点通常在空间中彼此邻近,而噪点通常以孤立点形式存在.因此,通过读取每个分块点云文件,构建k-d tree,在给定近
邻点数的基础上计算近邻点到邻域中心的平均距离和标准差,如果当前点与邻域中心的距离超出平均距离一个标准差,则将该点标记为噪点并从数据中剔除.
1.2 基于外存八叉树的细节层次实现
遍历所有经过去噪的点云文件,统计得到测区覆盖的空间范围.依次读取经过去噪
的点云文件,根据计算得到的外包盒空间范围,然后在外存储器上建立不同细节层次的八叉树索引结构.
1.2.1 八叉树索引
本研究基于八叉树对点云数据进行三维空间索引,结构示意图如图1所示.图1中,八叉树的每个节点代表一个长方体空间,当存储点云数据时,预先设定八叉树的最大递归深度和节点最小容纳点数.索引结构以迭代方式构建,通过不断读入点云分
块文件,将其划分到所属的八叉树节点.如果节点包含的点数超过预先设定的最小
容纳点数,则将该节点进行剖分.当构建的八叉树的深度达到预先设定的最大递归
深度时,不再进行节点剖分.有子节点的节点称为内节点或组节点,叶节点没有子
节点[11].
对于超出内存容量的点云数据,通过在外部存储器上构建数据索引结构,以避免海量数据实时渲染受物理内存容量的限制.首先,遍历所有经过去噪的点云文件,计
算覆盖测区的外包盒的空间范围.其次,依次读取去噪后的点云文件,根据外包盒
的空间范围,利用读入的扫描数据在外存储器上建立和更新统一的八叉树索引结构.待全部点云文件遍历完毕,即完成索引结构的构建.
1.2.2 细节层次实现
细节层次(level of detail,LOD)技术利用几何体包围盒计算观察者与物体的距离,使用户可以更高效地渲染处于不同细节层次上的物体[12].八叉树的根节点对
应测区全部的点云数据,通过逐级对内节点进行细分,使得不同深度的节点对应地物对象的不同细节层次.根节点上的数据粒度最大,节点的粒度由上至下逐层减小,同一深度上不同节点的数据粒度相同,细节逐渐丰富.在实现上,每一个节点对应
一个磁盘文件.通过细分,每个节点存储的点云数据量将保持在一定的范围内.此外,节点数据以二进制文件存储,可以进一步减少所占用的存储空间.当进行点云数据
的实时渲染时,在有效观察范围内的节点被快速确定,这些节点对应的点云数据将从磁盘载入进行显示;当节点处于观察范围之外时,对应的数据将从内存移除,从而实现点云数据的动态调度和显示.图2显示了一个LOD节点及其子节点,当节点处于有效观察范围之内时,则显示该子节点.
本研究实验区为天津师范大学教学区,点云数据利用RIEGL VZ-1000型三维激光扫描仪对地面进行静态测量获取.通过RTK测量的控制点对点云数据进行绝对定向,每个站点云数据经过初步处理后仅保留建筑点云数据用于实验.融合后的点云数据
以pts格式文本文件保存,文件大小为10.2 GB,共包含192 132 546个激光扫
描点,数据文件记录每个点的三维坐标和反射强度值.实验的硬件环境为配置有
Intel Core i5-5200U处理器、8G内存和GeForce 940M显卡的笔记本电脑,操作系统为Ubuntu 15.04.实验方法基于C++,点云去噪、基于外存的数据调度和
三维数据渲染子程序均依赖PCL(Point Cloud Library)和Open Scene Graph 库.
预处理程序以数据流的方式读取点云数据,将全部点云数据以1 000万点/块划分为20个点云分块文件,程序耗时19 min44 s.点云去噪程序中近邻点数设为50,去噪用时21 min13 s,程序自动剔除13 517个噪点.最终进行渲染的点数为192 119 029个.
在外存储器上建立不同细节层次八叉树索引结构时,八叉树的深度选择直接决定了渲染效率,随着深度的增加,渲染效果更加流畅,同时需要的内存空间也越大,若深度超过合适的值,效率会大大降低.本研究对不同深度八叉树索引结构的运算结
果进行对比,随着深度的增加,建树程序消耗内存增大,所耗时间增加,但渲染程序消耗内存减小,所耗时间减少.综合考虑建立索引结构的程序运行时消耗的最大
内存及用时、渲染程序运行时耗费的最大内存、数据载入耗时以及渲染帧率等因素,实验显示八叉树的最大深度设置为8时,可以在内存足以支撑程序运行的前提下
得到最大的漫游帧率,从而实现最流畅的渲染效果.
建立索引结构的程序运行时消耗的最大内存为1.2 GB,程序用时28 min 53 s.渲
染程序运行时耗费的最大内存为1.4 GB,数据载入耗时为13 s.实时渲染时帧率在16 f/s上下浮动,无明显延迟.点云数据使用强度值进行渲染,渲染效果如图3所示.实时渲染程序支持对点云数据的放大缩小、全图、旋转和漫游等操作.
利用本研究算法与点云处理的商业软件RISCAN PRO对相同数据进行渲染,实验显示RISCAN PRO无法加载10.2 G的实验数据,因而将扫描点数减少至40 570 418,数据文件大小为1.9 G.对2种方法的渲染性能进行比较,结果如表1所示,其中RISCAN PRO软件将扫描点数据直接读入内存进行渲染.
由表1可以看出,在相同的硬件环境下,基于外存八叉树的渲染程序在运行时最大内存消耗为262 M,而使用RISCAN PRO软件进行渲染的最大内存消耗为310 M.数据载入耗时指从渲染程序开始加载点云数据到数据在计算机屏幕上完全显示出来所消耗的时间,本研究渲染程序载入数据的耗时为16 s,少于RISCAN PRO 软件的24 s.
图4为本研究方法与RISCAN PRO软件在数据漫游帧率方面的比较结果.由图4可知,在数据显示速度方面,基于外存八叉树渲染方法的帧率明显大于RISCAN PRO软件的帧率,且渲染效果更为平滑流畅.
本研究提出一种支持海量点云数据实时渲染的技术方法,分别利用点云数据分块实现了大规模点云的分治;点云去噪有效避免了因噪声导致的八叉树外包盒计算错误的问题;基于外存八叉树的索引结构则实现了细节层次模型,是海量点云实时渲染的关键.实验结果表明,本研究方法实现了对超过内存容量的三维激光扫描点云的实时渲染.该技术方法对硬件的要求不高,具有一定的实用价值.八叉树最优深度的自适应计算和点云数据的并行处理是后续研究的重点,这些研究的开展有望进一步提高数据处理系统的自动化程度,节省点云数据的处理时间.
【相关文献】
[1]李清泉,李必军.激光雷达测量技术及其应用研究[J].武汉测绘科技大学学报,2000,25(5):387-392. LI Q Q,LI B J.Research on laser range scanning and its application[J]. Journal of Wuhan Technical University of Surveying and Mapping,2000,25(5):387-392(in Chinese).
[2]李必军,方志祥,任娟.从激光扫描数据中进行建筑物特征提取研究[J].武汉大学学报:信息科学版,2003,28(1):65-70. LI B J,FANG Z X,REN J.Extraction of building′s feature from laser scanning data[J].Geomatics and Information Science of Wuhan University,2003,28(1):65-70(in Chinese).
[3]LEVOY M,WHITTED T.The use of points as a display primitive[R]. University of North Carolina,Department of Computer Science,1985.
[4]LEVOY M,PULLI K,CURLESS B,et al.The digital Michelangelo project:3D scanning of large statues[C]//Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques.ACM Press/Addison-Wesley Publishing Co,2000:131-144.
[5]RUSINKIEWICZ S,LEVOY M.QSplat:A multiresolution point rendering system for large meshes[C]//Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques.ACM Press/ Addison-Wesley Publishing Co,2000:343-352. [6]MARTINEZ-RUBI O,KLEIJN M D,VERHOEVEN S,et ing modular 3D digital earth applications based on point clouds for the study of complex sites[J].International Journal of Digital Earth,2016,9(12):1135-1152.
[7]李婕.三维海量激光数据管理及可视化研究[D].北京:首都师范大学,2009. LI J.Massive Three-dimensional Laser Data Management and VisualizationResearch[D].Beijing:CapitalNormalUniversity,2009(inChinese).
[8]徐鹏.海量三维点云数据的组织与可视化研究[D].南京:南京师范大学,2013. XU P.Massive Three-dimensional Point Cloud Management and VisualizationResearch[D].Nanjing:NanjingNormalUniversity,2013(inChinese).
[9]张会霞.基于八叉树的点云数据的组织与可视化[J].太原师范学院学报:自然科学版,2011,10(3):128-132. ZHANG H X.The organization and visualization of point cloud data based on the octree[J].Journal of Taiyuan Normal University:Natural Science Edition,2011,10(3):128-132(in Chinese).
[10]陈驰,王珂,徐文学,等.海量车载激光扫描点云数据的快速可视化方法[J].武汉大学学报:信息科学版,2015,40(9):1163-1168. CHEN C,WANG K,XU W X,et al.Real-time visualizing of massive vehicle-borne laser scanning point clouds[J].Geomatics and Information ScienceofWuhanUniversity,2015,40(9):1163-1168(inChinese). [11]ELSEBERG J,BORRMANN D,NÜCHTER A.One billion points in the cloud-an octree for efficient processing of 3D laser scans[J].ISPRS Journal of Photogrammetry and Remote Sensing,2013,76:76-88.
[12]CLARK J H.Hierarchical geometric models for visible surface
algorithms[J].Communications of the ACM,1976,19(10):547-554.。

相关文档
最新文档