三种优化方法的比较:
https://blog.youkuaiyun.com/ziliwangmoe/article/details/81458175
G2O的使用原理简介:
https://blog.youkuaiyun.com/ziliwangmoe/article/details/81460392
这篇文章主要相比G2O底层实现的一些关键点整理出来。
这里重新强调下:G2O只能处理非线性最小二乘的问题。所以使用的是高斯牛顿的加强版方法:Levenberg–Marquardt算法。
这里回顾下优化的流程:
- 计算优化量的改变量和參差之间的线性变换矩阵:
(雅克比矩阵)
是一个n*m的矩阵,m是优化量的维度,n是观察量的维度。
- 比如图优化中,优化量是se3李代数,也就是6维向量,m是6,观察量也是se3李代数,n等于6
- 使用公式的到对优化量的更新值
是m*m的方阵,
就是m*n的矩阵。
是參差,也就是观察到的值和通过优化量计算出来的观察值的差异。
和观察量一个维度,这个变换刚好把參差的维度变为优化量的维度:n->m
- 这个公式中有一个矩阵求逆,这个就是G2O优化主要的耗时所在。
- 使用