机动目标跟踪——目标模型概述(匀速运动CV模型)
Posted 脑壳二
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机动目标跟踪——目标模型概述(匀速运动CV模型)相关的知识,希望对你有一定的参考价值。
机动目标跟踪——目标模型概述
原创不易,路过的各位大佬请点个赞
WX: ZB823618313
机动目标跟踪——目标模型概述
1. 对机动目标跟踪的理解
机动目标跟踪一直是目标跟踪领域研究的难点和重点问题。建立目标运动模型和滤波算法是目标跟踪的两个重要因素。由于目标的机动具有不可预测性,使得我们很难建立精确的目标运动模型。如何建立一种有效的模型来反映目标真实的运动轨迹是高机动目标跟踪系统急需解决的问题。经过近三十年的研究,该领域取得了许多重要成果。
个人理解:机动目标跟踪拥有三要素:
被跟踪目标建模(也是本博客重点)
传感器测量(另一个博客介绍)
滤波器设计(见目标跟踪专栏)
从算法层面,在目标跟踪系统中,常用的滤波算法是以卡尔曼滤波器为基本框架的估计算法。卡尔曼滤波器是一种线性、无偏、以误差均方差最小为准则的最优估计算法,它有精确的数学形式和优良的使用效能。卡尔曼滤波方法实质上是一种数据处理方法,它采用递推滤波方法,根据获取的量测数据由递推方程递推给出新的状态估计。由于计算量和存储量小,比较容易满足实时计算的要求,在工程实践中得到广泛应用。
除此之外,非线性滤波也广泛应用与机动目标跟踪,比如:
扩展卡尔曼滤波EKF
无迹卡尔曼滤波UKF
容积卡尔曼滤波CKF
求积卡尔曼滤波QKF
中心差分卡尔曼滤波CDKF
Divided difference filter DDF
高斯混合滤波GSF
强跟踪滤波STF
粒子滤波PF
… …
2. 目标模型概述
机动目标模型描述了目标状态随着时间变化的过程。一个好的模型抵得上大量的数据。当前几乎所有的目标跟踪算法都是基于模型进行状态估计的。在卡尔曼滤波器被引入目标跟踪领域后,基于状态空间的机动目标建模成为主要研究对象之一。
目标的空间运动基于不同的运动轨迹和坐标系
一维运动
二维运动
三维运动根据不同方向的运动是否相关
坐标间不耦合模型
坐标间耦合模型
坐标间不耦合模型: 这类模型假设三维空间三个正交方向上的目标机动过程不耦合。目标机动是飞行器受到外力作用而使得加速度变化所致,所以对机动建模的难点在于对目标加速度的描述。对于无机动目标,常速(Constant Velocity,CV〉模型常用于描述这类目标的运动,而常加速度(Constant Acceleration,CA)模型则常用于描述加速度趋近常数的机动目标的运动。
坐标间耦合模型: 坐标间耦合模型绝大多数情况下指的是转弯运动模型。由于此类模型与坐标密切相关,所以可以分为两类:二维转弯模型和三维转弯模型。二维转弯模型又称为平面转弯模型,即CT模型。
下面讲机动目标不同的模型:
3. 机动目标模型
3.1 匀速运动CV模型
匀速运动模型用来匹配目标做匀速直线运动的情况,这也是目标运动最简单的情况.
其中匀速运动模型包括:
一维匀速运动CV 模型
二维匀速运动CV 模型
三维匀速运动CV 模型
3.1.1 一维匀速运动CV 模型
由于目标做匀速直线运动,则目标加速度为0。实际情况中,速度至少要轻微的变化,则加速度常常看做是具有随机特性的扰动输入,可用连续时间的白噪声来建模,并假设其服从均值为零,方差为的高斯分布,即
X
¨
(
t
)
=
W
(
t
)
\\ddotX(t)=W(t)
X¨(t)=W(t)
其中
W
(
t
)
W(t)
W(t)零均值白高斯噪声最为普遍。
一维匀速运动模型(连续):
目标状态为:位置和速度、即
X
=
[
x
,
x
˙
]
T
X=[x, \\dotx]^T
X=[x,x˙]T
CV模型为:
X
˙
(
t
)
=
[
0
1
0
0
]
X
(
t
)
+
[
0
1
]
W
(
t
)
\\dotX(t)=\\beginbmatrix0&1\\\\0&0\\endbmatrixX(t) + \\beginbmatrix0\\\\1\\endbmatrixW(t)
X˙(t)=[0010]X(t)+[01]W(t)
离散化上述模型:
一维匀速运动模型(离散):
X
k
+
1
=
[
1
T
0
1
]
X
k
+
[
T
2
/
2
T
]
W
k
X_k+1=\\beginbmatrix1&T\\\\0&1\\endbmatrixX_k + \\beginbmatrixT^2/2\\\\T\\endbmatrixW_k
Xk+1=[10T1]Xk+[T2/2T]Wk
T
T
T为采样时间。
一维匀速运动CV目标航迹如下:
代码
%% 一维匀速CV运动目标轨迹
clc;
clear all;
close all;
n=2; % state dimension : 6
T=1; % sample time.
N=100; %the runs atime,跟踪总时长
w_mu=[0]';
%% target model
q=3; % 目标运动学标准差,过程噪声
Qk=q^2*eye(1);% cov. of process noise
% state matrix
Fk= [1 T
0 T ]; %
Gk= [ T^2/2
T
]; %
%
%% define parameter
sV=zeros(n,N,1,1); % state
x=[1000,20]';
P_0=diag([1e5,10^2]);
x0=mvnrnd(x,P_0); % 初始状态
%x0=(x+normrnd(0,0.001)')';
x=x0';
for k=1:N
%% %%%%%%% target model %%%%%%%%%%%%%%%%%%%%
%% 目标运动学模型(被跟踪目标建模),匀速运动CV模型
w=mvnrnd(w_mu',Qk)';%过程噪声方差
x=Fk*x+Gk*w;
sV(:,k,1,1)=x;
end
% 一维匀速CV运动目标轨迹
ii=1:N;
figure
plot(ii,sV(1,:,1,1),'-*r','LineWidth',1)
grid on
xlabel('时间(s)');ylabel('m');
legend('真实轨迹')
title('一维维匀速运动目标轨迹')
利用扩展卡尔曼滤波EKF跟踪上面的一维匀速运动目标,跟踪轨迹如下
3.1.2 二维匀速运动CV 模型
二维匀速运动模型(连续):
目标状态为:x维位置和速度、y维位置速度、即
X
=
[
x
,
x
˙
,
y
,
y
˙
]
T
X=[x, \\dotx,y, \\doty]^T
X=[x,x˙,y,y˙]T
CV模型为:
X
˙
(
t
)
=
[
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
]
X
(
t
)
+
[
0
0
1
0
0
0
0
1
]
W
(
t
)
\\dotX(t)=\\beginbmatrix0&1&0&0\\\\0&0&0&0\\\\0&0&0&1\\\\0&0&0&0 \\endbmatrixX(t) + \\beginbmatrix0&0\\\\1&0\\\\0&0\\\\0&1\\endbmatrixW(t)
X˙(t)=⎣⎢⎢⎡0000100000000010⎦⎥⎥⎤X(t)+⎣⎢⎢⎡01000001⎦⎥⎥⎤W(t)
离散化上述模型:
二维匀速运动模型(离散):
X
k
+
1
=
[
1
T
0
0
0
1
0
0
0
0
1
T
0
0
0
1
]
X
k
+
[
T
2
/
2
0
T
0
0
T
2
/
2
0
T
]
W
k
X_k+1=\\beginbmatrix1&T&0&0\\\\0&1&0&0\\\\0&0&1&T\\\\0&0&0&1 \\endbmatrixX_k + \\beginbmatrixT^2/2&0\\\\T&0\\\\0&T^2/2\\\\0&T\\endbmatrixW_k
Xk+1=⎣⎢⎢⎡1000T100001000T1⎦⎥⎥⎤Xk+⎣⎢⎢⎡以上是关于机动目标跟踪——目标模型概述(匀速运动CV模型)的主要内容,如果未能解决你的问题,请参考以下文章