Zhangzhe's Blog

The projection of my life.

0%

Nerf

1. 三维重建流程

1.1 运动恢复结构(Structure from Motion, SfM)

  • 输入:

    • 多视角图像
    • 相机内参
  • 输出:

    • 稀疏三维点云
    • 相机外参(位姿)
  • 主要过程:

    • 特征提取: 从图像中提取出能够用于匹配的特征点,如角点、边缘等。
    • 特征匹配: 在图像序列中匹配相对应的特征点,以建立图像之间的对应关系。
    • 相机定位: 利用特征匹配信息,估计相机在不同图像之间的运动,即相机的位姿。
    • 三维重建: 基于相机的位姿估计和特征点的视差信息,计算出场景中物体的三维坐标。

1.2 多立体视觉(Multi-View Stereo, MVS)

  • 输入:

    • 多视角图像
    • 相机内外参
    • 稀疏三维点云
  • 输出:

    • 稠密三维点云
  • 主要过程:

    • 图像对齐: 通过相机定位和特征匹配,将多个图像对齐,确保它们在同一坐标系下。
    • 深度图生成: 对每个像素估计其在场景中的深度或距离。这可以通过多个视角的图像之间的视差信息来实现,视差越大表示物体离
    • 机越近。
    • 点云重建: 利用深度图,将每个像素映射到三维空间中,形成一个点云表示物体的表面。

1.3 表面重建

  • 输入:稠密三维点云

  • 输出:场景/模型的三角网格(三角面片)

  • 主要过程:

    • 网格生成: 将点云转换为更为紧凑和结构化的表示,通常是三角网格。
  • 表面模型通常可导入可视化软件,也可进行物理仿真

1.4 纹理重建

  • 输入:

    • 多视角图像
    • 相机内外参
  • 输出:

    • 场景/模型的纹理图像
  • 主要过程:

    • 纹理映射(Texture Mapping): 将从图像中捕捉到的纹理信息映射到三维模型的表面上。这可以通过将图像中的颜色信息映射相应的三维模型表面上的顶点或像素来实现。这样,模型就能够呈现出与真实世界相似的外观。
    • 相邻像素插值: 由于模型表面上的顶点或像素数量有限,需要进行插值操作,以在整个表面上创建平滑和连续的纹理。这通常涉及对相邻像素之间的颜色进行插值,以便在纹理映射的过程中产生平滑的过渡效果。
    • 去除失真和伸缩: 在将图像纹理映射到三维模型时,可能会发生一些失真和伸缩。为了保持模型的准确性和真实性,需要进行一些校正步骤,以修复这些失真。
  • 纹理重建后即可可视化

2. 神经辐射场(Neural Radiance Fields, NeRF)

  • 将三维重建流程存储在 三角面片和纹理信息 的三维信息用神经网络拟合(隐式建模)。

  • 缺点是无法进行物理仿真。

  • 优点:

    • ppl 简单
    • 无空洞
    • 高逼真