光流法目标跟踪原理(不带公式)
来源:互联网 发布:ubuntu输入法无法使用 编辑:程序博客网 时间:2024/05/29 23:48
光流的概念于1950年由Gibson首先提出,所谓光流就是指图像表现运动的速度。物体在运动的时候之所以能被人眼发现,就是因为当物体运动时,会在人的视网膜上形成一系列的连续变化的图像,这些变化信息在不同时间,不断的流过眼睛视网膜,就好像一种光流过一样,故称之为光流。
1、光流法检测运动物体的原理
光流法检测运动物体的原理:一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。首先给图像中每个像素点赋予一个速度矢量(光流,包括大小和方向),这样就形成了光流场。如果图像中没有运动物体,光流场连续均匀,如果有运动物体,运动物体的光流和图像的光流不同,光流场不再连续均匀。从而可以检测出运动物体及位置。
这里有两个概念需要解释:
运动场,其实就是物体在三维真实世界中的运动;
光流场,是运动场在二维图像平面上的投影。
2、光流法的前提假设
光流法的前提假设:
(1)亮度恒定,就是同一点随着时间的变化,其亮度不会发生改变。这是基本光流法的假定(所有光流法变种都必须满足),用于得到光流法基本方程;
(2)小运动,这个也必须满足,就是时间的变化不会引起位置的剧烈变化,这样灰度才能对位置求偏导(换句话说,小运动情况下我们才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数),这也是光流法不可或缺的假定;
(3)空间一致,一个场景上邻近的点投影到图像上也是邻近点,且邻近点速度一致。这是Lucas-Kanade光流法特有的假定,因为光流法基本方程约束只有一个,而要求x,y方向的速度,有两个未知变量。我们假定特征点邻域内做相似运动,就可以连立n多个方程求取x,y方向的速度(n为特征点邻域总点数,包括该特征点)。
3、光流计算方法
光流计算方法大致可分为三类:基于匹配的方法、频域的方法和梯度的方法。
(1) 基于匹配的光流计算方法包括基于特征和基于区域两种。基于特征的方法不断地对目标主要特征进行定位和跟踪,对大目标的运动和亮度变化具有鲁棒性。存在的问题是光流通常很稀疏,而且特征提取和精确匹配也十分困难。基于区域的方法先对类似的区域进行定位,然后通过相似区域的位移计算光流。这种方法在视频编码中得到了广泛的应用。然而,它计算的光流仍不稠密。
(2) 基于频域的方法,也称为基于能量的方法,利用速度可调的滤波组输出频率或相位信息。虽然能获得高精度的初始光流估计,但往往涉及复杂的计算。另外,进行可靠性评价也十分困难。
(3) 基于梯度的方法利用图像序列亮度的时空微分计算2D速度场(光流)。由于计算简单和较好的效果,基于梯度的方法得到了广泛的研究。虽然很多基于梯度的光流估计方法取得了较好的光流估计,但由于在计算光流时涉及到可调参数的人工选取、可靠性评价因子的选择困难,以及预处理对光流计算结果的影响,少量帧中噪声的存在以及图像采集地过程中形成的频谱混叠都将严重影响基于梯度的方法的结果精度。
4、光流法的优缺点
采用光流法进行运动物体检测的问题主要在于大多数光流法计算耗时,实时性和实用性都较差。但是光流法的优点在于光流不仅携带了运动物体的运动信息,而且还携带了有关景物三维结构的丰富信息,它能够在不知道场景的任何信息的情况下,检测出运动对象。
5、光流法目标跟踪原理
对于一个连续的视频帧序列进行处理;针对每一个视频序列,利用一定 目标检测方法,检测可能出现的前景目标;如果某一帧出现了前景目标,找到其具有代表性的关键特征点;对之后的任意两个相邻视频而言,寻找上一帧中出现的关键特征点在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置坐标;如此迭代进行,便可实现目标的跟踪。
参考:
http://blog.csdn.net/carson2005/article/details/7581642
http://www.cnblogs.com/wxl845235800/p/6729406.html
http://www.cnblogs.com/stucp/archive/2012/11/24/2785480.html
- 光流法目标跟踪原理(不带公式)
- 粒子滤波目标跟踪原理(不带公式)
- SIFT算法原理(不带公式)
- 运动目标跟踪(八)--时空上下文(STC)跟踪原理
- 运动目标跟踪(九)--Struck跟踪原理
- 运动目标跟踪(十一)--CN及CSK跟踪原理
- TLD目标跟踪原理解析
- OpenCV目标跟踪(二)-LK光流法
- 光流法目标跟踪
- 相关滤波目标跟踪学习笔记(三)——KCF算法公式理解
- 运动目标跟踪(六)--压缩跟踪之CS原理介绍
- 运动目标跟踪(七)--压缩跟踪之CT原理介绍
- 运动目标跟踪(十)--CSK跟踪
- 运动目标跟踪(十四)--MIL跟踪
- 运动目标跟踪(十五)--WMIL跟踪
- 目标跟踪之LK光流法
- 目标跟踪之光流法总结
- OpenCV目标跟踪-LK光流法
- golang实现冒泡排序
- 教练技术培训系列篇二——明辨
- rust 迭代器 (iterator) 详解
- 递归法寻找链表后面第i个元素
- js自调用匿名函数与内部实例化封装插件
- 光流法目标跟踪原理(不带公式)
- ES7与ES8特性
- 成为一个软件测试工程师,你需要知道
- 操作系统第九章作业paging-multileveltranslate
- js中对象的复制,浅复制(浅拷贝)和深复制(深拷贝)
- 《JAVA编程技巧1001条》第335条:数学函数 SQRT.
- 当配置systemctl restart nfs-server.service时,不能正确重启服务该怎么办?
- 为什么要用工厂方法模式
- 言论丨李开复:中国在AI领域的优势与机会,现阶段AI领域的挑战