Lucas Kanade 密集光流
Posted
技术标签:
【中文标题】Lucas Kanade 密集光流【英文标题】:Lucas Kanade dense optical flow 【发布时间】:2013-05-23 15:39:14 【问题描述】:OpenCV 可以用 Lucas Kanade 方法计算密集光流吗?我知道 gpu/ocl 模块中可以做到这一点的功能(gpu::PyrLKOpticalFlow::dense),但是是否有非 gpu 等效于该功能?
我也知道 Farneback 和 TV L1,但我的研究需要 LK / 金字塔形 LK。
【问题讨论】:
【参考方案1】:没有。实际上没有好的密集光流提取方法。我面临同样的问题(光流上的粒子平流,对吧?)
有一个使用 Farneback 方法 [1] 评估光流的函数,但它给了我不好的结果。它不使用ocl,也不使用gpu。
您可以尝试使用phaseCorrelate
使用基于移位的算法来提取它。我用过这个方法。当我将它上传到github时,我会给你链接。
[编辑]
这里是代码。我决定将相位相关算法与整个项目分开,以使其更易于理解: https://github.com/MatteoRagni/OpticalFlow 如果您打算使用它,请加注星标。
【讨论】:
我实际上最终使用了 TV-L1 方法来计算密集光流。 OpenCV 有一个很好的实现。它提供了比 Farneback 更好的结果,但性能成本很高。 @巴拉克。我会在月底之前完成,我会在这里发布项目的链接。如果您喜欢并考虑使用它,可以给它加星标吗? @Srđan 我提到的方法也有相当可观的性能成本 嘿,我只是好奇,但恕我直言,你应该已经因为发表了任何尝试而得到了明星!【参考方案2】:可以找到OpenCV非gpu视频分析功能文档here
有一个带有金字塔的稀疏迭代 Lucas-Kanade 方法的实现(特别是来自this paper)。该函数称为calcOpticalFlowPyrLK
,您可以通过buildOpticalFlowPyramid
构建相关的金字塔。但是请注意,它确实指定它用于稀疏特征集,所以我不知道如果您需要密集的光流,这会对您产生多大的影响。
【讨论】:
以上是关于Lucas Kanade 密集光流的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV 中的 Lucas-Kanade 光流对我不起作用
OpenCV 的 Lucas-Kanade 光流代码中的“good_new = p1[st==1]”是啥意思
详解OpenCV中的Lucas Kanade稀疏光流单应追踪器