一、ID switch是什么?
跟踪问题中最重要的就是数据关联(data association)问题,即关联2帧图像的bbox。
在sort中,存在的最大的问题就是ID switch。用过下面的图就很好理解了,我们目标检测算法、KF、匈牙利算法已经能够对不同运动对象进行ID的指派和跟踪,但是如果出现下边的A对象由左向右运动,B对象由上向下运动,碰巧的是A、B对象同时到达圆形区域内的C点,这时候就可能出现A、B对象的ID互换,这就是ID switch。deepsort的目的就是来降低ID switch的频率。
二、deepsort框架
deepsort的改进就是在原来sort的基础上给检测到的BBo训练了一个可以编码物体的128维的向量的CNN网络,并将这一向量融入损失矩阵的构造
从而使得匈牙利算法的匹配结果更加可靠。
二、deepsort需要的模型
1.目标检测器
目标检测器就是我常用的YOLO、SSD、FasterRcnn等目标检测模型,在针对不同的场景的时候需要我们去自定义模型。
2.目标跟踪器
目标跟踪器需要我们去训练一个ReID模型,ReID重识别算法本质上是一个多分类图像分类模型,输入行人的patch图,并提取特征,输出ID号。REID模型使用了Restnet50。从数据集中把人的图块裁剪出来,用于训练ReID 重识别模型。
下载MOT17多目标跟踪数据集
mot2coco.py 里边有数据集的信息
模型评估的一些参数
deepsort分别训练2个模型 并不是端到端的模型 准确度会有一定的下降,但是相比于sort,Deepsort 将ID switch 降低了45%