昨天今天明天专题-计算机视觉与图形学007-COLMAP

在这里插入图片描述
COLMAP 是具有图形和命令行界面的通用运动结构 (SfM) 和多视图立体 (MVS) 管道。 它为有序和无序图像集的重建提供了广泛功能。
COLMAP适用于多个平台Linux、Windows、Max,并提供了对应的安装方法:http://colmap.github.io/install.html。
基于图像的 3D 重建传统上首先使用 Structure-from-Motion 恢复场景的稀疏表示和输入图像的相机位姿。 然后,此输出用作 Multi-View Stereo 的输入,以恢复场景的密集表示。

Structure-from-Motion在这里插入图片描述

Structure-from-Motion (SfM) 是将 3D 结构从其投影重建为一系列图像的过程。 输入是一组从不同视点拍摄的同一对象的重叠图像。 输出是对象的 3D 重建,以及重建的所有图像的内在和外在相机参数。 通常,Structure-from-Motion 系统将此过程分为三个阶段:

  1. 特征检测和提取
  2. 特征匹配和几何验证
  3. 结构和运动重建

Multi-View Stereo

多视图立体 (MVS) 采用 SfM 的输出来计算图像中每个像素的深度和/或法线信息。 融合多个 3D 图像的深度和法线图,然后生成场景的密集点云。 使用融合点云的深度和法线信息,诸如(筛选的)泊松表面重建等算法可以恢复场景的 3D 表面几何形状。
操作流程
第一步是通过运行二进制文件(Windows:COLMAP.bat,Mac:COLMAP.app)或从 CMake 构建文件夹执行 ./src/exe/colmap gui 来启动 COLMAP 的图形用户界面。接下来,通过选择 File > New project 创建一个新项目。在此对话框中,必须选择存储数据库的位置以及包含输入图像的文件夹。为方便起见,您可以通过选择 File > Save project 将整个项目设置保存到配置文件中。除了任何其他参数设置之外,项目配置还存储数据库和图像文件夹的绝对路径信息。如果决定移动数据库或图像文件夹,则必须通过创建新项目来相应地更改路径。或者,可以在您选择的文本编辑器中直接修改生成的 .ini 配置文件。要重新打开现有项目,您只需通过选择 File > Open project 打开配置文件,所有参数设置都应恢复。请注意,所有 COLMAP 可执行文件都可以通过将单个设置指定为命令行参数或提供项目配置文件的路径从命令行启动。

各文件中内容说明

关于COLMAP详细的说明可以到官网进行查找,这里主要来说明一下,COLMAP中内容存储的相关格式。
(1)Feature Detection and Extraction

NUM_FEATURES 128
X Y SCALE ORIENTATION D_1 D_2 D_3 ... D_128
...
X Y SCALE ORIENTATION D_1 D_2 D_3 ... D_128

X, Y, SCALE, ORIENTATION 为Float类型, D_1…D_128的取值范围在0…255
(2)Feature Matching and Geometric Verification

image1.jpg image2.jpg
0 1
1 2
3 4
<empty-line>
image1.jpg image3.jpg
0 1
1 2
3 4
4 5
<empty-line>
图像之间的特征对应关系,下面的数字为各个图像从数字0开始的特征索引。

(3)Sparse Reconstruction
相机的内参:图像的宽、高、焦距、中心点坐标(这里指的是简单针孔相机模型)

# Camera list with one line of data per camera:
#   CAMERA_ID, MODEL, WIDTH, HEIGHT, PARAMS[]
# Number of cameras: 3
1 SIMPLE_PINHOLE 3072 2304 2559.81 1536 1152
2 PINHOLE 3072 2304 2560.56 2560.56 1536 1152
3 SIMPLE_RADIAL 3072 2304 2559.69 1536 1152 -0.0218531

images.txt包含了图像ID、旋转、平移向量、相机ID、图像名;
图像坐标、对应的3D坐标;

# Image list with two lines of data per image:
#   IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
#   POINTS2D[] as (X, Y, POINT3D_ID)
# Number of images: 2, mean observations per image: 2
1 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180141.JPG
2362.39 248.498 58396 1784.7 268.254 59027 1784.7 268.254 -1
2 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180142.JPG
1190.83 663.957 23056 1258.77 640.354 59070

points3D.txt 里面包含3D对应的ID、XYZ、RGB、重投影误差

# 3D point list with one line of data per point:
#   POINT3D_ID, X, Y, Z, R, G, B, ERROR, TRACK[] as (IMAGE_ID, POINT2D_IDX)
# Number of points: 3, mean track length: 3.3334
63390 1.67241 0.292931 0.609726 115 121 122 1.33927 16 6542 15 7345 6 6714 14 7227
63376 2.01848 0.108877 -0.0260841 102 209 250 1.73449 16 6519 15 7322 14 7212 8 3991
63371 1.71102 0.28566 0.53475 245 251 249 0.612829 118 4140 117 4473
(4)Dense Reconstruction
+── images
│   +── image1.jpg
│   +── image2.jpg
│   +── ...
+── sparse
│   +── cameras.txt
│   +── images.txt
│   +── points3D.txt
+── stereo
│   +── consistency_graphs
│   │   +── image1.jpg.photometric.bin
│   │   +── image2.jpg.photometric.bin
│   │   +── ...
│   +── depth_maps
│   │   +── image1.jpg.photometric.bin
│   │   +── image2.jpg.photometric.bin
│   │   +── ...
│   +── normal_maps
│   │   +── image1.jpg.photometric.bin
│   │   +── image2.jpg.photometric.bin
│   │   +── ...
│   +── patch-match.cfg
│   +── fusion.cfg
+── fused.ply
+── meshed-poisson.ply
+── meshed-delaunay.ply
+── run-colmap-geometric.sh
+── run-colmap-photometric.sh

稠密重建可以输出场景中更多的空间结构信息:images 文件夹包含畸变校正后的图像,sparse 文件夹包含畸变校正相机的稀疏重建,stereo 文件夹包含立体重建结果,point-cloud.ply 和 mesh.ply 是点云融合和网格划分过程的结果,以及 run-colmap-geometric.sh 和 run-colmap-photometric.sh 包含用于执行密集重建的示例命令行用法。

COLMAP地址:http://colmap.github.io/

更多计算机视觉与图形学相关资料,请关注微信公众号:计算机视觉与图形学实战
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值