【问题标题】:Algorithm for Background subtraction背景减法算法
【发布时间】:2015-10-21 14:13:57
【问题描述】:

我正在尝试实现一种简单的背景减法方法来检测特定场景中的移动物体。目标是从视频中分割出特定的动作,以便在另一个视频中使用它。

我遵循的算法是: 1. 取视频的前 25 帧,平均得到一个背景模型。 2. 找出这 25 帧的标准差并将值存储在另一幅图像中。 3. 现在我正在计算每帧和平均背景模型像素之间的绝对差。

我得到的输出是一种以白色突出显示的透明运动(绝对差异导致我认为的透明度)。我想知道我的方法是否正确,考虑到下一步我将对此输出进行分割?而且我也不知道如何使用标准偏差图像。任何帮助将不胜感激。

如果这不是我应该在堆栈溢出中发布的问题类型,请告诉我。在这种情况下,任何其他网站的参考或链接都会有所帮助。

【问题讨论】:

  • 你试过OpenCV的BackgroundSubtractorMOG2吗?您的方法就像那里使用的方法的低调版本。
  • 我不会尝试使用 OpenCV 的任何内置库或函数,因为稍后我将不得不将我的整个程序移植到可能无法选择 OpenCV 的不同地方。您能帮我提供描述此 MOG2 背后过程的相关链接吗?也许那时我将能够自己实现这一点。谢谢

标签: opencv image-processing background-subtraction


【解决方案1】:

你说它看起来像透明

你没看错吧?→ See YouTube Video - Background Subtraction (approximate median)

原因是您使用所有帧的中值来创建背景。 您在视频中看到的白色是您的前景(平均图像)和背景的差异。实际上,中值滤波背景减除法很简单,但不是一种鲁棒的方法。

您可以尝试另一种背景扣除方法,例如 高斯混合模型 (GMM)CodebookSOBS-自组织背景扣除和 ViBe 背景减法。

See YouTube Video - Background Subtraction using Gaussian Mixture Models (GMMs)

【讨论】:

  • 是的,我使用了这种方法.. 虽然有点晚了,但还是感谢您的链接:)
【解决方案2】:

你应该看看那个博客。 http://mateuszstankiewicz.eu/?p=189 您将找到答案的开头。此外,我认为 Opencv 中有一个特定的视频分析模块。

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多