基于BOT测量模型的粒子PHD多目标跟踪滤波系统
项目介绍
本项目在MATLAB环境下实现了一个基于序贯蒙特卡罗(SMC)方法的概率假设密度(PHD)滤波器,专门用于解决方位角(Bearing-Only Tracking, BOT)多目标跟踪问题。在BOT场景下,传感器仅能获取目标相对于观测点的角度信息,而缺失距离信息,这构成了典型的非线性、非奇异观测挑战。系统通过粒子滤波模拟多目标强度的演化,能够在存在高密度杂波和目标检测概率不确定的复杂背景下,动态估计目标的数量及其运动状态。
功能特性
- 强非线性处理:通过SMC方法有效应对方位角观测模型带来的高度非线性问题。
- 目标数目自适应估计:PHD滤波器无需预先知道目标数量,能够通过粒子总权重实时估算场景中的活跃目标总数。
- 杂波与漏检鲁棒性:内置泊松杂波模型和检测概率修正机制,在信噪比较低的环境下依然保持跟踪稳定性。
- 目标生存与新生模拟:系统支持目标在航迹中间时刻产生和消失,能够自动处理目标的进入与离开。
- 闭环性能评估:集成了真值对比、粒子分布可视化以及均方根误差(RMSE)分析功能。
使用方法
- 启动MATLAB软件。
- 将项目文件所在的目录设置为当前工作文件夹。
- 运行主函数脚本。
- 程序将自动生成仿真数据并执行滤波算法,最后弹出包含轨迹对比、目标数估计、粒子云图和误差曲线的四格分析图表。
系统要求
- 运行环境:MATLAB R2016b 或更高版本。
- 必备工具箱:Statistics and Machine Learning Toolbox(用于高斯噪声生成及泊松分布采样)。
功能实现逻辑
本项目模拟了一个持续60秒的动态场景,核心逻辑分为以下几个阶段:
一、 场景生成
系统模拟了3个具有不同生命周期的目标,分别在第1步、第10步和第25步进入场景。目标采用等速(CV)运动模型,状态向量包含二维位置和二维速度。观测器位于坐标原点,生成带有高斯噪声的方位角测量值,同时在观测空间内随机加入服从泊松分布的杂波。
二、 SMC-PHD 滤波过程
- 预测步:
将上一时刻存活的粒子通过状态转移矩阵进行一步预测,并叠加过程噪声。
根据预设的存活概率降低原有粒子的权重。
在每一时刻生成300个新生粒子,均匀分布在预设的监测区域内,赋予较低的初始权重,以识别新出现的目标。
- 更新步:
针对当前时刻获取的所有观测值,计算每个粒子对应的似然得分。
应用PHD更新公式,将权重分为漏检部分和观测更新部分。
观测更新过程结合了杂波密度密度修正,通过计算所有粒子对某一观测值的贡献总和来归一化粒子权重。
- 状态提取:
对更新后的粒子权重求和,四舍五入得到目标数量估计值。
采用基于权重的空间聚类策略:寻找权重最大的粒子作为目标候选,并在提取后排除该粒子周围30米范围内的其他粒子权重,循环往复直至提取到预估数量的目标状态。
- 重采样:
执行系统重采样(Systematic Resampling)以克服粒子退化问题。
重采样后的粒子总数根据估计的目标数量动态调整,确保每个目标平均分配约800个粒子,并限制总粒子数在100至5000之间。
算法关键点与实现细节
- 运动模型:采用4维线性状态方程,描述目标在X-Y平面上的位置与速度演化。
- 观测模型:实现非线性方位角函数,利用atan2处理观测值与预测值之间的角度差,并进行角度环绕修正(-pi到pi)。
- 权值演化:PHD强度更新逻辑严格遵循多目标贝叶斯滤波框架,处理了检测概率Pd小于1的情况。
- 误差度量:使用最近邻匹配原则计算估计点与真实点之间的距离误差,并以此计算全过程的均方根误差(RMSE)。
- 可视化机制:
轨迹图:对比黑色真值轨迹与红色估计位置点。
目标数图:展示真实目标数量与滤波器估计总权重之间的拟合度。
粒子分布图:直观展示滤波最后一帧时粒子在目标周围的聚集情况。
误差分析图:量化展示跟踪精度随时间的变化。