基于概率假设密度(PHD)滤波的多目标跟踪仿真系统
项目介绍
本项目是一个基于随机有限集(RFS)理论的多目标跟踪(MOT)仿真平台。项目核心采用高斯混合概率假设密度(GM-PHD)滤算法,专门设计用于解决在复杂背景下,目标数量未知且动态变化、传感器存在漏检以及环境包含大量杂波干扰的跟踪挑战。通过将多目标状态表示为随机有限集,系统成功避免了传统数据关联算法中复杂的组合优化问题,实现了高效的递归贝叶斯估计。
功能特性
- 多目标动态管理:系统能够自动处理目标的随机诞生、存活、运动以及消失,无需预先获知目标数量。
- 复杂环境适应性:预置了传感器检测概率(Pd)模型和基于泊松分布的杂波(Clutter)模拟,可仿真真实雷达或视觉传感器的工作环境。
- 高效计算框架:利用高斯混合形式(Gaussian Mixture)对积分计算进行解析简化,显著提升了算法的实时性。
- 智能状态提取:通过权重管理和分量归并策略,从连续的概率密度中准确提取出离散的目标位置和速度运动状态。
- 性能量化评估:内置OSPA(Optimal Sub-Pattern Assignment)性能指标,从目标数量误差和位置误差两个维度综合评价跟踪精度。
- 多维可视化展示:实时生成运动全轨迹图、目标数量估计曲线以及误差评价曲线,提供直观的仿真反馈。
系统要求
- 环境:MATLAB R2016b 及以上版本。
- 工具箱:主要基于标准库开发,需确保具备基本的矩阵运算能力,涉及随机数生成函数(如mvnrnd、poissrnd)。
算法实现逻辑
系统逻辑主要分为四个阶段,在主循环中迭代执行:
1. 仿真场景生成与建模
- 运动模型:采用四维状态向量(x坐标、x方向速度、y坐标、y方向速度),遵循匀速直线运动(CV)模型进行状态演化。
- 观测模型:传感器仅获取二维位置信息(x, y),并在观测值中叠加高斯白噪声。
- 轨迹预设:程序预定义了三个具有不同生命周期的目标:目标1全程存在;目标2在第20步出现,第80步消失;目标3在第40步出现并持续至仿真结束。
- 干扰模拟:在每一帧观测中产生均值为10的随机杂波点,模拟环境干扰。
2. PHD 预测更新
- 预测步骤:涵盖存活目标预测与诞生目标预测。根据存活概率Ps对现有高斯分量进行状态推进,并同时在预设的三个诞生点(高权重区域)注入新的高斯分量,以捕获新出现的目标。
- 更新步骤:利用当前的传感器测量值对预测密度进行修正。更新过程分为漏检项处理(保留未被检测到的目标假设)和观测项处理。观测项处理阶段计算每个观测值与各预测分量的似然度,并通过卡尔曼滤波增益进行闭式更新。
3. 缩减策略(Pruning & Merging)
由于高斯分量数量随时间呈指数增长,系统实施了关键的缩减算法:
- 剪枝(Pruning):剔除权重低于极小阈值(1e-5)的高斯分量,移除无效假设。
- 合并(Merging):计算高斯分量间的马氏距离,将相似度高(距离小于4)的分量进行加权合并,防止轨迹分裂。
- 分量限制:设置最大高斯分量上限(100项),确保计算复杂度的边界稳定。
4. 状态提取与评估
- 阈值提取:通过权重阈值(0.5)筛选显著的高斯分量。若某分量权重接近整数N,则认为该区域可能存在N个目标。
- 误差统计:使用OSPA指标对比真实轨迹集合与估计轨迹集合,利用贪婪匹配算法计算多目标集合间的空间距离。
关键函数与算法细节分析
高斯混合组件管理
核心逻辑通过权重(w)、均值(m)及协方差(P)三元组来描述整个多目标系统的PHD强度。在更新环节中,系统充分考虑了杂波强度(kappa),通过归一化因子实现了对真实观测与杂波的统计辨识。
剪枝与合并算法实现
该辅助功能通过对分量权重进行降序排列,优先保留强特征分量。在合并阶段,系统基于当前最大权重分量,通过循环扫描方式搜索邻域内的其他分量,利用加权融合公式更新合并后的均值与协方差矩阵。
OSPA 性能评价指标
内置的OSPA计算函数不仅计算点对点的欧氏距离,还针对目标数量不一致的情况引入了惩罚因子。其内部实现通过贪婪匹配逻辑,在较小规模的目标集间寻找最优分配方案,从而输出平滑且反映真实跟踪性能的误差曲线。
使用方法
- 启动 MATLAB,将工作目录指向项目文件夹。
- 在命令行窗口输入主程序函数名并回车。
- 系统将自动启动仿真,在循环迭代中实时计算目标轨迹。
- 仿真结束后,程序将自动弹出三个子图:
*
左图:显示二维平面内的真实观测点、真实运动目标轨迹以及滤波估计出的轨迹点。
*
中图:对比显示随时间变化的真实目标数量与算法估计出的目标数量。
*
右图:展示每一时刻的 OSPA 距离误差,曲线越低代表跟踪精度越高。