gpt4 book ai didi

image-processing - cvCalculateOpticalFlowFarneback的OPTFLOW_USE_INITIAL_FLOW选项

转载 作者:行者123 更新时间:2023-12-02 17:15:45 24 4
gpt4 key购买 nike

我正在使用OpenCV进行项目,并且正在使用光流算法cvCalculateOpticalFlowFarneback来获取视频中的光流。

我一直在阅读文档,甚至一直在研究源代码,并且可以向算法提供一个选项:OPTFLOW_USE_INITIAL_FLOW

我一直在玩它,但是看不到速度或准确性上的任何差异。所以我的问题是:

该选项有什么作用?与没有相比,您在使用它时是否经历过任何差异? (是好是坏)

另外,在查看某些实现时,我遇到了一个代码注释,说应避免使用此选项,因为其中存在错误。我无法在其他任何地方对其进行优化,但是这让我有点紧张(尤其是在将其包含到生产软件中时)。

任何意见表示赞赏!

最佳答案

OpenCV documentation for cvCalculateOpticalFlowFarneback说:

OPTFLOW_USE_INITIAL_FLOW Use the input flow as the initial flow approximation



这意味着:如果您用对流的估计值填充输出参数流,那么该函数将使用您提供的流作为初始估计值,就像您怀疑的那样。如果您可以合理估计流量作为输入,则只会看到任何实际差异。否则,这将没有效果,甚至会变得更糟。如果您有一个视频序列,其中摄像机以恒定速度移动,则可以轻松测试效果:
  • 对于前两个图像,计算不带参数的流量。
  • 对于后续图像,请使用上一个对计算的流作为新计算的输入,并使用OPTFLOW_USE_INITIAL_FLOW参数。并计算没有它的流量。
  • 比较结果流及其花费的时间。这应该向您显示该参数的效果。

  • 由于(如果我理解正确),Gunnar Farneback的算法是一种用于找到光流的优化算法,因此很容易陷入局部最大值,因此良好的初始化可能可以帮助您为该流找到更好的全局最大值,因此该参数应该是更好的流量输出。不一定更快。

    关于实现和生产使用中可能存在的错误(注意:我没有查看实际来源):
  • 如果您发现没有光流就可以满足需要,请不要使用它。
  • 如果您测试了参数的影响并且发现它会有所帮助,请进行更多测试,直到您确信它会有所帮助并使用它。
  • 您可以询问OpenCV mailinglist上的错误,但我建议您在尝试之前先进行一些测试和更多的代码阅读。
  • 关于image-processing - cvCalculateOpticalFlowFarneback的OPTFLOW_USE_INITIAL_FLOW选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9390031/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com