如何处理遮挡和碎片

时间:2013-04-26 08:54:35

标签: opencv tracking feature-detection occlusion

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

  1. 使用MOG2的背景扣除
  2. 去除噪音的形态滤镜
  3. 跟踪blob
  4. 计算通过指定区域(一行)的blob
  5. 问题是,如果人们成为团体,我的方法只算一个人。从我的阅读中,我相信这就是所谓的遮挡。另一个问题是当人们看起来与背景相似(使用深色衣服并穿过黑色柱子/墙壁)时,斑点被分开,而实际上是一个人。 enter image description here

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

2 个答案:

答案 0 :(得分:6)

跟踪视频监控序列中的人员仍然是研究界的一个悬而未决的问题。然而particule filters (PF)(也就是连续的monte-carlo)对于遮挡和复杂场景给出了良好的结果。你应该阅读this。在biblio之后还有一些指向示例源代码的额外链接。

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

如果你这样做,请随时要求更好地理解PF背后的数学。

答案 1 :(得分:4)

由于处理遮挡(和背景减法)仍然存在问题,因此没有单一的“好”答案!有几个指针可以帮助您实现项目。

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

  • 使用多个摄像头(从一切角度来看,一群人不太可能被检测为单个斑点)
  • 尝试检测人体的某些部位。如果您在一个blob上检测到两个头,则会有多个人。对于3条腿,5条肩膀等也可以这样说。

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