KLT光流跟踪

简介
只有在良好的特征被识别出来并从一帧跟踪到另一帧时,基于视觉的系统才能正常工作。虽然跟踪本身基本上是一个已解决的问题,但选择能够很好地跟踪并与世界上的物理点相对应的特征仍然很困难。本文提出了一种基于跟踪器工作原理的结构最优特征选择准则,并提出了一种特征监测方法,可以检测到遮挡、遮挡和与世界上的点不一致的特征。这些方法基于一种新的跟踪算法,该算法扩展了先前牛顿-拉斐逊式搜索方法在仿射图像变换下的工作。我们用几个模拟和实验来测试性能。
1、引言*
在帧间位移较小的情况下,可以通过优化、平移和线性图像变形相关的匹配准则来跟踪窗口,并且可能具有自适应窗口大小。特征窗口可以根据一些纹理或角点的测量值来选择,例如空间强度分布的高标准偏差、图像强度的拉普拉斯零交叉的可能性和角点。然而,即使是一个富有质感的地区也可能是信息缺乏的。例如,它可以跨越深度不连续或光泽曲面上反射高光的边界。在任何一种情况下,窗口都不会附着在世界上的某个固定点上,这使得该特性对运动算法中的大多数结构无效甚至有害。此外,即使是好的特征也可能会被遮挡,当这种情况发生时,跟踪器通常会离开原来的目标。在这些问题得到解决之前,没有一个基于特征的视觉系统能够真正工作。
本文介绍了在跟踪过程中,如何利用特征相异性度量来监控图像特征在第一帧和当前帧之间的变化。这个想法很简单:相异性是特征在第一帧和当前帧之间的均方根残差,当相异性变得太大时,应该放弃特征。
在本文中,我们对这个问题做出了两个主要贡献。首先,我们提供了实验证据,当测量相异性时,纯平移并不是一个合适的图像运动模型,但是仿射图像变化,即线性翘曲和平移,是足够的。其次,我们以Lu-cas和Kanade对纯平移模型所做的那样,提出了一种用Newton-Raphson-stile极小化方法来确定仿射变化的一种合理而有效的方法。
此外,我们提出了一种比传统的“兴趣”或“角点 ”度量更原则性的方法来选择特性。具体地说,通过优化跟踪器的精度,可以定义具有良好纹理特性的特征。换言之,正确的功能正是使跟踪器工作得最好的特性。最后,我们认为使用两个图像运动模型比使用一个模型要好。事实上,当帧间摄像机平移很小时,平移比仿射变换给出更可靠的结果,但仿射变化是比较远距离帧以确定相异性所必需的。我们在下一节中定义这两个模型。
2、图像运动的两种模型
随着相机的移动,图像的纹理模式会发生复杂的变化。然而,远离遮挡边界和近表面标记,这些变化通常可以描述为图像运动:

因此,后期图像可以通过适当移动时间t的当前图像中的每个点适来获得。运动量
被点(x,y)称为位移矢量。位移矢量是图像位置x的函数,即使在用于跟踪的小窗口内变化也常常很明显。因此,谈论((“特征窗口的位移”是没有意义的,因为同一窗口内有不同的位移。变换函数是一个更好的表示:x=(x,Y)

是一个变形矩阵,d是特征窗口中心的平移。图像坐标x是相对于窗口中心测量的。然后,第一图像I中的点x移动到第二图像J中的点Ax+d,其中A=1+D,I是2x2单位矩阵:

给定两个图像I和J以及图像I中的一个窗口,跟踪意味着确定出现在变形矩阵D和位移向量d中的六个参数。该估计的质量取决于特征窗口的大小、其中图像的纹理以及帧之间的相机运动量。当窗口很小时,矩阵D就更难估计,因为它内部的运动变化较小,因此可靠性较低。然而,较小的窗口通常更适合跟踪,因为它们不太可能跨越深度不连续。因此,在跟踪过程中,最好使用纯转换模型,其中假设变形矩阵D为零:
这两种运动模型的最佳组合是纯平移跟踪,因为它比摄像机的小帧间运动具有更高的可靠性和准确性,以及用于比较在第一帧和当前帧之间特征的仿射运动进行质量监控。然而,为了定量地解决这些问题,我们首先需要介绍我们的跟踪方法
3、计算图像运动
由于图像噪声和仿射运动模型的不完美性,方程(2)一般不能完全满足。确定运动参数的问题就是找到最小化差异的A和d

其中W是给定的特征窗口,w(x)是加权函数。在最简单的情况下,w(x)=1。或者,w可以是一个类似高斯的函数来强调窗口的中心区域。在纯平移下,矩阵A被约束为等于单位矩阵。为了使残差(3)最小化,我们根据变形矩阵D和位移向量D的未知项对其进行微分,并将结果设为零。然后我们用截断泰勒展开将得到的系统线性化

这产生了以下线性6 x 6系统:


即使仿射运动是一个好的模型,由于方程(4)的线性化,方程5也只能近似满足。然而,正确的仿射变化可以通过在牛顿-拉斐逊式的最小化中迭代使用方程5来找到。在跟踪过程中,特征窗口的仿射变形D很可能很小,因为相邻帧之间的运动首先必须很小,这样跟踪才能工作。然后将D设为零矩阵更安全。事实上,在这种情况下试图确定变形参数不仅没有用,而且会导致位移解的较差:事实上,变形D和位移D通过方程(6)的4×2矩阵V相互作用,并且D中的任何误差都会导致D的误差。因此,当目标是确定D时,较小的系统

应求解,其中e收集方程(5)向量a的最后两个条目。另一方面,当监控第一帧和当前帧之间的特征的外观不一致时,需要解决全仿射运动系统(5)。事实上,现在的运动模型太大了。此外,在确定相异性时,两个窗口之间的整体变换是相互影响的,精确的位移是不太重要的,因此D和D通过矩阵I/在一定程度上相互作用是可以接受的。在接下来的两个部分中,我们将更详细地讨论这些问题:首先,我们确定系统(7)何时能够产生良好的位移测量值(第4节),然后我们了解何时可以使用等式(5)来监控特征的质量(第5节)。
4、图像纹理

不管采用何种跟踪方法,并非图像的所有部分都包含完整的运动信息(孔径问题):例如,对于水平强度边缘,只能确定运动的垂直分量。为了克服这一困难,研究人员提出跟踪角点,或用高空间频率的窗口,或者二阶导数的某些组合足够高的区域。但是,有两个问题关于兴趣点选择。首先,它们通常是基于对一个好窗口的外观的先入为主的武断想法。得到的特征可能是直观的,但并不保证是跟踪算法产生良好结果的最佳特征。第二,第二节的纯平移模型通常定义了“兴趣算子”,其基础概念很难推广到仿射运动。
在本文中,我们提出了一个更加原则性的特征质量定义。根据所提出的定义,一个好的特征是能够被很好地跟踪,从而通过构造来优化选择准则。如果系统7代表良好的测量值,并且能够可靠地解决问题,我们就可以从一个窗口跟踪到另一个窗口。因此,系统的对称2x2矩阵Z必须高于图像噪声水平,并且条件良好。噪声要求意味着Z的两个特征值都必须大,而条件要求意味着它们不能相差几个数量级。两个小的特征值意味着一个窗口内大致恒定的强度分布。一个大的和一个小的特征值对应一个单向纹理图案。两个大的特征值可以代表角点,纹理,或任何其他模式,可以可靠地跟踪。
在实际应用中,当较小的特征值足够大以满足噪声准则时,矩阵2通常也是条件良好的。实际上,窗口中的强度变化受允许的最大像素值的限制,因此较大的特征值不能任意大。综上所述,如果Z的两个特征值是XI和Xz,我们接受一个窗口

其中X是预定义的阈值。在求解变形D和位移D的全仿射运动系统(5)时也有类似的考虑。但是,必须指出一个本质的区别:在特征监视期间,变形用于确定第一帧中的窗口是否与当前帧中的窗口匹配得足够好。因此,目标不是确定变形本身。因此,如果不能可靠地确定变形的一个组成部分,则无关紧要。事实上,这意味着该组件不会对窗口产生实质性的影响,并且该组件上的任何值都会在比较中起作用。在实际应用中,系统(5)可通过计算7’的伪逆来求解。然后,当某个分量不确定时,计算最小范数解,即沿待定分量方向零变形的解。
5、相异性
如前一节中所定义的,具有高纹理内容的特征仍然可能是不好跟踪的特征。例如,在树的图像中,前景中的水平细枝可以与背景中的垂直细枝相交。这种交集只出现在图像中,而不出现在世界上,因为这两条树枝的深度不同。任何选择标准都会选择交叉点作为一个好的特征来跟踪,但是没有真实世界的特征对应。等式(3)中定义的差异性度量通常可以表明出了问题。由于可能有大量的帧可以跟踪给定的特征,因此在纯翻译模型中,差异性度量无法很好地工作。
虽然帧间变化很小,足以使纯平移跟踪器工作,但超过25帧的累积变化相当大。事实上,符号的大小增加了大约15%,并且不同度量(3)随着帧数的增加而迅速增加:如图3的虚线和交叉线所示。同一图中的实线和交叉线显示了当同时考虑偏差时的不同度量,即,如果整个系统(5)被求解为z。这种新的差异度量保持较小且大致不变。图2的底行显示了与顶行相同的窗口,但是由于计算的变形而扭曲。形变使五个窗口几乎相等。

图3中的两条带圆圈的曲线表示来自同一序列的另一个特性,如图4所示。图5的顶行显示了五个框架的特性窗口。在中间的画面中,交通标志开始阻挡原来的特征。图3中的圆曲线是仿射运动(实体)和纯平移(虚线)下的不同测量。围绕第4帧的仿射运动曲线中的急剧跳跃表示遮挡。图5的最后一行显示,变形计算尝试将交通标志变形为窗口。

前端:Good Features to Track相关推荐

  1. 事件相机特征跟踪-模板跟踪方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1.前言 由于事件相机不能提供完整的图像,所以最初的特征跟踪依赖传统相机的数据.本推送介绍事件相机特征 ...

  2. visual tree view在工具箱力没有_Visual-Inertial Odometry

    1. 定义 "Visual-Inertial Odometry",俗称VIO,是一个使用一个或者多个相机.一个或者多个IMU(Inertial Measurement Units) ...

  3. 动态的添加和丢弃关键点---32

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 首先看看face_tracker2.launch启动文件中的参数:(括号中的值表示默认值) use_de ...

  4. spotify歌曲下载_使用Spotify数据预测哪些“ Novidades da semana”歌曲会成为热门歌曲

    spotify歌曲下载 TL; DR (TL;DR) Spotify is my favorite digital music service and I'm very passionate abou ...

  5. SLAM总结(一)- SLAM原理概述与简介

    SLAM总结(一)- SLAM原理概述与简介 SLAM(Simultaneous Localization and Mapping):同时定位和建图,定位是定位机体在世界坐标系下的位姿(pose.tr ...

  6. SVO学习笔记(二)

    SVO学习笔记(二) 这篇文章 稀疏图像对齐 地图点投影(地图与当前帧间的关系) reprojectMap reprojectPoint reprojectCell 特征点对齐中的非线性优化 结尾 这 ...

  7. 详解计算机视觉中的特征点检测:Harris / SIFT / SURF / ORB

    作者丨Encoder@知乎 来源丨https://zhuanlan.zhihu.com/p/36382429 编辑丨极市平台 本文仅用于学术分享,若侵权,联系后台作删文处理.极市导读 Harris角点 ...

  8. 全面综述:图像特征提取与匹配技术

    作者:William 来源:自动驾驶全栈工程师知乎专栏,https://www.zhihu.com/people/william.hyin/columns 特征提取和匹配是许多计算机视觉应用中的一个重 ...

  9. 过年也学(nei)习 (juan)| 图像特征提取与匹配技术

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:william 链接:https://zhuanlan.zh ...

最新文章

  1. Imagination发布四款RISC-V CPU
  2. 使用消息来处理多线程程序中的一些问题
  3. Dataset之Boston:Boston波士顿房价数据集的简介、下载、使用方法之详细攻略
  4. Quartz分布式实现
  5. qt客户端连接服务器不响应,qt判断tcp客户端是否连接服务器
  6. python怎么画简单图-Python | 用matplotlib画些简单的图
  7. vue.js源码学习分享(四)
  8. 验证注册页面信息(JavaScript)
  9. 金融数据类——外汇,CFD
  10. vue 动态背景图轮播
  11. (liunx)全套青龙面板+傻妞流水版2022年8月22日更新
  12. C语言程序设计勾股数,打印出100内的所有的勾股数(用C语言实现)
  13. css中cale()函数的使用
  14. Qt[每日一言|每日诗词]API调用
  15. 菜单栏点击显示二级菜单_显示完整菜单
  16. 福建农林大学计算机课程表,福建农林大学金山学课程表.doc
  17. flash的计算机知识,了解flash动画基础知识 -电脑资料
  18. 【服务器数据恢复】RAID6中3块磁盘离线崩溃的数据恢复案例
  19. 免费linux远程服务器主机nitrousIO
  20. 速卖通代运营可靠吗?如何正确选择代运营?

热门文章

  1. 天翼云对象存储android实现,天翼云对象存储
  2. Unity steamworks 对接流程
  3. 【Linux】Docker入门
  4. 二.deepin安装软件(1)
  5. 分类目录站和网址导航站的区别
  6. 诺基亚或将成为中国手机的威胁
  7. 如何将一个项目在自己的服务器上跑起来
  8. QQ软件换成2006版的后,为什么几个QQ群不见了?
  9. QT开发用ffmpeg将图片制作成视频
  10. 字节流和字符流简单操作