人员检测和跟踪

时间:2013-05-21 15:25:03

标签: opencv image-processing computer-vision object-detection video-tracking

我想做行人检测和跟踪。

输入:来自闭路电视摄像机的视频流。

输出

  1. #(没有)人从左到右
  2. #人从右到左
  3. #中间人数
  4. 到目前为止我做了什么: 对于行人检测,我使用的是HOG和SVM。检测结果合理,误报率高。当我在Android平台上运行时它非常慢。

    问题:  检测完后如何计算上面列出的所需值。 任何人都可以告诉我我必须使用的跟踪算法是什么,以及行人检测的任何优秀算法。

    或者我应该使用跟踪算法?有没有办法没有它?

    对任何代码/博客/技术论文的引用表示赞赏。

    平台:C ++& OpenCV / android。

    - 由于

4 个答案:

答案 0 :(得分:8)

这在一定程度上接近研究问题。

您可能希望查看收集了大量参考资料的this website。 特别是,其中的work done by the group from Oxford非常接近您正在做的事情,因为他们正在使用HOG进行检测。 (这项工作对我来说非常有启发性)。 EPFL和Julich也在该领域完成了工作。

您可能还想看看this review,其中介绍了几种检测/跟踪技术,通常涉及HOG算法的变体。

答案 1 :(得分:4)

除了@Acorbe回复,我建议this website的出版物部分。

去年年底的recent work也在这里发布了一个代码库: https://bitbucket.org/rodrigob/doppia

早期的行人探测器工程也已发布代码: https://sites.google.com/site/wujx2001/home/c4 http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians

答案 2 :(得分:2)

最准确的方法是使用跟踪算法代替传入人员的统计外观计数,并且检测发生在左右中间。 您可以使用扩展统计模型。这会产生多少输入产生一个输出,然后从输出检测输入返回验证。

我的经验是跟踪导致比上述方法更好的结果。但也有点复杂。我们讨论了当关键检测与跟踪模型匹配时的多目标跟踪,应该根据检测进行更新。如果跟踪与错误的模型匹配。那里存在问题。 enter image description here

在youtube上,我通过简单的LBP人检测器开发了一些多目标跟踪器,但是用于跟踪的多模型和卡尔曼滤波器。这两种功能都可以在opencv中找到。您需要在检测到某些内容时为每个对象创建新的kalman过滤器,并在您匹配相同检测时进行更新。预测在案件检测不在框架中并且还移除卡尔曼我没有必要再跟踪。 1检测 2将检测与kalmans,匈牙利算法和l2范数进行匹配。 (例如) 3很多工作。决定是否建立kalman shoudl,删除,更新或未检测到结果,应该预测。这里有很多工作要做。 纯粹的统计方法不太准确,第二种方法是体验人们至少一个编码和3个月的调整。如果你需要更快,你的资源非常有限。您可以通过智能统计通过纯检测更快,更准确地实现您的结果。人们判断图像和视频跟踪甚至多目标跟踪能够击败人类。尝试计算和注册视频中的每个人并计算退出点。你不能在一些人中这样做。它真的是悔改,你想要什么,应用程序,你有客户,以及你向客户展示的结果。如果这是4个数字的收入,左,右,中等,你的错误是20%仍然远远超过一个无聊的小型有偿卫士应该通过一整天的计算实现..

https://www.youtube.com/watch?v=d-RCKfVjFI4

您可以在我的博客上找到我的博客上的人物检测和汽车检测的一些数据集,与学习思想,教程和跟踪示例的脚本相同。 Opencv blog tutorials code and ideas

答案 3 :(得分:1)

您可以为此目的使用Publish Checklist,因为这将告诉您从左向右行驶的人流,然后您可以通过计算线长来进行计算,在给定的示例中使用cv2.line可以使用此函数的输入参数来计算您的情况,几乎不需要数学运算。如果有从左到右的像素流,则是情况1或从右到左,然后是情况3,对于无流情况是2。或者您可以使用此基本教程来跟踪对象的移动。 KLT  LINK