光流:无法通过Farneback获得快速运动?

时间:2019-07-03 10:18:47

标签: python algorithm opencv math computer-vision

我认为有些人知道此功能

flow = cv2.calcOpticalFlowFarneback(prvs,next, None, 0.5, 3, 15, 3, 5, 1.2, 0)

来自OpenCV,它使用Gunner Farneback的算法来计算密集的光流。

我对这种算法有疑问,希望有人能给我答案。

我可以从序列中的两张图片中完美地计算出平滑或慢动作的密集光流。

为什么这对于快速运动不起作用? 有人有主意吗? 有人可以给我几点为什么这行不通吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

calcOpticalFlowFarneback函数具有两个与对象位移直接相关的参数(运动越快,位移越大)

  1. 级别:根据原始的Gunner Farneback paper
  

可以减少位移过大的问题...开始   以粗略的比例获得粗略但合理的位移估算值,并将其传播到更细的比例尺以获得越来越准确的估算值。   缺点是我们需要重新计算多项式展开系数   每个标尺,但可以通过在标尺之间进行二次采样来减少此成本。

  1. winsize:平均窗口大小;较大的值可提高算法对图像噪声的鲁棒性,并为快速运动检测提供更多机会,但会产生更多的运动场模糊。

因此,对于更快的运动,应该优化这些值,但要以牺牲性能和算法的健壮性为代价。