Opencv 如何处理遮挡和碎片

Opencv 如何处理遮挡和碎片,opencv,tracking,feature-detection,occlusion,Opencv,Tracking,Feature Detection,Occlusion,我正在尝试为uni项目实施一个使用计算机视觉的人员计数系统。目前,我的方法是: 使用MOG2的背景减法 去除噪声的形态滤波器 轨迹斑点 计数通过指定区域(一行)的水滴 问题是,如果人们是集体来的,我的方法只计算一个人。从我的阅读资料来看,我相信这就是所谓的闭塞。另一个问题是,当人们看起来与背景相似时(穿深色衣服,穿过黑色的柱子/墙),斑点被分开,而实际上是一个人。 根据我所读的,我应该实现一个检测器+跟踪器(例如,使用HOG检测人类)。但是我的检测结果很差(例如,50%的误报率和50%的命中率

我正在尝试为uni项目实施一个使用计算机视觉的人员计数系统。目前,我的方法是:

  • 使用MOG2的背景减法
  • 去除噪声的形态滤波器
  • 轨迹斑点
  • 计数通过指定区域(一行)的水滴
  • 问题是,如果人们是集体来的,我的方法只计算一个人。从我的阅读资料来看,我相信这就是所谓的闭塞。另一个问题是,当人们看起来与背景相似时(穿深色衣服,穿过黑色的柱子/墙),斑点被分开,而实际上是一个人。

    根据我所读的,我应该实现一个检测器+跟踪器(例如,使用HOG检测人类)。但是我的检测结果很差(例如,50%的误报率和50%的命中率;使用OpenCV人工检测器和我自己训练的检测器),因此我不相信使用检测器作为跟踪的基础。谢谢你的回答和时间阅读这篇文章

    没有单一的“好”答案,因为处理遮挡(和背景减除)仍然是一个有待解决的问题!可以给出几个可能有助于您完成项目的指针

    您希望检测“blob”是一个人还是一群人。你可以做几件事来处理这个问题

    • 使用多个摄像头(不太可能从各个角度将一组人检测为单个斑点)
    • 试着探测人体的某些部位。如果在一个水滴上检测到两个人头,那么就有多个人。3条腿、5个肩膀等也可以这样说

    在跟踪“迷路”的人(一个人走在另一个物体后面)的领域,是推断它的位置。你知道一个人在两帧之间只能移动这么多。通过考虑到这一点,你知道在图像中间检测到用户是不可能的,然后突然消失。在几帧没有看到那个人之后,你可以放弃观察,因为那个人可能有足够的时间离开

    在视频监控序列中跟踪人仍然是研究界的一个悬而未决的问题。然而,
    粒子过滤器(PF)
    (又名顺序蒙特卡罗)对于遮挡和复杂场景提供了良好的效果。你应该读书。在biblio之后还有到示例源代码的额外链接

    使用PF的一个优点是通过检测(仅)跟踪的计算时间增加


    如果你走这条路,请随意要求更好地理解PF背后的数学。

    谢谢你的提醒,@Eric。我发现了几篇有关人员跟踪的相关文章或讨论,其中提到了粒子过滤器。--我一定会更深入地研究这些主题!另外,我猜你指的是粒子过滤器,而不是我看到的特殊过滤器,所以我需要改进和修改我的探测器,从完整的人体探测器到基于部件的人体探测器。我会读更多关于这方面的内容,因为我更熟悉检测,使用HOG、LBP、潜在SVM而不是多摄像机。谢谢Nallath!这有点像所谓的“文字袋”模型。