《视觉SLAM14讲》学习小结——供小白快速入门ch8

视觉里程计2

如ch7所述,视觉里程计的功能是根据拍摄到的相片来进行相机定位的过程。它为视觉SLAM,一个以相机位姿和路标位置为参数的优化问题提供初始值。ch7中分析了以特征点为基础的定位技术。然而特征点的匹配非常耗时,且只能重构稀疏地图。为了克服这些缺点,本篇将进一步介绍光流法和以其为基础的直接法。光流法是一种根据图像灰度不变性假设估计图像像素运动的方法;直接法基于光流法中灰度不变性假设采用参数优化的方法进一步估计相机的位姿。

一、2D光流法

光流法是一种利用图像灰度不变性确定不同图像中关键点匹配的方法。为了阐述这种方法,我们首先介绍灰度不变性的概念。

1.灰度不变性的概念

光流法有两种,一种是计算部分像素运动的稀疏光流,另外一种是计算所有像素运动的稠密光流。稠密光流以Horn-Schunck法为代表,稀疏光流以Lucas-Kanade光流为代表,本篇主要介绍稀疏光流,它可用于跟踪特征点位置,简称LK光流。光流法的基本假设有如下两个:

(1)同一空间点\mathbf{P}^w的像素灰度值,在各个图像中的是固定不变的,即I(x,y,t)=\mathrm{const}

(2)图像灰度随空间的分布具有光滑性,即I(x,y,t)关于x,y是连续可导的。

根据我们的符号约定,这里x,y是指像平面二维坐标。事实上将其改成像素平面二维坐标u,v也是可以的,并不会影响我们的分析。空间点\mathbf{P}^w的像素灰度不变,并不是指x,y固定的情况下I(x,y,t)不随时间变化。事实上,若相机位置的变化或者目标位置变化但相机固定,\mathbf{P}^w点在像平面上的投影坐标x,y是不断变化的。I(x,y,t)=\mathrm{const}的含义是,尽管同一个点\mathbf{P}^w所对应的x,y,t不断变化,但其灰度I(x,y,t)保持不变。学过流体力学的人都知道流场有欧拉描述法和拉格朗日描述法两种,图像灰度I(x,y,t)的描述法实际上就是欧拉描述法。对于初步接触这种概念的读者,可通过图1来进一步理解。

图1:灰度不变性的概念

对于同一个\mathbf{P}^w点,它在t_1时刻对应左图种的像素点,其像平面三维坐标为[x_1,y_1,f]^\mathrm{T},像平面二维坐标为[x_1,y_1]^\mathrm{T}。时间来到t_2时,由于相机位姿变化或目标运动,点\mathbf{P}^w所对应的像素点来到了中图所示的位置,其二维像平面坐标[x_2,y_2]^\mathrm{T}。在t_3时刻点\mathbf{P}^w所对应的像素点进一步来到了右图所示的位置,其二维像平面坐标[x_3,y_3]^\mathrm{T}。这三个图中所标注的像素点,均为同一个\mathbf{P}^w点的投影结果。灰度不变假设就是指左中右三图中标注点的灰度相等,即图1中最下面一行的公式。

2.用Lucas-kanade光流法实现关键点匹配

根据灰度不变性假设,我们可以得到如下公式

I(x,y,t)=I(x+\mathrm{d}x,y+\mathrm{d}y,t+\mathrm{d}t)                                     (1)

将等式右端用泰勒级数展开并整理可得

\frac{\partial I}{\partial x}\frac{\mathrm{d} x}{\mathrm{d} t} +\frac{\partial I}{\partial y}\frac{\mathrm{d} y}{\mathrm{d} t} =\frac{\partial I}{\partial t}                                                  (2)

显然,u=\frac{\mathrm{d} x}{\mathrm{d} t}表示像素在Ox轴上的速度,v=\frac{\mathrm{d} y}{\mathrm{d} t}表示像素在Oy轴上的速度。若记I_x=\frac{\partial I}{\partial x}, I_y=\frac{\partial I}{\partial y}分别为图像灰度的梯度,I_t=\frac{\partial I}{\partial t}为固定像平面坐标[x,y]^\mathrm{T}下图像灰度随时间的变化率(要理解这和图像灰度不变假设没有矛盾,图像不变假设中[x,y]^\mathrm{T}坐标是变化的,而前者是固定的),则式(2)可改写成关于速度u,v的线性方程

I_xu+I_yv=I_t                                                         (3)

这个方程含有两个未知数u,v,大于方程个数。为了使方程封闭,进一步假设与\mathbf{P}^w点对应像素点周围一个小窗口内的像素具有相同的速度。如果是目标在运动,在很小的范围内可以认为所有点运动速度差异不大,因此它们的投影像素运动速度可以认为不变。如果是目标固定,则目标点\mathbf{P}^w附近的点在相机坐标系中的位矢近似相等。由此观测到的这些点速度,或者它们在像平面上投影的速度也应该近似相等。这样针对这个窗口内的所有点都可列一个方程I_xu+I_yv=I_t。这些方程中的u,v是相同的,但I_x,I_y,I_t一般不同。这些方程构成了超定方程组,可通过最小二乘法确定u,v的值。

有了像素的像平面运动速度u,v,就可以通过积分的办法计算某个点\mathbf{P}^w投影在像平面内的位置变化,从而代替特征点法实现关键点的匹配。

3.使用寻优法实现关键点匹配

现在假设有针对同一个场景拍摄的两张图片灰度分布值I_1(x,y)I_2(x,y)。由于相机的位姿不同,在同一个x,y值下I_1,I_2的值一般不同。从第二节的分析可知,这种差异的原因在于I_1(x,y)中的像素在速度u,v的作用下平移了一个位置\Delta x,\Delta y。因此有理由认为I_1(x,y)=I_2(x+\Delta x,y+\Delta y)。如此一来,两张图片的匹配问题就可以归结为如下优化问题

\min\limits_{\Delta x,\Delta y}|\mathbf{I}_1(x,y)-\mathbf{I}_2(x+\Delta x,y+\Delta y)|_2^2.                                          (4)

其中\mathbf{I}_1(x,y)是由所有像素点的I_1(x,y)构成的列阵,\mathbf{I}_2(x,y)是由所有像素点的I_2(x,y)构成的列阵。

这种优化问题可以用我们ch6中介绍的方法解决,其中关键的是计算雅可比矩阵。根据ch6中的符号标记,ch6式(4)中的\mathbf{f}=\mathbf{I}_1(x,y)-\mathbf{I}_2(x+\Delta x,y+\Delta y)。再记\mathbf{x}=[\Delta x,\Delta y]^\mathrm{T},则

\frac{\partial\mathbf{f}}{\partial (\Delta x)}=-\frac{\partial \mathbf{I}_2(x+\Delta x,y+\Delta y)}{\partial \Delta x}=-\frac{\partial \mathbf{I}_2(x,y)}{\partial x}\frac{\mathrm{d}(\mathbf{x}+\Delta \mathbf{x})}{\mathrm{d} x}=-\frac{\partial \mathbf{I}_2(x,y)}{\partial x}=-\mathbf{I}_{2,x}                     (5)

根据灰度不变性假设\mathbf{I}_{2,x}=\mathbf{I}_{1,x},因此可简写为\mathbf{I}_x。类似地可求得\frac{\partial\mathbf{f}}{\partial (\Delta x)}=-\mathbf{I}_y。这样最后可确定雅可比矩阵为\mathbf{J}\doteq \frac{\partial\mathbf{f}}{\partial\mathbf{x}}=-[\mathbf{I}_x,\mathbf{I}_y]。在灰度不变假设下,雅可比矩阵是固定的。它在程序运行中只需要计算一次,给实际应用带来了便利。

二、直接法

和ch7中的BA法类似,可以利用解非线性优化问题的方法来确定相机位姿并同时调整特征点的位置。在ch7中调整的依据是两帧图片的特征点要匹配,即第一帧的特征点重投影后与第二帧中特征点的位置误差要等于零。这里介绍的直接法也是利用非线性优化问题来确定相机位姿,只不过优化依据是两帧图片中的灰度保持不变,由此避免了特征点的匹配问题。为简化起见,这里仅讨论相机位姿的定位问题,并不讨论目标点的调整问题。

1.优化模型

假设空间点在世界坐标系中的的表示为\mathbf{P}^w(X^w,Y^w,Z^w),它在两帧中的像素坐标分别为\mathbf{p}_1(u_1,v_1)\mathbf{p}_2(u_2,v_2),在对应的相机坐标系坐标分别为\mathbf{P}_1(X_1,Y_1,Z_1)\mathbf{P}_2(X_2,Y_2,Z_2)。根据ch5中的公式(3)可知

\mathbf{p}_1=\frac{1}{Z_1}\mathbf{K}\mathbf{P}_1,~ \mathbf{p}_2=\frac{1}{Z_2}\mathbf{K}\mathbf{P}_2 =\frac{1}{Z_2}\mathbf{K}(\mathbf{R}\mathbf{P}_1+\mathbf{t}) =\frac{1}{Z_2}\mathbf{K}\mathbf{T}\mathbf{P}_1                  (6)

现在计算这两帧图片的灰度误差e=I_1(\mathbf{p}_1)-I_2(\mathbf{p}_2),然后将所有像素点的误差排成一列构成一个误差列阵

\mathbf{e}=\mathbf{I}_1(\mathbf{p}_1)-\mathbf{I}_2(\mathbf{p}_2)                                                  (7)

这样相机的定位问题就转换成如下优化问题

\min\limits_{\mathbf{T}}|\mathbf{e}|_2^2.                                                          (8)

上式的含义是,通过调整变换矩阵\mathbf{T}的值,使得灰度误差\mathbf{e}取得极小值。在\mathbf{T}取值正确的情况下,根据灰度不变假设,\mathbf{e}理论上应该等于零。

2.雅可比矩阵计算

类似地,这种优化问题的关键是计算雅可比矩阵。不妨假设\mathbf{P}_1=\mathbf{P}^w,则根据式(6)可知

\mathbf{P}_2=\mathbf{T}\mathbf{P}^w,~ \mathbf{p}_2 =\frac{1}{Z_2}\mathbf{K}\mathbf{P}_2                                          (9)

这样根据式(7)可求得雅可比矩阵为

\mathbf{J}=\frac{\partial\mathbf{e}}{\partial\mathbf{T}}=-\frac{\partial\mathbf{I}_2}{\partial\mathbf{p}_2} \frac{\partial\mathbf{p}_2}{\partial\mathbf{P}_2}\frac{\partial\mathbf{P}_2}{\partial\delta\boldsymbol{\xi}}                                                (10)

其中最后一项{\partial\mathbf{P}_2}/{\partial\delta\boldsymbol{\xi}}按理应该写成{\partial\mathbf{P}_2}/{\partial\mathbf{T}},但如李代数章节所述我们改成了上述形式。

下面我们分别来计算这几项。

(1)根据式(5)的讨论可知\frac{\partial\mathbf{I}_2}{\partial\mathbf{p}_2}=[\mathbf{I}_x,\mathbf{I}_y],即图像灰度在\mathbf{p}_2处的梯度。这里需要强度的是,式(5)中的x,y是指像平面坐标,而我们这里是指像素平面坐标,二者差了一个比例系数。

(2)\frac{\partial\mathbf{p}_2}{\partial\mathbf{P}_2}为投影方程关系相机坐标的导数,根据ch7下的式(11)可知

\frac{\partial\mathbf{p}_2}{\partial\mathbf{P}_2}=\begin{bmatrix} \frac{f_x}{Z} & 0 & -\frac{f_x X}{Z^2}\\ 0&\frac{f_y}{Z} & -\frac{f_y Y}{Z^2} \end{bmatrix}                                          (11)

(3)\frac{\partial\mathbf{P}_2}{\partial\delta\boldsymbol{\xi}}= \frac{\partial(\mathbf{T}\mathbf{P}^w)}{\partial\delta\boldsymbol{\xi}}根据ch4的式(14)为

\frac{\partial\mathbf{P}_2}{\partial\delta\boldsymbol{\xi}}= \frac{\partial(\mathbf{T}\mathbf{P}^w)}{\partial\delta\xi}=\begin{bmatrix} \mathbf{I} &-(\mathbf{R}\mathbf{P}^w+\mathbf{t})^\wedge \\ \mathbf{0}^\mathrm{T}& 1 \end{bmatrix}\doteq (\mathbf{T}\mathbf{P}^w)^{\odot }                                (12)

三、小结

本章学习要点为

(1)理解灰度不变性的概念。

(2)理解LK光流法的原理。

(3)理解使用寻优法匹配关键的思路。

(4)理解和掌握基于灰度不变性假设优化相机位姿的直接法。

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视觉SLAM14》第13主要介绍了多视图几何(Multi-view Geometry)在视觉SLAM中的重要性和应用。本章内容包括三维重建、相机姿态估计、稠密地图构建、三维点云的优化等方面。 首先,介绍了三维重建的基本概念和方法。通过多视图之间的特征匹配和三角化,可以获取相机位置和场景的三维结构。其中使用了基础矩阵、本质矩阵和投影矩阵等几何工具进行相机位置估计。 其次,解了相机姿态估计的原理和方法。通过将特征点在不同视角中的投影进行匹配,可以计算得到相机之间的位姿变化。常用的方法包括通过两帧图像的本质矩阵或单应性矩阵来进行计算。 然后,述了稠密地图构建的过程。通过对特征点云进一步处理,可以得到更加丰富的场景信息。常用的方法有基于三维重建的稠密地图构建和基于场景几何关系的稠密地图构建等。 最后,介绍了三维点云的优化方法。从视觉SLAM系统的角度出发,通过优化相机的位姿和特征点的三维位置,提高系统的准确性和鲁棒性。常用的方法有基于图优化的方法和基于束优化的方法等。 综上所述,《视觉SLAM14》第13详细介绍了多视图几何在视觉SLAM中的关键技术和应用。可以通过多视图的特征匹配和三角化,实现三维重建和相机姿态估计。同时,通过稠密地图构建和三维点云的优化,提高系统的精度和鲁棒性。这些技术对于实现高效的视觉SLAM系统具有重要意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值