与所有基于梯度的优化算法一样,Ceres Solver依赖于能够在其域中的任意点评估目标函数及其导数。实际上,定义目标函数及其雅可比矩阵是用户在使用Ceres Solver求解优化问题时需要执行的主要任务。正确有效地计算雅可比矩阵是获得良好性能的关键。
Ceres Solver在用户如何为求解器提供导数方面提供了相当大的灵活性。可以用:
Analytic Derivatives分析导数:用户自己手工或使用Maple或Mathematica等工具来计算衍生品,并在CostFunction中实现它们。
Numeric Derivatives数值导数:Ceres使用有限差分在数值上计算导数。
Automatic Derivatives自动导数:Ceres使用C ++模板和运算符重载自动计算分析导数。
应该使用这三种方法中的哪一种(单独或组合)取决于用户面对的情况和作出的权衡。
文章来源: https://blog.csdn.net/abcwoabcwo/article/details/90896076