我正在从事图像处理和计算机视觉项目。该项目将计算进入会议的人数。这需要在OpenCV或Python中完成。
我已经尝试过OpenCV中可用于上身的Haar Cascade:Detect upper body portion using OpenCV
但是,它没有满足要求。视频链接如下:
https://drive.google.com/open?id=0B3LatSCwKo2benZyVXhKLXV6R0U
如果您查看sample1文件,则在0:16秒,一个人正在进入房间,这将永远是这样。相机在门顶。
答案 0 :(得分:10)
我认为有一种简单的方法可以解决这个问题。用于检测移动物体的背景减法方法正是您所需要的,因为您提供的视频似乎在任何一点上只有一个移动物体:走过门的人。因此,如果您在Python中关注this tutorial,您应该能够为您的问题实现令人满意的解决方案。
现在,我想到的第一个问题是,如果有多个人以不同的时间间隔走过门,我可以做些什么呢(一个人在10秒内走进视频,第二个人走路在20秒内进入视频)?这是我能想到的最简单的解决方案。一旦您通过背景减法检测到斑点,您只需跟踪blob,直到它离开框架。一旦它离开框架,你检测到的下一个斑点必须是进入房间的新人,因此你可以继续计数。如果您不熟悉如何在检测到对象后跟踪对象,请给this tutorial一个读取。通过这种方式,您可以避免计入相同的blob(即同一个人)进入太多次。
如果您认为通过该门口的交通量很高,那么问题会变得更加困难。这是因为在那种情况下,在任何给定时刻可能没有太多静止背景要减去,并且在检测到的斑点之间可能存在很多重叠。在自动行人跟踪和识别领域有很多活跃的研究 - 简而言之,这是一个难以解决的问题,它没有一个简单易用的解决方案。但是,如果您有兴趣阅读一些潜在的方法,您可以从鸟瞰图中解决行人检测中这些更具挑战性的问题,我建议您阅读this question的答案。
我希望这有帮助,祝你好运!