ceres::Problem problem; problem.Evaluate 函数参数说明
时间: 2024-04-05 11:32:17 浏览: 111
ceres::Problem::Evaluate函数的参数如下:
1. options:一个EvaluateOptions类型的对象,用于设置计算参数。如果不需要设置,可以传入默认构造的EvaluateOptions对象。
2. residuals:指向一个double类型的数组,用于输出问题中每个残差的值。如果不需要输出残差值,可以传入空指针。
3. gradients:指向一个double类型的数组,用于输出问题中每个残差对每个参数的偏导数(即雅克比矩阵)。如果不需要输出雅克比矩阵,可以传入空指针。
4. local_parameterizations:一个指向LocalParameterization类型的数组,用于指定每个参数的局部参数化方法。如果不需要局部参数化,可以传入空指针。
5. jacobians:指向一个std::vector类型的对象,用于输出问题中每个残差对每个参数的偏导数(即雅克比矩阵)。与gradients参数类似,如果不需要输出雅克比矩阵,可以传入空指针。
需要注意的是,gradients和jacobians这两个参数只能同时为nullptr或者同时为非nullptr。如果同时输出残差值和雅克比矩阵,则需要同时传入非nullptr的residuals和jacobians参数。
此外,如果需要使用局部参数化方法,需要在Problem::AddParameterBlock函数中指定相应的参数化方法。在Problem::Evaluate函数中,需要传入与问题中参数个数相同的LocalParameterization对象,用于计算局部参数化后的残差和雅克比矩阵。
阅读全文