基于概率假设密度(PHD)的多目标跟踪模拟系统
项目介绍
本系统是一个基于 MATLAB 平台开发的高性能多目标跟踪仿真环境。系统核心采用高斯混合概率假设密度(GM-PHD)滤波器,旨在解决动态变化目标数量下的多目标跟踪问题。该项目通过随机有限集(RFS)理论,有效规避了传统算法中复杂的数据关联环节,能够在地空监控、雷达探测及自动驾驶等存在高杂波和检测不确定性的场景中,实现对多个移动目标的精确状态估计与轨迹重建。
功能特性
- 闭环仿真流程:系统实现了从多目标运动建模、观测数据生成到滤波估算及结果可视化的全流程闭环模拟。
- 动态目标管理:能够自动处理目标的进入(出生)、持续跟踪(存活)以及消失(死亡),无需预先指定目标数量。
- 复杂环境模拟:支持自定义目标检测概率以及基于泊松分布的杂波背景,真实还原传感器在非理想条件下的工作特性。
- 鲁棒的滤波算法:采用高斯混合实现方式,通过权重的更新、剪枝与合并机制,维持对多目标密度函数的精确逼近。
- 综合性能评估:内置 OSPA(Optimal Subpattern Assignment)评价指标,从位置误差和基数误差两个维度定量分析跟踪质量。
使用方法
- 环境配置:确保计算机已安装 MATLAB 运行环境。
- 启动仿真:在 MATLAB 命令行窗口运行主程序脚本。
- 观测结果:程序运行结束后,将自动弹出可视化窗口,展示目标轨迹、数量估计曲线以及 OSPA 误差指标。
- 参数调整:根据实验需求,可在主程序起始位置修改检测概率、杂波率、采样间隔等系统参数。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件环境:建议 4GB 以上内存,具备基础图形渲染能力的处理器。
核心功能与实现逻辑
1. 系统建模
主程序采用匀速直线运动(CV)模型作为目标的状态转移基础,状态向量包含二维位置和二维速度。观测模型仅提取二维位置坐标。通过定义过程噪声协方差和量测噪声协方差,模拟目标运动的不确定性和传感器的随机误差。
2. 真实轨迹产生
系统预设了四个具有不同生命周期的目标,分别在不同的时间步进入和离开监控区域。每个目标根据设定的初始位置、初速度和持续时间,在 100 个仿真步长内生成精确的真实状态序列。
3. 量测数据模拟
在每个采样时刻,系统根据检测概率(Pd)决定是否保留目标的真实观测值,并叠加高斯量测噪声。同时,根据设置的杂波频率,在整个监控区域内随机产生符合泊松分布的杂波点,形成最终的原始观测集。
4. GM-PHD 滤波迭代
滤波过程严格遵循预测与更新两个核心阶段:
- 预测阶段:根据存活概率对上一时刻的高斯分量权重进行衰减,并加入预设的新生目标高斯分量。
- 更新阶段:采用双重逻辑,一方面保留未被检测到目标的高斯项(权重乘以漏检概率);另一方面利用当前时刻的所有量测值,通过卡尔曼增益更新每一个高斯项的状态和协方差,并根据似然函数重新计算权重。
5. 后处理机制
为了控制计算规模,程序实现了完善的后处理流程:
- 剪枝:剔除权重低于极小阈值的高斯分量。
- 合并:计算高斯项之间的马氏距离,将空间距离较近的分量进行加权合并。
- 限制:强制保留权重最大的前若干个高斯项,防止分量爆炸。
- 提取:通过对高斯分量权重取整或根据权重门限判定,提取当前时刻的目标状态估计值。
关键算法与实现细节
高斯混合项的管理
在合并步骤中,算法不仅对均值进行加权平均,还考虑了由均值偏差引入的额外协方差项,确保合并后的高斯分布能准确代表原有的分量集合。
OSPA 指标计算
系统实现了一种实用的 OSPA 距离算法,用于衡量真实点集与估计点集之间的差异。该实现包含两个关键参数:
- 截断距离 (c):定义了当估计点与真实点距离过远或基数不匹配时的惩罚上限。
- 阶数 (p):控制误差计算对离群值的敏感程度。
在匹配逻辑上,程序采用了针对仿真场景优化的贪心匹配方案,能够快速计算出最优排列的近似代价,极大地提高了评估效率。
可视化输出布局
主程序生成包含三个子图的综合看板:
- 左侧大图展示 X-Y 平面的多目标运动轨迹,区分真实轨迹点与滤波后的估计点。
- 右上子图实时对比真实目标数量与系统估计的目标基数,反映滤波器对目标进入和消失的响应速度。
- 右下子图展示 OSPA 误差随时间的变化曲线,量化反馈跟踪的稳定性和准确性。