视觉slam十四讲 pdf_视觉SLAM十四讲|第8讲 视觉里程计2

55155d175816119572f693cae74ddac0.png

终于来到第8讲了。

第七讲中的特征点法需要计算特征点,计算量大;如果找不到特征点方法就失效了;忽略了特征点以外的信息。

第八讲介绍光流法和直接法,避免使用特征点。

1. 光流

光流是一种描述像素随时间在图像之间运动的方法。

ea2032c3b96cdce7e0406ea7711b94d2.png
图8-1

如图8-1所示一个像素会随着时间的流逝进行运动,每一时刻的位置都有所变化,光流法就是去追踪像素每一时刻的位置变化,来还原运动过程。

光流法中有一条基本假设:

灰度不变假设:同一个空间点的像素灰度值,在各个图像中是固定不变的。

意思是说图8-1中红色框框的像素点,在

时刻的灰度值是一样的,只是每一个时刻在图像中的位置不一样,光流法就是通过这个假设来计算像素点的位置。灰度不变假设很理想,通常都不成立,但仍然有理论贡献。

计算部分像素运动称为悉数光流,以Lucas-Kanade法为代表;计算所有像素运动的称为稠密光流。下面介绍的是LK光流法。

根据前面的描述,可以把图像看成是时间的函数,把一个t时刻处于(x,y)位置像素的灰度记为I(x,y,t),经过dt时间后它运动到(x+dx, y+dy)处。根据灰度不变假设有:

。在这个问题中相当于前后的灰度值已知,求解dx,dy。

对变化后的灰度值进行一阶泰勒展开,有:

d65461b8da130c78d5ff942ebb40b321.png

根据灰度不变假设可以得到:

7f5c99c95b0071ea5dd9dbde94f33e42.png

整理得到:

141e4d91e025d44904f6023b4f2c11e1.png

其中,

分别为图像灰度在该点处x方向和y方向的梯度,记为
是图像灰度对时间的变化量,记为
,这三个量已知。
分别表示像素在x和y轴上的运动速度,记为
未知。对于图像窗口中的每个像素都可以列出这样的一个方程,如果认为窗口内的像素具有相同的运动,那么每个像素的u,v相同,可以写成一个方程组,形如
,可以通过最小二乘法求解,得到:

b6631f3169bd4436be915ea1f47769a7.png

2. 直接法

cf1f22ef42cd3e1ad116e0d29cfb0315.png
图8-3

如图8-3所示,已知相机内参K,物体P的3D坐标,分别知道第1帧和第2帧上的投影坐标

,但由于没有特征匹配的过程,所以不知道
是否对应同一个物体P。

直接法的思路是:根据灰度不变假设,对于第1帧中的

能够在第2帧中摸索到一个点
,使得这个点的灰度和
的灰度误差最小。摸索的过程是:通过相机模型计算出
的坐标,然后通过调整相机位姿最小化光度误差

根据目前的已知量,可以计算第1帧的像素坐标为

, 第2帧的像素坐标为
.

我们的目标函数为:

023db07a43935f21d9b68994b9223ebb.png

扰动模型求导:

98881a04c861518f23a66778b60917ba.png

定义中间变量:

,有

ba2d4dd7745899e3406df688d6ee9da0.png

其中,

是图像的像素梯度,另外两个偏到前面已经求解过:

f9be1b054e9474a7bb60a520743476fa.png

dde9c5c9483af45e36f316414809eacb.png

由此求出了一阶导数也就是雅各比矩阵,根据雅各比矩阵进行迭代求解。

关于P,如果来自于稀疏关键点,称为稀疏直接法;如果来自于部分梯度明显的像素,称为半稠密的直接法(如果梯度不明显,雅各比矩阵为0);如果是所有像素,称为稠密直接法。

3. 直接法讨论

直接法是根据图像灰度的变化(梯度)来寻找对应点的,比如图8-6,图像1中P1点的灰度值为229,目标是找到图像2中灰度值和p1相近的点。在P1周围沿着梯度方向搜索,第一次找到P2,继续搜索找到P2' 发现很合适,进行更新,如此迭代。

b1cd6e47f62344ac3d86454cb54feb3a.png
图8-6

直接法的问题和梯度下降法类似,可能会陷入局部最优解。如图8-7所示,图像本身通常是一个强烈的非凸函数,可能在搜索最优点时会找到附近的一个局部最优解。

748f67b72a34348e30b6e09dc56874b1.png

为了避免这个问题,可以缩小范围,采用图像块,使用更复杂的差异度量方式等。

直接法的优点是:快,只要求像素梯度,能构建半稠密或稠密地图;缺点是:图像具有非凸性,单个像素区分度低需要计算图像块,灰度值不变假设可能不成立。

[1] 《视觉SLAM十四讲从理论到实践》 高翔,张涛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值