做网站需要每年交钱吗,产品推广网站设计,wordpress 文章字段,鞍山最新消息DeepSORT#xff08;目标跟踪算法#xff09;中的状态向量与状态转移矩阵
flyfish
状态转移矩阵#xff08;State Transition Matrix#xff09;F的构造
这篇是一定要看的#xff0c;拖到文章的最后部分#xff0c;需要理解状态转移矩阵怎么来的#xff0c;怎么是这个…DeepSORT目标跟踪算法中的状态向量与状态转移矩阵
flyfish
状态转移矩阵State Transition MatrixF的构造
这篇是一定要看的拖到文章的最后部分需要理解状态转移矩阵怎么来的怎么是这个样子
状态向量State Vector
状态向量描述系统在某个时间点的完整状态。它通常包括多个变量例如位置、速度、加速度等具体取决于系统的动态特性。
记作 x k \mathbf{x}_k xk其中 k k k 是时间步长。
状态转移矩阵State Transition Matrix
状态转移矩阵描述系统从一个时间点到下一个时间点的状态变化。它反映了状态向量的演化。 记作 A k \mathbf{A}_k Ak用于将状态向量从 x k − 1 \mathbf{x}_{k-1} xk−1 转移到 x k \mathbf{x}_k xk x k A k − 1 x k − 1 B k − 1 u k − 1 w k − 1 \mathbf{x}_k \mathbf{A}_{k-1} \mathbf{x}_{k-1} \mathbf{B}_{k-1} \mathbf{u}_{k-1} \mathbf{w}_{k-1} xkAk−1xk−1Bk−1uk−1wk−1 状态向量与状态转移矩阵状态转移矩阵 A k \mathbf{A}_k Ak 描述了状态向量 x k \mathbf{x}_k xk 如何从时间 k − 1 k-1 k−1 转移到时间 k k k。例如对于一个简单的运动模型状态向量可能包括位置和速度而状态转移矩阵描述了位置和速度在每个时间步长中的变化。例如对于一个匀速直线运动模型状态向量和状态转移矩阵可以表示为 x k [ x k x ˙ k ] , A k [ 1 Δ t 0 1 ] \mathbf{x}_k \begin{bmatrix} x_k \\ \dot{x}_k \end{bmatrix}, \quad \mathbf{A}_k \begin{bmatrix} 1 \Delta t \\ 0 1 \end{bmatrix} xk[xkx˙k],Ak[10Δt1]这里 Δ t \Delta t Δt 是时间步长。
假设我们要跟踪一个在平面上运动的物体其状态包括位置和速度
状态向量 x k \mathbf{x}_k xk: x k [ x k y k x ˙ k y ˙ k ] \mathbf{x}_k \begin{bmatrix} x_k \\ y_k \\ \dot{x}_k \\ \dot{y}_k \end{bmatrix} xk xkykx˙ky˙k 这里 x k x_k xk 和 y k y_k yk 是位置 x ˙ k \dot{x}_k x˙k 和 y ˙ k \dot{y}_k y˙k 是速度。状态转移矩阵 A k \mathbf{A}_k Ak: A k [ 1 0 Δ t 0 0 1 0 Δ t 0 0 1 0 0 0 0 1 ] \mathbf{A}_k \begin{bmatrix} 1 0 \Delta t 0 \\ 0 1 0 \Delta t \\ 0 0 1 0 \\ 0 0 0 1 \end{bmatrix} Ak 10000100Δt0100Δt01 这表示位置随时间步长 Δ t \Delta t Δt 变化。
状态预测
给定当前时间步长 k − 1 k-1 k−1 的状态向量 x k − 1 \mathbf{x}_{k-1} xk−1 和状态转移矩阵 A k − 1 \mathbf{A}_{k-1} Ak−1下一个时间步长 k k k 的预测状态向量 x ^ k ∣ k − 1 \hat{\mathbf{x}}_{k|k-1} x^k∣k−1 可以表示为 x ^ k ∣ k − 1 A k − 1 x k − 1 B k − 1 u k − 1 \hat{\mathbf{x}}_{k|k-1} \mathbf{A}_{k-1} \mathbf{x}_{k-1} \mathbf{B}_{k-1} \mathbf{u}_{k-1} x^k∣k−1Ak−1xk−1Bk−1uk−1 A k − 1 \mathbf{A}_{k-1} Ak−1 是状态转移矩阵描述了系统的动态特性。 B k − 1 \mathbf{B}_{k-1} Bk−1 是控制输入矩阵描述了控制输入如何影响系统状态。 u k − 1 \mathbf{u}_{k-1} uk−1 是控制输入向量包含外部施加的控制量。
误差协方差预测
误差协方差矩阵 P k ∣ k − 1 \mathbf{P}_{k|k-1} Pk∣k−1 也需要更新以反映预测状态的不确定性。预测步骤的误差协方差矩阵更新公式为 P k ∣ k − 1 A k − 1 P k − 1 ∣ k − 1 A k − 1 T Q k − 1 \mathbf{P}_{k|k-1} \mathbf{A}_{k-1} \mathbf{P}_{k-1|k-1} \mathbf{A}_{k-1}^T \mathbf{Q}_{k-1} Pk∣k−1Ak−1Pk−1∣k−1Ak−1TQk−1 P k − 1 ∣ k − 1 \mathbf{P}_{k-1|k-1} Pk−1∣k−1 是当前时间步长 k − 1 k-1 k−1 的误差协方差矩阵。 Q k − 1 \mathbf{Q}_{k-1} Qk−1 是过程噪声协方差矩阵反映了模型中未捕捉到的不确定性。
例子
假设我们要跟踪一个在平面上运动的物体其状态向量包括位置和速度 x k [ x k y k x ˙ k y ˙ k ] \mathbf{x}_k \begin{bmatrix} x_k \\ y_k \\ \dot{x}_k \\ \dot{y}_k \end{bmatrix} xk xkykx˙ky˙k 假设物体做匀速直线运动状态转移矩阵可以表示为 A [ 1 0 Δ t 0 0 1 0 Δ t 0 0 1 0 0 0 0 1 ] \mathbf{A} \begin{bmatrix} 1 0 \Delta t 0 \\ 0 1 0 \Delta t \\ 0 0 1 0 \\ 0 0 0 1 \end{bmatrix} A 10000100Δt0100Δt01 在没有控制输入的情况下预测状态的计算如下 x ^ k ∣ k − 1 A x k − 1 \hat{\mathbf{x}}_{k|k-1} \mathbf{A} \mathbf{x}_{k-1} x^k∣k−1Axk−1 假设上一时间步长的状态向量为 x k − 1 [ 10 15 1 − 1 ] \mathbf{x}_{k-1} \begin{bmatrix} 10 \\ 15 \\ 1 \\ -1 \end{bmatrix} xk−1 10151−1 其中物体在位置 ( 10 , 15 ) (10, 15) (10,15) 处速度为 ( 1 , − 1 ) (1, -1) (1,−1) 米每秒时间步长 Δ t 1 \Delta t 1 Δt1 秒。
状态转移计算为 x ^ k ∣ k − 1 [ 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 ] [ 10 15 1 − 1 ] [ 10 1 15 − 1 1 − 1 ] [ 11 14 1 − 1 ] \hat{\mathbf{x}}_{k|k-1} \begin{bmatrix} 1 0 1 0 \\ 0 1 0 1 \\ 0 0 1 0 \\ 0 0 0 1 \end{bmatrix} \begin{bmatrix} 10 \\ 15 \\ 1 \\ -1 \end{bmatrix} \begin{bmatrix} 10 1 \\ 15 - 1 \\ 1 \\ -1 \end{bmatrix} \begin{bmatrix} 11 \\ 14 \\ 1 \\ -1 \end{bmatrix} x^k∣k−1 1000010010100101 10151−1 10115−11−1 11141−1 因此通过状态转移矩阵得到了下一个时间步长的预测状态向量 x ^ k ∣ k − 1 [ 11 14 1 − 1 ] \hat{\mathbf{x}}_{k|k-1} \begin{bmatrix} 11 \\ 14 \\ 1 \\ -1 \end{bmatrix} x^k∣k−1 11141−1 。
在卡尔曼滤波中控制输入control input指的是系统在每个时间步长可以施加的外部影响或干预。控制输入常用于表示可以影响系统状态的外部因素例如驾驶员对汽车的操控、无人机的推力指令等。
控制输入的作用
控制输入用于描述外部控制如何影响系统状态的变化。它在状态转移方程中起到了修正预测状态的作用帮助更准确地反映系统的动态。
控制输入的数学描述
状态转移方程中引入控制输入项使状态更新更全面 x k A k − 1 x k − 1 B k − 1 u k − 1 w k − 1 \mathbf{x}_k \mathbf{A}_{k-1} \mathbf{x}_{k-1} \mathbf{B}_{k-1} \mathbf{u}_{k-1} \mathbf{w}_{k-1} xkAk−1xk−1Bk−1uk−1wk−1 其中 A k − 1 \mathbf{A}_{k-1} Ak−1状态转移矩阵描述系统的内在动力学。 B k − 1 \mathbf{B}_{k-1} Bk−1控制输入矩阵描述控制输入对系统状态的影响。 u k − 1 \mathbf{u}_{k-1} uk−1控制输入向量表示外部施加的控制。 w k − 1 \mathbf{w}_{k-1} wk−1过程噪声表示模型中未捕捉到的随机扰动。
示例
假设我们在跟踪一辆汽车状态向量包括位置和速度 x k [ x k x ˙ k ] \mathbf{x}_k \begin{bmatrix} x_k \\ \dot{x}_k \end{bmatrix} xk[xkx˙k]
无控制输入的情况
状态转移矩阵假设汽车做匀速运动 A [ 1 Δ t 0 1 ] \mathbf{A} \begin{bmatrix} 1 \Delta t \\ 0 1 \end{bmatrix} A[10Δt1] 预测下一时间步的状态为 x ^ k ∣ k − 1 A x k − 1 \hat{\mathbf{x}}_{k|k-1} \mathbf{A} \mathbf{x}_{k-1} x^k∣k−1Axk−1
有控制输入的情况
假设汽车可以通过加速或减速改变速度控制输入向量表示加速度 u k a k \mathbf{u}_k a_k ukak 控制输入矩阵描述加速度对速度和位置的影响 B [ 0.5 Δ t 2 Δ t ] \mathbf{B} \begin{bmatrix} 0.5 \Delta t^2 \\ \Delta t \end{bmatrix} B[0.5Δt2Δt] 状态转移方程引入控制输入后变为 x ^ k ∣ k − 1 A x k − 1 B u k − 1 \hat{\mathbf{x}}_{k|k-1} \mathbf{A} \mathbf{x}_{k-1} \mathbf{B} \mathbf{u}_{k-1} x^k∣k−1Axk−1Buk−1
具体计算
假设上一时间步的状态向量为 x k − 1 [ 10 5 ] \mathbf{x}_{k-1} \begin{bmatrix} 10 \\ 5 \end{bmatrix} xk−1[105] 其中位置为10米速度为5米每秒。时间步长 Δ t 1 \Delta t 1 Δt1 秒。
如果加速度为2米每秒平方 a k 2 a_k 2 ak2则控制输入向量为 u k − 1 2 \mathbf{u}_{k-1} 2 uk−12 状态转移矩阵和控制输入矩阵为 A [ 1 1 0 1 ] , B [ 0.5 1 ] \mathbf{A} \begin{bmatrix} 1 1 \\ 0 1 \end{bmatrix}, \quad \mathbf{B} \begin{bmatrix} 0.5 \\ 1 \end{bmatrix} A[1011],B[0.51] 预测下一时间步的状态为 x ^ k ∣ k − 1 A x k − 1 B u k − 1 [ 1 1 0 1 ] [ 10 5 ] [ 0.5 1 ] ⋅ 2 [ 15 5 ] [ 1 2 ] [ 16 7 ] \hat{\mathbf{x}}_{k|k-1} \mathbf{A} \mathbf{x}_{k-1} \mathbf{B} \mathbf{u}_{k-1} \begin{bmatrix} 1 1 \\ 0 1 \end{bmatrix} \begin{bmatrix} 10 \\ 5 \end{bmatrix} \begin{bmatrix} 0.5 \\ 1 \end{bmatrix} \cdot 2 \begin{bmatrix} 15 \\ 5 \end{bmatrix} \begin{bmatrix} 1 \\ 2 \end{bmatrix} \begin{bmatrix} 16 \\ 7 \end{bmatrix} x^k∣k−1Axk−1Buk−1[1011][105][0.51]⋅2[155][12][167] 因此通过引入控制输入预测得到下一时间步的位置为16米速度为7米每秒。
在卡尔曼滤波中测量向量通过观测矩阵可以得到与实际测量值进行比较的预测测量值。这是滤波器更新步骤中的一个关键部分用于校正预测的状态。