我正在从事图像处理和计算机视觉项目。该项目是统计进入 session 的人数。这需要在 OpenCV 或 Python 中完成。
我已经尝试过 OpenCV 中可用的 Haar Cascade 上半身:Detect upper body portion using OpenCV
但是,它没有解决要求。视频链接如下:
https://drive.google.com/open?id=0B3LatSCwKo2benZyVXhKLXV6R0U
如果您查看 sample1 文件,在 0:16 秒时,一个人进入房间,总是这样。摄像头在门的顶部。
最佳答案
从这个航拍视频流中识别人物
我认为有一种简单的方法可以解决这个问题。 背景减法检测移动物体的方法正是您所需要的,因为您提供的视频似乎在任何时候都只有一个移动物体:穿过门的人。因此,如果您关注 this tutorial在 Python 中,您应该能够为您的问题实现令人满意的解决方案。
统计进出人数
现在,我想到的第一个问题是,如果多个人在不同的时间间隔(一个人在 10 秒内走进视频,另一个人走进视频在进入视频的 20 秒内)?这是我能想到的针对此考虑的最简单解决方案。通过背景减除检测到 Blob 后,您只需跟踪 Blob 直到它离开框架。一旦它离开框架,您检测到的下一个 Blob 一定是进入房间的新人,因此您可以继续计数。如果您不熟悉如何在检测到对象后跟踪对象,请提供 this tutorial一读。以这种方式,您可以避免对同一 blob(即同一个人)进入太多次进行计数。
处理复杂动态环境的难点
如果您认为通过该门口的流量很高,那么问题就会变得更加困难。这是因为在那种情况下,在任何给定时刻可能没有太多要减去的静止背景,而且检测到的 Blob 之间可能会有很多重叠。在自主行人跟踪和识别领域有很多活跃的研究——因此,简而言之,这是一个难题,没有一个简单易行的解决方案。但是,如果您有兴趣阅读一些潜在的方法来解决这些更具挑战性的鸟瞰行人检测问题,我建议您阅读 this question 的答案。 .
希望这对您有所帮助,祝您编码顺利!
关于python - 统计视频中的人数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060477/