多目标跟踪Sort算法及绘制多目标跟踪的运动轨迹

本文深入解析Sort(Simple Online and Realtime Tracking)多目标跟踪算法,阐述其在目标检测后的连续帧中预测并跟踪目标位置的原理。Sort算法结合卡尔曼滤波和匈牙利算法,通过计算BBox之间的IOU实现数据关联,适用于实时视频序列的目标跟踪。

参考博文:

https://www.freesion.com/article/9284823172/

https://blog.csdn.net/App_12062011/article/details/51758989

目标跟踪就是在检测出某视频序列初始帧的目标位置后,预测后续帧中该目标的大小与位置。

背景:

       可能有的人会问为什么不每帧检测,但前提是检测算法得足够鲁棒,对每一帧图像中的目标都能检测出来,否则就会出现不连续的情况,即明明存在目标,却没有检测出来,这时候就需要用到跟踪算法了。这里用Sort(SIMPLE ONLINE AND REALTIME TRACKING)多目标跟踪算法。

原始论文:http://arxiv.org/pdf/1602.00763.pdf

原始论文中的开源代码:https://github.com/abewley/sort

Sort算法原理:

       Sort多目标跟踪算法是一种解决跟踪的BBox与检测的BBox相关联的算法,关联两个BBox主要的思想是:通过计算两个BBox之间的IOU + 匈牙利算法选择最优关联结果。Sort算法是在卡尔曼滤波和匈牙利算法的基础上将卡尔曼滤波预测的BBox与目标检测的BBox进行匹配,对于匹配上的,选择目标检测的BBox更新下一帧的目标预测BBox而已。所以理解卡尔曼滤波预测和匈牙利关联这两个算法也就理解Sort算法了。

       卡尔曼滤波:可以在任何含有不确定信息的动态系统中使用卡尔曼滤波,对系统的下一步走向做出有根据的预测,即使伴随着各种干扰,卡尔曼滤波总是能指出真实发生的情况。比如:假设物体当前时刻在BBox1的位置,卡尔曼滤波可以预测出物体下一时刻在BBox2的位置(但其实是个很粗糙的预测)。一般包括三个过程:(1)初始化:卡尔曼滤波器的状态变量和观测输入;(2)跟踪器列表中目标框的预测;(3)对于匹配上的目标框用检测框更新(并非直接替换)。

(1)初始化卡尔曼滤波器的状态变量(7维)和观测输入(4维):

首先状态变量x(self.kf.x)是一个七维向量:

x=[u,v,s,r,\dot{u},\dot{v},\dot{s}]

前四维分别表示目标框中心位置的x,y坐标,面积s和当前目标框的长宽比(即为观测输入,通过实参传入),最后三维则是横向,纵向,面积的变化速率,其中变化速率初始化为0。

(2)跟踪器列表中目标框的预测

首先插入一个形象的例子,这样后面理解起来会容易点:

       假如现在有一辆在路上做直线运动的小车,该小车在 t 时刻的状态可以用一个向量来表示\binom{p_{t}}{v^{_{t}}},其中pt 表示当前的位置,vt表示该车当前的速度。当然,司机还可以踩油门或者刹车来给车一个加速度ut,ut相当于是一个对车的控制量。显然,如果司机既没有踩油门也没有踩刹车,那么ut就等于0,此时车就会做匀速直线运动。

       如果已知上一时刻 t-1时小车的状态,现在来考虑当前时刻t 小车的状态,显然有:

v_{t} =v_{t-1}+u_{t}*\Delta t

p_{t}=p_{t-1}+v_{t-1}*\Delta t+1/2*u_{t}*\Delta t^{2}

从以上公式可以看出:输出变量pt和vt都是输入变量的线性组合,这也就是卡尔曼滤波器被称为线性滤波器的原因。既然上述公式表征了一种线性关系,那么就可以用一个矩阵来表示:

其中的分别就是状态转移矩阵F(表示如何从上一状态来推测当前状态)和控制矩阵B(表示控制量ut(加速度)如何作用于当前状态),至此就是卡尔曼滤波器的状态预测公式。

在卡尔曼滤波器中状态转移矩阵F根据运动学公式可以确定为:

F=(1000100

        0100010

        0010001

        0001000

        0000100

        0000010

        0000001)

在卡尔曼滤波器中运动形式(加速度)和状态转移矩阵的确定都是基于匀速运动模型,所以当前帧的状态可以如下表示:

当前帧的状态变量 = F*上一帧的状态变量

这时的状态是根据上一状态推测而来的,是一个估计值,应该对其进行修正以得到最优估计,那么就理应考虑到噪声的影响,若要引入噪声的影响,只要考虑噪声的方差σ即可,维度提高后,为了综合考虑各个维度偏离其均值的程度,需要引入协方差矩阵P。噪声同目标的状态一样也会进行传递,且预测模型本身并不是绝对准确的,用协方差矩阵 Q 来表示预测模型本身的噪

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值