最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

大型石窟遗产海量点云快速可视化

XAMPP案例 admin 438浏览 0评论
作者信息:  苗一鸣1,2,胡平波1,2,侯妙乐1,2

(1. 北京建筑大学 测绘与城市空间信息学院,北京 100044;2. 北京市建筑遗    产 精细重构与健康监测重点实验室,北京 100044)

【摘要】文化遗产数字化是实现遗产保护与修复、传承与活化的重要手段。三维激光扫描技术是近年来被广泛应用于遗产数字化的有效手段,其能够以非接触方式获得高精度、高密度三维点云,但是这些文化遗产(尤其是大型石窟)的海量三维点云,为快速处理及应用带来了严峻挑战。为实现普通计算机配置下石窟遗产海量点云的快速浏览与展示处理,构建了基于文化遗产本体综合价值的点云分块策略,通过八叉树数据结构对每一数据分块进行组织管理,并采用开源引擎Potree.js搭建可视化场景,进而完成海量石窟点云的快速可视化处理。以某一大型石窟遗产三维点云开展可视化处理实验,并与3DHOP、Cesiumlab等可视化解决方案进行对比分析,结果表明本文方法简单易操作,处理时间和渲染效果都得到了有效改善。

 

【关键词】文化遗产;石窟遗产;可视化;Potree;激光点云

【中图分类号】TN249;K879.2

【文献标识码】A

【文章编号】1672-1586(2020)05-0012-05

 

引文格式:苗一鸣,胡平波,侯妙乐. 大型石窟遗产海量点云快速可视化[J].地理信息世界,2020,27(5):12-16.

 

引 言

文化遗产是人类文明的瑰宝,是历史遗留的财富。近年来,不断有文化遗产遭受自然灾害、人为破坏等威胁(如尼泊尔加德满都谷地震损毁、法国巴黎圣母院火灾、日本冲绳县首里城火灾等),因此在文化遗产损毁前对其进行数字精细测量与存档,已成为文化遗产保护修复的关键。三维激光扫描技术能够以非接触方式高效、精确地获取目标对象的三维空间信息,已被越来越多地应用于文化遗产保护领域。然而,三维激光扫描技术在获取高密度、高精度的三维点云时,会产生1 GB以上的海量点云数据,对于大型石窟文化遗产而言,其数据量通常在数百GB以上。这些海量点云数据的计算、传输、展示等处理需要高性能计算机硬件的支持,影响了文化遗产的公众传播及文化传承发展。因此,迫切需要开展常规计算机硬件配置下的海量点云快速可视化处理。

为了适应常规计算机配置下点云可视化的要求,构建细节层次模型(Level of Detail,LOD)与点云实时渲染成为了研究的重点。构建LOD需要高效的组织结构,常见的组织结构包括单一树形结构、空间网格结构、混合树形结构。其中,混合树形结构应用最广泛,包括:八叉树与KD树的混合结构、拓展四叉树与三维R树的混合结构、双层四叉树结构、四叉树与KD树的混合结构、双层八叉树结构、KD树与链线八叉树混合结构、使用八叉树嵌套空间网格的混合结构。为了实现点云的实时渲染,目前学者们提出的方法包括:构建多分辨率结构以缩短渲染的时间、内外存结合的动态调度技术以减少内存的效果、改善原始数据的采样方式以提升渲染的效果、根据视点参数选择合适层次的数据渲染技术以提升渲染的效率。尽管学者们已经提供了大量的点云可视化思路与方法,但其对操作人员的专业技术水平要求较高。同时,这些方法仍然对计算机硬件配置(CPU、内存以及显卡)提出了较高要求,进而使得文化遗产数字化成果难以有效展示在大众面前,不利于文化遗产的保护与传播。本文提出了一种适用于大型石窟遗产海量点云快速可视化方法。首先,依据石窟遗产点云分块规则对点云数据分块;然后,以Potree为基础构建分块数据的组织索引结构;最后,在浏览器中依次加载分块数据,构建点云数据的三维可视化场景。该方法目的在于缩短点云处理与加载的时间,同时不借助第三方插件,实现海量点云数据在浏览器上快速呈现。1 关键技术与方法1.1 Potree可视化原理

Potree是基于WebGL的开源大规模点云渲染器,由维也纳工业大学计算机图形与算法研究中心开发,可支持上亿点云的在线渲染。Potree所使用的数据结构是改进后的可修改嵌套八叉树(Modifiable Nested Octree,MNO)。MNO实质为基于LOD对于输入点云的下采样,低层级的节点占据更大的体素以及更稀疏的下采样样本点云,点云的密度随着节点层级的升高而增大。通过原始点云构建MNO结构时,点首先被添加到根节点中,并占据其所对应的单元。同时,为了保证新的子节点中包含了足够数量的点,每个网格还设置了一个阈值,用于存储多余的点,当点遇到已被占据的单元并且多余点不超出阈值时,其将被暂时放入一个等待数组中,直到等待数组中存放了足够的点并构建出子节点网格。通过这一阈值就可以避免某些子网格中包含点数量过少造成不必要的开销。

Potree在MNO的基础之上,针对其无法保证网格单元间点的间隔这一问题进行了改进。Potree中采用了 Poisson-disk下采样方法,保证了每个点与其他点的最小间距。在构建过程中,首先将输入点云中每个点依次放入根节点中,当某个节点中落入第一个点,将该节点占据,其他点落入该节点时,如果不符合最小距离要求,则落入子节点中。与MNO相类似,落入叶节点中的点并不会立即构建内部节点,而是先被存放在叶节点中,直到点的数量达到阈值。为了降低构建过程中的内存使用量,每处理1×10⁷的点则会将当前的数据写入硬盘中,后续若需要则重新读回。在构建完成数据结构之后,用户端需要层级索引文件来寻找需要加载并渲染的节点。层级索引文件较大会导致客户端初始载入时间过长。通过对索引文件的分割,可以对索引文件实现按需加载从而使得客户端更快完成渲染。

1.2 数据分块处理

石窟遗产数字化模型具有体量大、几何结构复杂等特点,精细化的石窟点云数据巨大,其对计算机配置等硬件设备提出了极高的要求,给可视化带来了巨大的挑战。为了能够在浏览器等设备上实现海量点云的快速可视化显示,本文中提出了数据分块处理方法,即采用合适的划分策略将原始点云划分为数据块,逐块开展处理后并形成一个完整的可视化模型。在数据分块处理时,分块数量不宜过多,也应兼顾石窟本体价值的完整性。为保证每一分块是一个独立艺术展出模型,本文提出的数据分块规则如下:

 

1)应结合专家知识,保持文化遗产艺术价值的主次结构关系。

2)应以文化遗产中最具艺术价值的部位为分块重点,保证其艺术价值的完整性。同时,兼顾数据量的要求,过大数据量块应对其进行切分。

3)应以数据量要求作为次要部位分块的重点。同时,兼顾艺术价值完整性的要求。

4)对围墙、护栏、手脚架等,若难以删除,则可并入次要部位或按照数据量的要求对其进行切分。

 

在上述规则的指导下,以石窟洞窟佛像等空间分布为基础,本文通过查阅云冈石窟的相关资料,参考云冈石窟研究院的专家评价,从初始石窟三维点云数据中分割出石窟的不同主次部分,主要部分包括主佛及其周围轮廓,次要部分包括胁侍菩萨、十大弟子与佛龛。在划分的主要部件中,由于佛像大小规制不同,为保证数据的快速加载,可通过在明显接壤的部件处进行分块调整,以保证后期处理效率。采用本文提出方法建立的分块数据如图1所示。

f025

图1 点云数据分块示意图

Fig.1 Diagram of point cloud blocks

 

1.3 点云数据转换

每一分块后的点云数据都在数十GB以上,直接在浏览器上加载会给硬件配置、快速加载与可视化操作带来挑战,因此,需要对其进行转换处理,以提高后续处理效率。本文采用开源Potree工程中提供的转换器(Converter)模块进行分块点云转换处理。该模块可以将不同格式点云数据进行转换,同时建立起每一分块点云内部间的结构关系(八叉树结构)。在转换的过程中,可以根据实际情况对坐标系统、数据密度、文件格式等参数进行设置,对于不同来源的数据应选择统一坐标系统。

在点云数据格式转换后,海量点云将被转化为轻量级JSON交换格式,并以八叉树的数据结构进行点云多层级组织管理。这些交换格式文件以后缀为bin数据文件存储,文件通常在几百KB左右,同时包含生成html网页文件。这种转换处理后做交换格式文件可以提高数据处理与传输效率,为后续三维点云场景快速可视化提供支持。

 

1.4 可视化场景构建

考虑到本文期望在常规设备上进行海量点云的可视化,同时受限于文化遗产安全性等因素,本文拟以开源引擎Potree.js为基础,在本地内网环境中搭建石窟遗产的三维可视化场景,即采用Apache+MySQL+PHP+PERL(XAMPP)集成软件包迅速搭建网络环境,使用网页浏览器(Microsoft Edge,谷歌浏览器等)作为客户端进行加载及可视化。可视化场景平台主要页面采用上述格式转换后的静态html文件,可以使用编辑器进行内容定制与修改。场景中的点云数据加载、点大小与形状、视场角方向和位置等参数通过Potree.load( )接口完成,场景坐标系统可通过Potree.Proj4定义。在本文构建的三维可视化场景中,系统将结合实时视场角信息,从转换后多层次索引关系中进行三维点云的加载显示,从而有效避免大数据点云加载引起的系统崩溃等问题。

 

2 实验与分析

 

为验证本文提出方法的有效性,本文选取了大型不可移动文化遗产——云冈石窟第十八窟作为研究对象,该石窟扫描得到的点云数据约有3.4×10⁹个点,数据总量达216 GB。同时采用常规硬件资源(Intel(R)Xeon(R) Silver 4110 CPU、32 G物理内存、NVIDIA Quadro P4000显卡等)进行快速可视化实验验证。

 

在对石窟点云进行分块处理时,主佛、胁侍菩萨、十大弟子和佛龛造像都具有艺术价值,因此需要保持其完整性。本文通过在Cyclone软件中手工提取出主佛、胁侍菩萨、十大弟子等主要造像。在提取过程中,应尽可能避开佛龛造像单元,保证佛龛完整性。对于数据量较大的主佛,可进一步分割处理为佛首、佛身、底部等。本文方法实验完成的不同数据分块对象如图2所示。

f0025

图2 点云数据分块结果图

Fig.2 Results of point clould partitioning

 

在数据分块基础上,将数据格式转换为分块html文件,在分块数据同级目录进行保存,不同分块数据的保存文件夹进行顺序编号。在加载分块文件时,应将待调用的文件数据编辑在静态html文件中。本文实验构建的海量点云三维可视化场景如图3所示。

f00025

图3 石窟三维场景可视化效果图

Fig.3 3D visualization of grotto

为验证本文快速可视化方法的性能,将本文方法与3DHOP(3D Heritage Online Presenter)、Cesiumlab等软件的可视化效果进行了对比分析。考虑到一次性整体加载整个石窟点云时,所采用对比软件/方法容易出现系统崩溃。因此,本文选用右边大胁侍菩萨的点云(数据大小约为10 G)进行对比分析。

在转换过程中,本文方法需要采用数据预处理、数据转换、场景构建与加载等步骤;3DHOP需要通过数据格式转换、数据压缩、html页面修改等步骤完成场景模型构建;Cesiumlab通过数据格式转化、数据切片、瓦片服务等步骤完成场景模型构建。3种方法最终构建的场景可视化效果如图4所示。

f000025

图4 不同方法构建的三维场景效果对比图

Fig.4 3D visualization Comparison by difffferent methods

 

本文进一步分别从操作难易程度,数据处理时间及可视化效果3个方面来进行比较,对比结果见表1。

f0000025

表1 不同方法构建的可视化场景实验对比

Tab.1 Visualization comparison by difffferent solutions

从表中可知,本文方法操作相对简单,建立的三维可视化场景中,对石窟整体和局部细节具有更强的刻画能力。但是,由于本文建立了3个分块数据,因此整体构建时间稍长,平均每一分块构建出三维场景消耗时间为35 min。相比其他两种方法,本文效率相对更高。同时,文化遗产具有极高的艺术价值,为了快速、逼真地对其进行展示,需要优秀的渲染表现和简单的操作模式。因此,本文方法可为文化遗产点云快速可视化提供更好的选择。

 

3 结束语

为解决文化遗产(尤其是大型石窟)的海量三维点云难以快速可视化的问题,本文提出了一种适用于大型石窟遗产海量点云快速可视化方法。本文以云冈石窟第十八窟的海量点云数据为实验对象,提出了适用于大型石窟遗产点云的分块策略,建立了基于八叉树结构的分块点云索引结构,搭建了基于开源引擎的海量点云数据可视化三维场景模型,实现了大型石窟海量点云的快速可视化处理。实验结果表明本文方法简单易行,明显地缩短操作处理时间,提升了可视化效果,较好地解决了常规计算机配置下海量点云的可视化问题,能够为文化遗产点云修复、传承、活化等应用提供支撑。下一步将继续推进快速可视化简化操作以及分块策略扩展研究。

 

作者简介:苗一鸣(1997-),男,河南濮阳人,大地测量学与测量工程专业硕士研究生,主要研究方向为石窟类遗产点云数据处理。

E-mail:1572456101@qq.com

通讯作者:侯妙乐(1974-),女,陕西西安人,教授,博士,主要从事建筑遗产数字化保护研究等工作。

转载请注明:XAMPP中文组官网 » 大型石窟遗产海量点云快速可视化

您必须 登录 才能发表评论!