论文:SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC
Github:https://github.com/ZQPei/deep_sort_pytorch
Deepsort在基于Simple Online and Realtime Tracking (SORT)的基础上加入了Deep Appearance Descriptor,也就是加入了一个行人重识别的神经网络模块。有效的改善了遮挡情况下,ID跳变问题,使得ID跳变次数减少45%。
估计处理和状态估计:
八维状态空间:
u,v表示边框的中心坐标,
r表示宽高比
h表示高
最后四个表示前四个变量的速度
匹配问题:
传统的解决检测和跟踪之间匹配问题的方法是使用匈牙利算法。是一种通过增广路径来求二分图最大匹配的一种算法。
运动匹配度
使用detection和track在卡尔曼(kalman)滤波器预测的位置之间的马氏距离刻画运动匹配程度。
dj表示第j个检测框的位置,
yi表示第i个追踪器对目标的预测位置,
Si表示检测位置与平均追踪位置之间的协方差矩阵。
马氏距离通过计算检测位置和平均追踪位置之间的标准差将状态测量的不确定性进行了考虑。
如果某次关联的马氏距离d(1)小于指定的阈值t(1)
则设置运动状态的关联成功。使用的函数为
实验中取t(1) = 9:4877
表观匹配度
使用神经网络提取特征计算detection和track自己的余弦相似性。
计算第i个追踪器的最近100个成功关联的特征集与当前帧第j个检测结果的特征向量间的最小余弦距离。
如果上面的距离小于指定的阈值,那么这个关联就是成功的。阈值是从单独的训练集里得到的。
最终使用运动匹配度和表观匹配度的线性加权作为最终的联合度量,如果在相机剧烈抖动的时候,设置参数λ为0
最终的联合度量需要卡的阈值为
级联匹配:
当一个目标长时间被遮挡之后,kalman滤波预测的不确定性就会大大增加,状态空间内的可观察性就会大大降低。假如此时两个追踪器竞争同一个检测结果的匹配权,往往遮挡时间较长的那条轨迹因为长时间未更新位置信息,追踪预测位置的不确定性更大,即协方差会更大,马氏距离计算时使用了协方差的倒数,因此马氏距离会更小,因此使得检测结果更可能和遮挡时间较长的那条轨迹相关联,这种不理想的效果往往会破坏追踪的持续性。
假设本来协方差矩阵是一个正态分布,那么连续的预测不更新就会导致这个正态分布的方差越来越大,那么离均值欧氏距离远的点可能和之前分布中离得较近的点获得同样的马氏距离值。
所以,作者使用了级联匹配来对越近出现的目标赋予越大优先权,
T表示当前的跟踪状态,D表示当前的检测状态,
第1行根据公式5计算联合概率
第2行根据公式6计算联合阈值
第3行初始化已经匹配的集合M为空集
第4行初始化未匹配的集合U为检测集合D
第5行表示对跟踪状态从1到最大的跟踪时间Amax,实验中Amax=30,由近到远循环
第6行表示根据时间来选择跟踪的轨迹
第7行表示计算出最小的匹配的轨迹的ID,即Xij
第8行表示将第7步匹配的ID合并到已经匹配的集合M中
第9行表示将第7步中匹配的ID从U集合中去除
第10行表示结束循环
第11行表示返回最终匹配的集合M和未匹配的集合U
在匹配的最后阶段还对unconfirmed和age=1的未匹配轨迹和检测目标进行基于IoU的匹配。这可以缓解因为表观突变或者部分遮挡导致的较大变化。当然有好处就有坏处,这样做也有可能导致一些新产生的轨迹被连接到了一些旧的轨迹上。但这种情况较少。
深度表观描述子:
该模型输入图像为128*64,输出维度为128维。
模型使用1,100,000个图片共1261个人进行训练得到。
实验结果:
Multi-object tracking accuracy (MOTA)
Multi-object tracking precision (MOTP)
Mostly tracked (MT)
Mostly lost(ML)
Identity switches (ID)
Fragmentation (FM)
总结: