1回顾协方差的定义2.卡尔曼滤波中给出协方差的方法3对应代码首先,回顾一下统计的定义:当随机变量x是一维时:当随机变量是多维时,设[X,Y]构成一个二维随机变量
1回顾协方差的定义
2.卡尔曼滤波中给出协方差的方法
3对应代码
首先,回顾一下统计的定义:
当随机变量x是一维时:
当随机变量是多维时,设[X,Y]构成一个二维随机变量,不计算方差,而是计算协方差:
那么此时的写方差矩阵为:
设[X,Y,Z]构成一个三维随机变量,那么这个三维随机变量的协方差矩阵为:
读者可以把8维随机变量[X,Y,A,H,VX,VY,VA,VH]的一些协方差矩阵写成如下:
【请读者朋友填写空】
一般来说,conv(x,y)=conv(y,x),如果随机变量x与随机变量y无关,那么con(x,y)=0。
那么我们假设[X,Y,Z]构成了一个三维随机变量,它们彼此无关,那么协方差矩阵就是:
第二,卡尔曼滤波中协方差的给出方法。
假设在卡尔曼滤波中,我们的随机变量是8维的:[X,Y,A,H,Vx,Vy,Va,Vh]
每个维度的随机变量是独立的,所以这个8维的协方差是:
那么这个协方差中的这些非零值应该如何赋值呢?
这些非零值实际上只是随机变量在各个维度上的方差。
所以,其实我们可以根据经验随机给出数值。
现有的经验是:
x,Y,H是位置维度,它们的方差应该是同一个数量级,都与x或Y或H的均值有关..Vx、Vy、Vh都是速度维度,它们的方差应该是同一个数量级,都与X或Y或h的平均值有关
a是比值,另外随机给一个方差值。Va是A的变化率,A值也单独给出。
基于上述经验,我们订购:
这里,可以通过当前帧的中心点坐标和帧的高度来估计x、y和h的平均值。
看看代码:
代码位置:
https://gitee . com/anjiang 2020 _ admin/deep _ sort _ py torch/blob/master/deep _ sort/sort/Kalman _ filter . pygitee . com/anjiang 2020 _ admin/deep _ sort _ py torch/blob/master/deep _ sort/sort/Kalman _ filter . py
直接看代码中的第85行:
covariance = np.diag(np.square(std))
Std是每个维度上随机变量的标准差,一个1x8的向量。
Np.square(std):分别对std中的八个元素进行平方:
使用np.square的例子
Np.diag:将一个1x8的向量展开成一个8x8的矩阵,矩阵的对角线是std的8个值。
np.diag的功能
这就是协方差值的方法。
还要注意。
这三条线73、74是卡尔曼速率波的初始平均值。
如果是第一帧,则mean_pos是目标检测模型的已知位置或检测结果。
如果是在第一帧之后,那么mean_pos就是前一帧的跟踪器和目标检测模型融合的结果。
Mean_vel初始化为0。
如果需要了解卡尔曼滤波的理论基础,为什么叫滤波?关于卡尔曼滤波器的推导过程,请访问:
https://www.toutiao.com/a7002875285347648007/? log _ from = 56463 AE 17 b 7 EC _ 1631097246618
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/53989.html