【踩坑记录】colmap中的相机位姿的坐标系定义及其可视化结果的隐含转换

  这个问题来自于我想要使用colmap的稀疏重建结果,然后发现由于相机坐标系的定义没弄清楚,导致我获取的结果存在问题。
  

1 问题引出

  下面先从我们还不知道坐标系定义的视角开始理解,引出问题所在。使用的是一份无人机影像数据,共有59张影像:
在这里插入图片描述
  下图是colmap输出的稀疏重建结果,没有什么问题,与实际飞行情况也是相符合的:
在这里插入图片描述
  下图是导出的txt格式的重建结果中的images.txt文件,根据格式说明,其中IMAGE_ID这行的倒数第三个数据是相机的Z坐标,比如图像1为0.365289,图像2为-0.0520487。
在这里插入图片描述
  现在,我们将所有图像的X、Y、Z都导出,在cloudcompare软件中进行可视化,如下图所示。可以看出,这些相机的分布与colmap中的是不一样的,这里的分布有种高低错落的感觉。很明显,这不是正确的,无人机在采集数据时候也是不可能这么飞

### 如何在 COLMAP 中查看相机姿信息 为了理解并正确获取 COLMAP相机姿信息,需了解其内部表示方法以及如何通过软件界面或文件读取这些数据。 #### 使用 COLMAP GUI 查看相机姿 COLMAP 提供了一个图形用户界面 (GUI),可以直接用于观察三维重建场景中的相机置和方向: 1. 打开已有的项目数据库; 2. 切换至 “3D Viewer” 模式; 3. 场景中会显示所有参与重建的照片对应的虚拟摄像机模型。此时可以通过鼠标操作旋转视角来直观感受各个摄像头的空间分布情况[^1]。 需要注意的是,在此模式下看到的相机姿态虽然经过了一定程度上的优化调整,但并不意味着直接导出的数据就能与其他平台无缝对接,因为可能存在坐标轴定义差异等问题[^2]。 #### 解析 `.txt` 文件获得精确数值 对于更深入的研究需求,则可以利用 COLMAP 输出的文字格式文件——即 `images.txt` 或者 `cameras.bin/images.bin` 转换成文本形式后的版本。这类文档里包含了详细的内参外参描述,每一行代表单帧图像关联的信息,具体字段含义如下表所示(以纯文本为例): | 序号 | 图片ID | 相机ID | 姿态矩阵R(9个浮点数)| 平移向量T(x,y,z) | 焦距f | 主点cx,cy | | ----- | ----- | --------- | 其中最关键的部分就是 R 和 T 参数组合起来构成了 SE(3) 特殊欧式群里的刚体运动变换关系,用来表达世界坐标系到当前摄影设备局部参照系之间的映射法则[^3]。 ```bash # 示例命令:将二进制格式转为易读的文本格式 colmap model_converter \ --input_path path/to/reconstruction/folder \ --output_path path/to/output/txt/files \ --output_type TXT ``` 上述脚本能够帮助快速提取所需参数以便后续处理分析工作。
评论 68
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zeeq_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值