SuperZLW's Blog

我很笨,但是我不懒

0%

非线性优化

引入

一个经典的SLAM模型由一个运动方程和一个观测方程构成

如下式所示:其中$\pmb{u}_k$是运动传感器的读数或者输入;$\pmb{w}_k$是该过程中加入的噪声;$f$是一般函数,用来描述这个过程的;$\pmb{x}$是相机的位姿,可用SE(3)来描述;$\pmb{y}$是路标点;$\pmb{z}$是观测数据;$\pmb{v}_{k,j}$是这次观测里的噪声。由于观测所用的传感器形式很多,这里的观测数据$\pmb{z}$和观测方程$h$也有很多形式。
现假设观测方程由针孔模型给定,在$\pmb{x}_k$处对路标$\pmb{y}_j$进行了一次观测,对应到图像上的像素位置为$\pmb{z}_{k,j}$,则观测方程可以表示为:其中$\pmb{K}$为相机内参,$s$为像素点距离,也是$(\pmb{R}_k\pmb{y}_j+\pmb{t}_k)$的第三个分量,若用变换矩阵$\pmb{T}_k$来描述位姿,则路标$\pmb{y}_j$要用齐次坐标。

—————————————————————————————————————

简单回顾下相机内参的相关知识\
相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等,这些在相机出厂后是固定的。由于镜头的安装精度,形状,传感器上的像素等因素,使镜头的光轴不再穿过图像的正中间。内参矩阵一般是如下形式:其中$f_x,f_y$表示$u,v$轴的缩放,$c_x,c_y$表示原点平移的距离。

—————————————————————————————————————

要知道数据在受到噪声影响后会发生什么变化,通常会假设两个噪声项$\pmb{w}_k,\pmb{v}_{k,j}$,使其满足零均值的高斯分布,即:其中$\pmb{R}_k,\pmb{Q}_{k,j}$为协方差矩阵。
通过带噪声的数据$\pmb{z}$和$\pmb{u}$来推断位姿$\pmb{x}$和地图$\pmb{y}$(及其概率分布),构成一个状态估计问题,即:用贝叶斯法则为:这就是一个求MAP的问题:如果我们不知道先验的话,就变成了求MLE的问题,即:根据上面,我们假设了噪声项为零均值的高斯分布,所以观测数据的条件概率为:(前提:观测是高斯分布的)
然后就是常见的展开取负对数,求最大变成求最小:右边第一项与$\pmb{x}$无关,就不用管了,只关注第二项那个二次型。
将SLAM的观测模型带入得:

在处理批量数据时我们通常是假设各个时刻的输入$\pmb{u}$和观测$\pmb{z}$相互独立,即是有:

方法分析(优缺点)

最速下降和牛顿虽然直观,但两者均有一些缺点:

  1. 最速下降法由于过于贪婪会碰到zigzag问题,如下图:
    在这里插入图片描述
    每次迭代均是往梯度下降最快的方向进行,对于简单的问题依旧需要很多次迭代才能达到最优点。
  2. 牛顿法由于是二阶的,可以沿着曲线直接到最优点,但却需要计算复杂的海森矩阵。

所以这两种方法都不太实用,我们希望可以在不计算海森矩阵的前提下实现二阶梯度,就有了以下两种方法

Gauss-Newton

一阶近似$f(x)$为:其平方误差为:$$
\begin{aligned}
\frac{1}{2}||f(x)+J(x)\Delta x||^2 &=\frac{1}{2}(f(x)+J(x)\Delta x)^T(f(x)+J(x)\Delta x)\\&=\frac{1}{2}(||f(x)||_2^2+2f(x)^TJ(x)\Delta x+\Delta x^TJ(x)^TJ(x)\Delta x)
\end{aligned}

2J(x)^Tf(x)+2J(x)^TJ(x)\Delta x=0

J(x)^TJ(x)\Delta x = -J(x)^Tf(x)

H\Delta x=g

\rho=\frac{f(x+\Delta x)-f(x)}{J(x)\Delta x}

\min_{\Delta x_k}\frac{1}{2}||f(x_k)+J(x_k)\Delta x_k||^2+\frac{\lambda}{2}||D\Delta x||^2

(H+\lambda D^TD)\Delta x=g

(H+\lambda I)\Delta x=g$$这里的$H$依旧是$J(x)^TJ(x)$。
对比G-N方法,这里前面加上了一项,相当于在G-N方法的基础上增强了$H$的正定性。

G-N 和 L-M的对比

  1. G-N方法属于线性搜索方法:先找到方向,再确定长度;\
  2. L-M方法属于信赖区域方法(Trust Region),认为近似只在区域内可靠。\
  3. LM相比于GN,能够保证增量方程的正定性,即认为近似只在一定范围内成立,如果近似不好则缩小范围。收敛能够更好一点。\
  4. 从增量方程上来看,可以看成一阶和二阶的混合,参数$\lambda$控制两边的权重。以为例,去掉$H$则变成一阶的,去掉$\lambda$项则变成二阶的。\
  5. 一般来说,LM的计算量会比GN大一些,但收敛性也更好。所以简单的情况用GN,复杂的用LM。

注:本文参考自《视觉SLAM十四讲》

------ 本文结束------