具有唯一标识符的行人检测

时间:2013-11-22 12:35:48

标签: opencv detection video-tracking

您好我正在使用HOG和Haar Cascade的OpenCV实施来执行行人检测并将其限制在视频输入上。

但是,我想为每个进入视频供稿的行人分配一个唯一ID(数字),其ID保持不变,直到行人离开视频供稿。由于帧是一个接一个地处理而不考虑前一帧,我不确定如何以最简单但有效的方式实现它。

我是否真的需要使用像camshift或Kalman这样的跟踪算法,其中我不知道并且可以真正使用一些帮助。或者有没有更简单的方法来实现我想要的目标?

P / S:这video是我想要实现的目标。事实上,我之前在这里发布了一个类似的问题,但更多的是针对检测技术,这是指向分配唯一标识符的下一步。

2 个答案:

答案 0 :(得分:2)

一个简单的解决方案:

在矢量中跟踪对象。
如果计算新帧,则为每个对象:搜索存储在Vector中的最近对象。如果存储对象与当前对象之间的距离低于某个阈值,则它是相同的对象。

如果未找到匹配,则对象是新的。最后,删除Vector中与当前帧的Object无关的所有对象。

答案 1 :(得分:1)

当您使用detectMultiScale获取匹配项时,您将拥有std:Vector<cv:Rect>结构,该结构将包含所有检测到的行人。在迭代它们进行绘制时,您可以为每个被检测的唯一cv::Rect分配一个数字(您可能需要为此编写一个稍微深一点的测试,以检查重叠的矩形)然后可以绘制(让我们说相应矩形的顶部。

HTH