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稀疏光流单应追踪器

图像配准基于Horn-Schunck和Lucas-Kanade等光流场实现图像配准matlab源码含GUI界面

OpenCV中的光流及视频特征点追踪

opencv光流法