SLAM后端---状态估计 转变为 最小二乘法

内容源自<视觉slam十四讲>

最大后验和最大似然

状态估计转换为P(x|z)公式,然后根据贝叶斯法则,删去无关的,再把P(x)干脆也省略了,最后相当于求解arg max P(z|x),也就是最大似然.整个过程把求解最大后验概率转化为最大似然了.

回顾一下经典 SLAM 模型。它由一个运动方程和一个观测方程构成,如下所示:

xk乃是相机的位姿。我们可以使用变换矩阵或李代数表示它。至于观测方程即针孔相机模型。(对于视觉slam)


在噪声的影响下,我们希望通过带噪声的数据 z 和 u,推断位姿 x 和地图 y(以及它们的概率分布),这构成了一个状态估计问题。由于在 SLAM 过程中,这些数据是随着时间逐渐到来的,所以在历史上很长一段时间内,研究者们使用滤波器,尤其是扩展卡尔曼滤波器(EKF)求解它。卡尔曼滤波器关心当前时刻的状态估计 x k ,而对之前的状态则不多考虑;相对的,近年来普遍使用的非线性优化方法,使用所有时刻采集到的数据进行状态估计,并被认为优于传统的滤波器,成为当前视觉 SLAM 的主流方法。

在非线性优化中,我们把所有待估计的变量放在一个“状态变量”中:


对机器人状态的估计,就是求已知输入数据 u 和观测数据 z 的条件下,计算状态 x 的条件概率分布:


类似于 x,这里 u 和 z 也是对所有数据的统称。特别地,当我们没有测量运动的传感器,只有一张张的图像时,即只考虑观测方程带来的数据时,相当于估计 P (x|z) 的条件概率分布。为了估计状态变量的条件分布,利用贝叶斯法则,有:


贝叶斯法则左侧P(x|z)通常称为后验概率。它右侧的 P (z|x) 称为似然,另一部分 P (x) 称为先验。直接求后验分布是困难的,但是求一个状态最优估计,使得在该状态下,后验概率最大化(Maximize a Posterior,MAP),则是可行的:


贝叶斯法则的分母部分与待估计的状态 x 无关,因而可以忽略

贝叶斯法则告诉我们,求解最大后验概率,相当于最大化似然和先验的乘积。进一步,我们当然也可以说,对不起,我不知道机器人位姿大概在什么地方,此时就没有了先验。那么,可以求解x 的最大似然估计(Maximize Likelihood Estimation, MLE):


直观地说,似然是指“在现在的位姿下,可能产生怎样的观测数据”。由于我们知道观测数据,所以最大似然估计,可以理解成:“在什么样的状态下,最可能产生现在观测到的数据”。这就是最大似然估计的直观意义。

引出最小二乘

如何求解最大似然概率P(z|x)呢?

在高斯分布的假设下,最大似然能够有较简单的形式。回顾观测模型,对于某一次观测:

由于我们假设了噪声项 v k ∼ N (0, Q k,j ),所以观测数据的条件概率为:


它依然是一个高斯分布。为了计算使它最大化的 x k , y j ,我们往往使用最小化负对数的方式,来求一个高斯分布的最大似然。对原分布求最大化相当于对负对数求最小化。(将无关的项省略)


该式等价于最小化噪声项(即误差)的平方(Σ 范数意义下)。因此,对于所有的运动和任意的观测,我们定义数据与估计值之间的误差:


算出误差的平方和:


这就得到了一个总体意义下的最小二乘问题(Least Square Problem)
。我们明白它的最优
解等价于状态的最大似然估计。

猜你喜欢

转载自blog.csdn.net/zhengbq_seu/article/details/80817241
今日推荐