ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-07-12 15:03:07  阅读:215  来源: 互联网

标签:-- 相机 images path colmap txt 位姿 三维重建


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

COLMAP已知相机位姿情况进行场景的稀疏/稠密重建

+── 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稀疏重建文本格式

colmap为每个重建的模型导出三个文件:cameras.txt, images.txtpoints3D.txt

cameras.txt
  每一行:相机ID,相机模型,宽,高和相机参数

images.txt
  第一行:相机外参及对应的相机ID和filename
  第二行:图像中提取的keypoints (SIFT特征点是亚像素级别的精度)

points3D.txt
  记录重建的3D点

参考

标签:--,相机,images,path,colmap,txt,位姿,三维重建
来源: https://www.cnblogs.com/Todd-Qi/p/15080968.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有