在卡尔曼滤波里,目标的当前状态估计考虑2个输入。
- 一个是根据过去的状态估计当前的状态。如过去的位移为[0,3,6,9],则当前的状态估计就应该为12。
- 一个是当前时刻的观测状态(即传感器读数、跟踪里的检测器检测到的位置等),因此实际中观测值是带有噪声的,不是百分百精准的。
如需要估计物体的位移,则影响位移的因素有上一刻的位移,速度,外力(加速度)等。现在先忽略外力。
根据过去的状态估计当前的状态
如考虑状态向量
x
x
x如下
x
=
[
位
移
速
度
]
x = \left[ \begin{matrix} 位移\\ 速度 \end{matrix} \right]
x=[位移速度]
记
x
t
−
1
x_{t-1}
xt−1为上一刻的状态,即
x
t
−
1
=
[
位
移
t
−
1
速
度
t
−
1
]
x_{t-1} = \left[ \begin{matrix} 位移_{t-1}\\ 速度_{t-1} \end{matrix} \right]
xt−1=[位移t−1速度t−1]
则根据上一时刻的状态,可以估计当前时刻的状态
{
位
移
t
=
位
移
t
−
1
+
速
度
t
−
1
×
Δ
t
速
度
t
=
速
度
t
−
1
\left \{ \begin{aligned} 位移_t &= 位移_{t-1}+速度_{t-1} \times \Delta t \\ 速度_t &=速度_{t-1} \end{aligned} \right.
{位移t速度t=位移t−1+速度t−1×Δt=速度t−1
因为忽略了外力,因此视为一个恒速运动。写为矩阵形式即为
x
t
=
[
1
Δ
t
0
1
]
x
t
−
1
=
F
x
t
−
1
(1)
x_t = \left [ \begin{matrix} 1 & \Delta t \\ 0 & 1 \end{matrix} \right] x_{t-1} = Fx_{t-1}\tag1
xt=[10Δt1]xt−1=Fxt−1(1)
以上的状态转移都是考虑理想状态的,实际情况中,上一刻的状态不是百分百准确的,是带有噪声的。因此其上一刻的状态实际上是个高斯分布
均值为上一刻的估计值,定义其协方差为
P
t
−
1
P_{t-1}
Pt−1。又因为
C
o
v
(
x
)
=
P
C
o
v
(
A
x
)
=
A
P
A
T
Cov(x) = P\\ Cov(Ax)=APA^T
Cov(x)=PCov(Ax)=APAT
因此当前时刻的估计值
均
值
x
t
=
F
x
t
−
1
协
方
差
P
t
=
F
P
t
−
1
F
T
+
Q
均值x_t = Fx_{t-1} \\ 协方差P_t = FP_{t-1}F^T + Q
均值xt=Fxt−1协方差Pt=FPt−1FT+Q
Q是因为在根据上一刻估计当前时,又引入新的噪声。
同时因为当前估计空间和观测空间中可能因为测量单位等的不同,引入测量矩阵
H
H
H,用于将当前状态转移到观测空间。如在图像处理的跟踪里面,单位等都相同,因此可令
H
=
I
H = I
H=I即单位矩阵。又或者观测值只有位移,则
H
=
[
1
0
]
x
^
t
=
H
x
t
H = \left [ \begin{matrix} 1 & 0 \end{matrix} \right]\\ \hat x_t = Hx_t
H=[10]x^t=Hxt
则
x
^
t
=
H
x
t
\hat x_t = Hx_t
x^t=Hxt为转移到观测空间后的估计值。 协方差为
H
P
k
H
T
HP_kH^T
HPkHT
因此就得到了从历史状态估计的当前状态,一个均值为 x ^ t \hat x_t x^t,协方差为 H P k H T HP_kH^T HPkHT的分布
当前时刻观测状态
观测值就是传感器的读数,当然也是有误差的。其分布也是高斯分布。均值即为读数( μ 1 \mu_1 μ1),协方差记为R
融合高斯
至此,有了2个分布,一个是根据历史状态估计的当前状态的分布,一个是观测值
N
(
H
x
t
,
H
P
k
H
T
)
=
N
(
μ
0
,
σ
0
)
N
(
μ
1
,
R
)
=
N
(
μ
1
,
σ
1
)
\begin{aligned} &\mathscr{N}(Hx_t,HP_kH^T) = \mathscr{N}(\mu_0,\sigma_0)\\ &\mathscr{N}(\mu_1,R) = \mathscr{N}(\mu_1,\sigma_1)\end{aligned}
N(Hxt,HPkHT)=N(μ0,σ0)N(μ1,R)=N(μ1,σ1)
因此其最终估计即为2个高斯分布的融合,融合后仍为高斯分布。
卡
尔
曼
增
益
K
=
σ
0
(
σ
0
+
σ
1
)
−
1
融
合
均
值
μ
=
μ
0
+
K
(
μ
1
−
μ
0
)
融
合
协
方
差
σ
=
σ
0
−
K
σ
0
\begin{aligned} 卡尔曼增益 K & = \sigma_0(\sigma_0 + \sigma_1)^{-1} \\ 融合均值 \mu &= \mu_0 + K (\mu_1 - \mu_0) \\ 融合协方差\sigma &= \sigma_0 - K\sigma_0 \end{aligned}
卡尔曼增益K融合均值μ融合协方差σ=σ0(σ0+σ1)−1=μ0+K(μ1−μ0)=σ0−Kσ0
融合均值即为最终的最优估计。同时将观测空间的值转换到原空间即左乘
H
−
1
H^{-1}
H−1,更新后的状态用于下一时刻的迭代。