2025.7.20学习日记

今天看到了一篇名为Review of Feed-forward 3D Reconstruction: From DUSt3R to VGGT的文章,介绍了前馈3D重建的各种模型

1.传统范式

作者在文章中介绍到Inferring dense 3D geometry from a collection of 2D images的传统范式包括两个步骤,首先是运动结构恢复SfM,其次是多视角立体成像MVS

  • SfM:主要进行提取和匹配图像中的sparse local feature,通过Bundle Adjustment过程去联合优化相机位姿和sparse3D点云.colmap工具箱是这一过程的典型代表,colmap工具箱将文件处理成
    image
  • MVS:利用已知的相机位姿,创建像素级的对应关系,估计每个像素的深度,最后融合成密集点云
    image
    【注】:谈到像素级对应关系,比较经典的是语义分割的任务,为每个像素进行分类,最后达到语义分割的效果。

2.COLMAP

COLMAP是集成了SfM与MVS的开源三维重建工具,既可以通过SfM管道生成稀疏点云,又可以再次通过MVS管道生成稠密点云。以下是项目的参考文档和地址
【】参考文档:https://colmap.github.io/
【】项目地址:https://github.com/colmap/colmap

安装

Colmap可以通过CLI或者GUI两种方式使用,此外还可以被构建为可重用库供C++程序使用,
Windows可以通过Github发布页安装cuda版本与nocuda版本https://github.com/colmap/colmap/releases
Ubuntu可以通过apt install colmap安装nocuda版本;可以参考以下两个网站安装编译带有cuda的版本

安装步骤为,安装相关依赖->构建并编译Colmap(base)->运行colmap(colmap -h/colmap gui)
【注】CMAKE_CUDA_ARCHITECTURES代表的是显卡硬件架构编号, rtx2080ti 对应75, rtx4060ti 对应89. 完整的CUDA硬件架构对应关系, 可以查看这两个页面 cuda-gpus, cuda-legacy-gpus

教程
  1. 快速入门:
  • 选定工作区,例如我的图片位于path/to/project/images,那么我可以选定path/to/project作为工作区
  • 运行重建工具,在工作区下会多出sparsedense文件夹,前一个文件夹下的文件为稀疏模型,后一个文件夹的文件为密集模型,
    【注】:在密集模型中,ply可以被可视化,网格mesh前缀文件必须使用外部查看器
    image
  1. 术语:
    keypoints指COLMAP探测到的每张图像的关键点,descriptors指COLMAP绑定到关键点上的数值,matches表示keypoints与descriptors的对应关系
  2. 数据结构:
    主要介绍.ini文件,该文件规定了图像文件夹路径,数据库文件路径
  3. 特征检测
    在第一步中,特征检测/提取会在图像中找到稀疏特征点,并使用数值描述符来描述它们的外观。COLMAP 导入图像,并在一个步骤中执行特征检测/提取,以便只从磁盘加载一次图像。产生的特征格式如下,每行对应一个特征
    image
    image
  4. 特征匹配
    在第二步中,特征匹配和几何验证会在不同图像中的特征点之间找到对应关系。支持自定义匹配,需要提供一个文本文件
    image
    image
    自定义匹配中,img1的0号特征点对应,img2的1号特征点,依次类推
  5. 稀疏重建
    稀疏重建指通过从多张二维图像中恢复相机参数和稀疏特征点云,输入是一组多视角拍摄的二维图像,输出是相机参数与稀疏点云。
    image
  6. 密集重建
    第一步是 undistort 图像,第二步是使用 stereo 计算深度和法线图,第三步是将深度和法线图 fuse 转换为点云,然后是最终的、可选的点云 meshing 步骤。
    image
  7. 接口Interface
    COLMAP 的大多数功能都可以通过图形界面和命令行界面访问,这两个界面都嵌入在同一个可执行文件中。
  • CLI:你可以直接将选项作为命令行参数提供,或者使用 colmap --project_path path/to/project.ini ,提供一个包含选项的 .ini 项目配置文件。
  • GUI:启动 GUI 应用程序,请执行 colmap gui ,或者使用 colmap gui --project_path path/to/project.ini ,提供一个包含选项的 .ini 项目配置文件。
    image
    image
    无法一次项启动所有的模块,例如启动特征检测模块时,就无法启动特征匹配模块
多相机支持

多相机支持在参考文档中被称为Rig Support,Rig为英文单词Rigid的前缀,在Colmap中表示刚体相机系统(Rigid Camera System)

  • 多相机系统的特点
    相机之间的相对位置和方向固定不变(旋转矩阵与平移矩阵,旋转四元数和平移向量)
  • Colmap的处理方法
    选定一个相机作为Rig系统参考,优化时仅优化参考相机的位置和方向,其余需要相机的位姿作为参数固定
    image
    【注】AI理解内容还挺好用的😎

3.DL的简单探索

起初的深度学习表现为优化特定组件,例如SuperPoint和SuperGlue增强了特征提取和匹配,MVSNet以及后续的CasMVSNet,PatchMatchNet代替了传统的MVS步骤

posted @ 2025-07-20 22:27  BingUw  阅读(49)  评论(0)    收藏  举报