典型的追踪算法介绍
1. Sort和Deep Sort
Sort和Deep Sort[9]是经典的追踪算法之一,算法原理流程图如下:
Detection:常用的检测网络,如Faster Rcnn、Yolov4、SSD等,可根据实际项目对精度或时间的要求挑选。本文复现时,上面的几种网络都有尝试,源代码使用了商汤的mmdetection框架下的cascade-rcnn,但项目考虑时间和精度,最终使用了Yolov4[3]作为检测来源。
ReID model:源代码使用了多重粒度网络(Mutiple Granularity Network),是以Resnet50作为backbone,以Softmax_2048分支作为id特征。考虑到2048维特征过大,数据关联时,时间会比较长,所以一般项目上会采用MobileNetv2[4]作为主干网络,id特征维度可以下降到751,减少运算量。
Kalman Filter:卡尔曼滤波,预测confirmed id在下一帧的中心点位置以及box的size。
iou与余弦距离:用于计算数据匹配的代价矩阵。1-iou的值作为box间的距离值,余弦距离函数值作为id特征值间的距离。
Hungarian Algorithm:匈牙利匹配算法用于目标预测与目标检测的关联匹配,确定目标的轨迹。
相比之下,Sort算法比起Deep sort算法少了ReID model与余弦距离判断,所以ID切换的过于频繁,精度要低很多。速度几乎只取决于Detection模型的预测速度。如果对速度要求很高的,可以考虑用sort算法。
- 点赞
- 收藏
- 关注作者
评论(0)