视觉里程计2
如ch7所述,视觉里程计的功能是根据拍摄到的相片来进行相机定位的过程。它为视觉SLAM,一个以相机位姿和路标位置为参数的优化问题提供初始值。ch7中分析了以特征点为基础的定位技术。然而特征点的匹配非常耗时,且只能重构稀疏地图。为了克服这些缺点,本篇将进一步介绍光流法和以其为基础的直接法。光流法是一种根据图像灰度不变性假设估计图像像素运动的方法;直接法基于光流法中灰度不变性假设采用参数优化的方法进一步估计相机的位姿。
一、2D光流法
光流法是一种利用图像灰度不变性确定不同图像中关键点匹配的方法。为了阐述这种方法,我们首先介绍灰度不变性的概念。
1.灰度不变性的概念
光流法有两种,一种是计算部分像素运动的稀疏光流,另外一种是计算所有像素运动的稠密光流。稠密光流以Horn-Schunck法为代表,稀疏光流以Lucas-Kanade光流为代表,本篇主要介绍稀疏光流,它可用于跟踪特征点位置,简称LK光流。光流法的基本假设有如下两个:
(1)同一空间点的像素灰度值,在各个图像中的是固定不变的,即。
(2)图像灰度随空间的分布具有光滑性,即关于是连续可导的。
根据我们的符号约定,这里是指像平面二维坐标。事实上将其改成像素平面二维坐标也是可以的,并不会影响我们的分析。空间点的像素灰度不变,并不是指固定的情况下不随时间变化。事实上,若相机位置的变化或者目标位置变化但相机固定,点在像平面上的投影坐标是不断变化的。的含义是,尽管同一个点所对应的不断变化,但其灰度保持不变。学过流体力学的人都知道流场有欧拉描述法和拉格朗日描述法两种,图像灰度的描述法实际上就是欧拉描述法。对于初步接触这种概念的读者,可通过图1来进一步理解。
图1:灰度不变性的概念
对于同一个点,它在时刻对应左图种的像素点,其像平面三维坐标为,像平面二维坐标为。时间来到时,由于相机位姿变化或目标运动,点所对应的像素点来到了中图所示的位置,其二维像平面坐标。在时刻点所对应的像素点进一步来到了右图所示的位置,其二维像平面坐标。这三个图中所标注的像素点,均为同一个点的投影结果。灰度不变假设就是指左中右三图中标注点的灰度相等,即图1中最下面一行的公式。
2.用Lucas-kanade光流法实现关键点匹配
根据灰度不变性假设,我们可以得到如下公式
(1)
将等式右端用泰勒级数展开并整理可得
(2)
显然,表示像素在轴上的速度,表示像素在轴上的速度。若记分别为图像灰度的梯度,为固定像平面坐标下图像灰度随时间的变化率(要理解这和图像灰度不变假设没有矛盾,图像不变假设中坐标是变化的,而前者是固定的),则式(2)可改写成关于速度的线性方程
(3)
这个方程含有两个未知数,大于方程个数。为了使方程封闭,进一步假设与点对应像素点周围一个小窗口内的像素具有相同的速度。如果是目标在运动,在很小的范围内可以认为所有点运动速度差异不大,因此它们的投影像素运动速度可以认为不变。如果是目标固定,则目标点附近的点在相机坐标系中的位矢近似相等。由此观测到的这些点速度,或者它们在像平面上投影的速度也应该近似相等。这样针对这个窗口内的所有点都可列一个方程。这些方程中的是相同的,但一般不同。这些方程构成了超定方程组,可通过最小二乘法确定的值。
有了像素的像平面运动速度,就可以通过积分的办法计算某个点投影在像平面内的位置变化,从而代替特征点法实现关键点的匹配。
3.使用寻优法实现关键点匹配
现在假设有针对同一个场景拍摄的两张图片灰度分布值和。由于相机的位姿不同,在同一个值下的值一般不同。从第二节的分析可知,这种差异的原因在于中的像素在速度的作用下平移了一个位置。因此有理由认为。如此一来,两张图片的匹配问题就可以归结为如下优化问题
(4)
其中是由所有像素点的构成的列阵,是由所有像素点的构成的列阵。
这种优化问题可以用我们ch6中介绍的方法解决,其中关键的是计算雅可比矩阵。根据ch6中的符号标记,ch6式(4)中的。再记,则
(5)
根据灰度不变性假设,因此可简写为。类似地可求得。这样最后可确定雅可比矩阵为。在灰度不变假设下,雅可比矩阵是固定的。它在程序运行中只需要计算一次,给实际应用带来了便利。
二、直接法
和ch7中的BA法类似,可以利用解非线性优化问题的方法来确定相机位姿并同时调整特征点的位置。在ch7中调整的依据是两帧图片的特征点要匹配,即第一帧的特征点重投影后与第二帧中特征点的位置误差要等于零。这里介绍的直接法也是利用非线性优化问题来确定相机位姿,只不过优化依据是两帧图片中的灰度保持不变,由此避免了特征点的匹配问题。为简化起见,这里仅讨论相机位姿的定位问题,并不讨论目标点的调整问题。
1.优化模型
假设空间点在世界坐标系中的的表示为,它在两帧中的像素坐标分别为和,在对应的相机坐标系坐标分别为和。根据ch5中的公式(3)可知
(6)
现在计算这两帧图片的灰度误差,然后将所有像素点的误差排成一列构成一个误差列阵
(7)
这样相机的定位问题就转换成如下优化问题
(8)
上式的含义是,通过调整变换矩阵的值,使得灰度误差取得极小值。在取值正确的情况下,根据灰度不变假设,理论上应该等于零。
2.雅可比矩阵计算
类似地,这种优化问题的关键是计算雅可比矩阵。不妨假设,则根据式(6)可知
(9)
这样根据式(7)可求得雅可比矩阵为
(10)
其中最后一项按理应该写成,但如李代数章节所述我们改成了上述形式。
下面我们分别来计算这几项。
(1)根据式(5)的讨论可知,即图像灰度在处的梯度。这里需要强度的是,式(5)中的是指像平面坐标,而我们这里是指像素平面坐标,二者差了一个比例系数。
(2)为投影方程关系相机坐标的导数,根据ch7下的式(11)可知
(11)
(3)根据ch4的式(14)为
(12)
三、小结
本章学习要点为
(1)理解灰度不变性的概念。
(2)理解LK光流法的原理。
(3)理解使用寻优法匹配关键的思路。
(4)理解和掌握基于灰度不变性假设优化相机位姿的直接法。