机动目标跟踪——Jerk模型
原创不易,路过的各位大佬请点个赞
针对机动目标跟踪的探讨、技术支持欢迎联系,也可以站内私信
WX: ZB823618313
机动目标跟踪——Jerk模型
1. 对机动目标跟踪的理解
1.1. 对机动目标跟踪的理解
机动目标跟踪一直是目标跟踪领域研究的难点和重点问题。建立目标运动模型和滤波算法是目标跟踪的两个重要因素。由于目标的机动具有不可预测性,使得我们很难建立精确的目标运动模型。如何建立一种有效的模型来反映目标真实的运动轨迹是高机动目标跟踪系统急需解决的问题。经过近三十年的研究,该领域取得了许多重要成果。
个人理解:机动目标跟踪拥有三要素:
被跟踪目标建模(本博客重点讲:Jerk模型)
传感器测量(另一个博客介绍)
滤波器设计(见目标跟踪专栏)
从算法层面,在目标跟踪系统中,常用的滤波算法是以卡尔曼滤波器为基本框架的估计算法。卡尔曼滤波器是一种线性、无偏、以误差均方差最小为准则的最优估计算法,它有精确的数学形式和优良的使用效能。卡尔曼滤波方法实质上是一种数据处理方法,它采用递推滤波方法,根据获取的量测数据由递推方程递推给出新的状态估计。由于计算量和存储量小,比较容易满足实时计算的要求,在工程实践中得到广泛应用。
除此之外,非线性滤波也广泛应用与机动目标跟踪,比如:
扩展卡尔曼滤波EKF
无迹卡尔曼滤波UKF
容积卡尔曼滤波CKF
求积卡尔曼滤波QKF
中心差分卡尔曼滤波CDKF
Divided difference filter DDF
高斯混合滤波GSF
强跟踪滤波STF
粒子滤波PF
… …
1.2. 目标模型概述
机动目标模型描述了目标状态随着时间变化的过程。一个好的模型抵得上大量的数据。当前几乎所有的目标跟踪算法都是基于模型进行状态估计的。在卡尔曼滤波器被引入目标跟踪领域后,基于状态空间的机动目标建模成为主要研究对象之一。
常用的目标运动模型包括:
匀速运动模型,CV
匀加速运动模型,CA
匀速转弯模型,CT
Singer 模型
“当前”统计模型
Jerk 模型
目标的空间运动基于不同的运动轨迹和坐标系
一维运动
二维运动
三维运动根据不同方向的运动是否相关
坐标间不耦合模型
坐标间耦合模型
2. 一维Jerk模型
Jerk模型假设目标加速度变化率服从零均值、平稳一阶时间相关过程,其时间相关函数为指数衰减形式,即加速度变化率
j
(
t
)
j(t)
j(t)满足:
R
j
(
τ
)
=
E
[
j
(
t
)
j
(
t
+
τ
)
]
=
σ
2
e
−
α
∣
τ
∣
,
α
≥
0
R_j(\tau)=E[j(t)j(t+\tau)]=\sigma^2e^{-\alpha|\tau|}, \alpha\geq0
Rj(τ)=E[j(t)j(t+τ)]=σ2e−α∣τ∣,α≥0
其中:
σ
\sigma
σ为加加速度的方差;
α
\alpha
α为自相关时间常数,也称之为机动频率。
通过Wiener-Kolmogorov白化过程进行处理可得关于加速度在状态空间的描述方式为
j
˙
(
t
)
=
−
α
j
(
t
)
+
w
(
t
)
\dot{j}(t)=-\alpha j(t) +w(t)
j˙(t)=−αj(t)+w(t)
其中:
w
(
t
)
w(t)
w(t)是均值为0,方差为
σ
2
\sigma^2
σ2的高斯白噪声。
2.1. Jerk模型(连续)
令状态向量为
X
=
[
x
,
x
˙
,
x
¨
,
d
x
¨
/
d
t
]
T
{X}=[x, \dot{x},\ddot{x}, d\ddot{x}/dt]^T
X=[x,x˙,x¨,dx¨/dt]T
则加速度为
j
(
t
)
=
d
x
¨
(
t
)
/
d
t
j(t)=d\ddot{x}(t)/dt
j(t)=dx¨(t)/dt
连续时间Jerk模型为
X
˙
(
t
)
=
[
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
−
α
]
X
(
t
)
+
[
0
0
0
1
]
w
(
t
)
\dot{X}(t)=\begin{bmatrix}0&1&0&0\\0&0&1&0\\0&0&0&1\\0&0&0&-\alpha\end{bmatrix}X(t) + \begin{bmatrix}0\\0\\0\\1\end{bmatrix}w(t)
X˙(t)=⎣⎢⎢⎡000010000100001−α⎦⎥⎥⎤X(t)+⎣⎢⎢⎡0001⎦⎥⎥⎤w(t)
Jerk模型也可以表述为
X
˙
(
t
)
=
A
X
(
t
)
+
B
w
(
t
)
\dot{X}(t)=AX(t) + Bw(t)
X˙(t)=AX(t)+Bw(t)
其中
A
=
[
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
−
α
]
,
B
=
[
0
0
0
1
]
A=\begin{bmatrix}0&1&0&0\\0&0&1&0\\0&0&0&1\\0&0&0&-\alpha\end{bmatrix}, B= \begin{bmatrix}0\\0\\0\\1\end{bmatrix}
A=⎣⎢⎢⎡000010000100001−α⎦⎥⎥⎤,B=⎣⎢⎢⎡0001⎦⎥⎥⎤
2.2. Jerk模型(离散)
周期T采样离散化后,转化为离散时间状态方程为:
X
k
+
1
=
F
k
X
k
+
W
k
X_{k+1}=F_kX_{k} + W_k
Xk+1=FkXk+Wk
其中
F
k
=
[
1
T
T
2
/
2
p
1
0
1
T
q
1
0
0
1
r
1
0
0
0
s
1
]
F_k=\begin{bmatrix}1&T&T^2/2&p1\\0&1&T &q1 \\0&0&1 &r1\\ 0&0&0&s1\end{bmatrix}
Fk=⎣⎢⎢⎡1000T100T2/2T10p1q1r1s1⎦⎥⎥⎤
其中:
p 1 = ( 2 − 2 α T + α 2 T 2 − 2 e − α T ) / ( 2 α 3 ) p1=(2-2\alpha T+\alpha^2T^2-2e^{-\alpha T})/(2\alpha^3) p1=(2−2αT+α2T2−2e−αT)/(2α3)
q 1 = ( α T − 1 + e − α T ) / α 2 q1=(\alpha T-1 + e^{-\alpha T})/\alpha^2 q1=(αT−1+e−αT)/α2
r 1 = ( 1 − e − α T ) / α r1=(1 - e^{-\alpha T})/\alpha r1=(1−e−αT)/α
s 1 = e − α T s1= e^{-\alpha T} s1=e−αT
噪声
W
k
W_k
Wk的方差为
Q
=
2
α
σ
2
[
q
11
q
12
q
13
q
14
q
21
q
22
q
23
q
24
q
31
q
32
q
33
q
34
q
41
q
42
q
43
q
44
]
Q=2\alpha \sigma^2 \begin{bmatrix}q_{11}&q_{12}&q_{13}&q_{14}\\q_{21}&q_{22}&q_{23}&q_{24}\\q_{31}&q_{32}&q_{33}&q_{34}\\q_{41}&q_{42}&q_{43}&q_{44}\end{bmatrix}
Q=2ασ2⎣⎢⎢⎡q11q21q31q41q12q22q32q42q13q23q33q43q14q24q34q44⎦⎥⎥⎤
Q
Q
Q为对称矩阵,且
上图中有些公式存在出入,请参见原文:
Mehrotra, Kishore, and Pravas R. Mahapatra. “A jerk model for tracking highly maneuvering targets.” IEEE Transactions on Aerospace and Electronic Systems 33.4 (1997): 1094-1105.
2.3. Jerk模型分析
- Jerk模型由于在加速度模型的基础上又增加一维,即实时地对加速度的导数——加加速度进行估计,以此可得到对加速度更加精确的估计,因此,对于强机动性的运动目标,利用模型描述目标机动更为方便。当然,不可避免的,模型算法的跟踪性能与参数σ、α和采样周期的选取是否合适也息息相关。
- Jerk模型看着复杂,实际上Jerk模型在Singer模型的基础上引入了加速度的变化率,相较于Singer模型,跟踪刻画目标的机动性
- Jerk模型和CA模型区别:Jerk是加速度的导数。在大多数坐标非耦合模型中,选择目标加速度作为目标机动的描述,并将其建模为随机过程。这是力学、运动学和车辆动力学中最自然的现象,因为加速度与作用于目标上的力直接相关。这就是为什么通常把目标加速度作为控制输入u的原因。然而,对于某些目标,特别是敏捷目标,使用随机猛击过程来建模目标机动可能更方便。猛击模型与通常的加速度模型有简单的区别,这取决于目标运动是用猛击模型还是加速度随机过程模型更好地描述。然而,另一方面,一个jerk模型中的jerk必须被估计,其精度通常比加速度估计差得多,因为通常只有位置(和多普勒)测量
3. 二维Jerk模型
3.1. Jerk模型(连续)
令状态向量为
X
=
[
x
,
x
˙
,
x
¨
,
d
x
¨
/
d
t
,
y
,
y
˙
,
y
¨
,
d
y
¨
/
d
t
]
T
{X}=[x, \dot{x},\ddot{x}, d\ddot{x}/dt,y, \dot{y},\ddot{y},d\ddot{y}/dt]^T
X=[x,x˙,x¨,dx¨/dt,y,y˙,y¨,dy¨/dt]T
则加速度变化率为
j
(
t
)
=
[
d
x
¨
/
d
t
,
d
y
¨
/
d
t
]
T
j(t)=[d\ddot{x}/dt,d\ddot{y}/dt]^T
j(t)=[dx¨/dt,dy¨/dt]T
连续时间Singer模型为
X ˙ ( t ) = [ A 0 0 A ] X ( t ) + [ B 0 0 B ] w ( t ) \dot{X}(t)=\begin{bmatrix}A&0\\0&A \end{bmatrix}X(t) + \begin{bmatrix}B&0\\0&B\end{bmatrix}w(t) X˙(t)=[A00A]X(t)+[B00B]w(t)
其中
A
=
[
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
−
α
]
,
B
=
[
0
0
0
1
]
A=\begin{bmatrix}0&1&0&0\\0&0&1&0\\0&0&0&1\\0&0&0&-\alpha\end{bmatrix}, B= \begin{bmatrix}0\\0\\0\\1\end{bmatrix}
A=⎣⎢⎢⎡000010000100001−α⎦⎥⎥⎤,B=⎣⎢⎢⎡0001⎦⎥⎥⎤
3.2. Jerk模型(离散)
周期T采样离散化后,转化为离散时间状态方程为:
X
k
+
1
=
F
k
X
k
+
W
k
X_{k+1}=F_kX_{k} + W_k
Xk+1=FkXk+Wk
其中
F
k
=
[
F
0
0
F
]
F_k=\begin{bmatrix}F&0\\0&F \end{bmatrix}
Fk=[F00F]
F
=
[
1
T
T
2
/
2
p
1
0
1
T
q
1
0
0
1
r
1
0
0
0
s
1
]
F=\begin{bmatrix}1&T&T^2/2&p1\\0&1&T &q1 \\0&0&1 &r1\\ 0&0&0&s1\end{bmatrix}
F=⎣⎢⎢⎡1000T100T2/2T10p1q1r1s1⎦⎥⎥⎤
其中:
p 1 = ( 2 − 2 α T + α 2 T 2 − 2 e − α T ) / ( 2 α 3 ) p1=(2-2\alpha T+\alpha^2T^2-2e^{-\alpha T})/(2\alpha^3) p1=(2−2αT+α2T2−2e−αT)/(2α3)
q 1 = ( α T − 1 + e − α T ) / α 2 q1=(\alpha T-1 + e^{-\alpha T})/\alpha^2 q1=(αT−1+e−αT)/α2
r 1 = ( 1 − e − α T ) / α r1=(1 - e^{-\alpha T})/\alpha r1=(1−e−αT)/α
s 1 = e − α T s1= e^{-\alpha T} s1=e−αT
噪声
W
k
W_k
Wk的方差为
Q
=
2
α
σ
2
[
q
11
q
12
q
13
q
14
q
21
q
22
q
23
q
24
q
31
q
32
q
33
q
34
q
41
q
42
q
43
q
44
]
Q=2\alpha \sigma^2 \begin{bmatrix}q_{11}&q_{12}&q_{13}&q_{14}\\q_{21}&q_{22}&q_{23}&q_{24}\\q_{31}&q_{32}&q_{33}&q_{34}\\q_{41}&q_{42}&q_{43}&q_{44}\end{bmatrix}
Q=2ασ2⎣⎢⎢⎡q11q21q31q41q12q22q32q42q13q23q33q43q14q24q34q44⎦⎥⎥⎤
Q
Q
Q为对称矩阵,且
上图中有些公式存在出入,请参见原文:
Mehrotra, Kishore, and Pravas R. Mahapatra. “A jerk model for tracking highly maneuvering targets.” IEEE Transactions on Aerospace and Electronic Systems 33.4 (1997): 1094-1105.
4. Jerk模型matlab仿真
位置轨迹: 图1
速度轨迹: 图2
加速度轨迹: 图3
加速度变化率轨迹: 图4
5. Jerk模型2D目标跟踪
算法:卡尔曼滤波
扩展卡尔曼滤波
无迹卡尔曼滤波
测量:雷达
跟踪轨迹如下:
6. 其它模型
6.1 匀速转弯CT模型
匀速转弯CT运动模型见另一个博客:包括二维、三维
6.2. 匀加速运动CA模型
匀加速运动CA模型见另一个博客
6.3. “当前”统计模型
当前统计模型见另一个博客
6.4. Singer模型
Singer模型见另一个博客
==原创不易,路过的各位大佬请点个赞=