0. 参考链接

Learn Self-Driving Cars, Computer Vision, and cutting-edge Artificial Intelligence

目标跟踪初探(DeepSORT)

1. 为什么需要匈牙利算法

因为在目标跟踪中,不同时刻,物体的位置等信息会发生变化,但我们需要让它保持同一个ID

eg:

假设本来视频帧只出现一辆车,那么我们一直采用目标检测的方法也没有问题,可以一直把该黄车标成ID = 1

Untitled

但如果出现了另外一台车,而且我们的目标检测器只有分类出“车”这个能力的话,我们便无法知道这个黄车的ID是否等于1了

Untitled

所以,我们需要一个匹配算法,告诉我们,这一帧的图片的黄车是否跟上一帧的黄车是一个黄车

2. 算法简易图解

我们先来一个定性的理解

匈牙利算法会建立一个图,其中有当前帧t=1 和前一帧t=0 的节点。然后会计算两帧节点互相的距离,易得,这个距离越小,那么当前帧的物体与前一帧相同的概率越大

如下图,(虽然不理解这个人怎么走的比车还快:)

Untitled

至此,我们得到了一个这个算法的关键:得到了距离的话我们怎么选出来呢

3. 解决优化任务问题(抽象例子)

我们来举一个具体的例子:

Untitled