Structure from Motion(SfM)即运动恢复结构技术,是计算机视觉领域的重要技术,旨在通过分析一组二维图像序列,恢复场景的三维结构以及相机在拍摄这些图像时的位置和姿态(相机运动) 。SfM 技术原理基于多个视角图像间的对应关系。其实现流程包含多个关键步骤。
第一步是特征检测和提取,在每幅图像中识别具有独特性质的特征点,如尺度不变特征变换(SIFT)、加速稳健特征(SURF)等方法,这些特征点在图像旋转、缩放、光照变化等条件下保持相对稳定,为后续匹配提供基础 。
第二步是特征匹配和几何验证。通过比较不同图像中特征点的描述子,寻找匹配的特征点对。然而,单纯基于描述子匹配可能存在误匹配,因此需运用几何验证方法,如随机抽样一致(RANSAC)算法结合八点法估计基本矩阵,剔除误匹配点对,保留满足几何约束的正确匹配 。
第三步是结构和运动重建,利用满足几何约束的匹配点对,通过三角测量等方法计算三维点坐标,恢复相机内外参数,构建场景的三维结构 。在实际应用中,如对建筑物进行三维重建时,从不同角度拍摄的大量照片经 SfM 处理,能够精确还原建筑物的三维结构。
COLMAP 是由斯坦福大学开发的建模算法,是高度集成的 SfM 和多视图立体视觉(MVS)工具,用于从无序或有序的二维照片集合中恢复三维场景几何结构(点云)及相机姿态 。COLMAP 涵盖特征检测与匹配、增量式 SfM、多视图立体匹配(MVS)等模块 。在特征检测与匹配方面,支持 SIFT、SURF、ORB 等多种特征描述符。增量式 SfM 模块中,COLMAP 从初始图像对开始,逐步添加图像以估计所有图像相对相机姿态,生成稀疏点云 。多视图立体匹配(MVS)模块基于已知相机参数,生成深度图和法向量图,进而构建稠密点云和三维表面模型 。
SLAM是指携带传感器的运动物体,在运动过程中实现自身定位,并以适当的方式对周围环境进行同步建图的过程。SLAM 系统一般包含传感器数据获取、数据处理与分析、定位与地图构建等组件 。在传感器数据获取方面,常用激光雷达和摄像头 。
激光雷达能提供高精度距离测量,生成精确点云数据,不受光照变化影响,在不同光照条件下稳定工作,在复杂环境及特征稀疏环境(如白墙、隧道)表现出色 。例如,多线激光雷达通过发射和接收激光束,能够快速获取周围环境的三维点云信息,为地图构建提供精确数据 。摄像头不仅能获取距离信息,还能捕捉丰富颜色和纹理信息,有助于物体识别、语义分割等高级任务 。视觉 SLAM(如基于单目或双目相机的 SLAM)依靠图像特征点定位和构建地图 。在有足够光照时,视觉 SLAM 高效准确,且能全面感知环境,识别物体、颜色、文字等信息,利于语义 SLAM 和环境理解 。
Fast-LIO是一种由香港大学团队在2021年开发的高效且稳定的激光雷达-惯性导航系统(LIO-SLAM)框架。该框架利用紧密耦合的迭代扩展卡尔曼滤波(IEKF)技术,将激光雷达点云数据与惯性测量单元(IMU)数据深度整合,以应对传统SLAM算法在高速移动、低纹理或高噪声环境下可能出现的性能下降问题。
Fast-LIO的运行流程主要分为三个阶段:数据预处理、状态估计和地图更新。在数据预处理阶段,系统利用IMU提供的角速度和加速度信息进行积分,以预测当前的运动状态,包括位置、速度和传感器偏差。
状态估计阶段,Fast-LIO采用迭代扩展卡尔曼滤波(IEKF)框架,通过将累积的点云与局部地图进行匹配,建立基于点到面(平面特征)或点到线(边缘特征)的残差模型。在每次迭代中,系统通过最小化残差来优化状态向量,直到达到收敛。
在地图更新阶段,Fast-LIO依赖于增量式的k-d树数据结构。这种数据结构支持动态的插入、删除和平衡操作,能够有效地管理大规模的点云地图,确保了地图更新的高效性。
神经辐射场(NeRF)是一种面向三维隐式空间建模的深度学习模型,在表示和渲染三维场景领域具有重要价值。然而由于神经辐射场算法训练过程复杂、需要大量的计算资源和时间等,其可用性和实用性受到一定限制。NERF由 Mildenhall 等人在2020ECCV上提出:《NeRF:representing scenes as neural radiance fields for view synthesis》
NeRF是一种基于深度学习的3D场景重建与渲染技术,通过训练神经网络来表示和生成复杂的三维场景。其核心原理是使用多层感知机(MLP)神经网络,输入空间中的一个点(3D坐标)和视角方向,输出该点的颜色(RGB)和密度(σ)。通过对大量不同视角的图像进行训练,NeRF学会了空间中颜色和密度的分布,从而能够生成新的视角图像。
NeRF通过定义空间中每个点的颜色和辐射强度分布,构建一个连续的辐射场。该辐射场能够表示任意空间点的颜色、密度等属性。与显式存储几何形状和材质的传统方法不同,NeRF采用基于神经网络的隐式表示,支持无限分辨率渲染,并能从训练数据中学习场景的复杂性和多样性。神经辐射场的基本架构主要包括位置编码和多层感知机。
位置编码:在传统的MLP网络中,由于其局限性,较难有效学习和表示颜色、纹理和光照等高频数据的细节。但场景中的颜色纹理信息通常具有高频成分,如果直接使用MLP网络对场景进行学习,可能会导致习得的纹理表面变得相当模糊。为解决传统MLP难以捕捉高频细节的问题,NeRF引入位置编码技术。通过正余弦周期函数对空间位置进行编码,将低维输入映射到高维空间,从而增强网络对高频信息的捕捉能力。这种编码方式类似于傅里叶变换,能够有效拟合场景中的高频细节,提升生成图像的清晰度。
多层感知机:神经辐射场通常使用多层感知机来学习一个三维场景颜色、密度等物理属性,MLP是一个由多个全连接的隐藏层组成的深度神经网络,可以作为通用函数近似器表示表面或体积属性。MLP网络利用位置编码后的输入,学习场景的颜色、密度等属性。通过优化网络参数,MLP能够重建场景的几何形状和外观,支持高质量的视角合成。。
3D Gaussian Splatting(3DGS)是近年来计算机视觉与图形学领域的一项突破性技术,其核心目标是通过显式的3D高斯点云表示场景几何与辐射属性,实现高质量实时渲染。相较于传统的神经辐射场(NeRF)依赖隐式神经网络的复杂计算,3DGS通过离散化的高斯基元直接存储场景信息,结合可微分光栅化技术,在保持视觉精度的同时大幅提升计算效率。
该技术的核心创新在于将场景建模为一系列可学习的3D高斯椭球体,每个高斯基元包含位置、协方差、不透明度及颜色属性。通过优化这些参数,3DGS能够从多视角图像或传感器数据中快速重建三维场景,并在渲染时通过各向异性高斯泼溅(Splatting)技术生成逼真图像。例如,在1080p分辨率下,3DGS的渲染速度可达每秒60帧以上,较NeRF提升数十倍,且无需依赖光线追踪硬件。这一特性使其在自动驾驶实时建图、影视特效制作、医学影像合成等领域展现出巨大潜力。
在 2023 年 SIGGRAPH 会议中,论文《3DGS:3D Gaussian Splatting for Real-Time Radiance Field Rendering》提出了一种名为 3D 高斯泼溅(3DGS)的方法,该方法在 3D 场景表示和实时渲染领域具有重要意义。传统辐射场方法虽能实现高质量新视图合成,但在训练和渲染过程中对神经网络的依赖导致成本高昂,且难以在保证速度的同时兼顾质量。尤其对于无边界、完整的开放场景以及 1080p 分辨率的渲染需求,现有方法难以达到实时显示速率。3DGS 方法的提出,旨在解决这些痛点。
3D 高斯场景表示: 3DGS 首次采用 3D 高斯场景表示,从相机校准产生的稀疏点开始,用 3D 高斯体表示场景。既保留了连续体积径向场的优势,便于对场景进行优化,又避免了在空空间进行不必要的计算。
交替更新与自适应密度控制:提出一种优化方法,交替更新 3D 高斯参数和自适应密度控制。通过对各向异性协方差的优化,实现对场景的精确表示,同时根据场景复杂度自适应地调整高斯分布的密度,提升优化效率和效果。
快速可见性感知渲染算法:为实现高效的渲染,3DGS 开发了一种快速的可见性感知渲染算法,支持各向异性泼溅,加速训练过程,并使得实时渲染成为可能。
室内三维重建技术路线对比总结如下:
SLAM、SFM、NeRF 和 3DGS 是室内三维重建的四种主要技术路线,各自具有独特的技术原理、数据输入、输出结果、重建方式、精度、实时性、硬件需求、动态场景处理能力、适用场景、典型工具、核心优势和主要局限。
SLAM 技术在实时性方面表现出色,能够实现实时定位与地图更新,适合在移动端部署,如机器人导航和 AR 实时交互。其硬件需求相对较低,可在低功耗嵌入式设备上运行,但在稠密重建时需要额外计算,内存占用较高。SFM 技术在重建精度方面具有优势,能够实现高精度稀疏重建,无需传感器标定,适用于文物数字化和建筑测绘。然而,它仅支持静态场景,无法处理弱纹理区域,且依赖特征匹配质量。
NeRF 技术能够生成超逼真的视图合成,支持复杂材质与光照效果,适用于高保真虚拟展示和影视特效。但其训练时间长,对计算资源需求高,且难以处理透明 / 反光物体。3DGS 技术在速度和质量之间取得了平衡,支持大规模场景与动态更新,适用于大规模室内重建和实时 AR。其渲染速度快,几何精度提升明显,但在点云初始化时依赖 SFM,动态场景处理需 IMU 辅助。
表1. 不同技术路线进行三维重建的全方位对比
在三维重建领域,市场上存在多种商业化和开源的软件工具,它们各有优势和特点,满足不同用户的需求。商业化软件:Agisoft Metashape(原Photoscan):这是业界领先的三维重建软件,广泛应用于地理信息系统(GIS)、建筑建模、文化遗产保护等领域。它能够从照片中生成高精度的三维点云和纹理,并支持大规模数据处理。3DF Zephyr:这款软件以其强大的自动化功能和简洁的操作界面而受到青睐。它支持从照片生成高质量的三维模型,并具有强大的数据导入和导出功能,适合各种规模的项目。
ContextCapture:由Bentley公司开发,特别擅长大规模三维建模,广泛应用于工程和基础设施领域。它能够处理大量数据并生成高精度的三维模型,特别适合于城市建模和地理数据分析。Pix4Dmapper:专注于无人机影像的三维重建,特别适合于测绘、农业、矿业等行业。其软件可以处理多种影像来源,生成精确的点云、模型和正射影像。
开源软件:COLMAP:这是一款强大的开源多视角立体重建(MVS)软件,具有高度的灵活性和可扩展性。它适用于学术研究和开发,可进行结构光、光束法平差等复杂的三维重建任务。OpenMVG:这是另一款开源软件,专注于多视角几何学和三维重建。它为用户提供了一整套高效的图像匹配和三维重建工具,并且支持与其他软件(如COLMAP)进行集成。VisualSfM:该软件支持快速的结构从运动(SfM)重建,能够从多张照片中恢复三维点云。它结合了图像特征提取、匹配和优化功能,是许多研究人员和开发人员的首选工具。
表2. 不同建模软件的各方面对比情况
