有关opencv光流法的解释
来源:互联网 发布:淘宝达人怎么修改资料 编辑:程序博客网 时间:2024/05/22 03:04
1981年,Horn和Schunck创造性地将二维速度场与灰度相联系,引入光流约束方程,得到光流计算的基本算法。人们基于不同的理论基础提出各种光流计算方法,算法性能各有不同。Barron等人对多种光流计算技术进行了总结,按照理论基础与数学方法的区别把它们分成四种:基于梯度的方法、基于匹配的方法、基于能量的方法、基于相位的方法。近年来神经动力学方法也颇受学者重视。
其他的咱们先不说了,回归应用吧(呵呵,太高深了,自己说不下去了)。OpenCV中实现了不少的光流算法。
1)calcOpticalFlowPyrLK
通过金字塔Lucas-Kanade 光流方法计算某些点集的光流(稀疏光流)。理解的话,可以参考这篇论文:”Pyramidal Implementation of the Lucas Kanade Feature TrackerDescription of the algorithm”
2)calcOpticalFlowFarneback
用Gunnar Farneback 的算法计算稠密光流(即图像上所有像素点的光流都计算出来)。它的相关论文是:"Two-Frame Motion Estimation Based on PolynomialExpansion"
3)CalcOpticalFlowBM
通过块匹配的方法来计算光流。
4)CalcOpticalFlowHS
用Horn-Schunck 的算法计算稠密光流。相关论文好像是这篇:”Determining Optical Flow”
5)calcOpticalFlowSF
这一个是2012年欧洲视觉会议的一篇文章的实现:"SimpleFlow: A Non-iterative, Sublinear Optical FlowAlgorithm",工程网站是:http://graphics.berkeley.edu/papers/Tao-SAN-2012-05/ 在OpenCV新版本中有引入。
稠密光流需要使用某种插值方法在比较容易跟踪的像素之间进行插值以解决那些运动不明确的像素,所以它的计算开销是相当大的。而对于稀疏光流来说,在他计算时需要在被跟踪之前指定一组点(容易跟踪的点,例如角点),因此在使用LK方法之前我们需要配合使用cvGoodFeatureToTrack()来寻找角点,然后利用金字塔LK光流算法,对运动进行跟踪。但个人感觉,对于少纹理的目标,例如人手,LK稀疏光流就比较容易跟丢。
至于他们的API的使用说明,我们直接参考OpenCV的官方手册就行:
http://www.opencv.org.cn/opencvdoc/2.3.2/html/modules/video/doc/motion_analysis_and_object_tracking.html#calcopticalflowfarneback
IJCV2011有一篇文章,《A Database and Evaluation Methodology for Optical Flow》里面对主流的光流算法做了简要的介绍和对不同算法进行了评估。网址是:
http://vision.middlebury.edu/flow/
- 有关opencv光流法的解释
- 有关volatile的解释
- 有关volatile的解释
- 有关字符集的解释
- opencv meanStdDev的解释
- 有关Hibernate_Id_Generator的解释(转载)
- 有关MYSQLDUMP的详细解释
- 有关MYSQLDUMP的详细解释
- 有关MYSQLDUMP的详细解释
- 有关MYSQLDUMP的详细解释
- 有关“ping不通”的解释
- 有关网站虚拟目录的解释
- 有关opencv的配置问题
- 有关ping 命令的解释(转)
- 有关RAID的解释和用法
- 一些跟网络有关的参数解释
- 有关文件中DEBUG定义的解释!
- 有关MYSQLDUMP的详细解释(转载)
- shell 下执行mysql 命令
- android开源图表库MPAndroidChart文档翻译(下)
- 计算机网络总结
- 访问者模式
- Centos接触 (七)安装JDK和tomcat
- 有关opencv光流法的解释
- 解决 ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- EventBus 3.0使用基础
- 并发编程学习
- acm之搜索题目1
- C#操作word:将rtf中的ole对象通过MathType转换成MathML
- TCP数据报首部
- 如何来看单片机外设A/D转换器ADC0804时序图
- 设计模式总结