2015-09-08 88 views
1

从我所了解的情况来看,跟踪算法可以预测给定对象在下一帧中的位置(已经执行了对象检测之后)。然后在下一帧中再次识别该对象。不清楚的是跟踪器如何知道将第二帧中的对象与第一帧中的对象相关联,特别是当帧中存在多个对象时。卡尔曼滤波器用于视频中的多个对象跟踪

我在一些地方看到,使用预测和所有检测之间的欧几里得距离创建成本矩阵,并将问题构造为分配问题(匈牙利算法)。

我的理解跟踪正确吗?还有其他方法可以确定一个框架中的对象与下一个框架中的对象相同吗?

回答

2

你的理解是正确的。您已经描述了一个简单的成本函数,该函数在很多情况下可能运作良好。但是,有时会失败。

假设您拥有计算资源,可以通过使成本函数更复杂来尝试使跟踪器更稳健。

您可以做的最简单的事情就是考虑卡尔曼滤波器的误差协方差,而不仅仅是使用欧几里德距离。请参阅MATLAB中vision.KalmanFilter对象文档中的距离公式。另请参阅Motion-based Multiple Object Tracking示例。

您还可以在成本函数中包含其他信息。您可以说明,帧之间的对象大小不应该变化太大,或者对象的外观应该保持不变。例如,您可以计算检测结果的颜色直方图,并将您的成本函数定义为“卡尔曼滤波器距离”和颜色直方图之间某个距离的加权和。

+0

我以前看过那个页面。这是第一件让我想起它作为一个任务的问题。我没有注意到的是他们实际上提供了一个距离公式。谢谢! –

+0

任何链接,关于更好的成本函数的论文? –

+0

搜索“基于外观的跟踪”。你应该找到很多论文。 – Dima