《视觉SLAM十四讲 第6讲 非线性优化》
在非线性优化中,把所有带估计的变量放在一个“状态变量中”:
对相机状态的估计,就是已知输入数据u和观测数据z的条件下,求计算状态x的条件概率分布:
类似于x,这里u和z 是对所有数据的统称。特别地,当没有测量运动的传感器,只有一张张图像时,只考虑观测方程带来的数据时,相当于估计
贝叶斯法则左侧通常称为后验概率(也称为条件概率),右侧的P(z|x)称为似然(已知分布,估计参数,使该分布成立的概率最大),另一部分P(x)称为先验,先验即经验概率(硬币正反面概率各二分之一类似的常识)。直接求后验分布是困难的,但是求一个状态最优估计,使得在该状态下后验概率最大化(Maximize a Posterior,MAP),则是可行的:
由于贝叶斯法则的分母部分与待估计的状态x无关,可以忽略。贝叶斯法则告诉我们,求解最大后验概率相当于最大化似然和先验的乘积。如果不知道相机大概在什么地方,此时就没有了先验。那么,可以求解x的最大似然估计(Maximize Likelihood Estimation,MLE)。
直观讲,似然是指“在现在的位姿下,可能产生怎样的观测数据”。由于知道观测数据,所以最大似然估计可以理解成:“在什么样的状态下,最可能产生现在观测到的数据”。
非线性最小二乘问题的求解
f是个数学形式上很简单的函数,问题也许可以用解析形式来求。零目标函数的导数为零,然后求解x的最优值,就和求二元函数的极值一样。
它们可能是极大、极小或鞍点处的值,只要逐个比较它们的函数值即可。但这个方程的求解取决于f导函数的形式。在SLAM中,使用李代数来表示机器人的旋转和位移,其导数形式讨论过,但不代表能顺利求解一个复杂的非线性方程。
对于不方便求解的最小二乘问题,可以用迭代的形式,从一个初始值出发,不断地更新当前的优化变量,使目标函数下降。具体步骤如下:
1.给定某个初始值