目标跟踪算法SORT和Deep SORT详解

SORT论文:https://arxiv.org/abs/1602.00763
SORT代码:https://github.com/abewley/sort

Deep SORT论文:https://arxiv.org/abs/1703.07402
Deep SORT代码: https://github.com/nwojke/deep_sort

1 目标跟踪问题描述

现在主流的目标跟踪都是track by detection的,也就是基于目标检测进行跟踪, 检测器通常都是深度学习检测器, 如faster rcnn系列, yolo系列等。

得到目标检测结果后, 目标跟踪问题实际上就转换为一个数据关联的问题。 也就是在t-1帧的目标, 如何在t帧中找到它的对应。 把所有时刻串联起来, 就是完整的跟踪结果了。

下图形象地说明了目标跟踪的过程。 假设t-1帧我们有2个目标i和j,在t帧我们通过检测得到了检测目标1和检测目标2, 那么目标跟踪要实现的就是把t帧得到的这两个目标关联到t-1帧的2条轨迹上。 在这里插入图片描述

2 SORT

2.1 算法原理

SORT算法的思想可以用下图形象地描述:
在t-1帧我们有目标i和j的位置信息, 那么通过建立运动模型, 预测得到目标在t帧的位置, 如图中的黄色虚线框和紫色虚线框所示, 在t帧中我们通过检测模型得到检测结果,如图中的红色框所示。 直觉上, 我们觉得检测目标1和i, 检测目标2和j更匹配,那么我们就分别把它们关联上。 匹配完了之后我们还可以综合预测结果和检测结果对目标位置做一些修正, 修正后的目标如图中绿色和蓝色框所示。 这就是SORT算法的基本思想。
在这里插入图片描述
具体地:
上述的预测和修正过程, 用到了卡尔曼滤波算法, 预测过程是卡尔曼滤波的predict过程, 修正过程是卡尔曼滤波的update过程。
数据关联用到了匈牙利算法, 用IOU来衡量匹配程度(很符合直觉, 预测框与检测框重合度越高, 自然认为更加匹配)。

具体细节可参考我的另一篇文章介绍: 详解多目标跟踪(MOT)算法中的Kalman滤波

2.2 优缺点

优点:
基于运动信息对目标进行预测,用IOU来衡量目标的匹配程度, 这两者都是非常简单的模型, 因此速度非常快, 实时性很高

缺点:
缺点也很明显, 只有运动信息很不靠谱, 只有在目标运动非常稳定的情况下才有比较好的效果。 一旦目标运动不稳定, 或者出现遮挡的情况, 就无法有效执行卡尔曼滤波过程。 因此SORT 算法有较严重的ID Switch问题。

3 Deep SORT

Deep SORTt算法与SORT算法核心思想一致。 都是基于卡尔曼滤波进行运动预测, 利用匈牙利算法进行目标关联, 并根据关联结果对目标位置进行修正, 然后进入下一次循环过程。

与SORT 的不同点在于目标匹配时的衡量指标变了, SORT用IOU指标进行衡量, 只利用到了运动信息, 不是很靠谱。 Deep SORT用到了深度学习的ReID特征来衡量目标的匹配程度, 由于深度学习的特征更加强大和靠谱, 因此目标匹配效果也更好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值