《浅谈点云与三维重建》
【本期导读】
三维重建技术在各领域已经展现出了不可替代性,而点云作为三维重建的重要工具,却常常被忽略。本文将从概念定义、数据来源、类别划分、应用场景等方面来介绍点云并剖析点云是如何在三维重建过程中崭露头角的。
【重点内容】
一、概念定义
理解三维数字世界离不开感知、表示和理解三个大的方向,三维数据在表示形式上可大致分为四种:点云(Point Cloud)、体素(Voxel)、网格(Mesh)和多视角(Multi-View),其可视化效果分别如下。
与网格、体素等数据形式类似,点云也常用作描述三维模型,其表现非常直观,且具有无序性和不规则性。点云定义为目标表面特性的海量点集合,可简单理解为众多特征点的集合,是在获取物体表面每个采样点的空间坐标后得到的。点云中每个点的位置都由一组笛卡尔坐标(X,Y,Z)描述,由于采集方式的不同,有时点云中还包含颜色、强度、类别等信息。你可以将点云中的点类比成图片中的像素,这些点共同创建了可识别的3D结构,且点云越密集,你所看到的细节和属性就越多。
二、数据来源
点云数据有多种来源渠道,在已知三维模型时可通过逆向工程转换得到点云数据,也称逆向点云;但更多是在未知三维模型的情况下试图通过点云数据的采集来表示三维物体或场景,这类方法大致分为三种 :主动视觉法、被动视觉法和主被动视觉结合法。
主动视觉法是指利用三维扫描设备将激光、声波等光源或能量源发射至目标物体,通过接收返回的信号并进行采样、处理、计算等将三维信息数字化输出成点云数据,常用的三维扫描设备有LiDAR激光雷达、结构光传感器以及TOF相机等。
被动视觉法是指利用周围环境如自然光的反射,将得到的图像或视频通过算法进行立体匹配获得点云数据,这些方法包括双目立体相机、运动恢复结构、机器学习等在内。其中,双目立体相机的结构形似人眼,是通过使用两个固定距离的摄像模组感知视差信息换算出带有深度信息的点云数据。除此之外,运动恢复结构和机器学习的方法都是通过对单目相机获取的数据集进行算法推理得到点云数据的。运动恢复结构又称SFM算法,是传统计算机视觉领域中应用于三维重建的典型算法,其原理是利用移动摄像机拍摄多角度的照片或视频源来匹配和推断相机的位姿参数,并通过三角测量技术计算深度信息,最终输出点云数据。机器学习的思路是通过对丰富的图像或视频流和对应点云数据进行端到端的训练来培养机器自动生成点云的能力。
除了上述两大类外,当前还存在一类将主被动视觉相结合的方法,例如利用RGB-D相机来实现。RGB-D相机又称深度相机,结合了主动和被动传感器的优点,由被动RGB相机和主动深度传感器组成。根据RGB-D图像的信息和相机的内参便可计算出相机坐标系下的点云数据。因为三维重建在多数应用场景下有着空间层次还原和色彩纹理还原的双重需求,因此主被动视觉结合的方式是目前最有效的解决方案,RGB-D相机也得以广泛应用,此外将激光雷达和单目相机联合表面重建也是一种有效的解决方案。
通常点云数据在生成后需要导入到建模软件中二次加工,实现点云数据到三维模型的转换,因此点云数据的存储和导出有一定的公共格式,目前常用的点云格式有“.PTS”、“.XYZ”、“PTX”、“.LAS”、“.E57”五种。
三、类型划分
真实三维场景中包含多种不同类别的物体,因此其对应的点云数据的空间属性也各不相同。通过不同方式获取到物体的点云数据在密度、点数以及点间距离上都具有一定的差别。点云按照特征点的密度可分为“稀疏点云”和“稠密点云”两种。
稀疏点云中特征点的数量较少,往往只能表示简单的几何形状和轮廓,例如平面、路径等,同时由于稀疏点云具备数据量小、可快速生成和处理的优点常被用于快速加载空间的结构信息,例如自动驾驶、扫地机器人等领域。其中,稀疏点云的生成主要的通过被动视觉法。
稠密点云中特征点的数量较多,往往能够精细的表示物体的形状和外观,可以实现三维场景或物体的全貌构建,这类基于点云的三维重建技术,被广泛应用于数字化城市建设、虚拟增强现实、古文物复原、医学研究等领域。同时,由于稠密点云的数据相对冗余,处理时需要耗费较大的计算量,在实时性呈现上存在一定的难度。其中,稠密点云的生成主要是依赖主动视觉或主被动视觉结合这类包含三维扫描设备在内的方法。
四、三维重建
元宇宙概念的提出,让人们对数字化的世界充满了期待,三维重建技术作为“现实世界的数字化工具”,显得尤为重要。从重建的规模上看,三维重建技术主要应用于小型三维物体重构和大规模三维场景重建,而目前的难度主要集中在室外大规模的重建。从获取的信息类型上看,三维重建技术获取几何信息的方式主要是二维图形图像和三维点云数据,相比图像而言点云数据更能表征真实空间。点云的精细度和准确度决定着三维模型的质量,因此点云技术与三维重建密不可分。
点云技术在三维重建中扮演着模型主体搭建的重要角色,但三维建模也离不开后期精细化的处理,以下是对点云三维重建流程的简单总结(这里以RGB-D相机采集点云数据为例):
步骤一、将RGB-D相机获取的空间点云数据和色彩强度数据进行整合并以工程化的方式管理和输出;
步骤二、利用PCL技术(一个用于三维点云处理的模块化跨平台开源C++编程库)对点云数据进行预处理,包括去噪、分割、滤波、配准、采样等操作,输出特证明显、数据精简的点云。
步骤三、点云数据网格化,即使用一系列的网格来近似拟合点云,一般使用三角网格和四边形网格,这一步骤实现了三维表示形式上点云到网格(Mesh)的转化。
步骤四、全景纹理贴图,将RGB-D相机采集的色彩和纹理信息映射到网格模型上,加以精修美化,输出逼真的三维模型。
最后:文章自写,个人理解,如有错误,欢迎指正。
近期评论