从上方检测人员

信息处理 图像处理 计算机视觉 opencv
2021-12-27 03:18:14

我正在尝试找到一些方法来仅使用离地面 3 米的一台摄像机来检测人员。这是相机返回的帧:

在此处输入图像描述

更新:视频测试-> http://dl.dropbox.com/u/5576334/top_head_shadow.avi

为了做到这一点,首先我明白我必须执行背景 - 前景分割。那是容易的部分。

使用前景蒙版,我可以进行简单的操作,例如霍夫变换来寻找圆圈,但这种方式只能检测到 60% 的头部,包括许多误报。

我可以使用其他一些简单的技术,例如颜色分割,但我发现从上方看到的人的头部因发型、颜色、头发数量、...

虽然我有其他选择是使用 HOG 描述符或类似 Haar 的功能的可能性,但我需要一个从上面看到的人的广泛数据库来训练模型。我还没有找到类似的东西。

我认为这将是一个非常经常出现的问题,但我在文献或互联网上找不到太多关于它的信息。任何帮助解决此任务将不胜感激:-)

更新:有关更多信息,目标是实现一些通用方法来进行行人流量跟踪。第一个原型将在购物中心进行测试。

4个回答

有没有其他可以在人旁边移动的物体?如果没有,您可以在前景蒙版中找到 blob(连接的组件),这些就是您的人员。

它们还可以彼此“碰撞”,产生一个而不是两个。在这种情况下,您可以使用轨迹和速度平滑的事实进行运动跟踪并解决歧义。

如果还有其他对象(如狗、汽车),您应该创建一个获取 blob 参数的分类器,例如:

  • Blob 统计信息(大小、坚固性等)
  • 颜色
  • 边缘信息
  • 速度(在跟踪的情况下)

并返回正确的类(人类/非人类)。

我一直在一家“负担不起”的非常小的公司担任“为了使用经过良好测试的方法,我需要一个我没有的广泛示例数据库”。我非常遗憾我没有简单地做任何必要的事情来获取尽可能多的此类数据。我认为这最终会给他们带来不同的世界。

任何一种现实世界的视觉检测都有一百万种你没有想到的东西,直到你尝试它并且它失败了。这是一个老问题,比它看起来要困难很多很多倍。我建议坚持牛顿法“站在巨人的肩膀上”(或者,几乎同样好,站在一大堆矮人的肩膀上)。也就是说,使用您已经知道有效且稳健的方法。所有听起来“足够好”的东西都会惨遭失败。

我最后知道的行人检测最先进的是 HOG,它最初是在该设置中进行测试的。你想要跟踪,所以你需要在谷歌学者中玩一下才能找到它。购买我的主要观点是,我一直处于类似的位置,因此我建议您获取数据库,无论您必须做什么,并使用您知道有效的东西,它已经以已知的失败率进行了测试,不是听起来不错。计算机视觉算法的 40 年死亡行军“听起来好像它们会起作用”并不是你想参与的。

PS 不是试图批评计算机视觉。它是我最喜欢的领域之一。但历史表明,有一千个错误的步骤可以采取,而正确的步骤却不多。最好跟随已经找到一些正确步骤的人。

我认为您可以通过结合此处的一些答案来开始

答案中提到了两种不同的方法,主要区别在于您无法进行人脸检测,因为您看不到人脸。但是另一种方法仍然适用:根据某物的动作(运动)来判断某物是行人还是不是行人

正如您所预测的,这将建议使用某种前景-背景分割。一个非常快速的谷歌搜索发现这篇最近的文章看起来很有希望,但由于我从未亲自做过,你或其他人可能会对在此步骤中使用的特定算法有更好的建议。

现在,我链接的第一个答案只是给出了一个非常笼统的方法思路。但是,此答案可以让您了解下一步:跟踪对象,并尝试根据速度移动方向区分它们。

最后,我从来没有解决过你遇到的问题,所以我可能帮不上什么忙,但也许我链接到的答案可以让你大致了解从哪里开始。让我感到惊讶的是,在搜索您的问题的答案时,我找不到任何以前的作品和文章,但是,也许您只需要有人告诉您描述此问题的正确关键字即可

我有一些这里描述的任务,计算人数。但我的要求是相机应该从左/右面向人,而不是头顶。

话虽如此,在为我的案例探索可能的解决方案时,我偶然发现了一种适用于您的案例的有趣方法(开销检测)。这些解决方案使用立体摄像头,因此您可以通过查看深度(例如,仅看到平均人头水平的斑点)来处理斑点(人们移动得太近)。

这个产品可能会给你更好的解释: digiop有关更多技术说明,请参阅手册。

PS我不代表公司,只是指出一个有据可查的解决方案