网格(mesh)生成算法
网格(mesh)生成算法
网格(mesh)生成算法
1. 简介
基于3D视觉的新兴应用场景蓬勃发展,3D点云越来越受到人们的广泛关注。点云有着广泛的应用领域,包括机器人技术、3D图形、自动驾驶、虚拟现实(AR/VR/MR)等。为了跟上不断增长的应用需求,研究和开发有效存储、处理的相关算法来处理点云的意义正显著上升。
3D点云数据的表述形式一般分为以下四种:
点云(Point cloud):由N个D维的点组成,当这个D=3的时候一般代表着(x,y,z)的坐标,当然也可以包括一些法向量、强度等别的特征。与网格、体素等数据形式类似,点云也常用作描述三维模型,其表现非常直观,且具有无序性和不规则性。点云定义为目标表面特性的海量点集合,可简单理解为众多特征点的集合,是在获取物体表面每个采样点的空间坐标后得到的。
体素(Voxel):由三维栅格将物体用0和1表征。
网格(Mesh):由三角面片和正方形面片组成。
多角度(Multi-view)的RGB图像或者RGB-D图像
下图分别展示以上四种表述形式
3D视觉的建模领域中有多种技术和方法用于创建对象、环境或结构的数字表示。两种常见的方法是使用点云3D模型(point cloud 3d models)和3D网格模型(3d mesh models)。本文中先介绍下点云3D模型和3D网格模型之间的区别和应用,再对mesh生成算法进行一个大概的描述。
2. Points clouds Vs Meshes
点云3D模型是通过收集大量单独数据点创建的对象或场景的表示。这些数据点通常称为“点”,源自LiDAR(光检测和测距)或结构光扫描仪等3D扫描设备。
点云3D模型的主要目的是捕获3D空间中点的精确空间位置。这些点可以表示对象或环境的表面、边缘或其他特征。
点云3D模型的特点:
高精度:点云模型最显着的优势之一是高精度。它们可以准确地表示扫描对象,非常适合测量、建筑和工业设计等应用。
详细的几何形状:点云模型捕获物体的精细细节,低至毫米级。这使得它们对于需要精确测量和分析的任务很有价值。
缺乏连通性:点云模型由各个点组成,它们不具有固有的连通性或表面结构。
数据量大:由于数据点数量庞大,点云模型的数据量可能相当大,这可能需要专门的软件和硬件来处理。
点云3D模型一般应用:
测绘:点云模型对于测绘应用来说非常宝贵,其中准确的测量和空间数据至关重要。
考古学和文化遗产:它们用于高精度地记录考古遗址和历史文物。
逆向工程:工程师使用点云模型对复杂对象进行逆向工程,提取精确的几何数据。
与点云模型相比,3D网格模型是通过连接这些单独的点以形成连续的表面来构建的。此过程通常称为“网格划分”。
3D网格模型的特点:
表面表示:3D网格模型使用顶点、边和面表示对象的表面,同时我们可以在表面上贴精细的纹理。这使得它们适合渲染和可视化。
拓扑:网格模型具有明确定义的拓扑,这意味着它们具有清晰的结构,杂乱的错误点减少。这对于动画和游戏等应用程序至关重要。
减少数据大小:与点云模型相比,网格模型在数据大小方面通常更紧凑。这使得它们更容易处理和存储,且减少了渲染压力。
精度较低:虽然网格模型提供了对象的良好视觉表示,但在捕获精细细节方面它们可能不如点云模型精确。
应用上比如:
游戏和动画:网格模型广泛应用于游戏行业和3D动画,因为它们能够提供视觉吸引力和交互式表示。
产品设计:CAD软件通常使用网格模型来设计产品和创建原型。
3D打印:网格模型非常适合3D打印,因为它们可以轻松转换为物理对象。
3. 为什么要生成mesh网格以及生成mesh网格的难点
在三维重建中,通过深度传感器比如RGBD相机、雷达的方式,或者通过多张2D图片MVG的方式,都可以采集到大量稠密的点云数据。对于一个很复杂的目标物体,我们的精度要求不高,生成的点云可能就有几百万以至几千万个点,对于数据传输以及显示有比较大的困难,而且显示效果也比较差。
网格生成过程中有很多的难点,这些难点也是衡量网格生成算法的标准:
- 精度上:
A. 生成网格与原始点云的位置的差异性;
B. 对点云噪声的亢余度、点云分布不同密度的适应效果以及应对点云缺失的效果;
C. 对尖锐特征的保留效果,以及细节的保留效果
D. 网格三角面大小以及形状
硬件上:能够支持模型网格面积的大小
时间性能:网格生成速度
4. 常见的mesh网格生成算法
总的先说,目前网格生成算法可以分为两大类:连续曲面生成算法 和 非连续曲面生成算法(离散方法)
连续方法:利用点云去拟合某类分布函数,得到表面的函数表示,然后生成网格。
比如:TSDF、Wavelet(多用于医学图像)、Poisson、FSSR、SSD、GDMR、多级流式表面重建、marching cubes(严格说这并不是一个面生成算法,而是一个等值面提取算法)等
离散方法利用某些空间划分方法,直接从点云数据生成网格。
比如:PowerCrust、Greedy Projection、滚球法、alpha-shapes