谷神星解算器的束调整

Bundle Adjustment for Ceres Solver

本文关键字:调整      更新时间:2023-10-16

我是ceres(非线性最小二乘)求解器和c++模板编程新手。我已经成功地安装了ceres求解器并执行了bundle_adjuster。通过下载在http://grail.cs.washington.edu/projects/bal/上发布的数据集在ubuntu上抄送代码。我不得不使用捆绑调整作为一个黑盒在项目中。我想打印精致的相机姿势,三维坐标的数据集。如何做到这一点,我应该在bundle_adjuster中编辑什么。获取新的姿态矩阵和3D坐标。

谢谢。

修改后的相机姿态和3D对象点在bal_problem结构体中:

double* points = bal_problem->mutable_points();
double* cameras = bal_problem->mutable_cameras();

它们只是双精度数组,每个3D点需要3个(X,Y,Z),每个摄像机需要6个(罗德里格斯角轴旋转加上平移)双精度。

对于点数组:X0 Y0 Z0 X1 Y1 Z1,…相机:R00 R10 R20 X0 Y0 Z0 R01 R21 R31 X1 Y1 Z1,…