以高斯牛顿法为例:
目标
:
使总残差最小 ,一般为多个代价函数平方之和 :½ ∑ || e(x)||²
e (x):代价函数=误差项=残差
x为待优化参数
求解增量过程
:
1、关于待优化参数x对e一阶泰勒展开
2、带入½∑ ||e(x)||
3、对增量△x求导
4、得到增量方程
∑(JT *J)
△x=∑(-JT
e ) ,近似写成H△x=b
5、求解增量
关键
:
具体求解增量过程在使用库求解时并无体现,可直接找 雅克比矩阵J、误差项e
实践:
使用Ceres时
1、
定义误差项
的计算模型
2、构建问题,使用for循环将所有的
误差项添加
进去(指定带优化参数、带入已知数据)
3、
雅克比矩阵
自动求
4、自动求得优化结果
使用g2o时
1、定义待优化参数(顶点)
2、定义
误差项
(边)
3、定义边中包含定义
雅克比矩阵
4、添加待优化参数(顶点)
5、使用for循环
添加
所有的
误差项
(边)
6、得到优化结果
到底什么是非线性最小二乘问题
: