您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 基于IMM算法的目标跟踪
西安交通大学多源信息融合---IMM算法1基于交互式多模型方法的目标跟踪高海南3110038011一、目标建模我们设定一个目标在二维平面内运动,其状态()Xn由位置、速度和加速度组成,即()[(),(),(),()]TXnxnxnynyn&&。假设采样间隔为T,目标检测概率1DP,无虚警存在,在笛卡尔坐标系下目标的离散运动模型和观测模型(假定在采样时刻k)为:1XkFXkGVkZkHkXkWk目标在二维平面内运动模型如下:1.CV:近似匀速运动模型CV模型将加速度看作是随机扰动(状态噪声),取目标状态()[(),(),(),()]TXnxnxnynyn&&。则状态转移矩阵,干扰转移矩阵和观测矩阵分别为:22100/20010000,0010/200010TTFGTTT,10000010H2.CT:匀速转弯模型只考虑运动角速度已知的CT模型。则状态转移矩阵,干扰转移矩阵和观测矩阵分别为:22()1()()sin()1()()sin()()10000100sinTcosTcosTTcosTsinTTcosFT22/20000/20TGTT10000010H量测噪声协方差矩阵R由传感器决定。二、交互多模算法原理假定有r个模型:西安交通大学多源信息融合---IMM算法21,1,,jjjkFkGVkjrXXK其中,jkW是均值为零、协方差矩阵为jQ的白噪声序列。用一个马尔可夫链来控制这些模型之间的转换,马尔可夫链的转移概率矩阵为:1111rrrrppppPLMOML测量模型为:jjjkHkkWkZXIMM算法步骤可归纳如下:①、输入交互111ˆˆ1/11/11/11/1ˆ1/11/11/1ˆˆˆ1/11/11/11/11/,1/rojiijiojriiijiTojiojkijiiijijkkkkkkkkkkkkkkkkkkkkkkPMkMkpkcXXPPXXXXZ其中1,,jr,ijp是模型i转到模型j的转移概率,jc为规一化常数,11rjijiicpk。②、对应于模型jMk,以ˆ1/1ojkkX,1/1ojkkP及kZ作为输入进行Kalman滤波。1)预测0ˆˆ/1,11/1jjjkkFkkkkXX2)预测误差方差阵0/1,11/1,1111jjTjjXXTjjkkFkkkkFkkGkkGkPPQ%%3)卡尔曼增益1/1/1jTjTjXXkkkHkHkkkHkkKPPR%%4)滤波ˆˆˆ//1/1jjjjkkkkkkHkkkXXKZX5)滤波误差方差阵//1jjjXXkkkHkkkPIKP%%③、模型概率更新西安交通大学多源信息融合---IMM算法3111//,/11/kkkjjjjrjijijjikPMkPkMkPMkkpkkcccZZZZ其中,c为归一化常数,且1rjjjckc,而jk为观测kZ的似然函数,111/2/211/,exp22kTjjjjjnjkPkMkkkZZυSυSˆ/1/1jjTjjXkkHkkkkHkkkHkkυZXSPR,%。④、输出交互1ˆˆ//rjjjkkkkkXX1ˆˆˆˆ//////rTjjjjjkkkkkkkkkkkkkPPXXXX三、仿真实验设定目标运动起始位置坐标(x,y)为(1000,1000),初始速度为(10,10),采样间隔T=1s,CT模型运动的角速度270,即做顺时针匀速转弯运动。x和y独立地进行观测,观测标准差为50米。目标在1~150s运动模型为CV,151~270s运动模型为CT,271~400s运动模型为CV。目标运动真实轨迹和测量轨迹如图1所示。图1目标运动轨迹西安交通大学多源信息融合---IMM算法4在IMM滤波时,使用2个模型集,即CV、CT,假设我们已经知道CT模型的目标运动角速度w,Markov转移矩阵99.001.001.099.01P。进行蒙特卡洛仿真,得到IMM滤波结果。将此滤波结果与单独的CV、CT模型的标准卡尔曼滤波结果对比,如图2所示。由图可知,CT模型滤波结果与真实值有较大偏差,在转弯时CV模型卡尔曼滤波结果偏离偏离真实值,而IMM算法能较好的跟踪目标。图2各种滤波结果图为了定量分析滤波结果,我们将X、Y方向的CV、CT卡尔曼滤波、IMM滤波与真实值分别求位置偏差、均方根误差并进行进行对比,如图3、图4所示。同时作出各个时刻CV、CT的模型概率,如图5所示。可以看到在转弯时刻(151~270s)期间,CT模型概率大于CV模型概率,此时IMM滤波主要取决于CT模型,而在其他时刻,CT模型起主要作用,这与我们的经验知识一致。IMM算法就是通过各模型概率的自动调整来完成对机动目标的跟踪,相对于单一模型滤波具有较理想的跟踪精度。西安交通大学多源信息融合---IMM算法5图3位置滤波偏差图4位置滤波均方根误差西安交通大学多源信息融合---IMM算法6图5各时刻CV、CT模型概率1、下面讨论不同的马尔科夫一步转移矩阵对跟踪结果的影响。(1)5.05.05.05.02P时,模型概率和滤波结果如下图所示,此时CV、CT模型概率变化趋势不变,但相差不大,显然IMM算法优于单模型Kalman滤波算法,但其精度低于当转移矩阵为P1时的结果。图6转移矩阵为P2时概率变化图西安交通大学多源信息融合---IMM算法7图7转移矩阵为P2时滤波结果图(2)更极端地,取1.09.09.01.03P时,模型概率和滤波结果如下图所示,此时CV、CT模型概率变化趋势总体不变,但相差甚微,而IMM算法总体上仍优于单模型Kalman滤波算法,但其精度同样低于当转移矩阵为P1和P2时的结果。图8转移矩阵为P3时概率变化图西安交通大学多源信息融合---IMM算法8图9转移矩阵为P3时滤波结果图综上所述,Markov链状态转移矩阵对角线元素越大,即由k-1时刻模型m1转移到k时刻模型m1概率越大,也就是模型的“惯性”越大,交互式多模型滤波结果精度越高,反之,精度越低。2、CT模型角速度对滤波结果的影响取Markov转移矩阵99.001.001.099.01P,而角速度360,其他参数均不变,仿真得到如下结果,与图2对比可知,当角速度越接近于真实值,跟踪精度越高,反之跟踪精度有所下降。图10角速度=-pi/360时滤波结果图西安交通大学多源信息融合---IMM算法9通过编写程序和仿真实验结果可以体会到,IMM算法核心在于对做复杂机动运动的目标滤波时,IMM能够通过对各个模型滤波器的输入输出通过混合概率和似然函数计算进行加权综合处理,自动切换模型,实现对目标的较好跟踪。IMM算法跟踪性能好坏取决于其使用的模型集,模型越精确,模型集越丰富,跟踪效果就越好,但带来了计算量增加的问题,有时反而降低性能。西安交通大学多源信息融合---IMM算法10附:IMM滤波程序produce_data.mclear;clcN=400;T=1;x0=[1000,10,1000,10]';xA=[];zA=[x0(1),x0(3)];%model-1,匀速运动A1=[1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1];G1=[T^2/2,0;T,0;0,T^2/2;0,T];Q1=[0.1^20;00.1^2];%model-2,匀速转弯模型A2=CreatCTF(-pi/270,T);G2=CreatCTT(T);Q2=[0.0144^20;00.0144^2];%产生真实数据x=x0;fork=1:150%匀速直线x=A1*x+G1*sqrt(Q1)*[randn,randn]';xA=[xAx];endfork=1:120%匀速圆周转弯x=A2*x+G2*sqrt(Q2)*[randn,randn]';xA=[xAx];endfork=1:130%匀速直线x=A1*x+G1*sqrt(Q1)*[randn,randn]';xA=[xAx];endplot(xA(1,:),xA(3,:),'b-')save('data','xA','A1','N','x0','G1','Q1','A2','G2','Q2');title('运动轨迹')xlabel('t(s)'),ylabel('位置(m)');function[P_k,P_k_k_1,X_k]=kalman(F,T,H,Q,R,Z,X0,P0)%%KALMAN滤波函数:[P_k,K_k,X_k]=kalman(F,T,H,Q,R,Z,x0,p0)%%模型为X(K+1)=F(k)X(k)+T(k)W(k)%%输入参数:%%F,T分别为:系统状态转移矩阵、噪声矩阵%%H为转换到笛卡尔坐标系下的观测矩阵%%Q,R分别是W(k)、V(k)的协方差矩阵%%Z为观测数据%%x0,p0为一步滤波的起始条件%%输出参数:%%P_k为k时刻滤波误差协方差阵%%P_k_k_1为对k时刻滤波误差协方差阵的估计%%X_k为滤波更新值%一步提前预测值和预测误差的协方差阵分别是:X_k_k_1=F*X0;%k-1时刻对k时刻x值的预测P_k_k_1=F*P0*F'+T*Q*T';%k-1时刻对k时刻p值的预测K_k=P_k_k_1*H'*inv(H*P_k_k_1*H'+R);%k时刻kalman滤波增益X_k=X_k_k_1+K_k*(Z-H*X_k_k_1);P_k=P_k_k_1-P_k_k_1*H'*inv(H*P_k_k_1*H'+R)*H*P_k_k_1;西安交通大学多源信息融合---IMM算法11functionF=CreatCTF(w,t)%CT模型的状态转移矩阵f1=1;f2=sin(w*t)/w;f3=(1-cos(w*t))/w;f4=cos(w*t);f5=sin(w*t);F=[f1f20-f3;0f40-f5;0f3f1f2;0f50f4;];functionT=CreatCTT(t)%%函数作用:产生匀加速模型的噪声矩阵T%%输入参数:t为时间间隔%%输出参数:噪声矩阵TT=[t^2/20;t0;0t^2/2;0t;];%噪声矩阵IMM_TEST.mclearall;clc;H=[1000;0010];R=[25000;02500];loaddata.matMC=50;ex1=zeros(MC,N);ex2=zeros(MC,N);ey1=zeros(MC,N);ey2=zeros(MC,N);%蒙特卡罗仿真formn=1:MC%模型初始化Pi=[0.99,0.01;0.01,0.99];%转移概率u1=1/2;u2=1/2;%2个模型间概率传播参数U0=[u1,u2];P0=[100000;0100;001000;0001;];%初始协方差X1_k_1=x0;X2_k_1=x0;%1-r(r=2)每个模型的状态传播参数P1=P0;P2=P0;%1-r(r=2)每个模型的状态传播参数%CV模型卡尔曼滤波fori=1:400zA(:
本文标题:基于IMM算法的目标跟踪
链接地址:https://www.777doc.com/doc-2570014 .html