当前位置 : 主页 > 编程语言 > 其它开发 >

【colmap】已知相机位姿情况下进行三维重建

来源:互联网 收集:自由互联 发布时间:2022-07-07
如果在已知相机位姿情况进行场景的稀疏/稠密重建,需要手动创建稀疏模型。即在一个新文件夹中创建 cameras.txt , points3D.txt 和 images.txt 。 +── path/to/manually/created/sparse/model│ +──

如果在已知相机位姿情况进行场景的稀疏/稠密重建,需要手动创建稀疏模型。即在一个新文件夹中创建cameras.txt, points3D.txtimages.txt

+── path/to/manually/created/sparse/model
│   +── cameras.txt
│   +── images.txt
│   +── points3D.txt

其中 points3D.txt 文件应该为空,images.txt 文件中每隔一行为空,用于后续存放提取的特征点。有关稀疏模型结构的更多信息,可以参考这篇文章。

images.txt 文件示例

1 0.695104 0.718385 -0.024566 0.012285 -0.046895 0.005253 -0.199664 1 image0001.png
# Make sure every other line is left empty
2 0.696445 0.717090 -0.023185 0.014441 -0.041213 0.001928 -0.134851 2 image0002.png

3 0.697457 0.715925 -0.025383 0.018967 -0.054056 0.008579 -0.378221 1 image0003.png

4 0.698777 0.714625 -0.023996 0.021129 -0.048184 0.004529 -0.313427 2 image0004.png

上述每幅图像必须具有和数据库中相同的image_id (每一行的第一列),数据库的数据可以通过GUI查看Database management > Processing或者将重建的模型导出为文本格式进行查看。

为了进行稀疏模型重建,需要对已知相机参数的图像重新进行特征点计算:

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

如果相机内参存在较大的畸变系数,那么应该将cameras.txt中的参数复制到数据库中(用已知的相机内参替换colmap默认赋予的内参, feature_extractor会为每幅图分配相机内参)。这样的话,后续的特征点匹配可以利用提供的相机内参。如何修改数据库中的参数,最简单的方法是利用scripts/python/database.py脚本文件。

colmap exhaustive_matcher \ # or alternatively any other matcher
    --database_path $PROJECT_PATH/database.db

colmap point_triangulator \
    --database_path $PROJECT_PATH/database.db \
    --image_path $PROJECT_PATH/images
    --input_path path/to/manually/created/sparse/model \
    --output_path path/to/triangulated/sparse/model

值得注意的是,如果最终为了得到场景的稠密三维点云模型,那么稀疏重建并不是必须的。如果已经基于已知相机参数计算得到了稀疏模型,可通过如下步骤进行稠密重建:

colmap image_undistorter \
    --image_path $PROJECT_PATH/images \
    --input_path path/to/triangulated/sparse/model \
    --output_path path/to/dense/workspace

colmap patch_match_stereo \
    --workspace_path path/to/dense/workspace

colmap stereo_fusion \
    --workspace_path path/to/dense/workspace \
    --output_path path/to/dense/workspace/fused.ply
参考
  • colmap FAQ
  • COLMAP已知相机内外参数重建稀疏/稠密模型
上一篇:Sentinel-流量防卫兵
下一篇:没有了
网友评论