视觉SLAM十四讲学习5 位姿估计(7)光流法,光流跟踪

视觉SLAM十四讲学习5 位姿估计(7)光流法

前言

本篇继续位姿估计,光流法,光流跟踪。

LK光流

基于特征点的位姿估计中,特征匹配是比较耗时的过程。因此,光流法常被用来替换特征匹配法,来加速特征点的跟踪。

假设相机的相邻位姿之间,空间点的亮度(像素灰度值)是不变的,则:
I ( x + d x , y + d y , t + d t ) = I ( x , y , t ) I(x+dx,y+dy,t+dt)=I(x,y,t) \\ I(x+dx,y+dy,t+dt)=I(x,y,t)
上面这个式子表示,空间点在 d t dt dt的时间内,在图像上移动了 ( d x , d y ) (dx,dy) (dx,dy)的像素距离。接着泰勒展开:
I ( x , y , t ) + I x d x + I y d y + I t d t = I ( x , y , t ) s e t I x = ∂ I ∂ x , I y = ∂ I ∂ y t h e n I x d x + I y d y + I t d t = 0 s o I x d x d t + I y d y d t = − I t [ I x I y ] [ d x d t d y d t ] = − I t I(x,y,t)+I_xdx+I_ydy+I_tdt=I(x,y,t) \\ \quad \\ set \quad I_x = \frac{\partial I}{\partial x},I_y=\frac{\partial I}{\partial y} \\ \quad \\ then \quad I_xdx+I_ydy+I_tdt=0 \\ \quad \\ so \quad I_x\frac{dx}{dt} + I_y\frac{dy}{dt} = -I_t \\ \quad \\ \begin{bmatrix} I_x & I_y \end{bmatrix} \begin{bmatrix} \frac{dx}{dt} \\ \frac{dy}{dt} \end{bmatrix} = - I_t I(x,y,t)+Ixdx+Iydy+Itdt=I(x,y,t)setIx=xI,Iy=yIthenIxdx+Iydy+Itdt=0soIxdtdx+Iydtdy=It[IxIy][dtdxdtdy]=It
上式中, I x , I y I_x,I_y Ix,Iy表示像素点在x,y方向上的梯度, d x / d t , d y / d y dx/dt,dy/dy dx/dt,dy/dy表示像素点在x,y方向上的移动速度, I t I_t It表示像素灰度对时间的变化。

对于单个特征点的光流跟踪。容易受到噪声、光度变化等干扰,因此假设以特征点为中心的一个 w × w w\times w w×w大小的图块的运动是相同的,考虑图块的光流:
[ I x I y ] k [ d x d t d y d t ] = − I t k k = 1 , 2 , … , w 2 T h a t i s A x = b \begin{bmatrix} I_x & I_y \end{bmatrix}_k \begin{bmatrix} \frac{dx}{dt} \\ \frac{dy}{dt} \end{bmatrix} = - I_{tk} \\ k = 1,2,\dots,w^2 \\ \quad \\ That \quad is \quad Ax=b [IxIy]k[dtdxdtdy]=Itkk=1,2,,w2ThatisAx=b
于是就形成了一个关于 d x , d y dx,dy dx,dy的超定方程组,可以通过线性最小二乘求解 x = − ( A T A ) − 1 A T b x = -(A^TA)^{-1}A^Tb x=(ATA)1ATb

最后计算得到的 d x / d t , d y / d t dx/dt,dy/dt dx/dt,dy/dt,就是该特征点前后移动的位置。

光流金字塔

由于光流法的灰度不变假设,运动一致性假设都很严格,因此使用时如果相机运动较大,光流跟踪的结果很容易陷入局部最小。

于是,LK光流通常配合图像金字塔使用,如下图所示。将原图按照0.5倍,0.25倍,0.125倍尺寸缩小,得到图像金字塔。然后,在尺寸最小的图层上进行光流计算,把跟踪结果投影到第二张图层上进行光流计算,把跟踪结果投影到第三层,直到最后在原图上计算出跟踪结果。这种思想类似于coarse-to-refine。

由于缩小到0.125倍时,原始图像中像素的运动也被缩小了,因此就满足了图块的运动一致性假设,使得光流跟踪更加鲁棒。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在《视觉SLAM十四》中,章节安排如下: 1. 数学基础部分:介绍这本书的基本信息,包括自测题。概述SLAM系统的组成和各模块的工作。介绍三维空间运动、李群和李代数、针孔相机模型以及非线性优化。完成一个曲线拟合的实验。 2. SLAM技术部分:解特征点视觉里程计,包括特征点的提取与匹配、对极几何约束的计算、PnP和ICP等方学习直接视觉里程计,包括和直接的原理,并使用g2o实现一个简单的RGB-D直接。构建一个视觉里程计框架,解决优化和关键帧选择的问题。深入讨论后端优化,包括Bundle Adjustment和位姿图的优化。介绍回环检测和地图构建的方。最后,介绍当前的开源SLAM项目和未来的发展方向。 另外,对于四元数的学习,可以先了解复平面的概念。复平面是一个用来描述复数的平面,其中实部和虚部分别对应平面的横坐标和纵坐标。了解复平面后,可以开始学习四元数的概念和应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [视觉SLAM十四笔记](https://blog.csdn.net/dada19980122/article/details/111404967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【视觉SLAM十四】笔记【逐行代码带你解析】【适合纯小白 ps:因为我就是】(持续更新中)](https://blog.csdn.net/R_ichun/article/details/131964588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值