推荐两篇博文,详细介绍了deepsort的流程及代码大致讲解:
https://blog.csdn.net/qq_48764574/article/details/138816891
https://zhuanlan.zhihu.com/p/196622890
DeepSort与Sort区别:
1、Sort 算法利用卡尔曼滤波算法预测检测框在下一帧的状态,将该状态与下一帧的检测结果进行匹配,实现车辆的追踪。
2、DeepSort中采用了一个简单的CNN来提取被检测物体(检测框物体中)的外观特征(低维向量表示),在每帧检测+追踪后,进行一次物体外观特征的提取并保存。
Sort的问题:
匹配的时候用的是匈牙利算法,但是当物体遮挡之后,前后帧的物体失去关联,物体重新出现后,会切换id。
在实时视频流中,不可能保留全局视频帧中的检测框数据,因此想要解决ID频繁切换的问题,需要利用之前保存的外观特征,分配该物体受遮挡前的ID编号,从而解决ID切换的问题。
外观特征的提取器:
这个网络最后输出的是一个128维的向量,值得关注的是,由于DeepSORT主要被用来做行人追踪的,那么输入的大小为128(高)x 64(宽)的矩形框。如果你需要做其他物体追踪,可能要把网络模型的输入进行修改。