对物体的真实形状和外观的获取过程
一. 基于传统多视图几何的三维重建算法
1. 主动式(Active method)
- 给定物体的深度信息
- 利用激光等光源或能量源向物体发射信号,解析返回的信号获得深度信息
- 利用数值近似还原物体的3D轮廓
1.1 莫尔条纹法
- 工作原理:依据 栅栏状条纹重叠下所产生的干涉影像 工作
- 优点:精度高;较稳健
- 限制:物体表面必须具有规则纹理
1.2 结构光法
- 使用投影仪将被编码的结构光投射到被拍摄物体上,由摄像头进行拍摄
- 结构光编码的图案的大小和形状受物体不同部分相对于相机的距离和方向不同而发生改变
- 通过运算单元将该变化换算为深度信息
- 优点:实现简单;对物体本身的颜色和纹理稳健
- 限制:受强光影响比较大;受投影距离的限制
- 应用:苹果iphonex;微软kinect
1.3 TOF激光飞行时间法
- 向目标连续发送光脉冲,依据接受到返回光的时间或相位差计算距离
- 优点:测量距离较远;受环境光干扰较小
- 限制:成本较高(精准的时间测量模块)
1.4 三角测距法
- 三角测量原理
- 测量系统包括:一个激光发射器和一个CCD图像传感器
- 激光发射器发射一束激光被反射由CCD检测到,通过对比物体位移后CCD检测到的激光偏移,求解深度信息
- 优点:精度高;成本低
- 应用:扫地机器人
2. 被动式(Passive method)
- 重建过程中不与物体产生任何交互
- 利用周围环境获取图像,通过对图像的理解来推理物体的三维结构
2.1 单目视觉法(Monocular stereo vision)
- 使用一台摄像机作为采集设备
- 优点:低成本、易部署
- 缺点:难以进行深度估计
2.1.1 阴影恢复法(Shape From Shading, SFS)
- 利用图像的阴影估计物理的轮廓特征
- 利用几种不同光照条件对比图像的明暗程度和阴影,来估计物体的深度信息
- 限制:要求光源参数准确,在复杂光线场景下无法使用
2.1.2 纹理恢复形状法(Shape From Texture, SFT)
- 利用纹理经过透视等变形在图像上的变化来逆向计算深度数据
2.2 双目视觉法(Binocular stereo vision)
- 图像由两个处在不同位置的相机同时对物体进行拍摄得到
- 或由一个相机不断移动到不同的视点对物体进行拍摄
- 依赖于图像像素匹配
2.3 立体视觉法(Multi-view stereo, MVS)
- 多个相机置于视点,或用单目相机在多个不同视点拍摄图像
- 在重建前,需先估计相机参数
- 相机参数:相机姿势信息(位置+方向)和相机固有属性(焦距+像素传感器尺寸)
- 计算相机参数的常用方法:SLAM和SfM,两者均依赖于图像像素匹配,假设场景是刚性
2.3.1 计算相机参数
1)SfM(Structure from Motion, 从运动恢复结构)
- 常用于计算无序图像集的相机模型
- 通常是离线的
2)SLAM(Simultaneous localization and mapping, 同步定位与地图构建)
- 从视频流计算相机的位置
- 通常是实时的
3. 基于消费级RGB-D相机
- 微软:Kinect V1、V2
- Kinect Fusion / Dynamic Fusion / Bundle Fusion
二. 基于深度学习的三维重建算法
1. 在传统三维重建算法中引入深度学习方法进行改进
1.1 BA-Net
- 将BA优化作为CNN的一层
2. 深度学习重建算法和传统三维重建算法进行融合
3. 直接利用深度学习算法进行三维重建
3.1 三维重建的数据格式
- 深度图(depth):2D图片,每个像素记录深度,以灰度图表示,越近越黑
- 点云(point cloud):以点的形式记录,每个点包含有三维坐标
- 体素(voxel):类似于像素,立方体,三维空间分割上的最小单位
- 网格(mesh):多边形网格
3.2 基于体素的三维重建
- 将2D卷积扩展到3D进行重建
- 限制:提升精度需提升分辨率,分辨率增加将大幅增加计算量
3.3 基于点云的三维重建
- 限制:点云的点缺少连接性,缺乏物体表面信息(重建后表面不平整)
3.4 基于网格的三维重建
- CNN提特征
- GNN表示三维网格结构