【发布时间】:2013-05-23 15:39:14
【问题描述】:
OpenCV 可以用 Lucas Kanade 方法计算密集光流吗?我知道 gpu/ocl 模块中可以做到这一点的功能(gpu::PyrLKOpticalFlow::dense),但是是否有非 gpu 等效于该功能?
我也知道 Farneback 和 TV L1,但我的研究需要 LK / 金字塔形 LK。
【问题讨论】:
标签: opencv
OpenCV 可以用 Lucas Kanade 方法计算密集光流吗?我知道 gpu/ocl 模块中可以做到这一点的功能(gpu::PyrLKOpticalFlow::dense),但是是否有非 gpu 等效于该功能?
我也知道 Farneback 和 TV L1,但我的研究需要 LK / 金字塔形 LK。
【问题讨论】:
标签: opencv
没有。实际上没有好的密集光流提取方法。我面临同样的问题(光流上的粒子平流,对吧?)
有一个使用 Farneback 方法 [1] 评估光流的函数,但它给了我不好的结果。它不使用ocl,也不使用gpu。
您可以尝试使用phaseCorrelate 使用基于移位的算法来提取它。我用过这个方法。当我将它上传到github时,我会给你链接。
[编辑]
这里是代码。我决定将相位相关算法与整个项目分开,以使其更易于理解: https://github.com/MatteoRagni/OpticalFlow 如果您打算使用它,请加注星标。
【讨论】:
可以找到OpenCV非gpu视频分析功能文档here
有一个带有金字塔的稀疏迭代 Lucas-Kanade 方法的实现(特别是来自this paper)。该函数称为calcOpticalFlowPyrLK,您可以通过buildOpticalFlowPyramid 构建相关的金字塔。但是请注意,它确实指定它用于稀疏特征集,所以我不知道如果您需要密集的光流,这会对您产生多大的影响。
【讨论】: