目标检测光流法(一):对光流法的认识
2016-12-20 11:15
218 查看
所谓光流,是计算机视觉研究领域的术语,直观的认识就是提供一个对运动物体的的描述,因此也常用于运动物体的检测与识别。现实生活中,我们之所以能感受到物体的动与不动,就是因为这个物体在前后两个时间点上出现在了不同的位置,我们人脑自动根据这个偏差就可以知道物体是运动了还是没有运动,是变远了还是变近了等等。那么基于这种思想下的运动目标检测,就诞生了光流。
所以可以看出,光流不但可以检测出物体是否存在运动,运动的方向、角度也是可以计算出来的。光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。简单来说就是上面说的那样,在一个连续时间点前后,比较一下这两个时刻的图像有什么不同,把这个不同通过一种方式计算出来就是光流了。
通常一个视频是由摄像机等装置拍出来的,视频其实就是一系列图像帧的组合,每一帧如果挑出来其实就是一副图像。那么既然是摄像机拍出来的,就存在摄像机运动与不运动的情况了,如果摄像机不运动(比如一些监控场所的摄像头),那么光流检测出来的运动就是物体的运动了,假设摄像机运动,那么光流检测出来的运动可就是物体的运动加上摄像机的运动的合成运动了,这种情况通常是不希望看到了,会给运动目标检测带来一定的影响,所有有时候通常要先把摄像机的运动给去掉。
光流的计算方法可以分为以下几类:
(1)基于区域或基于特征的匹配方法
(2)基于频域的方法
(3)基于梯度的方法
目前较为多的几种计算光流的方法有:
(1)Lucas-Kanada方法,这种方法是较早也是较为经典的一种方法。是一种基于局部特征计算光流的方法。
Wiki百科上的介绍
里面有讲解该算法相关的三篇文章:
Lucas B and Kanade T. An Iterative Image Registration Technique with an Application to Stereo Vision. Proc. Of 7th International Joint Conference on Artificial Intelligence
(IJCAI), pp.674-679.是81年发表的。
Bruce D. Lucas (1984) Generalized Image Matching by the Method of Differences (doctoral dissertation)
J. Y. Bouguet, (2001) . Pyramidal implementation of the affine lucas kanade feature tracker description of the algorithm. Intel Corporation, 5.
基于光流法研究有三个前提假设:
(1)相邻帧之间的亮度恒定;
(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;
(3)保持空间一致性;即,同一子图像的像素点具有相同的运动
关于L-K方法的详细过程可以看论文,也可以看下面几个博客对论文里面公式的提要:
Lucas–Kanade光流算法
(2)Horn-Schunck方法。这是一种全局性质下计算光流的方法,该方法运算较慢,
Wiki百科上的介绍
里面有相关公式推导与论文的介绍,感兴趣可以详细研究。
除此之外还有一些方法:
Buxton方法,一种基于边缘运动的图像序列模型的方法。
Glyn W. Humphreys and Vicki Bruce (1989). Visual Cognition. Psychology Press.ISBN 0-86377-124-6.
Black-Jepson方法。相关论文。
上述这些计算光流的方法在OpenCV与一些研究机构开发的matlab中都有集成,后续将分别简单他们的用法。
所以可以看出,光流不但可以检测出物体是否存在运动,运动的方向、角度也是可以计算出来的。光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。简单来说就是上面说的那样,在一个连续时间点前后,比较一下这两个时刻的图像有什么不同,把这个不同通过一种方式计算出来就是光流了。
通常一个视频是由摄像机等装置拍出来的,视频其实就是一系列图像帧的组合,每一帧如果挑出来其实就是一副图像。那么既然是摄像机拍出来的,就存在摄像机运动与不运动的情况了,如果摄像机不运动(比如一些监控场所的摄像头),那么光流检测出来的运动就是物体的运动了,假设摄像机运动,那么光流检测出来的运动可就是物体的运动加上摄像机的运动的合成运动了,这种情况通常是不希望看到了,会给运动目标检测带来一定的影响,所有有时候通常要先把摄像机的运动给去掉。
光流的计算方法可以分为以下几类:
(1)基于区域或基于特征的匹配方法
(2)基于频域的方法
(3)基于梯度的方法
目前较为多的几种计算光流的方法有:
(1)Lucas-Kanada方法,这种方法是较早也是较为经典的一种方法。是一种基于局部特征计算光流的方法。
Wiki百科上的介绍
里面有讲解该算法相关的三篇文章:
Lucas B and Kanade T. An Iterative Image Registration Technique with an Application to Stereo Vision. Proc. Of 7th International Joint Conference on Artificial Intelligence
(IJCAI), pp.674-679.是81年发表的。
Bruce D. Lucas (1984) Generalized Image Matching by the Method of Differences (doctoral dissertation)
J. Y. Bouguet, (2001) . Pyramidal implementation of the affine lucas kanade feature tracker description of the algorithm. Intel Corporation, 5.
基于光流法研究有三个前提假设:
(1)相邻帧之间的亮度恒定;
(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;
(3)保持空间一致性;即,同一子图像的像素点具有相同的运动
关于L-K方法的详细过程可以看论文,也可以看下面几个博客对论文里面公式的提要:
Lucas–Kanade光流算法
(2)Horn-Schunck方法。这是一种全局性质下计算光流的方法,该方法运算较慢,
Wiki百科上的介绍
里面有相关公式推导与论文的介绍,感兴趣可以详细研究。
除此之外还有一些方法:
Buxton方法,一种基于边缘运动的图像序列模型的方法。
Glyn W. Humphreys and Vicki Bruce (1989). Visual Cognition. Psychology Press.ISBN 0-86377-124-6.
Black-Jepson方法。相关论文。
上述这些计算光流的方法在OpenCV与一些研究机构开发的matlab中都有集成,后续将分别简单他们的用法。
相关文章推荐
- 目标检测光流法(一):对光流法的认识
- 运动目标检测__光流法
- 目标检测光流法(二):opencv下的光流L-K算法
- OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
- 利用光流法进行运动目标检测
- 运动目标检测--光流法
- 目标检测光流法(三):opencv下光流Farneback法
- 目标检测光流法(四):matlab下光流法工具箱
- 运动目标检测__光流法
- 运动目标检测--光流法
- 运动目标检测之“光流法”
- 【OpenCV】OpenCV3的第二天——光流法(Optial Flow)运动目标检测
- 目标检测光流法(二):opencv下的光流L-K算法
- 目标检测光流法(三):opencv下光流Farneback法
- 光流法-运动目标的检测(opencv学习)
- 目标检测光流法(四):matlab下光流法工具箱
- 光流法-运动目标的检测二(opencv学习)
- 运动目标检测__光流法
- 计算机视觉目标检测的框架与过程
- 目标检测实例ssd_detect.py