交互式多模型算法IMM——机动目标跟踪中的应用

Posted 脑壳二

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交互式多模型算法IMM——机动目标跟踪中的应用相关的知识,希望对你有一定的参考价值。

机动目标跟踪——交互式多模型算法IMM

原创不易,路过的各位大佬请点个赞

WX: ZB823618313

机动目标跟踪——交互式多模型算法IMM

1. 对机动目标跟踪的理解

  机动目标跟踪一直是目标跟踪领域研究的难点和重点问题。建立目标运动模型和滤波算法是目标跟踪的两个重要因素。由于目标的机动具有不可预测性,使得我们很难建立精确的目标运动模型。如何建立一种有效的模型来反映目标真实的运动轨迹是高机动目标跟踪系统急需解决的问题。经过近三十年的研究,该领域取得了许多重要成果。

个人理解:机动目标跟踪拥有三要素:

1) 机动目标跟踪建模
2) 传感器测量
3) 滤波器设计

1) 机动目标跟踪建模
机动目标模型描述了目标状态随着时间变化的过程。文献[1]指出,一个好的模型抵得上大量的数据。当前几乎所有的目标跟踪算法都是基于模型进行状态估计的。在卡尔曼滤波器被引入目标跟踪领域后,基于状态空间的机动目标建模成为主要研究对象之一。目标的空间运动基于不同的运动轨迹和坐标系,可分为-维、二维和三维运动。而根据不同方向的运动是否相关,目标机动模型可分为坐标间不耦合模型和坐标间耦合模型。

匀速运动模型CV
匀加速运动模型CA
匀速转弯模型CT
当前统计模型CS
Singer模型
Jerk模型

2) 传感器测量
测量一般分为在

笛卡尔坐标系:惯导、激光雷达、ADS-B数据
极坐标/球坐标:雷达、声纳、相控阵雷达
混合坐标系:雷达+INS
大地坐标系:GPS、经纬仪、ADS-B数据

3) 滤波算法

  从算法层面,在目标跟踪系统中,常用的滤波算法是以卡尔曼滤波器为基本框架的估计算法。卡尔曼滤波器是一种线性、无偏、以误差均方差最小为准则的最优估计算法,它有精确的数学形式和优良的使用效能。卡尔曼滤波方法实质上是一种数据处理方法,它采用递推滤波方法,根据获取的量测数据由递推方程递推给出新的状态估计。由于计算量和存储量小,比较容易满足实时计算的要求,在工程实践中得到广泛应用。
  除此之外,非线性滤波也广泛应用与机动目标跟踪,比如:

卡尔曼滤波

非线性滤波+自适应模型
扩展卡尔曼滤波EKF
无迹卡尔曼滤波UKF
容积卡尔曼滤波CKF
求积卡尔曼滤波QKF
中心差分卡尔曼滤波CDKF
Divided difference filter DDF
高斯混合滤波GSF
强跟踪滤波STF
粒子滤波PF
… …

自适应多模型方法
自主式多模型方法
协作式多模型方法:GPB、IMM
变结构多模型方法
… …

2. 机动目标跟踪方法概述

  机动目标跟踪是基于传感器信息对机动对象进行状态估计的过程。相应技术作为信息融合,系统的重要组成部分,在国防科技和国民经济领域有着广泛的应用。机动过程的不确定性是机动目标的主要特点,也是机动目标跟踪技术研究的重点与难点,涉及机动.目标建模、自适应滤波器设计和混杂系统多模型状态估计等理论。机动目标跟踪理论主要针对两个具有挑战性的问题:原始测量数据的不确定性问题和目标机动运动的不确定性问题。原始测量数据的不确定性来自于传感器在获取测量值的过程中,由于受到外界或自身设备本身的影响而导致的测量误差、错误等。关于这类问题的研究主要包括野值点剔除、轨迹融合等。而目标机动运动的不确定性则为机动目标的主要特点。造成目标运动的不确定性问题的原因在于实际的运动目标的机动方式具有随机性和不确定性,而作为跟踪对象的目标与跟踪者之间并无直接的信息交流,使得跟踪者无法对目标当前或即将发生的机动动作进行直接而精确的判断,因而无法直接获取目标的运动状态。

  在机动目标跟踪领域中,状态估计算法一般采用基于状态空间的动态模型。本节将就机动目标跟踪中的单模型状态估计方法进行介绍。此处的单模型方法指的是在同时刻仅采用一个模型(虽然模型可能发生切换)用于最终的状态估计。对于与实际系统匹配的线性高斯状态空间模型(模型线性,过程噪声与量测噪声分别为不相关的高斯白噪声,系统初始状态也为不相关的高斯分布),卡尔曼滤波器是MMSE意义下的最优估计器。当目标模型满足线性高斯条件时,采用卡尔曼滤波器为状态估计通用的做法。

  由于在目标跟踪系统中,各传感器量测向量与目标被估计状态往往处于不同的坐标系中,而坐标系的转换不可避免会导致系统模型具有非线性特性。在这种情况下,需要采用相应的非线性滤波器进行状态估计。扩展卡尔曼滤波器是用得最为广泛的函数逼近类非线性滤波器。直观上说,采用扩展卡尔曼滤波器获取一次状态估计后, 在更新的状态估计值附近对原非线性函数进行重新泰勒展开,再次利用扩展卡尔曼滤波器对重新展开后的线性化函数进行估计可能获得更好的估计值。这个过程可以重复迭代进行,于是导致了迭代扩展卡尔曼滤波器。统计量過近技术中最著名的为UFP、UF具有比一阶扩展卡尔曼滤波器更小的计算量且更好的過近性能。属于随机模型逼近技术的滤波器包括中心差分滤波器、区分差分滤波器。上述滤波器均属于点估计器的范畴。而在目标跟踪中,用得较多的概率密度估计器是著名的粒子滤波器。这类滤波器是-种序贯蒙特卡洛方法,直接对非线性函数对应的概率密度函数进行逼
近。这类方法在图像跟踪领域得到了广泛的应用。

3. 交互式多模型:概述

  在现代目标跟踪系统中,对于运动模型基本不改变的运动目标,即系统的状态转移方程和观察方程都是线性的,那么在线性最小均方误差(LMMSE)的意义下,采用α-β滤波、Kal man滤波等线性滤波算法可以得到良好的滤波效果。但是对于机动目标跟踪,由于其运动状态的不确定性,效果不好。所以提出交互式多模型(IMM)的自适应机动目标跟踪算法:

  在机动目标跟踪方法中,为避免具有机动检测的跟踪算法产生的估计时间延迟和机动检测过程中跟踪性能的降低,采用基于交互式多模型(IMM)的自适应机动目标跟踪算法,通过2个目标模型的交互作用来实现对目标机动状态的自适应估计。在工程上,将基于CV和"当前"统计模型的IMM算法应用在某导航雷达跟踪系统中,经验证IMM算法对匀速直线运动、机动运动目标跟踪均能取得较好的效果。

核心思想: IMM算法的基本思想是用多个不同的运动模型匹配机动目标的不同运动模式,不同模型间的转移概率是–个马尔可夫矩阵,目标的状态估计和模型概率的更新使用卡尔曼滤波。


4. 交互式多模型:具体推导

见另一个博客

5. IMM+KF目标跟踪

WX: ZB823618313


部分代码

clear all;
clc;
echo off;
close all;
%===============================
%建立模型
%===============================
% 仿真参数
simTime=100;      %仿真迭代次数
T=1;                     %采样时间
w2=3*2*pi/360;     %模型2转弯率3度
w3=-3*2*pi/360;    %模型3转弯率-3度
H=[1,0,0,0;0,0,1,0];                      %模型量测矩阵
G=[T^2/2,0;T,0;0,T^2/2;0,T];              %模型过程噪声加权矩阵
r=20000;                                 %20 2000
R=[r,0;0,r];                            %模型量测噪声协方差矩阵
Q=[20,0;0,20];                                  %模型过程噪声协方差矩阵

F1=[1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1];     %模型1状态转移矩阵

F2=[1,sin(w2*T)/w2,0,(cos(w2*T)-1)/w2;
    0,cos(w2*T),0,sin(w2*T);
    0,(1-cos(w2*T))/w2,1,sin(w2*T)/w2;
    0,-sin(w2*T),0,cos(w2*T)];            %模型2状态转移矩阵 左转弯

F3=[1,sin(w3*T)/w3,0,(cos(w3*T)-1)/w3;
    0,cos(w3*T),0,sin(w3*T);
    0,(1-cos(w3*T))/w3,1,sin(w3*T)/w3;
    0,-sin(w3*T),0,cos(w3*T)];            %模型3状态转移矩阵 右转弯

w4=3*2*pi/360;     %模型2转弯率3度
w5=-6*2*pi/360;    %模型3转弯率-3度

F4=[1,sin(w4*T)/w4,0,(cos(w4*T)-1)/w4;
    0,cos(w4*T),0,sin(w4*T);
    0,(1-cos(w4*T))/w4,1,sin(w4*T)/w4;
    0,-sin(w4*T),0,cos(w4*T)];            %模型2状态转移矩阵

F5=[1,sin(w5*T)/w5,0,(cos(w5*T)-1)/w5;
    0,cos(w5*T),0,sin(w5*T);
    0,(1-cos(w5*T))/w5,1,sin(w5*T)/w5;
    0,-sin(w5*T),0,cos(w5*T)];            %模型3状态转移矩阵

x0=[1000,200,1000,200]';  % 初始状态

% 产生量测数据
%[z,z_true]=targets();
randn('state',sum(100*clock)); % Shuffle the pack!
x = zeros(4,simTime);
z = zeros(2,simTime);         %含噪声量测数据
z_true = zeros(2,simTime);    %真值数据
measureNoise = zeros(2,simTime);
measureNoise = sqrt(R)*randn(2,simTime);  %产生量测噪声
x(:,1)=x0;
z(:,1)=H*x(:,1)+measureNoise(:,1);
z_true(:,1)=H*x(:,1);
for a=2:simTime
    if (a>=20)&&(a<=40) 
        x(:,a)=F4*x(:,a-1);      %20--40s左转 
    elseif (a>=60)&&(a<=80) 
       x(:,a)=F5*x(:,a-1);        %60--80s右转 
    else
        x(:,a)=F1*x(:,a-1);      %匀速直线运动
    end; 
z(:,a)=H*x(:,a)+measureNoise(:,a);
z_true(:,a)=H*x(:,a);
end;

6. IMM+EKF目标跟踪

WX: ZB823618313

原创不易,路过的各位大佬请点个赞

以上是关于交互式多模型算法IMM——机动目标跟踪中的应用的主要内容,如果未能解决你的问题,请参考以下文章

交互式多模型-扩展卡尔曼滤波IMM-EKF——机动目标跟踪中的应用

交互式多模型-扩展卡尔曼滤波IMM-EKF——机动目标跟踪中的应用

交互式多模型-无迹卡尔曼滤波IMM-UKF仿真一——机动目标跟踪中的应用

交互式多模型-无迹卡尔曼滤波IMM-UKF仿真一——机动目标跟踪中的应用

交互式多模型-粒子滤波IMM-PF—在机动目标跟踪中的应用/matlab实现

交互式多模型-粒子滤波IMM-PF—在机动目标跟踪中的应用/matlab实现