三维重建简述与应用
三维重建是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。
在线工具推荐:3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器
推荐使用NSDT 3Dconvert在线工具进行模型文件在线打开与查看,支持ply、glb、gltf、obj、stl、xyz、pcd等mesh或点云格式之间相互转换。
三维重建简介
三维重建是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。
三维重建的分类
根据采集设备是否主动发射测量信号,分为两类,基于主动视觉理论和基于被动视觉的三维重建方法。
- 主动视觉三维重建方法
主要包括结构光法和激光扫描法。结构光法一般采用投射已知的模式到被测物体上,再通过摄像头拍摄物体上的光条图像,通过计算光条上的信息,来得到物体的表面信息。激光扫描法则是利用激光雷达对物体进行扫描,获取物体的三维信息。
- 被动视觉三维重建方法
被动视觉只使用摄像机采集三维场景得到其投影的二维图像,根据图像的纹理分布等信息恢复深度信息,进而实现三维重建。其中,双目视觉和多目视觉理论上可精确恢复深度信息,但实际中,受拍摄条件的影响,精度无法得到保证。单目视觉只使用单一摄像机作为采集设备,具有低成本、易部署等优点,但其存在固有的问题:单张图像可能对应无数真实物理世界场景,故使用单目视觉方法从图像中估计深度进而实现三维重建的难度较大。
三维重建的表达方式
常规的三维重建表达方式有以下四种:深度图(depth)、点云(point cloud)、体素(voxel)、网格(mesh)。
- 深度图(depth)
深度图是场景中每个点到相机的距离的二维图像,是空间单位,如毫米。
深度图和视差图有一定的关系,可以通过视差图计算得到,是三维信息的一种表示方式。具体计算方式为:depth = b*f / disparity(深度 = 基线 x 焦距 /视差)。
- 点云(point cloud)
云是在逆向工程中通过测量仪器得到的产品外观表面的点数据集合。
使用三维坐标测量机所得到的点数量比较少,点与点的间距也比较大,叫稀疏点云;而使用三维激光扫描仪或照相式扫描仪得到的点云,点数量比较大并且比较密集,叫密集点云。
- 体素(voxel)
体素(voxel)是三维像素,相当于3D空间中的像素。
体素是固定分辨率的三维栅格地图,用固定大小的立方块作为最小单元,来表示三维物体的一种数据结构。体素可以看成粗略版的点云2。
体素网格(Voxel Grid)是固定分辨率的,与之对应的是可变分辨率的网格叫八叉树地图(Octomap)。体素网格是用固定大小的立方块作为最小单元,来表示三维物体的一种数据结构。
- 网格(mesh)
网格(mesh)是指将图像或者三维模型等数据,通过网格化的处理,变成一系列的网格数据,其属于三维重建的基础部分。
网格可以分为二维网格和三维网格两种类型,其主要应用在图形渲染、计算几何、数字信号处理等领域。
在图形渲染中,可以通过网格化将图像数据转换成一系列的三角形网格,从而方便进行渲染处理。
三维重建的优势
相比于传统建模方式,三维重建的优势有如下几点。
- 工作量大大减少,通过科学的正确的拍摄方法,能够快速的采集数据信息,然后再室内进行数据处理,可以很快的得到目标的三维模型。
- 对建模人员要求不是很高,只要简单的熟悉拍摄技巧,以及数据处理的技巧,数天之内就可以上手。下面我会介绍拍摄技巧和数据处理技巧。
- 定种技术不受拍摄物体的形状玳态和尺寸所限制。
- 不需要昂贵的设备,一般情况下只需要普通的数码相机就可以,如果拍摄大地形,大的建筑物,我们可以使用无人机进行数据采集。这些优点很好的弥补了传统建模以及三维激光扫描仪存在的不足,注定了它将是今后三维建模的一个重要发展方向,它的全自动或半自动建模特点和批量处理特点决定了它能够适用于各个行业。
三维重建的应用
三维重建主要的应用如下:
- 影像娱乐:可以重建物体,得到三维模型,可以用来3D打印或用人体来驱动做一些有趣的应用。
- 虚拟试衣:对人体重建后才能根据不同人体的胖瘦高矮自动适配不同尺码的衣服。
- 智能家居:宜家的APP,可以用来放置虚拟家具看看和自己家里的调性是否匹配,还有实际尺寸,可以看看能不能放得下。
- 文物重建、AR旅游:目前大家去很多博物馆或旅游景点其实都已经有了类似的产品。比如AR游西湖之类的。
- 自动驾驶:构建高精地图,高精地图对于自动驾驶来说太重要了。