三维重建简述与应用

推荐使用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游西湖之类的。
  • 自动驾驶:构建高精地图,高精地图对于自动驾驶来说太重要了。

](url)

相关推荐
小猪努力学前端9 小时前
基于PixiJS的小游戏广告开发
前端·webgl·游戏开发
光影少年2 天前
WebGIS 和GIS学习路线图
学习·前端框架·webgl
DBBH2 天前
Cesium源码分析之渲染3DTile的一点思考
图形渲染·webgl·cesium.js
Robet3 天前
TS2d渲染引擎
webgl
Robet3 天前
WebGL2D渲染引擎
webgl
goodName4 天前
如何实现精准操控?Cesium模型移动旋转控件实现
webgl·cesium
丫丫7237346 天前
Three.js 模型树结构与节点查询学习笔记
javascript·webgl
allenjiao8 天前
WebGPU vs WebGL:WebGPU什么时候能完全替代WebGL?Web 图形渲染的迭代与未来
前端·图形渲染·webgl·threejs·cesium·webgpu·babylonjs
mapvthree9 天前
mapvthree Engine 设计分析——二三维一体化的架构设计
webgl·数字孪生·mapvthree·jsapi2d·jsapigl·引擎对比
GISer_Jing10 天前
3D Cesium渲染架剖析
javascript·3d·webgl