【问题标题】:People Counting System人数统计系统
【发布时间】:2011-10-24 01:06:26
【问题描述】:

我想使用 OpenCV(或 Emgu CV)开发一个“人数统计系统”。

请指导我如何实施或引导我了解一些示例或开源项目。

(我做了一些工作:提取差异然后阈值以删除背景,使用运动历史等;仍然没有好的结果。)

编辑 1:我正在计算一个高人流(其中一打可能同时通过)。

编辑 2:必须至少 80% 准确。人们正穿过一扇近 5 米宽的门。问题是我无法控制相机的位置或角度。摄像机在 2.5m 的高度从 10m 的距离喊出这个地方。

谢谢

【问题讨论】:

  • 您可能需要指定一些要点:系统必须有多准确?什么是“高人流”?是10个人宽,还是1m大的拱门,很多人经过?
  • 感谢您的评论。我更新了我的问题。
  • 你还没有描述“人流”的程度。我们在谈论多少人?是否经常多人同时进入?你说你的系统“仍然没有好的结果”,尽管与背景不同。您能描述一下您所看到的结果类型以及它们存在问题的原因吗?

标签: c# opencv video-processing emgucv


【解决方案1】:

如果您将人数统计系统称为计算房间内人数的系统,那么我建议您使用带有 2 个激光(普通激光玩具工作)和 2 个光敏电阻的微控制器来实现硬件。对于微控制器,我建议您使用Arduino。然后创建一个具有 SerialPort 对象并读取 arduino 通过 USB 发送的数据的 C# 应用程序。arduino 将发送 1 表示“有人进入房间”,发送 0 表示“有人离开房间”。然后在 C# 中可以轻松完成日志记录和统计。

Arduiono 网站:here

1 美元的光敏电阻:here

与使用质量相当好的相机相比,此解决方案更便宜且更易于实施。

希望我能帮到你。

【讨论】:

  • 谢谢;但我计算的是高密度的人流。
  • 密度无关紧要,激光始终反应灵敏。更具体地向我描述你的项目。你是在计算从门进出房间的人数还是其他原因?
  • 顺便说一句,我给你的想法是我会做的,因为我也在开发一个人数统计系统。但是对于一个只有一扇门的商店,人们几乎总是一个接一个地去。如果你有任何进展或解决方案请与我分享。 :)
  • 不幸的是,在我的情况下人们没有穿过门,这使得它变得更加复杂:(
  • 那么您将使用摄像头和人员运动识别系统来实现它?
【解决方案2】:

查看最新版本的 OpenCV (>= 2.2) 附带的 HOG 行人检测器。

请参阅 OpenCV 源代码中的 modules/objdetect/src/hog.cppsamples/cpp/peopledetect.cpp。不幸的是,还没有关于它的官方文档。

【讨论】:

  • 谢谢;我已经检查过HOG。它不适合拥挤的人流,而且非常难以预测。
【解决方案3】:

这将帮助您计算包括人在内的移动物体:Motion Detection project on CodeProject

【讨论】:

    【解决方案4】:

    人是场景中唯一的“实体”吗?如果不是这种情况,你是否关心考虑一个人在场景中移动的其他类型的东西?因为如果是这样的话,你可以只计算进出场景的斑点。这听起来可能有点幼稚,但我会拍摄某种运动图像,按距离将运动像素分组。您的距离度量可能会考虑一些限制,例如人们会“经常”站立,因此集群中的像素应该围绕某种回归线分组(如果相机与地板对齐,则为直线)。不必在场景中跟踪他们,只需注意他们何时进入或离开,尽管您会遇到一些问题,例如,人们在场景中自己进入并成对或成组离开。 ..祝你好运:)

    【讨论】:

      【解决方案5】:

      我认为,如果您的人群密集且有很多遮挡,您必须使用一些机器学习算法,例如您可以使用隐式形状模型来获取特征。

      【讨论】:

        【解决方案6】:

        这真的取决于相机的位置。假设您可以获得图像中人物的正面轮廓:

        这个问题基本上是人脸检测和识别。

        有很多方法可以找到面孔,但这是我比较熟悉的方法。

        对于人脸检测,您需要对肤色进行图像分割。这将提取皮肤区域。 [手臂、胸部(对于那些穿着 V 型上衣的人)、脸、腿等] 然后你需要将皮肤区域的轮廓与你训练过的脸的轮廓对齐。

        [您需要使用 Eigenfaces 来创建面部外观的通用配置文件]

        如果皮肤区域排列整齐并且与轮廓的偏离不太远,则将其视为一张脸。确认面部后,将其添加到 eigenfaces 数据存储中 [用于识别]。为了节省处理,如果您正在寻找以前的面孔,您可能需要考虑限制搜索区域。 [给定帧率,以及上次看到此人的时间]

        如果您指的是“人群流动”,我认为您只是指人群中面孔的密度。

        现在您已确认视频中的移动物体是人。现在您只需要注意这一点,然后确保您不再将他们视为新人。

        这种方法:实际上取决于您检测面部区域的能力。如果视频中的人向下看,不符合训练数据的轮廓等,这可能不起作用。如果一个人在视频中戴上太阳镜,也可能会受到影响。 [可能会被视为“新面孔”]

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多