目标跟踪之卡尔曼滤波(原理)

本文主要从目标跟踪方面介绍卡尔曼滤波,如果想特别深入了解公式的话,可参考如下链接:
https://www.bilibili.com/video/BV1Rh41117MT/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click
明天更新C++代码解析。
1、前言
由匈牙利匹配算法可知,一种常见的匹配算法是IOU匹配,也就是第一帧和第二针的边界框的IOU值(交并比)越高,则两框的距离离的越近,越容易匹配的到:
在这里插入图片描述
然而在实际问题中,可能会出现如下问题:
1)第二帧检测不到目标,或检测的框和第一帧的框没有重合部分,此时IOU为0;
此时可以保留前一帧的框,但误差较大,而卡尔曼滤波可以给你预测一个比上一帧更好的结果框
2)目标检测器检测能力不行
此时卡尔曼滤波可以根据前一帧k-1和当前帧k的目标检测框预测一个更好地框给当前框。
2、算法流程理解
在这里插入图片描述
从视频抽出两帧来,要跟踪的小车从左到右移动,我们有一个观测器可以观测都当前小车的位置,但这个观测器具有一定的误差。
t - 1时刻假设我们知道小车的具体位置x1,这个时候我们的任务也只有一个:把t 时刻的小车也给出一个具体位置 x2。
卡尔曼滤波大致流程可看做三步:预测、观测、加权。
预测:通过小车之前的速度信息,通过一定的模型预测出来当前帧的位置p1;
观测:通过观测器,我们可以观测到当前帧小车的位置q1;
加权:就是把我们预测的结果和观测的结果通过如下公式加权平均;
x2 = a*p1 + (1 - a)*q1 , 0 =< a <= 1
a权值,也叫卡尔曼系数;
而这三步,体现在目标跟踪上就是:
预测:通过之前边界框移动的信息,预测出当前框的位置;
观测:通过目标检测器(如YOLO)检测处当前框的位置;
加权:两个框的位置加权平均。

3、通过均值和方差跟踪边界框
3.1 输入:均值状态
我们需要把边界框的状态信息输入进去
在这里插入图片描述
学过自控的应该很好理解:
在这里插入图片描述
由于外力向量u可忽略,只看X即可:在需要跟踪的视频中,X可表示为:
X = [ cx cy w h vx vy vw vh ]
cx, cy:边界框的中心点
w , h : 边界框的宽和高
vx, vy, vw, vh: 变化速度
均值的话,即为所有目标框的均值
初始化中,可直接将速度设为零
3.2 方差:误差
在预测和观测中,都存在误差,但它们都服从高斯分布,该方差就是我们在估计中的不确定矩阵,而该矩阵需要我们自己微调,值越大代表误差越大:
在这里插入图片描述
该方差会在卡尔曼滤波的不断迭代过程中逐渐变小,也就是减少不确定性。
4、预测和更新
**4.1 预测:**基于track在t-1时刻的状态来预测其在t时刻的状态
在这里插入图片描述

在公式1中,x为track在t-1时刻的均值,F称为状态转移矩阵,该公式预测t时刻的x’:
在这里插入图片描述
矩阵F中的dt是当前帧和前一帧之间的差,将等号右边的矩阵乘法展开,可以得到cx’=cx+dtvx,cy’=cy+dtvy…,所以这里的卡尔曼滤波是一个匀速模型;
在公式2中,P为track在t-1时刻的协方差,Q为系统的噪声矩阵,代表整个系统的可靠程度,一般初始化为很小的值,该公式预测t时刻的P’;Q在目标跟踪当中就是卡尔曼第一步预测出来的误差,就比如如果你要跟踪的那辆车一直在匀速运动,那么这个Q(误差)就只需要设得很小。
4.2 更新
基于t时刻检测到的detection,校正与其关联的track的状态,得到一个更精确的结果。
更新公式如下图:
在这里插入图片描述
在这里插入图片描述
这个更新其实就是观测+加权;公式中体现出来的就是 x = x’ + Ky , 其中x’是预测值,y是观测值
相关矩阵表示:测量矩阵Z(目标检测器),就是当前目标检测器看到的框,没有速度信息
Z = [ cx cy w h ]
转移矩阵H:
在这里插入图片描述
噪声矩阵R:
在这里插入图片描述
这个就是我们的目标检测器的误差,上面矩阵的值代表,对于cx和cy的误差没有那么大,而长和宽的预测的误差比较大。
得知矩阵的所有定义之后,我们就可以根据公式进行卡尔曼滤波的迭代了。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目标跟踪扩展卡尔曼滤波是一种常用的目标跟踪算法。它借助卡尔曼滤波的基本原理,在机动目标跟踪问题中引入了目标的动态模型和测量模型,以估计目标的状态并进行跟踪。引用提供了一个扩展卡尔曼滤波在机动目标跟踪上的应用实例,可以在该链接中找到相关的代码和资料。 在扩展卡尔曼滤波中,目标的状态包括位置、速度和加速度等信息。而测量模型则是通过传感器获取的目标的观测值。通过不断更新状态估计和协方差矩阵,扩展卡尔曼滤波可以实现对目标的跟踪,并能够在目标运动模型发生变化时及时适应。 扩展卡尔曼滤波目标跟踪领域具有广泛的应用。它可以用于航空航天、机器人导航、自动驾驶等领域中的目标跟踪任务。通过结合动态模型和测量模型,扩展卡尔曼滤波能够克服传统卡尔曼滤波对线性模型的限制,提高目标跟踪的准确性和稳定性。 引用和引用提供了一些相关资料和实现例子。你可以通过这些链接进一步了解扩展卡尔曼滤波目标跟踪中的具体应用和实现方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [扩展卡尔曼滤波EKF在目标跟踪中的应用—仿真部分](https://blog.csdn.net/weixin_44044161/article/details/115329181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ghx3110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值