数据关联算法总结(不断更新)

news/2024/11/28 7:23:45/

数据关联的步骤
(1)建立关联门,确定关联门限
(2)门限过滤
(3)确定相似性度量方法
(4)建立关联矩阵
(5)确定关联判定准则
(6)形成关联对

一、最近邻关联(Nearest Neighbour, NN)
利用加权欧式距离来计算每个观测数据到真实目标的距离,然后再取距离最近的一个观测值作为目标真实状态。
加权欧式距离的计算
假设在第k次扫描之前,已经建立N条航迹。第k次新观测为 Z i ( k ) , j = 1 , 2 , . . , N Z_i(k), j=1,2,..,N Zi(k),j=1,2,..,N。在第i条航迹的关联门内,观测j和航迹i的差矢量定义为测量值和预测值之间的差,即滤波器残差,如下所示:
e i j ( k ) = Z j ( k ) − H X ^ i ( k ∣ k − 1 ) e_{ij}(k)=Z_j(k)-H\hat{X}_i(k|k-1) eij(k)=Zj(k)HX^i(kk1)
其中, X ^ i ( k ∣ k − 1 ) \hat{X}_i(k|k-1) X^i(kk1)是状态估计的下一步预测, X ^ i ( k ∣ k − 1 ) = A X i ( k − 1 ∣ k − 1 ) \hat{X}_i(k|k-1)=AX_i(k-1|k-1) X^i(kk1)=AXi(k1∣k1),其中 A A A是状态转移矩阵, H H H为观测矩阵,设 S ( k ) S(k) S(k) e i j ( k ) e_ij(k) eij(k)的协方差矩阵,则统计距离(加权欧式距离)为:
d i j = e i j ( k ) S ( k ) − 1 e i j ( k ) T d_{ij}=e_{ij}(k)S(k)^{-1}e_{ij}(k)^{T} dij=eij(k)S(k)1eij(k)T
将落在关联门内并且与被跟踪目标的预测位置“最近邻”的观测点作为与航迹相关联的观测。
二、全局最近邻关联(Global Nearest Neighbour, GNN)
同样使用加权欧式距离来计算每个观测数据到真实目标的距离,但是需要满足总的距离或关联代价最小,实现最优分配的问题。
m i n { ∑ i = 1 n ∑ j = 1 n c i j x i j } ,其中 ∑ i = 1 n x i j = 1 ∑ j = 1 n x i j = 1 min \left\{ \sum_{i=1}^{n} \sum_{j=1}^{n} c_{ij}x_{ij}\right\},其中\sum_{i=1}^{n}x_{ij}=1 \sum_{j=1}^{n}x_{ij}=1 min{i=1nj=1ncijxij},其中i=1nxij=1j=1nxij=1
其中 x i j x_{ij} xij为二值变量,0表示不关联,1表示关联, c i j c_{ij} cij表示测量i与目标j之间距离,用矩阵表示时,矩阵的每行每列只能有1个元素为1。
关联矩阵较大时,二维分配问题可以用Munkre算法或Burgeois算法求解,求解具有多项式复杂度,是非NP问题。
三、概率数据关联(Probabilistic Data Association, PDA)
PDA算法和NN算法都是针对单目标或稀疏环境中的常用算法,PDA的思想是认为只要是存在于关联门内的有效观测值,就有可能源于目标,只是每个有效观测值源于目标的概率不同。通过大量的相关计算给出每个有效观测值的概率加权系数,计算所有有效观测值的加权和作为真实目标观测值的估计,从而在卡尔曼滤波中更新目标状态。主要用于解决杂波环境中的单目标跟踪问题。
3.1 系统建模
在现代控制理论中,系统的数学模型由运动方程和观测方程组成(每个符号的具体含义可自行百度):

                        X(k+1)=FX(k)+BU(k)+W(k)-运动方程Z(k)=HX(k)+V(k)        -观测方程

3.2 卡尔曼滤波
(1)k时刻的状态预测值: X ^ ( k ∣ k − 1 ) = F X ^ ( k − 1 ∣ k − 1 ) \hat{X}(k|k-1)=F\hat{X}(k-1|k-1) X^(kk1)=FX^(k1∣k1)
(2)k时刻的预测误差协方差矩阵: P ^ ( k ∣ k − 1 ) = F P ^ ( k − 1 ∣ k − 1 ) F ⊤ + Q \hat{P}(k|k-1)=F\hat{P}(k-1|k-1)F^\top+Q P^(kk1)=FP^(k1∣k1)F+Q
(3)k时刻的观测预测值: Z ^ ( k ∣ k − 1 ) = H X ^ ( k ∣ k − 1 ) \hat{Z}(k|k-1)=H\hat{X}(k|k-1) Z^(kk1)=HX^(kk1)
(4)预测观测值误差的协方差: S ( k ) = H P ^ ( k − 1 ∣ k − 1 ) H ⊤ + R S(k)=H\hat{P}(k-1|k-1)H^\top+R S(k)=HP^(k1∣k1)H+R
(5)卡尔曼增益: K ( k ) = P ^ ( k ∣ k − 1 ) H ⊤ S ( k ∣ k − 1 ) K(k)=\hat{P}(k|k-1)H^{\top}S(k|k-1) K(k)=P^(kk1)HS(kk1)
(6)k时刻的最优估计值: X ^ ( k ∣ k ) = X ^ ( k ∣ k − 1 ) + K ( Z ( k ) − H X ^ ( k ∣ k − 1 ) ) \hat{X}(k|k)=\hat{X}(k|k-1)+K(Z(k)-H\hat{X}(k|k-1)) X^(kk)=X^(kk1)+K(Z(k)HX^(kk1))
(7)k时刻的最优估计值协方差矩阵: P ^ ( k ∣ k ) = ( I − K ( k ) H ) P ^ ( k ∣ k − 1 ) \hat{P}(k|k)=(I-K(k)H)\hat{P}(k|k-1) P^(kk)=(IK(k)H)P^(kk1)
3.3 PDA算法解析
(1)定义变量
Z k = { z k , i } , i = 0 , 1 , . . . , m k Z_k=\left\{ z_{k,i}\right\},i=0,1,...,m_k Zk={zk,i},i=0,1,...,mk表示在k时刻目标先验 X ^ k ∣ k − 1 \hat{X}_{k|k-1} X^kk1的关联门内共有 m k m_k mk个有效观测值;
Z k = { Z j } , j = 1 , 2 , . . . , k Z^k=\left\{ Z_{j}\right\},j=1,2,...,k Zk={Zj},j=1,2,...,k表示从时刻1到k所有关联门内的有效观测值的集合。
(2)均值估计
当已知 Z k Z^k Zk时,状态的条件概率的均值估计为:
连续情况:
X ^ k ∣ k = E { X ^ k ∣ k − 1 ∣ Z k } = ∫ X ^ k ∣ k − 1 p ( X ^ k ∣ k − 1 ∣ Z k ) d X ^ k ∣ k − 1 \hat{X}_{k|k}=E\left\{ \hat{X}_{k|k-1}|Z^k\right\}=\int \hat{X}_{k|k-1}p(\hat{X}_{k|k-1}|Z^k)d\hat{X}_{k|k-1} X^kk=E{X^kk1Zk}=X^kk1p(X^kk1Zk)dX^kk1

离散情况:
X ^ k ∣ k = E { X ^ k ∣ k − 1 ∣ Z k } = ∑ k = 1 N X ^ k ∣ k − 1 P ( X ^ k ∣ k − 1 ∣ Z k ) \hat{X}_{k|k}=E\left\{ \hat{X}_{k|k-1}|Z^k\right\}=\sum_{k=1}^{N} \hat{X}_{k|k-1}P(\hat{X}_{k|k-1}|Z^k) X^kk=E{X^kk1Zk}=k=1NX^kk1P(X^kk1Zk)
(3)完备事件组
椭圆关联门示例
如上图所示某一时刻在一个目标状态的先验估计 Z ^ 1 \hat{Z}^1 Z^1的关联门内,有三个观测值,定义如下几个事件:1. Z 1 , Z 2 , Z 3 Z_1,Z_2,Z_3 Z1,Z2,Z3都是干扰信号,即都不是目标的真实观测;2. Z 1 Z_1 Z1起源于目标, Z 2 , Z 3 Z_2, Z_3 Z2,Z3是干扰信号;3. Z 2 Z_2 Z2起源于目标, Z 1 , Z 3 Z_1, Z_3 Z1,Z3是干扰信号;4. Z 3 Z_3 Z3起源于目标, Z 1 , Z 2 Z_1, Z_2 Z1,Z2是干扰信号。这四个事件组成了一个完备事件组,各个事件之间互斥,且概率和为1.
定义:
χ k , i = { z k , i 起源于目标 } , i = 1 , 2 , . . . , m k \chi_{k,i}=\left\{z_{k,i}起源于目标\right\},i=1,2,...,m_k χk,i={zk,i起源于目标},i=1,2,...,mk
χ k , 0 = { 没有一个有效观测起源于目标 } \chi_{k,0}=\left\{没有一个有效观测起源于目标\right\} χk,0={没有一个有效观测起源于目标}
(4)k时刻目标的状态估计
X ^ k ∣ k = E { X ^ k ∣ k − 1 ∣ Z k } = ∑ k = 1 N X ^ k ∣ k − 1 P ( X ^ k ∣ k − 1 ∣ Z k ) = ∑ k = 1 N ∑ i = 0 m k X ^ k ∣ k − 1 P ( X ^ k ∣ k − 1 ∣ χ k , i , Z k ) P ( χ k , i ∣ Z k ) = ∑ i = 0 m k E { X ^ k ∣ k − 1 ∣ χ k , i , Z k } P ( χ k , i ∣ Z k ) = ∑ i = 0 m k X ^ k ∣ k i P ( χ k , i ∣ Z k ) \begin{aligned} \hat{X}_{k|k} & =E\left\{ \hat{X}_{k|k-1}|Z^k\right\} \\ & =\sum_{k=1}^{N} \hat{X}_{k|k-1}P(\hat{X}_{k|k-1}|Z^k) \\ & =\sum_{k=1}^{N}\sum_{i=0}^{m_k}\hat{X}_{k|k-1}P(\hat{X}_{k|k-1}|\chi_{k,i},Z^k)P(\chi_{k,i}|Z^k)\\ & =\sum_{i=0}^{m_k}E\left\{ \hat{X}_{k|k-1}|\chi_{k,i},Z^k\right\}P(\chi_{k,i}|Z^k) \\ & =\sum_{i=0}^{m_k}\hat{X}_{k|k}^iP(\chi_{k,i}|Z^k) \end{aligned} X^kk=E{X^kk1Zk}=k=1NX^kk1P(X^kk1Zk)=k=1Ni=0mkX^kk1P(X^kk1χk,i,Zk)P(χk,iZk)=i=0mkE{X^kk1χk,i,Zk}P(χk,iZk)=i=0mkX^kkiP(χk,iZk)
其中,应用全概率公式, P ( X ^ k ∣ k − 1 ∣ Z k ) = ∑ i = 0 m k P ( X ^ k ∣ k − 1 ∣ χ k , i , Z k ) P ( χ k , i ∣ Z k ) P(\hat{X}_{k|k-1}|Z^k)=\sum_{i=0}^{m_k}P(\hat{X}_{k|k-1}|\chi_{k,i},Z^k)P(\chi_{k,i}|Z^k) P(X^kk1Zk)=i=0mkP(X^kk1χk,i,Zk)P(χk,iZk)
X ^ k ∣ k i \hat{X}_{k|k}^i X^kki表示在k时刻用第i个测量值对目标进行卡尔曼滤波所得的状态估计, β k , i = P ( χ k , i ∣ Z k ) , i = 0 , 1 , . . . , m k \beta_{k,i}=P(\chi_{k,i}|Z^k),i=0,1,...,m_k βk,i=P(χk,iZk),i=0,1,...,mk为事件 χ k , i \chi_{k,i} χk,i Z k Z^k Zk上的条件概率。
(5)目标状态更新协方差
P ^ k ∣ k = β k , 0 P ^ k ∣ k − 1 + [ 1 − β k , 0 ] P k ∣ k c + P ~ k \hat{P}_{k|k}=\beta_{k,0}\hat{P}_{k|k-1}+[1-\beta_{k,0}]P_{k|k}^c+\tilde{P}_k P^kk=βk,0P^kk1+[1βk,0]Pkkc+P~k
其中, β k , 0 \beta_{k,0} βk,0表示关联门内没有一个观测来源于目标的概率,作为一个权重值来更新协方差矩阵。
(6)参数 β k , i \beta_{k,i} βk,i的求解过程可参考【2】和【3】
3.4 缺点
PDA算法无法准备考虑处在多个目标关联门相交区域中的公共回波会航迹更新的影响,故在回波密集时跟踪性能不理想。
四、联合概率数据关联(Joint Probabilistic Data Association, JPDA)
4.1 算法流程
(1)利用马氏距离建立量测于目标的对应关系,形成确认矩阵 Ω \Omega Ω
(2)对 Ω \Omega Ω进行拆分,产生互联矩阵,进而得到互联事件;
(3)计算量测与目标的关联概率:
β t j = ∑ i P { θ i ∣ Z k } ω ^ t j ( θ ) \beta_{tj}=\sum_{i}P\left\{ \theta_{i}|Z^{k}\right\} \hat{\omega}_{tj}(\theta) βtj=iP{θiZk}ω^tj(θ)
P { θ i ∣ Z k } = λ ϕ c t ∏ p = 1 N p { N [ V p ( k ) ] } τ p ∏ t = 1 N t ( P D ) δ t ( 1 − P D ) 1 − δ t P\left\{ \theta_{i}|Z^{k}\right\}=\frac{\lambda^{\phi}}{c^{t}}\prod_{p=1}^{N_p} \left\{N\left [ V_p(k)\right ] \right\}^{\tau_p} \prod_{t=1}^{N_t}(P_D)^{\delta _t}(1-P_D)^{1-\delta _t} P{θiZk}=ctλϕp=1Np{N[Vp(k)]}τpt=1Nt(PD)δt(1PD)1δt
其中, P D P_D PD是检测目标概率, N p N_p Np是量测数量, N t N_t Nt是轨迹数量, λ \lambda λ是错误量测密度, ϕ \phi ϕ是杂波数量, c t c^t ct是归一化常数, δ t \delta_t δt是二进制量, τ p \tau_p τp是二进制量,表示量测是否分配给某个轨迹。
4.2 卡尔曼滤波
利用全概率公式: v t ( k ) = ∑ j = 1 m k β t j ( k ) v t j ( k ) v_t(k) =\sum_{j=1}^{m_k}\beta_{tj}(k)v_{tj}(k) vt(k)=j=1mkβtj(k)vtj(k),则 X ^ t ( k ∣ k ) = X ^ t ( k ∣ k − 1 ) + K t ( k ) v t ( k ) \hat{X}_t(k|k)=\hat{X}_t(k|k-1)+K_t(k)v_t(k) X^t(kk)=X^t(kk1)+Kt(k)vt(k)
具体算法过程为:
假设对目标的状态向量预测和量测向量预测分别为:
X ^ ( k ∣ k − 1 ) = F ( k − 1 ) X ^ ( k − 1 ∣ k − 1 ) \hat{X}(k|k-1)=F(k-1)\hat{X}(k-1|k-1) X^(kk1)=F(k1)X^(k1∣k1)
Z ^ ( k ∣ k − 1 ) = H ( k − 1 ) X ^ ( k ∣ k − 1 ) \hat{Z}(k|k-1)=H(k-1)\hat{X}(k|k-1) Z^(kk1)=H(k1)X^(kk1)
则卡尔曼滤波器的更新方程为:
X ^ ( k ∣ k ) = X ^ ( k ∣ k − 1 ) + K ( k ) v ( k ) \hat{X}(k|k)=\hat{X}(k|k-1)+K(k)v(k) X^(kk)=X^(kk1)+K(k)v(k)
其中, v ( k ) v(k) v(k)是组合更新, K ( k ) K(k) K(k)为滤波器增益矩阵,可以得到:
v ( k ) = ∑ p = 1 N p β t p ( k ) v t p ( k ) v(k)=\sum_{p=1}^{N_p}\beta_{tp}(k)v_{tp}(k) v(k)=p=1Npβtp(k)vtp(k)
其中, V t p ( k ) V_{tp}(k) Vtp(k)是对轨迹t的第p个量测的更新, β t p ( k ) \beta_{tp}(k) βtp(k)是位置量测p来自于目标t的概率, N p N_p Np是量测数。
预测状态的协方差为:
P ( k ∣ k − 1 ) = F ( k − 1 ) P ( k − 1 ∣ k − 1 ) F ⊤ ( k − 1 ) + Q ( k − 1 ) P(k|k-1)=F(k-1)P(k-1|k-1)F^\top(k-1)+Q(k-1) P(kk1)=F(k1)P(k1∣k1)F(k1)+Q(k1)
更新状态协方差为;
P ( k ∣ k ) = β 0 ( k ) P ( k ∣ k − 1 ) + [ 1 − β 0 ( k ) ] P c ( k ∣ k ) + P ~ ( k ) P(k|k)=\beta_{0}(k)P(k|k-1)+[1-\beta_0(k)]P^c(k|k)+\tilde{P}(k) P(kk)=β0(k)P(kk1)+[1β0(k)]Pc(kk)+P~(k)
其中,
P ~ ( k ) = K ( k ) [ ∑ p = 1 N p β t p ( k ) v t p ( k ) v t p ⊤ ( k ) − v ( k ) v ⊤ ( k ) ] K ⊤ ( k ) \tilde{P}(k)=K(k)\left[ \sum_{p=1}^{N_p} \beta_{tp}(k)v_{tp}(k)v^\top_{tp}(k)-v(k)v^\top(k)\right]K^\top(k) P~(k)=K(k) p=1Npβtp(k)vtp(k)vtp(k)v(k)v(k) K(k)
P c ( k ∣ k ) = [ 1 − K ( k ) H ( k ) ] P ( k ∣ k − 1 ) P^c(k|k)=[1-K(k)H(k)]P(k|k-1) Pc(kk)=[1K(k)H(k)]P(kk1)
其中, β t p = ∑ i P { θ i ∣ Z k } ω ^ t p ( θ i ) \beta_{tp}=\sum_i P\left\{ \theta_i|Z^k\right\} \hat{\omega}_{tp}(\theta_i) βtp=iP{θiZk}ω^tp(θi) ω ^ t p ( θ i ) \hat{\omega}_{tp}(\theta_i) ω^tp(θi)表示在第i个互联事件中,如果量测j源于目标p,则 ω ^ t p \hat{\omega}_{tp} ω^tp为1;否则,为0.
参考
【1】数据关联算法之最近邻数据关联(Nearest Neighbor,NN)
【2】传感器融合之数据关联(NN,GNN,PDA,JPDA,JCBB)
【3】概率数据关联(PDA)算法解析
【4】联合概率数据关联(JPDA)算法.ppt


http://www.ppmy.cn/news/1077433.html

相关文章

Python基础篇(16):类方法、实例方法和静态方法(Python类中方法的三种形式)

一、类方法 1、类方法的定义 使用 classmethod 进行修饰方法中第一个形参是cls class People:classmethoddef func_name(cls, params):pass 2、类方法的调用 “类名.方法名”“对象.方法名” class Student:classmethoddef s_info(cls):print("call Student classme…

vue常见问题汇总

来源:https://www.fly63.com/ Q1:安装超时(install timeout) 方案有这么些: cnpm : 国内对npm的镜像版本/*cnpm website: https://npm.taobao.org/*/npm install -g cnpm --registryhttps://registry.npm.taobao.org// cnpm 的大多命令跟 npm 的是一致的…

Nginx详解 第四部分:Nginx重写功能(附详细配置实例)

Part 4 1.简介2.if指令(单分支)2.1 基本原理2.2 基本语法2.3 举个例子 3.return指令3.1 定义和作用3.2 基本语法3.3 举个例子 4.set指令5.break指令5.1 基本原理5.2 举个例子 6.rewrite指令6.1 基本原理6.2 基本语法6.3 举个例子6.3.1 重写URL路径:目录重…

【UE 材质】模型部分透明

材质节点如下,这里简单解释一下。首先通过“Mask”节点将"Texture Coordinate" 节点中的“G”通道分离出来,然后通过“if”节点进行判断,当值小于0.5时为透明,当颜色不小于5时为不透明。可以通过一个参数来控制模型透明…

MyBaits Generator

参考文档 MyBatis Generator Core – Introduction to MyBatis Generator MyBatis Generator 详解_enablesubpackages_isea533的博客-CSDN博客 一文解析 MyBatis Generator 的使用及配置 - 掘金 1. Introduction MyBatis Generator (MBG) 是 MyBatis MyBatis的代码生成器。…

vscode搭建springboot开发环境

前言 idea好用到但是收money,eclipse免费但是界面有点丑,所以尝试使用vscode开发springboot 提前准备 安装jdk,jdk需要大于11 安装vscode 安装maven 安装插件 主要是下面的插件 Extension Pack for JavaSpring Boot Extension PackDepe…

MySQL 间隙锁原理深度详解:解密并掌握幻读问题的终极武器

推荐阅读 项目实战:AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 史上最全文档AI绘画stablediffusion资料分享 AI绘画关于SD,MJ,GPT,SDXL百科全书 AI绘画 stable…

UG NX二次开发(C++)-CAM-刀轨循环设置多个加工余量并输出clsf文件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、问题说明2.1 创建一个平面端铣的加工程序2.2 生成余量为0的刀位文件3、采用UG NX二次开发循环变余量程序3.1 头文件3.2 在类中声明方法3.3 添加方法代码3.4 测试结果1、前言 在UG NX的C…