视觉SLAM14讲学习笔记-ch8

本博客主要记录学习高翔老师视觉SLAM14讲的总结笔记,若有总结不对的地方,欢迎大家与我讨论。

  • 特征点法中,描述子的计算与匹配会消耗大量的运算时间,所以引入直接法来计算特征点的匹配,从而利用对极约束、PnP、ICP来估计相机位姿。
  • 直接法可分为光流法直接法

一、光流法

  • LK光流为稀疏光流的一个典型代表
  • 灰度不变假设:观测点投影像素不随位置和时间变化而发生变化,即在t时刻位于(x,y)处的像素为:

I(x+\bigtriangleup x,y+\bigtriangleup y,t+\bigtriangleup t)=I(x,y,t)

  • 光流法用于跟踪角点,节省匹配的时间,再用PnP等方法来估计相机位姿。由灰度不变性可推导得出:

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

\Rightarrow \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} 

其中,设u=dx/dt,v=dy/dt,用于表示像素点的运动。LK光流通常假设某一个窗口内的像素具有相同的运动,即: 

\begin{bmatrix} I_{x} & I_{y} \end{bmatrix}_{k}\begin{bmatrix} u \\ v \end{bmatrix}=-I_{tk},k=1,\cdots ,w^{2}

\Rightarrow \begin{bmatrix} u\\ v \end{bmatrix}^{*}=-(A^{T}A)^{-1}A^{T}b 

  • 在实践中,常列下式作为代价函数优化迭代求解:

\min_{\bigtriangleup x,\bigtriangleup y}\left \| I_{1}(x,y)-I_{2}(x+\bigtriangleup x,y+\bigtriangleup y) \right \| _{2}^{2} 

其中,(x,y)是第一副图像中某些特征点的像素坐标,\bigtriangleup x,\bigtriangleup y是待优化量。由上式可知,关于\bigtriangleup x,\bigtriangleup y的梯度是在第二幅图像中的(x+\bigtriangleup x,y+\bigtriangleup y)的梯度。若用第一个图像的梯度 (x,y)来代替,则称为反向光流法,而I_{1}(x,y)的梯度是保持不变的。

  • 多层光流:为了防止相机移动过快,导致优化迭代没有一个较好的初值,可以使用多层金字塔来计算,把上一层的追踪结果,作为下一层光流的初始值,这个过程也称为coarse-to-fine光流。 

二、直接法

  • 与光流法不同,直接法将直接估计相机的相对变化矩阵,而不匹配特征点。
  • 仍然基于灰度不变假设,设相同三维路标点在不同相机位姿下的像素坐标为:

\left\{\begin{matrix} p_{1}=\frac{1}{z_{1}}KP \\ p_{2}=\frac{1}{z_{2}}K(RP+t) \end{matrix}\right.

最小化光度误差:e=I_{1}(p_{1})-I_{2}(p_{2})

\min J(T)=\sum_{i=1}^{N}e_{i}^{T} e_{i} 

其中T为变换矩阵。引入两个中间变量:q=TP,u=(1/z2)Kq。则e关于T的梯度为:

\frac{\partial e}{\partial T}= \frac{\partial I_{2}}{\partial u}\frac{\partial u}{\partial q}\frac{\partial q}{\partial \bigtriangleup \xi} \bigtriangleup \xi 

上式中,\frac{\partial I_{2}}{\partial u}为u处的像素梯度,

\frac{\partial u}{\partial q}=\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} 

\frac{\partial q}{\partial \bigtriangleup \xi}=\begin{bmatrix} I & -q^{\wedge } \end{bmatrix} 

由此,可推导出 J的雅克比矩阵为:

J=-\frac{\partial I_{2}}{\partial u} \begin{bmatrix} \frac{f_{x}}{z} & 0 & -\frac{f_{x}x}{z^{2}} & -\frac{f_{x}xy}{z^{2}} & f_{x}+\frac{f_{x}x^{2}}{z^{2}} & -\frac{f_{x}y}{z} \\ 0 & \frac{f_{y}}{z} & -\frac{f_{y}y}{z^{2}} & -f_{y}-\frac{f_{y}y^{2}}{z^{2}} & \frac{f_{y}xy}{z^{2}} & \frac{f_{y}x}{z} \end{bmatrix}

  • 根据观测点P的来源,可分为三类直接法:稀疏直接法、半稠密直接法和稠密直接法,计算量也逐步增加
  •  由于图像是非凸函数,沿着像素梯度下降时,很容易陷入局部最优,只有相机运动很小时,才能减轻非凸性。
  • 优点:节省特征点计算时间和匹配时间,只要由像素梯度即可,无需一定要具有角点特征的图像,可以构建半稠密或稠密地图。
  • 缺点:(1)非凸性->多层金字塔可以缓解;(2)单个像素没有区分度->图像块,数量选择超过500个以上;(3)灰度值不变是一个很强的假设。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值