【目标跟踪】DeepSORT

DeepSort(Deep Simple Online and Realtime Tracking)是一种基于深度学习的多目标追踪(Multi-Object Tracking, MOT)算法,在准确性和实时性之间取得了良好的平衡,适用于各种场景下的多目标跟踪任务。

论文链接:https://arxiv.org/pdf/1703.07402

代码链接:https://github.com/MuhammadMoinFaisal/YOLOv7-DeepSORT-Object-Tracking

之前的SORT算法使用简单的kalman滤波处理逐帧数据的关联性,使用匈牙利算法进行关联度量。但由于SORT忽略了被检物体的表面特征,因此SORT算法只适用于遮挡情况少的、运动比较稳定的对象。

在DeepSORT中,使用更加可靠的度量代替关联度量,并使用CNN网络在大规模行人数据集上训练,提取外观特征,增加网络对目标遗失和遮挡的鲁棒性。

一. 具体实现

流程如下图所示。

其中

max_dist :余弦距离的最大阈值(越相似,值越小);

min_confidence: 置信度的最小阈值;

nms_max_overlap: 非极大值抑制;

max_iou_distance: iou的最大阈值;

max_age: 允许连续丢失的帧数;

n_init: unconfirmed track转为confirmed track需要连续iou匹配成功的次数;

nn_budget: 每一个track允许保留的最多feature向量数目。

1.1 轨迹处理和状态估计

用1个8维空间去刻画轨迹在某时刻的状态(𝑢,𝑣,𝛾,h,𝑥, 𝑦,𝛾,h,),分别表示bounding box中心的位置(𝑢,𝑣 )、宽高比 𝛾、高度 h 以及在图像坐标中对应的速度信息(𝑥, 𝑦,𝛾,h )。然后用kalman滤波器预测更新轨迹,该滤波器采用匀速模型和线性观测模型,其观测变量为( 𝑢,𝑣,𝛾,h)。

(1)卡尔曼滤波

kalman filter 分为预测、更新2个过程。

如上图所示,假设要跟踪小车的位置变化,蓝色的分布是kalman filter的预测值,棕色的分布是测量值,灰色的部分就是预测值基于测量值更新后的最优估计值。

在目标跟踪中,主要track 2个重要的状态:均值、方差。

均值

表示目标的位置信息,bounding box中心的位置(𝑢,𝑣 )、宽高比 𝛾、高度 h 以及各自的速度变化值(𝑥, 𝑦,𝛾,h )组成,各个速度初始化为0。

协方差

表示目标位置信息的不确定性,由上述8个因素对应组成8*8的对角矩阵,矩阵中数字越大表明不确定性越大,可任意初始化。

(2) 轨迹处理

主要是轨迹什么时候中止、什么时候产生新的轨迹。

首先,对于每条track都有1个值 a 用于记录轨迹从上一次成功匹配到当前时刻的时间。当该值大于提前设定的阈值𝐴𝑚𝑎𝑥,则认为该轨迹中止(直观上来说就是长时间匹配不上的轨迹认为已经结束)。

在匹配时,对于没有匹配成功的检测都认为可能产生新的轨迹。但由于检测结果可能是一些错误警告,所以对这种情况新生成的轨迹标注状态'tentative',然后观察在接下来的连续若干帧(论文中是3帧)中是否连续匹配成功,是的话则认为是新轨迹产生,标注为'confirmed',否则认为是假性轨迹,状态标注为'deleted'。

1.2 关联问题

在SORT中,直接使用匈牙利算法去解决预测的kalman状态与新来的状态之间的关联度,现在需要通过融合2个测量指标将目标运动与表面特征相结合。

(1) Motion metric

使用马氏距离来评测预测的kalman状态和新来的状态;

标题

表示第 𝑗 个检测和第 𝑖 条轨迹之间的运动匹配度。其中, s_{_{i}}是轨迹由kalman滤波器预测得到的在当前时刻观测空间的协方差矩阵,y_{_{i}}是轨迹在当前时刻的观测量,d_{j}是第 𝑗 个detection的状态(𝑢,𝑣,𝛾,h)。

考虑到运动的连续性,可以通过该马氏距离对detections进行筛选,论文里使用卡方分布的0.95分位点作为阈值t^{(1)}=9.4877,定义门限函数

(2) Appearance metric

当目标运动不确定性较低时,马氏距离是1个很好的关联度量。但在实际中,如相机运动会造成马氏距离大量不能匹配,也就会使这个度量失效,因此,整合第2个度量标准。

对每一个检测框 d_{j},计算1个表面特征描述子r_{j} , \left \| r_{j}\right \|=1,会创建1个gallery R_{k}=\left \{ r_{k}^{(i)} \right \}_{k=1}^{^{_{L_{k}}}} ,L_{k}=100,然后使用第 𝑖 个轨迹和第 𝑗 个轨迹的最小余弦距离作为第2个度量标准。

门限函数

 最后,将2个度量标准融合为:

距离度量对于短期的预测和匹配效果很好,而外观信息对于长时间丢失的轨迹而言,比较有效。

1.3 匹配级联

提出一种级联匹配的策略来提高匹配精度。主要由于当1个目标被遮挡很长时间,kalman滤波的不确定性就会大大增加,并且会导致连续预测的概率弥散。假设本来协方差矩阵是1个正态分布,那么连续的预测不更新会导致这个正态分布的方差越来越大,离均值欧式距离远的点可能和之前分布中离得较近的点获得同样的马氏距离。

输入轨迹T,检测指标D,和生命周期Amax。我们计算关联代价矩阵C和其阈值B。然后在生命周期内做n次迭代,解决轨迹的分配问题: 选择了在最近n帧中没有与检测相关的轨迹T_{_{n}},然后求解了T_{_{n}}和未匹配的U轨迹之间的线性分配,然后我们更新匹配和未匹配的集合,循环以上步骤直至结束。需要注意的是,这种策略优先考虑生命周期较小的轨迹,即最近出现的轨迹。在最后阶段,作者使用之前SORT算法中的IOU关联去匹配n=1的unconfirmed和unmatched的轨迹。这可以增加因为外观突变或者部分遮挡情况下的鲁棒性。

1.4 深度外观描述符

建立1个CNN网络提取检测框的表面特征,并使用L2正则化把特征投影到空间中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值