第8讲 视觉里程计2

《SLAM十四讲》高翔

Posted by ZhouSh on February 15, 2023

第8讲 视觉里程计2

8.2 光流(OpticalFlow)

灰度不变假设:同一个空间点的像素灰度值,在各个图像中是固定不变的(实际很可能不成立)。

Lucas-Kanade光流:认为来自相机的图像随时间变化,图像可以看作时间的函数:$I(t)$。一个在t时刻,位于 $(x,y)$ 处的像素,它的灰度可以写成 $I(x,y,t)$。设 $t+dt$ 时刻它运动到 $(x+dx,y+dy)$ 处,由于灰度不变,有(1)。对左边泰勒展开,保留一阶项,得(2)。因为假设了灰度不变,于是下一个时刻得灰度等于之前的灰度(3)。两边除以dt,得(4)。

$ I(x+dx,y+dy,t+dt)=I(x,y,t) \tag{1} $

$ I(x+dx,y+dy,t+dt)\approx I(x,y,t)+\frac{\partial I}{\partial x}dx+\frac{\partial I}{\partial y}dy+\frac{\partial I}{\partial t}dt \tag{2} $

$ \frac{\partial I}{\partial x}dx+\frac{\partial I}{\partial y}dy+\frac{\partial I}{\partial t}dt=0 \tag{3} $

$ \frac{\partial I}{\partial x}\frac{dx}{dt}+\frac{\partial I}{\partial y}\frac{dy}{dt}=-\frac{\partial I}{\partial t} \tag{4} $

其中$\frac{dx}{dt}$为像素在x轴上的运动速度,$\frac{dy}{dt}$为y轴上的速度,把它们记作$u,v$。同时$\frac{\partial I}{\partial x}$为图像在该点处x方向的梯度,$\frac{\partial I}{\partial y}$是在y方向的梯度,记为$I_x,I_y$。把图像灰度对时间的变化量记为$I_t$,写成矩阵形式,有:

在LK光流中,我们假设某一个窗口内的像素具有相同的运动。考虑一个大小为$w\times w$的窗口,它含有$w^2$数量的像素。由于该窗口内像素具有同样的运动,因此我们共有$w^2$个方程:

于是整个方程为

这是一个关于u,v 的超定线性方程,传统解法是求最小二乘解。最小二乘在很多时候都用到过:

这样就得到了像素在图像间的运动速度$u,v$。当t 取离散的时刻而不是连续时间时,我们可以估计某块像素在若干个图像中出现的位置。由于像素梯度仅在局部有效,所以如果一次迭代不够好,我们会多迭代几次这个方程。

8.4 直接法

直接法是从光流演变而来的,他们非常相似,具有相同的假设条件。光流描述了像素在图像中的运动,而直接法则附带着一个相机运动模型。

考虑某个空间点P在两个时刻的相机上成像,记非齐次像素坐标为$p_1,p_2$,我们的目标是求第一个相机到第二个相机的相对位姿变换。在特征点法中,由于通过匹配描述子知道了$p_1,p_2$的像素位置,所以可以计算重投影的位置。但在直接法中,由于没有特征匹配,我们无从知道哪一个$p_1$和$p_2$对应着同一个点。

直接法的思路是根据当前相机的位姿估计值来寻找$p_2$的位置。但若相机位姿不够好,$p_2$的外观和$p_1$会有明显的差别。为了减小这一差别,我们优化相机的位姿,来寻找与$p_1$更相似的$p_2$。这同样可以通过解一个优化问题完成,但此时最小化的不是重投影误差,而是基于灰度不变假设光度误差(Photometric Error),也就是P的两个像素的亮度误差(5)。优化目标为该误差的二范数(6),其中$\xi$为相机位姿。

$ e=I_1(p_1)-I_2(p_2) \tag{5} $

$ \min_\xi J(\xi)=||e||^2 \tag{6} $

在直接法中,我们假设一个空间点在各个视角下成像的灰度是不变的。我们有N个空间点$P_i$,那么整个相机位姿估计问题变为:

$ \min_\xi J(\xi)=\sum^N_{i=1}e^T_ie_i,\ \ e_i=I_1(p_{1,i})-I_2(p_{2,i}) \tag{7} $

使用李代数上的扰动模型,可推导得误差相对于李代数的雅可比矩阵(8)。然后使用高斯牛顿法或列文伯格-马夸尔特法计算增量,迭代求解。

$ J=-\frac{\partial I_2}{\partial u}\frac{\partial u}{\partial \delta \xi} \tag{8} $

上述P是一个已知位置的空间点,根据P的来源,可以把直接法分成3类。

  1. P来自稀疏关键点,称为稀疏直接法
  2. P来自部分像素,称为半稠密的直接法
  3. P为所有像素,称为稠密直接法