用于视频中多目标跟踪的卡尔曼滤波器
Kalman filters for Multiple Object Tracking in videos
据我了解,跟踪算法预测给定对象在下一帧中的位置(在执行对象检测之后)。然后在下一帧中再次识别该对象。不清楚的是跟踪器如何知道将第二帧中的对象与第一帧中的对象关联起来,尤其是当帧中有多个对象时。
我在一些地方看到,成本矩阵是使用预测和所有检测之间的欧几里德距离创建的,问题被定义为分配问题(匈牙利算法)。
我对跟踪的理解正确吗?是否有其他方法可以确定一帧中的对象与下一帧中的对象相同?
您的理解是正确的。您已经描述了一个简单的成本函数,它可能在许多情况下都能很好地工作。但是,也会有失败的时候。
假设您拥有计算资源,您可以尝试通过使成本函数更复杂来使您的跟踪器更健壮。
您可以做的最简单的事情是考虑卡尔曼滤波器的误差协方差,而不是仅仅使用欧氏距离。请参阅 vision.KalmanFilter object in MATLAB. Also see the Motion-based Multiple Object Tracking 示例文档中的距离方程。
您还可以在成本函数中包含其他信息。您可以考虑以下事实:对象的大小在帧之间不应变化太多,或者对象的外观应保持不变。例如,您可以计算检测的颜色直方图,并将成本函数定义为 "Kalman filter distance" 和颜色直方图之间的某个距离的加权和。
据我了解,跟踪算法预测给定对象在下一帧中的位置(在执行对象检测之后)。然后在下一帧中再次识别该对象。不清楚的是跟踪器如何知道将第二帧中的对象与第一帧中的对象关联起来,尤其是当帧中有多个对象时。
我在一些地方看到,成本矩阵是使用预测和所有检测之间的欧几里德距离创建的,问题被定义为分配问题(匈牙利算法)。
我对跟踪的理解正确吗?是否有其他方法可以确定一帧中的对象与下一帧中的对象相同?
您的理解是正确的。您已经描述了一个简单的成本函数,它可能在许多情况下都能很好地工作。但是,也会有失败的时候。
假设您拥有计算资源,您可以尝试通过使成本函数更复杂来使您的跟踪器更健壮。
您可以做的最简单的事情是考虑卡尔曼滤波器的误差协方差,而不是仅仅使用欧氏距离。请参阅 vision.KalmanFilter object in MATLAB. Also see the Motion-based Multiple Object Tracking 示例文档中的距离方程。
您还可以在成本函数中包含其他信息。您可以考虑以下事实:对象的大小在帧之间不应变化太多,或者对象的外观应保持不变。例如,您可以计算检测的颜色直方图,并将成本函数定义为 "Kalman filter distance" 和颜色直方图之间的某个距离的加权和。