项目介绍
本项目是一个基于MATLAB开发的三维多目标跟踪(MOT)仿真系统。该系统专注于从包含随机干扰和检测缺失的观测数据中,通过运动建模和统计关联算法,实现对多个运动目标轨迹的精确提取、跟踪与状态估计。该系统集成了物理机理建模、滤波算法、数据关联策略以及完整的轨迹生命周期管理,能够处理三维空间中的复杂目标交叉、目标进入与消失以及噪声环境下的稳健跟踪。
功能特性
- 多目标动态建模:支持三维空间内的恒速(CV)惯性运动模型。
- 鲁棒的数据关联:采用全局最近邻(GNN)算法,结合马氏距离门限,有效区分目标与杂波。
- 高精度滤波优化:基于卡尔曼滤波框架,实现对目标三维位置和速度的最优状态估计。
- 轨迹生命周期管理:具备轨迹自动起始与自动终止功能,通过设置连续检测与连续丢失阈值,实现目标的灵活准入与清退。
- 性能定量评估:集成 OSPA(Optimal Sub-Pattern Assignment)精度指标和 RMSE(均方根误差)分析,提供科学的算法评价体系。
- 动态可视化交互:同步展示三维真值路径、原始观测点以及预测修正后的轨迹,支持实时动态观察。
使用方法
- 环境准备:确保计算机已安装 MATLAB 软件(推荐 R2016b 或更高版本)。
- 参数配置:根据需求修改主脚本顶部的系统参数(如检测概率 Pd、杂波率、关联门限等)。
- 执行仿真:运行主程序,系统将自动生成模拟目标并开启三维仿真窗口。
- 结果查看:
- 三维动态窗口:实时显示目标真值(黑色虚线)、观测点(红色散点)及跟踪轨迹(彩色实线及其 ID 标签)。
- 性能评估图:仿真结束后,系统会自动弹出包含 OSPA 距离趋势和位置 RMSE 趋势的两组图表。
系统要求
- 软件支持:MATLAB R2016b 及以上。
- 核心算法依赖:基础 MATLAB 环境(无需额外安装复杂的工具箱)。
- 硬件建议:具备基础图形渲染能力的通用电脑即可运行。
实现逻辑说明
仿真系统按照时间步迭代运行,核心逻辑严格遵循以下流程:
- 参数初始化:设置采样间隔 $dt=1.0$,定义目标的检测概率 $Pd$ 为 0.95。
- 状态空间构建:状态向量包含三维位置和三维速度,使用 $6 times 6$ 的状态转移矩阵 $F$ 描述其恒速运动规律。
- 观测模拟:生成包含三个具有代表性路径(直线运动、交叉运动、变速/异点运动)的目标,并向真值添加高斯噪声和符合泊松分布的随机杂波。
- 预测阶段:利用卡尔曼滤波预测方程,结合过程噪声协方差矩阵 $Q$,对现有轨迹的下一状态进行外推。
- 数据关联(GNN):
1. 计算所有存活轨迹的预测观测值与当前时刻所有真实观测点之间的马氏距离。
2. 利用预设的关联门限(gate_size)排除物理上不可能匹配的观测点。
3. 执行最小权指派算法,建立轨迹与观测之间的一对一最优对应关系。
1. 对于成功关联到观测点的轨迹,利用观测噪声 $R$ 和当前观测值修正预测状态,更新误差协方差。
2. 对于未关联到观测点的轨迹(模拟漏检),仅保留预测结果并记录丢失次数。
1. 轨迹确认:对于新出现的观测点,建立候选轨迹。仅当连续检测次数达到阈值(3次)时,才将其转为确认轨迹。
2. 轨迹终止:当已确认轨迹的连续丢失次数超过阈值(5次)时,系统自动将其从活跃列表中移除。
- 指标统计与可视化:每一帧计算一次 OSPA 指标和 RMSE 误差,并实时刷新三维绘图区域。
核心算法与细节分析
- 简单指派算法(Greedy Assignment):代码实现了一种高效的贪心指派逻辑。通过在代价矩阵(马氏距离矩阵)中寻找全局最小值点,锁定制胜关联对,并在每次锁定后清空对应的行和列,确保了关联的唯一性且降低了计算复杂度。
- OSPA 距离计算逻辑:这是一种针对多目标跟踪环境设计的综合评价函数。它将评价过程分为位置误差度量和势误差(目标数量不匹配)度量。通过设置截断系数 $c$ 和阶数 $p$,OSPA 能够同时捕捉到跟踪精度和目标漏检/虚警对系统性能的影响。
- 三维滤波建模:$H$ 观测矩阵明确了系统仅能直接观测到位置信息,速度信息是通过滤波器的状态反馈机制平滑推导出来的。这种设计使系统即便在观测频繁波动的情况下,也能给出相对平滑的轨迹输出。
- 实时可视化技术:利用 cla 清屏机制和实时绘图指令,将复杂的六维状态投影至三维视觉空间,直观展示了算法处理杂波和维持目标 ID 稳定性(ID Consistency)的能力。