Ceres解算器的捆绑调整

时间:2015-10-08 02:42:36

标签: c++ mathematical-optimization ceres-solver

我是ceres(非线性最小二乘)求解器和c ++模板编程的新手。我已经成功安装了ceres解算器并通过下载http://grail.cs.washington.edu/projects/bal/上发布的数据集在ubuntu上执行了bundle_adjuster.cc代码。我必须在项目中使用Bundle Adjustment作为黑盒子。我想打印精致的相机姿势,数据集的三维坐标。怎么做,我应该在bundle_adjuster.cc中编辑什么来获得新的姿势矩阵和3D坐标。

感谢。

1 个答案:

答案 0 :(得分:1)

精炼的相机姿势和3D对象点位于bal_problem结构中:

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

它们只是带有双打的数组,每个3D点需要3(X,Y,Z),每个相机需要6(Rodrigues角度轴旋转加翻译)加倍。

因此对于点阵列:X0 Y0 Z0 X1 Y1 Z1,...和摄像机:R00 R10 R20 X0 Y0 Z0 R01 R21 R31 X1 Y1 Z1,...