3

嗨,我目前正在使用 HOG 和 Haar Cascade 的 OpenCV 实现来执行行人检测并将它们限制在视频源上。

但是,我想为每个进入视频提要的行人分配一个唯一的 ID(编号),并且在行人离开视频提要之前,该 ID 保持不变。由于帧是一个接一个地处理而不考虑前一帧,我不确定如何以最简单但有效的方式实现这一点。

我真的需要使用像 camshift 或 Kalman 这样的跟踪算法吗,我对此一无所知并且真的可以使用一些帮助。或者有没有更简单的方法来实现我想要的?

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

4

2 回答 2

3

一个简单的解决方案:

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

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

于 2013-11-22T12:51:45.400 回答
1

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

高温高压

于 2013-11-22T12:42:10.847 回答