多目标跟踪算法简介
跟踪算法的重点
SORT
是一种的在线实时多目标跟踪算法。要点为:
-
以 IOU 作为前后图像目标关系度量指标;
-
利用卡尔曼滤波器预测当前位置;
-
通过匈牙利算法关联检测目标;
-
使用 YOLO3,证明检测好跟踪可以很简单。
跟踪算法过程
-
将检测目标分配给现有目标时;
-
预测每个目标在当前图像中的新位置,估计其边界框形状;
-
由每个检测与现有目标的所有预测边界框之间的交并比(IoU)计算分配成本矩阵;
-
使用匈牙利算法对分配进行优化求解;
跟踪算法流程图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WqQZo4ez-1588736442528)(media/dee5c95f024741ea9caf8ac927325d39.png)]
匈牙利算法
匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法。
- 步骤1:给定一个图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5kUznRzu-1588736442531)(media/562018b024c49605b185216d135ef606.png)]
我们讨论的基础是二部图,而上图就是一个二部图,我们从上图的左边开始讨论,我们的目标是尽可能给x中最多的点找到配对。
刚开始,一个匹配都没有,我们随意选取一条边,(x1,
y1)这条边,构建最初的匹配出来,结果如下,已经配对的边用粗线标出:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSduoshM-1588736442532)(media/c14c8d1503f942c97f76c5a5b9f4f094.png)]
- 给x2添加一个匹配,如下图的(x2, y2)边。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7TarvUu-1588736442533)(media/31502f1e1ee5a346075317c643c61dd4.png)]
目前,我们形成了匹配M,其有(x1, y1), (x2, y2 ) 两条边。
- 给x3匹配一条边,发现它的另一端y1已经被x1占用了,那x3就不能匹配x1,让y1离开x1。x1匹配y2,x1发现
y2 和x2 匹配,又让 y2离开 x2 (这是个递归的过程)。x2 继续匹配。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t60FFwTA-1588736442534)(media/e2bc3d0143077e6655e56aaeb959346f.png)]
-
总结:
- 匈牙利算法寻找最大匹配,就是通过不断寻找原有匹配M的增广路径,因为找到一条M匹配的增广路径,就意味着一个更大的匹配M’
, 其恰好比M 多一条边。
- 匈牙利算法寻找最大匹配,就是通过不断寻找原有匹配M的增广路径,因为找到一条M匹配的增广路径,就意味着一个更大的匹配M’
条M匹配的增广路径,就意味着一个更大的匹配M’
, 其恰好比M 多一条边。
2. 对于图来说,最大匹配不是唯一的,但是最大匹配的大小是唯一的。