Colmap官方文档自学总结

colmap简介

COLMAP是开源的计算机视觉软件,主要用于从一系列二维图像中进行三维重建。全称为“COLLISION-MAPpping”,它是一个高度集成的Structure-from-Motion (SfM) 和 Multi-View Stereo (MVS) 管道工具,由斯坦福大学开发和维护。

COLMAP能够帮助用户从无序或有序的二维照片集合中恢复出三维场景的几何结构(点云)以及每张图像对应的相机姿态。其功能包括:

  • 特征检测与匹配:识别并匹配不同图像间的特征点。
  • 增量式SfM:通过特征匹配关系建立图像间的连接,并逐步估计所有图像的相对相机姿态,形成稀疏点云。
  • 多视图立体匹配(MVS):基于已知的相机参数,生成深度图和法向量图,进而生成稠密点云和三维表面模型。
  • 优化:对整个重建过程中的关键参数(如相机位置、内部参数等)进行全局优化以提高精度。

COLMAP提供了图形用户界面和命令行接口,支持多种图像格式,并可在Windows、Linux和Mac OS上运行。由于其高效性和准确性,COLMAP在学术研究和工业应用领域被广泛用于三维建模、三维地图制作、考古学、虚拟现实等多个方面。

3D处理步骤/原理

传统上,基于图像的 3D 重建首先使用SFM技术(structure-from-motion)从图像中恢复稀疏表示和相机位姿。然后,此输出用作MVS(Mutil-View Stereo)多视图立体匹配的输入,以恢复场景的稠密表示。

文件结构

+── images
│   +── image1.jpg
│   +── image2.jpg
│   +── ...
+── sparse
│   +── 0
│   │   +── cameras.bin
│   │   +── images.bin
│   │   +── points3D.bin
│   +── ...
+── dense
│   +── 0
│   │   +── images
│   │   +── sparse
│   │   +── stereo
│   │   +── fused.ply
│   │   +── meshed-poisson.ply
│   │   +── meshed-delaunay.ply
│   +── ...
+── database.db

1、以上目录都在项目数据文件夹下

2、sparse是稀疏重建的工作文件夹。

3、dense是稠密重建的工作文件夹。

SFM(structure-from-motion)运动结构重建

Structure-from-Motion (SfM) 是一种计算机视觉技术,它能够通过分析一组二维图像序列来恢复场景的三维结构以及相机在拍摄这些图像时的位置和姿态(即相机运动)。这个过程通常包括以下步骤:

  • 特征检测和提取
  • 特征匹配和几何验证
  • 结构和运动重建

图片输入要求/建议

  • 捕捉具有良好纹理的图像。避免完全无纹理的图像 (例如,白色的墙壁或空的桌子)。如果场景包含的内容不够 纹理本身,您可以放置其他背景对象,例如 海报等。
  • 相似的照明条件下拍摄图像。避免高动态 范围场景(例如,带有阴影或图片的对太阳图片 通过门/窗)。避免在有光泽的表面上出现镜面反射。
  • 捕获具有高度视觉重叠的图像。确保每个对象都是 至少在 3 张图像中看到 - 图像越多越好。
  • 不同角度捕捉图像。不要站在同一个位置通过旋转相机拍摄,在每次拍摄后走几步。同时,尝试从相对相似的角度中获得足够的图像。请注意,图像越多不一定越好,可能会导致重建过程缓慢。如果您使用视频作为输入,请考虑 对帧速率进行下采样。

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

多视图立体(MVS)方法利用了结构化运动(SfM)得到的结果,对图像中每一个像素进行深度和/或法向量数据的计算。将多个图像对应的深度和法线贴图在三维空间中整合,进而形成对场景的稠密点云表示。接下来,通过运用这些融合后的点云所包含的深度和法线信息,可以采用像(修正版)泊松表面重构这样的算法[kazhdan2013年提出的方法]来还原场景的三维表面几何结构。

问题点

稀疏重建时的GPU几乎没占用

根据大佬的说法,稀疏重建过程中用的时CPU,(特征提取和匹配用的时GPU)所以图片多的时候会很慢。

Low GPU usage during reconstruction · Issue #2354 · colmap/colmap

Mapper with pba not using GPU · Issue #1359 · colmap/colmap

稀疏重建时,只有很少图片注册上

根据官方网站,的说法,按照以下两种方式解决,我还没试过。

理想情况下,重建工作正常,所有图像都已注册。如果这是 如果不是这种情况,建议:

  • 执行其他匹配。为获得最佳结果,请使用详尽匹配,启用 引导式匹配,增加词汇树中最近邻的数量 匹配,或增加顺序匹配中的重叠等。
  • 如果 COLMAP 初始化失败,请手动选择初始图像对。选择“重建”>“重建”选项>“初始化”(Reconstruction > Reconstruction options > Init),然后从数据库管理工具中设置具有足够匹配度的图像。

colmap命令行调用

自动重建

# The project folder must contain a folder "images" with all the images.
$ DATASET_PATH=/path/to/project

$ colmap automatic_reconstructor \
    --workspace_path $DATASET_PATH \
    --image_path $DATASET_PATH/images

全手动操作

# The project folder must contain a folder "images" with all the images.
$ DATASET_PATH=/path/to/dataset

$ colmap feature_extractor \
   --database_path $DATASET_PATH/database.db \
   --image_path $DATASET_PATH/images

$ colmap exhaustive_matcher \
   --database_path $DATASET_PATH/database.db

$ mkdir $DATASET_PATH/sparse

$ colmap mapper \
    --database_path $DATASET_PATH/database.db \
    --image_path $DATASET_PATH/images \
    --output_path $DATASET_PATH/sparse

$ mkdir $DATASET_PATH/dense

$ colmap image_undistorter \
    --image_path $DATASET_PATH/images \
    --input_path $DATASET_PATH/sparse/0 \
    --output_path $DATASET_PATH/dense \
    --output_type COLMAP \
    --max_image_size 2000

$ colmap patch_match_stereo \
    --workspace_path $DATASET_PATH/dense \
    --workspace_format COLMAP \
    --PatchMatchStereo.geom_consistency true

$ colmap stereo_fusion \
    --workspace_path $DATASET_PATH/dense \
    --workspace_format COLMAP \
    --input_type geometric \
    --output_path $DATASET_PATH/dense/fused.ply

$ colmap poisson_mesher \
    --input_path $DATASET_PATH/dense/fused.ply \
    --output_path $DATASET_PATH/dense/meshed-poisson.ply

$ colmap delaunay_mesher \
    --input_path $DATASET_PATH/dense \
    --output_path $DATASET_PATH/dense/meshed-delaunay.ply

查看帮助

colmap help
  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: colmap 是一款基于C++的开源多视图几何计算软件,用于重建三维场景。在 Windows 操作系统上,可以通过 colmap 对图像集合进行处理和分析,并生成高质量的三维模型和点云。以下是关于 colmap 在 Windows 上的详细信息: 首先,要在 Windows 上使用 colmap,需要先下载和安装合适的编译版本。可在 colmap 官方网站上找到编译好的二进制可执行文件或按照提供的源代码自行编译。确保下载适用于 Windows 的最新版本。 安装完成后,可以使用命令行界面运行 colmap。在 Windows 上,可以通过 cmd.exe 或 PowerShell 打开命令行界面,进入 colmap 的安装目录,并执行相应的命令来处理图像数据。 colmap 提供了一系列的命令,可以通过这些命令对图像序列进行特征提取、相机姿态估计、三角测量、稀疏点云重建等操作。可以根据具体需求和任务选择相应的命令进行操作。colmap 还提供了一些可选参数,可以根据自己的需求进行调整和配置。 在处理图像数据之前,需要准备好图片数据集并按照一定的依赖关系将其组织在一起。并且,colmap 还要求每张图像的内部参数信息,如相机的焦距、畸变系数等。可以使用现有的标定工具或者自行标定相机来得到这些参数信息。 处理完成后,colmap 会生成相应的结果文件,包括重建的三维模型和稀疏点云。可以使用其他软件工具如 MeshLab 或者 Blender 等对这些结果进行可视化展示和编辑。 总之,colmap 是一款功能强大的三维重建软件,在 Windows 平台上也能够顺利使用。通过合适的安装和命令行操作,可以利用 colmap 对图像序列进行处理和分析,从而得到高质量的三维模型和点云。 ### 回答2: Colmap是一个开源的多视图几何工具包,用于从多个图像中重建三维场景。它可以在Windows操作系统上运行,并提供了很多功能和工具。 首先,Colmap可以实现从图像中提取特征点和描述符,这些特征点和描述符可以用于进行图像匹配,从而找到相同特征的图像对。然后,Colmap可以使用这些图像对进行三角化,计算出相机的内外参数,以及场景中特征点的三维位置。 在Windows系统上安装Colmap非常简单。首先,您需要在Colmap官方网站上下载最新版本的Windows安装包。然后,您可以运行安装包并按照安装向导中的说明进行操作。安装完成后,您可以在Windows操作系统的开始菜单或桌面上找到Colmap的快捷方式。 Colmap提供了一个直观而丰富的用户界面,使得用户可以轻松地进行图像重建。您可以通过拖拽图片文件夹的方式导入您的图像数据集。然后,Colmap将自动提取图像的特征点和描述符,并进行图像匹配。您可以在界面上查看匹配结果,并对匹配结果进行编辑和调整。 在三维重建过程中,您可以使用Colmap的多种功能和工具进行进一步的处理。例如,您可以对相机参数进行优化,以提高重建的准确性。您还可以使用其他功能,如图像对齐和稠密三维重建,以更精细地重建场景的几何结构。 总之,Colmap是一个功能强大的多视图几何工具包,适用于Windows操作系统。它可以帮助用户从多个图像中重建三维场景,并提供了丰富的功能和工具供用户使用。无论是学术研究还是工程应用,Colmap都是一个非常有用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值