一 光流

光流的概念是Gibson在1950年首先提出来的。

它是空间运动物体在观察成像平面上的像素运动的瞬时速度。是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的相应关系。从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是因为场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。

其计算方法能够分为三类:

(1)基于区域或者基于特征的匹配方法;

(2)基于频域的方法;

(3)基于梯度的方法;

简单来说,光流是空间运动物体在观測成像平面上的像素运动的“瞬时速度”。

光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。

 光流法的前提如果:

(1)相邻帧之间的亮度恒定。

(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比較“微小”;

(3)保持空间一致性;即,同一子图像的像素点具有同样的运动

这里有两个概念须要解释:

运动场,事实上就是物体在三维真实世界中的运动。

光流场,是运动场在二维图像平面上的投影。

如上图所看到的,H中的像素点(x,y)在I中的移动到了(x+u,y+v)的位置,偏移量为(u,v)。

光流法用于目标检測的原理:给图像中的每一个像素点赋予一个速度矢量。这样就形成了一个运动矢量场。在某一特定时刻,图像上的点与三维物体上的点一一相应,这样的相应关系能够通过投影来计算得到。

依据各个像素点的速度矢量特征。能够对图像进行动态分析。假设图像中没有运动目标,则光流矢量在整个图像区域是连续变化的。当图像中有运动物体时。目标和背景存在着相对运动。运动物体所形成的速度矢量必定和背景的速度矢量有所不同,如此便能够计算出运动物体的位置。须要提醒的是,利用光流法进行运动物体检測时,计算量较大,无法保证实时性和有用性。

光流法用于目标跟踪的原理:

(1)对一个连续的视频帧序列进行处理。

(2)针对每个视频序列。利用一定的目标检測方法,检測可能出现的前景目标;

(3)假设某一帧出现了前景目标。找到其具有代表性的关键特征点(能够随机产生。也能够利用角点来做特征点);

(4)对之后的随意两个相邻视频帧而言。寻找上一帧中出现的关键特征点在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置坐标;

(5)如此迭代进行,便可实现目标的跟踪。

IxVx+IyVy+It=0;

对于二维的运动场。单靠一个像素无法确定其运动矢量(Vx,Vy)依据如果三, 我们能够使用当前像素的邻域像素加入很多其它约束条件;如经典的Horn-Schunck光流法所加的运动平滑约束。

同一时候。对于二维运动场。仅仅需包括两条或以上边缘则能够解系统方程,因此在进行光流法时,先选择好跟踪的特征点。如harris角点。

二 KLT

KLT属于光流法的一种。其前提如果与上一致


1)亮度恒定
2)时间连续或者是运动是“小运动”
3)空间一致,临近点有相似运动,保持相邻
  

非常直观的讲,如果推断一个视频的相邻两帧I、J在某局部窗体w上是一样的。则在窗体w内有:I(x, y, t) = J(x', y', t+τ),亮度恒定的如果(如果1)即为了保证其等号成立不受亮度的影响,如果2是为了保证KLT可以找到点,如果3则为下面原因如果(即对于同一个窗体中。全部点的偏移量都相等):

  在窗体w上,全部(x, y)都往一个方向移动了(dx,  dy),从而得到(x', y'),即t时刻的(x, y)点在t+τ时刻为(x+dx, y+dy)。所以寻求匹配的问题可化为对下面的式子寻求最小值,或叫做最小化下面式子:

  用积分来表示上述式子。以上式子可等效为:

  这个式子的含义。即找到两副图像中,在W窗体中。I、J的差异,当中I以x-d/2为中心,J以x+d/2为中心,w/2为半径的一个矩形窗体间的差异,好吧。结合我们微积分的知识。函数ε(d)要取得最小值,这个极值点的导数一定为0,即

  

的值为0,由泰勒展开的性质:

能够得到:

于是。问题转化为:

当中:

从而,问题即为:

=>

即其等式可看作为:

当中。Z为一个2*2的矩阵,e为一个2*1的向量。

为了要使d可以得到解,则Z须要满足条件,即Z*Z'矩阵可逆。当中Z'为Z矩阵的转置(ZT),在普通情况下,角点具有这种特点。





版权声明:本文博客原创文章,博客,未经同意,不得转载。

光流和KLT的更多相关文章

  1. KLT 光流

    一 光流 光流的概念是Gibson在1950年首先提出来的.它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在 ...

  2. 目标跟踪之Lukas-Kanade光流法

    转载自:http://blog.csdn.net/u014568921/article/details/46638557 光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于19 ...

  3. 目标跟踪之Lukas-Kanade光流法(转)

    光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于1981年提出的,创造性地将二维速度场与灰度相联系,引入光流约束方程,得到光流计算的基本算法.光流计算基于物体移动的光学特性提 ...

  4. stm32软件模拟IIC读取PX4FLOW光流传感器数据

    这段时间在做全国光电设计大赛,用到了px4的px4flow光流传感器,用软件模拟iic读取数据不定期会导致px4flow死机,查了资料和光流的源码,发现这个光流用了stm32的硬件iic,所以对软件模 ...

  5. LK 光流法简介

    前言 若假定一个局部区域的像素运动是一致的,则可以用这个新的约束条件替代前文中提到的全局速度平滑约束条件.这种光流算法就叫做 LK 光流法. LK 光流法的推导 首先,需要推导出光流约束方程. 这一步 ...

  6. 光流算法:Brox算法(转载)

    参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...

  7. HS光流算法详解<转载>

    HS 光流法详解 前言 本文较为详细地介绍了一种经典的光流法 - HS 光流法. 光流法简介 当人的眼睛与被观察物体发生相对运动时,物体的影像在视网膜平面上形成一系列连续变化的图像,这一系列变化的图像 ...

  8. 光流算法:关于OpenCV读写middlebury网站给定的光流的代码

    Middlebury是每个研究光流算法的人不可能不使用的网站,Middlebury提供了许多标准的测试库,这极大地推进了光流算法的进展.Middlebury提供的标准库,其计算出的光流保存在后缀名为. ...

  9. 光流算法:Brox光流的OpenCV源码解析

    OpenCV中DeepFlow代码其实是Brox光流,而非真正的DeepFlow光流,在将近一个月的研究.移植及优化过程中,对Brox光流有了较深刻的认识.我对OpenCV中源码进行了详细的分析,并以 ...

随机推荐

  1. Android Tombstone/Crash的log分析和定位

    有一句话叫做常在河边走,哪有不湿鞋.我们这些研究和开发Android的project师正应了这句话,相必大家在调试的时候常常会遇到这么个东西吧 *** *** *** *** *** *** *** ...

  2. HDU4144:Bacon's Cipher

    Problem Description Bacon's cipher or the Baconian cipher is a method of steganography (a method of ...

  3. WPF 3D: MeshGeometry3D纹理坐标的正确定义

    原文 WPF 3D: MeshGeometry3D纹理坐标的正确定义 为了使基于2D的纹理显示在3D对象中,我们必须定义3D Mesh对象的纹理贴图坐标.在WPF中,此项功能则通过MeshGeomet ...

  4. Ubuntu 13.10 安装 Unity 8 试用截图

    关于 Unity 8 有很多报道,Unity 8 相对于 Unity 7 变化相当大,这是 Ubuntu 团队打造的一款通用于 PC.手机.平板的桌面. Unity 8 已经登陆 ubuntu 13. ...

  5. VS2010程序打包操作

    摘录:http://www.cnblogs.com/daban/archive/2012/06/27/2565449.html   1.  在vs2010 选择“新建项目”----“其他项目类型”-- ...

  6. WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体

    原文:WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体 运行结果: 事实上很简单,定义好一个正方体,处理好纹理.关于MeshGeometry3D的正确定义和纹理这里就不多讲 ...

  7. js淡入淡出

    示例: js淡入淡出 原理:更改css不透明数值 知识点: css不透明 filter:alpha(opacity:30); opacity:0.3;} 小技巧: 小于临界值,做加速 大于临界值,做减 ...

  8. oracle存储过程的例子

    oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的 ...

  9. $.ajax通路RESTful Web Service一个错误:Unsupported Media Type

    最近项目,使用头版jquery ajax访问背景CXF发布时间rest维修,结果遇到了错误"Unsupported Media Type". 公布的服务java代码例如以下: im ...

  10. Oracle基于学习3--Oracle创建用户和授权

    Oracleserver端的操作,如以下一般: 1)       安装Oracleserver软件 2)       创建数据库(安装时自己主动创建) 3)       配置监听(安装时自己主动配置) ...