首页 > 其他 > 详细

三维重建(一):colmap安装与使用

时间:2020-02-08 14:28:48      阅读:1292      评论:0      收藏:0      [点我收藏+]

Image-based 3D Reconstruction from Scratch (using COLMAP)

本文将介绍COLMAP的安装与使用,重点介绍3D重建过程中每个步骤的输入输出。

一、安装

在GitHub上下载COLMAP源代码(我用的是3.5版本),下载后进入colmap目录编译

cd ./colmap-3.5              # 进入colmap目录
mkdir build && cd ./build    # 创建build文件夹,并进入
cmake ..                     # cmake
make -j8                     # make多线程编译

也许在编译过程中会出现一些问题,不要慌,我们去colmap的Github-Issues中去找一下。

问题汇总

  • CMake时提示Anaconda相关问题

二、运行colmap(命令行)

2.1 数据准备

因为我们做的是:基于多视图图像的三维重建,所以首先我们需要一些待重建的图片
我们用的是ETH3D数据集中的terrace场景
技术分享图片

图1. ETH3D数据集之terrace场景

我们将图片组织为colmap的工程格式:
技术分享图片

图2. colmap工程组织格式

工作目录中包含一个images文件夹,images中即为待重建的图片,Pipes图片的百度云链接,提取码8tn2

2.2 开始重建

以下所有命令均可在COLMAP官方说明文档上查阅。
colmap提供了自动重建的命令,我们这里还是逐步进行重建,以观察每一步的输入输出结果。

2.2.1 特征提取(feature_extractor)
./colmap feature_extractor    --database_path $DATASET_PATH/database.db \  # 输出:特征点保存至数据库`database.db`  
   --image_path $DATASET_PATH/images            # 输入:多视图图像
2.2.2 特征点匹配(exhaustive_matcher)
./colmap exhaustive_matcher    --database_path $DATASET_PATH/database.db    # 输入输出:数据库文件`database.db`
2.2.3 稀疏重建(SfM, Struggle from Motion)(mapper)
mkdir $DATASET_PATH/sparse    # 新建sparse文件夹
./colmap mapper     --database_path $DATASET_PATH/database.db \    # 输入:数据库文件`database.db`
    --image_path $DATASET_PATH/images \            # 输入:多视图图像
    --output_path $DATASET_PATH/sparse             # 输出:`sparse`文件夹

输出结果sparse文件夹如下所示??

└── sparse
    └── 0
        ├── cameras.bin
        ├── images.bin
        ├── points3D.bin
        └── project.ini
2.2.4 图像去畸变
mkdir $DATASET_PATH/dense    # 新建dense文件夹
./colmap image_undistorter     --image_path $DATASET_PATH/images \          # 输入:多视图图像
    --input_path $DATASET_PATH/sparse/0 \        # 输入:sparse文件夹
    --output_path $DATASET_PATH/dense \          # 输出:dense文件夹
    --output_type COLMAP \                       # 参数:输出格式
    --max_image_size 2000                        # 参数:最大图像尺寸

输出结果dense文件夹如下所示??

└── dense
 ?? ├── images
 ?? │?? ├── DSC_0259.JPG
 ?? │?? ├── DSC_0260.JPG
 ?? │?? ├── ...
 ?? │?? └── DSC_0285.JPG
 ?? ├── run-colmap-geometric.sh
 ?? ├── run-colmap-photometric.sh
 ?? ├── sparse
 ?? │?? ├── cameras.bin
 ?? │?? ├── images.bin
 ?? │?? └── points3D.bin
 ?? └── stereo
 ??     ├── consistency_graphs
 ??     ├── depth_maps
 ??     ├── fusion.cfg
 ??     ├── normal_maps
 ??     └── patch-match.cfg
2.2.5 稠密重建
./colmap patch_match_stereo     --workspace_path $DATASET_PATH/dense     --workspace_format COLMAP     --PatchMatchStereo.geom_consistency true
2.2.6 融合
./colmap stereo_fusion     --workspace_path $DATASET_PATH/dense     --workspace_format COLMAP     --input_type geometric     --output_path $DATASET_PATH/dense/fused.ply

稠密点云保存至dense/fused.ply
技术分享图片

图x. Terrance的Colmap重建结果

Pipes场景SfM失败
技术分享图片

三维重建(一):colmap安装与使用

原文:https://www.cnblogs.com/Todd-Qi/p/10792685.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!