【问题标题】:Im trying to use this method to detect moving object. Can someone advise me for this?我试图用这种方法来检测移动的物体。有人可以为此建议我吗?
【发布时间】:2015-03-12 11:26:46
【问题描述】:

我想问如果我用这种方法提取前景会有什么样的问题。

使用此方法之前的条件是它在固定的相机上运行,​​因此相机位置不会有任何移动。

下面是我想要做的。

  1. 从相机读取一帧并将此帧设置为背景图像。这是定期进行的。
  2. 定期将之后读取的帧减去上面的背景图像。然后只会有与其他区域颜色不同的移动物体 与背景图片相同。
  3. 然后通过使用灰度、二值化、阈值化来隔离移动对象。
  4. 迭代以上 4 个进程。

如果我这样做,成功检测到移动物体的概率会很高吗?如果不是……你能告诉我为什么吗?

【问题讨论】:

  • 我觉得只要固定摄像头就可以了。否则不仅您的移动对象,而且您帧中的每个像素都会发生变化,因此您将无法检测到移动对象。
  • 问题的适当标签是图像/视频处理,而不是 C++ 或 openCV,因为您的问题侧重于算法而不是实现。
  • @Ophir Gvirtzer 抱歉,我不知道该标签存在。谢谢。
  • 顺便说一句,我看到有 3 个人花时间回答你,但你没有投票给任何答案...
  • @Ophir Gvirtzer 我正在研究建议的那些方法。我想从这个问题中得到的是找出是否有比使用光流或其他高斯混合模型等其他方法更简单的方法来实现对象跟踪。我想我别无选择,只能找出开源......无论如何感谢您回答和澄清问题。

标签: c++ opencv


【解决方案1】:

如果您考虑场景中的照明变化(逐渐或突然),您会发现您的方法不起作用。

对于这些问题有更强大的解决方案。其中之一(也许是最好的)是应用于背景减法的高斯混合模型

您可以在 OpenCV 库中使用BackgroundSubtractorMOG2(GMM 的实现)。

【讨论】:

    【解决方案2】:

    您的方案非常适合相机固定且背景固定的情况。室内和人为控制的场景比室外和自然场景更适合这种方法。我为一个检测系统做出了贡献,该系统基本上与您建议的原理相同。但当然,细节至关重要。根据我的经验说几句

    1. 您的初始化步骤可能会导致收敛到正常状态的速度非常慢。您将背景设置为第一帧,然后移动对象后面的背景片段将被视为对象。更好的方法是取 N 个首帧的中值。
    2. 在光照条件发生变化等情况下,简单的减法可能还不够。您可能会找到更适合您的应用的相似性标准。
    3. 对差异图像进行简单的阈值处理可能还不够。一种简单的方法是扩大前景,以免在意外识别的像素上更新背景。
    4. 您的第 4 步不清楚,我假设您的意思是仅在最后一帧中被标识为背景的那些位置更新前景。请注意,使用这种简单的方法,实际上是背景的像素可能会永远被“前景”标签卡住,因为您不会更新它们下面的背景。对此有很多可能的解决方案。

    【讨论】:

    • 哦,我刚刚删除了与 step1 重叠的 step4。我只是想定期更新背景图片。
    • 我认为这是个坏主意。如果您定期将图像设置为当前帧,则每次更新后都会遇到我在(1)中谈到的问题。您基本上有两个选择: 1. 仅更新背景上的像素,即未检测为对象。你需要以某种方式处理问题 (4) 2. 通过考虑每个像素的长统计数据,独立于对象跟踪更新背景。这可能对计算要求更高。
    【解决方案3】:

    有很多方法可以解决这个问题,这取决于输入的图像,哪种方法最合适。在topic

    上可能值得一读

    您建议的方法可能有效,但它是解决此问题的一种稍微不标准的方法。我主要担心的是,从背景中减去几张图像可能会导致饱和,然后您可能会丢失一些运动细节。最好在连续图像之间获取差异,然后对这些图像应用二值化/阈值处理。

    过去对我有用的另一种(更复杂的)方法是获取图像的子区域,然后与新图像进行交叉关联。这种相关性的峰值可用于识别移动方向 - 如果不止一个物体在移动,这是一种有用的方法。

    例如,也可以使用上述两种方法的组合。

    1. 从第一个背景中减去第二个图像。
    2. 阈值等以查找发生移动的 ROI
    3. 使用模式匹配方法跟踪关注于上面检测到的 ROI 的后续运动。

    最好的方法取决于你的申请,但有很多关于这个主题的论文

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      相关资源
      最近更新 更多