二分图匹配:匈牙利算法和KM算法

多目标跟踪领域很多模型都是基于tracking-by-detection的,因此在得到检测框以后需要和上一帧进行数据关联,以确定当前帧的检测框和上一帧的哪一个instance匹配。这个关联算法一般使用匈牙利或KM算法。算法的本质是一个二分图匹配问题:给定U,V两个集合,在MOT问题中这两个集合表示上一帧的检测框集合,以及当前帧的检测框集合,其目的是为当前帧的每个目标框和上一帧的框做关联,找到关联程度最高的那个框(当然也可能不存在)。

两种算法在 多目标跟踪之数据关联 有详细的算法介绍,在这里记录一下并简单的提炼一下核心思想。

匈牙利算法是一个递归的过程,他将所有instance之间联系的权重视为一致,通过一个递归搜索的过程,为每个元素尽可能去匹配到另一个集合中与之相连的元素。但是匈牙利算法将所有联系一视同仁显然有悖现实,如果说U集合表示男生,V集合表示女生,某个男生对不同女生的喜欢程度肯定是不一样的,有不同的权重;而在MOT任务中,不同框之间的IOU也不尽相同,我们肯定希望让当前帧的框去匹配上一帧中IOU和他比较大的框。所以KM算法就是在匈牙利算法的基础上,为每一个联系增加了权值这个因素,这样不但可以匹配上,而且尽最大努力往最合适的目标去匹配。

猜你喜欢

转载自blog.csdn.net/jackzhang11/article/details/108338862
今日推荐