【问题标题】:Count the number of people in the video计算视频中的人数
【发布时间】:2016-05-05 21:22:19
【问题描述】:

我正在从事图像处理和计算机视觉项目。该项目是统计进入会议的人数。这需要在 OpenCV 或 Python 中完成。

我已经尝试过 OpenCV 中用于上半身的 Haar Cascade:Detect upper body portion using OpenCV

但是,它没有满足要求。视频链接如下:

https://drive.google.com/open?id=0B3LatSCwKo2benZyVXhKLXV6R0U

如果您查看 sample1 文件,在 0:16 秒,有人正在进入房间,那总是这样。摄像头在门的顶部。

【问题讨论】:

  • 您究竟需要什么帮助? Stack Overflow 不是教程或代码编写服务。请edit您的问题并发布到目前为止的代码,描述您确切遇到的问题以及您的具体问题是什么。还请包括您获得的输出(如果有)和任何错误或回溯的全文
  • 如果您的摄像头安装在门上方,我怀疑您是否需要“人识别”。您所需要的只是运动检测并检测它是从左到右还是从右到左移动。使用 opencv 应该很容易做到这一点。
  • 亚伦:感谢您的评论。我们实际上需要计算进入会议室的人数。我考虑过运动检测,但这不是必需的。
  • 你的相机是朝下的,所以它真正能看到的只是一根头发。这使您尝试解决的问题变得更加困难。话虽如此,这个问题已经被问到here。但是,您很幸运,因为您的背景看起来是静止的!这意味着您可以在前几帧中识别出您的背景,然后从有人穿过门的帧中减去它,从而检测到有人穿过门。

标签: python opencv image-processing computer-vision


【解决方案1】:

从该空中视频流中识别人员

我认为有一种简单的方法可以解决这个问题。检测移动物体的背景减法方法正是您所需要的,因为您提供的视频似乎在任何时候都只有一个移动物体:穿过门的人。因此,如果您在 Python 中关注this tutorial,您应该能够为您的问题实现令人满意的解决方案。

统计进出人数

现在,我想到的第一个问题是,如果多个人以不同的时间间隔穿过门,我该怎么做(一个人在 10 秒内走进视频,另一个人走过20 秒后进入视频)?这是我能想到的最简单的解决方案。通过背景减除检测到 blob 后,您只需跟踪 blob 直到它离开帧。一旦它离开框架,您检测到的下一个斑点必须是进入房间的新人,因此您可以继续计数。如果您不熟悉如何在检测到对象后对其进行跟踪,请阅读 this tutorial。通过这种方式,您可以避免计算同一个 blob(即同一个人)进入的次数过多。

处理复杂动态环境的难点

如果您认为通过该门口的交通量很大,那么问题就会变得更加困难。这是因为在这种情况下,在任何给定时刻可能没有多少固定背景要减去,而且检测到的斑点之间可能有很多重叠。在自主行人跟踪和识别领域有很多积极的研究——所以,简而言之,这是一个没有简单易行的解决方案的难题。但是,如果您有兴趣阅读一些潜在的方法来解决从鸟瞰图检测行人的这些更具挑战性的问题,我建议您阅读this question 的答案。

我希望这会有所帮助,祝你编码顺利!

【讨论】:

    猜你喜欢
    • 2020-01-15
    • 2013-02-07
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多