trackingIMM

用于对象跟踪的交互多模型(IMM)过滤器

描述

trackingIMM对象表示一个交互多模型(IMM)滤波器设计用于跟踪是高度机动的对象。使用过滤器来预测对象的未来位置,在检测到的位置噪声减少,或与他们的踪迹帮助关联多个对象检测。

IMM滤波器处理贝叶斯框架下的多个运动模型。该方法通过对机动目标一次使用多个模型来解决目标运动的不确定性。IMM算法同时处理所有模型,并根据模型的更新权值在模型之间进行切换。

创建

描述

imm= trackingIMM返回与默认跟踪滤波器的IMM滤波器对象{trackingEKF, trackingEKF, trackingEKF}运动模型分别设定为恒速度、恒加速度、恒转向。过滤器使用默认的转换函数,@switchimm

imm= trackingIMM(trackingFilters指定TrackingFilters财产,并将所有其他属性为默认值。

imm= trackingIMM(trackingFiltersmodelConversionFcn还指定ModelConversionFcn属性。

imm= trackingIMM(trackingFiltersmodelConversionFcntransitionProbabilities还指定TransitionProbabilities属性。

imm= trackingIMM(___、名称、值)指定使用一个或多个过滤器的性能名称,值对参数。任何未指定的属性取默认值。首先指定从以前的语法其他任何输入参数。

属性

展开全部

过滤器状态,指定为实值中号- 元素向量。使用名称 - 值对创建对象时指定的初始状态。

数据类型:|

状态误差协方差,指定为中号——- - - - - -中号矩阵,中号是过滤器状态的大小。标量输入延伸到一个中号——- - - - - -中号矩阵。协方差矩阵表示滤波状态下的不确定性。在使用名称-值对创建对象时指定初始状态协方差。

例子:眼(6)

数据类型:|

过滤器列表,指定为跟踪过滤器的单元格数组。默认情况下,过滤器具有相同的概率。指定ModelProbabilities如果过滤器有不同的概率。

数据类型:细胞

功能转换的国家或国家的协方差,指定为函数句柄。该函数的状态或状态协方差将来自一个模型类型到另一个。函数签名是:

函数X2 = modelConversionFcn(modelType1,X1,modelType2)

modelType1modelType2输入是两个模型的名称的名称。X1指定StateCovariance第一个模型。X2输出StateCovariance

数据类型:function_handle

滤波器模型跃迁的概率,指定为正实标量,大号- 元素矢量,或大号——- - - - - -大号矩阵,大号是的过滤器的数量:

  • 当指定为标量时,停留在每个过滤器上的概率是一致的。剩下的概率(1-p)跨其他运动模型均匀分布。

  • 当指定为向量时,每个元素定义停留在每个过滤器上的概率。剩下的概率(1-p)被均匀地分布在其他运动模型均匀分布。

  • 当指定为矩阵时(j, k)元件限定了从过渡的概率Ĵ个过滤器的ķ过滤器。所有元素都必须位于区间[0,1],并且每一行和每一列的和必须为1。

为每个模型定义的转移概率对应于过滤器在一秒内从这个模型切换到另一个模型的概率。

例子:0.75

数据类型:|

测量噪声协方差,指定为正标量或正定实值矩阵。当指定为标量时,矩阵是的倍数ñ——- - - - - -ñ单位矩阵。ñ为测量向量的大小。

指定MeasurementNoise在任何电话之前正确功能。

例子:0.2

每个过滤器的权重,指定为概率从0到1的向量。默认情况下,筛选器的每个组件的权重是相等的。大号是过滤器的数量。IMM过滤器更新预测步骤中每个过滤器的权重。

数据类型:|

对象函数

预测 预测跟踪滤波器的状态和状态估计误差协方差
正确 正确的状态和状态估计误差协方差使用跟踪滤波器
correctjpda 使用跟踪滤波器和JPDA修正状态和状态估计误差协方差
距离 跟踪滤波器的当前和预测的测量之间的距离
可能性 从跟踪滤波器测量的可能性
克隆 创建重复的跟踪过滤器
初始化 初始化状态和跟踪滤波器的协

例子

全部收缩

这个例子展示了如何创建和运行一个交互多模型(IMM)过滤器trackingIMM宾语。调用预测正确功能,以跟踪对象和纠正基于测量的状态估计。

创建过滤器。使用名称 - 值对指定对象的附加属性。

检测=对象检测(0,[1;1;0],“MeasurementNoise”,[1 0。2 0;0.2 - 2 0;0 0 1);过滤器= {initctekf(检测);initcvekf(检测)};modelConv = @switchimm;transProb = [0.9, 0.9];imm = trackingIMM (“状态”[1; 1; 3; 1; 5; 1; 1],'StateCovariance'眼睛(7),...'TransitionProbabilities'transProb,“TrackingFilters”、过滤...'ModelConversionFcn',modelConv);

呼叫预测得到滤波器的预测状态和协方差。使用0.5秒的时间步长。

[xPred,pPred] =预测(IMM,0.5);

呼叫正确与给定的测量值。

MEAS = [1; 1; 0];[xCorr,pCorr] =正确(IMM,MEAS);

继续预测滤波器状态。指定如果必要的话,以秒为期望的时间步长。

[xPred,pPred] =预测(IMM);%预测超过1秒[xPred, ppr] =预测(imm, 2);%预测超过2秒

参考文献

[1]酒吧-沙龙,雅各布,彼得K.威利特,和新添。跟踪和数据融合。斯托尔斯,CT,美国::YBS出版社,2011。

[2] Blackman, Samuel和Robert Popoli。”现代跟踪系统的设计和分析”马萨诸塞州诺伍德:艺达大厦,1999年。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

介绍了在R2018b