C-BIOU tracker多目标跟踪论文笔记
Hard to Track Objects with Irregular Motions and Similar Appearances? Make It Easier by Buffering the Matching Space
论文链接
C-BIou tracker :主要改进点使用原始sort,在匹配阶段使用将iou替换成Biou,设置比例扩展匹配框大小,并使用级联匹配机制,通过参数b(Buffer Scale) 设置small buffer & large buffer 分别第一次匹配激活tracker以及第二次未匹配上的tracker,并在KF预测过程中,若此时tracker为未更新状态,则直接使用前面匹配上的运动轨迹状态做平均预估下一帧轨迹状态,不使用KF预测,因为作者认为此时KF已经不准确了,并且使用KF预测增加耗时!
1、作者猜想跟踪失败的原因出于两方面:
(一)、同一物体的检测和跟踪框没有重叠导致匹配失败,可能是由于快速运动之类;
(二)、运动估计不准确或者一些非线性不规则的运动导致检测与预测框未匹配上。
2、改进方法:
(一)、使用Biou替换iou,通过增大匹配空间缓解不重叠问题,作者提出使用BIou在两方面减轻了不规则运动带来的影响:一是直接匹配相邻帧中相同但不重叠的检测和轨迹,二是补偿匹配空间中的运动估计偏差。
(二)、使用级联匹配,在匹配阶段使用小buffer来匹配预测轨迹和检测,在未匹配上轨迹阶段使用大buffer来进一步提升匹配度,
ii1:运动预测
在未更新轨迹的状态下,不使用KF进行预测,使用前n帧作为辅助线性平均运动(方法更简单,有点类似滑动平均的意思)
其中o=(x,y,w,h)表示检测结果,s表示估计的状态,△表示失配的帧数,n是超参数(用来计算某个周期内的平均速度)。某目标在第t帧获得更新,之后连续△帧失配,则第t+△帧后的状态s为第t帧检测结果加上失配帧数△*前n帧的平均速度。
注:在未更新状态,只有mean才生效,而基础sort中的预测也是根据1x8的矩阵进行更新,上述公式仅仅是将前几帧记录的预测趋势做个平均来做线性预测时的速度加权,o其实可作为c_x,c_y,ratio,h 即sort中的前四维,后四维为更新的平均速度。
ii2:BIou计算方法
跟踪框架流程图(大致跟sort一样)
其中参数b:small buffer设为 0.3 , large buffer 设为 0.5 .
最后看作者实验:对于多目标以及不规则运动目标,跟踪ID-switch 次数明显减少,有机会改动下源码尝试下!