目录
前言
📚一、研究背景
🧭 二、概要
🎯 三、Motivation
🧩 四、系统概述
1. BaseVersion 格式化(跨数据集统一)
2. 第一阶段:BEV 视角匹配
3. 第二阶段:RV / 图像补全匹配
4. Kalman Filter 状态更新
5. 输出轨迹 + 运动指标
🔬 五、技术细节(Technical Details)
🧮 1. Ro_GDIoU(Robust Generalized Distance IoU)
🧠 2. Motion Metrics(轨迹运动指标)
⚙️ 3. 系统实现效率
✅ 六、总结与贡献(Conclusion)
l论文地址:2409.16149
代码地址:GitHub – megvii-research/MCTrack: [IROS2025]This is the offical implementation of the paper “MCTrack: A Unified 3D Multi-Object Tracking Framework for Autonomous Driving”
前言

当前的tracknig算法通常只在某一类数据集上能取得较好的效果,但是缺乏泛化性。如上图中detzero,fastpoly等tracking算法只在某个数据集上达到sota,而不能同时在所有数据集上取得sota。论文提出了MCTrack,同时在KITTI, nuScenes和 Waymo数据集上都取得了sota的性能。
此外,由于不同数据集之间的数据格式差异较大,需要花费很多时间来将tracking算法适配到不同的数据集上。论文对于不同数据集提出了一个统一的perception的输出形式,称为BaseVersion,使研究人员能将精力放在算法优化上,而不是处理不同数据集的格式上。
最后对于目前tracking metric的一些局限性,论文提出了一些新的metric,用于评估motion information(速度,加速度)。因为tracking不仅需要能够提供检测框正确的链接,同时也要能为下游任务提供更准确的速度,加速度等信息。
📚一、研究背景
在自动驾驶系统中,3D多目标跟踪(3D Multi-Object Tracking, 3D MOT) 是理解动态环境的关键任务,依赖于高质量的检测器与跟踪算法,将目标在三维空间中持续跟踪。
现有挑战包括:
检测器差异性大,难以跨数据集部署统一跟踪器;
关联误差大,尤其在稀疏点云、遮挡、雷达等低信噪场景下;
缺乏运动信息评估指标,现有指标(如 MOTA、HOTA)主要已关注空间位置精度,未能反映对后续规划/预测任务的支持性。
🧭 二、概要
MCTrack 是一个统一、高效、轻量的 3D 多目标跟踪框架,能够适配多种数据集与感知模态。其创新点包括:
统一 BaseVersion 表达,兼容 KITTI、nuScenes、Waymo;
二阶段跟踪框架(BEV + RV) 提升鲁棒性;
Ro_GDIoU 匹配代价函数,兼顾外形与中心距离;
运动指标(Motion Metrics),评估轨迹的动态质量;
在多个 benchmark 上达到 SOTA 精度,速度可达 0.01 秒/帧(单核 CPU)。
🎯 三、Motivation
多数据集适配性差:现有 3D MOT 系统大多为特定数据集定制,缺乏通用性。
传统匹配方式不健壮:IoU 或中心距离在实际场景下表现不稳定。
现有评估指标不足:无法衡量轨迹的物理合理性和可预测性。
缺乏端到端轻量系统:部署效率低,难以满足实时自动驾驶要求。
MCTrack 的目标是构建一个能在多数据集上无缝部署,能以轻量方式提供高质量轨迹与运动信息的系统。
🧩 四、系统概述

MCTrack 的整体流程可分为以下 5 步:
1. BaseVersion 格式化(跨数据集统一)
所有检测器输出(无论 KITTI、nuScenes、Waymo)转为统一坐标系下的标准表示。
包括坐标变换、时间戳校正、尺寸归一。
2. 第一阶段:BEV 视角匹配
在鸟瞰图(BEV)下执行初步跟踪匹配。
使用轻量级 Kalman Filter + Ro_GDIoU 成本函数。
3. 第二阶段:RV / 图像补全匹配
在 Range View(如雷达投影)或图像上进行第二轮关联。
弥补 BEV 匹配时漏检、遮挡带来的错误。
4. Kalman Filter 状态更新
轨迹滤波器不仅维护位置,还联合预测速度、加速度与角速度等运动状态。
5. 输出轨迹 + 运动指标
输出高质量轨迹,并评估其运动平滑性、合理性,为下游任务提供支持。
🔬 五、技术细节(Technical Details)
🧮 1. Ro_GDIoU(Robust Generalized Distance IoU)
一种新型匹配代价函数:

兼容不同尺度物体(如 Waymo 中小型车辆、行人);
稳定性高,在遮挡或稀疏点云下仍能准确匹配;
可调参数,支持任务特定优化。
🧠 2. Motion Metrics(轨迹运动指标)
MCTrack 首次引入以下指标评估轨迹输出的动态合理性:
| 指标 | 说明 |
|---|---|
| 平均速度误差 | 与真实目标速度的差值均值 |
| 加速度抖动 | 轨迹加速度变化是否平滑 |
| 角速度变化 | 尤其对旋转目标的跟踪表现评价 |
| Motion Consistency | 是否在不同帧之间保持物理连续性 |
⚙️ 3. 系统实现效率
单核 CPU 推理时间 ≈ 0.01 秒/帧;
几乎不依赖重模型或深度学习推理;
支持 plug-and-play 接入主流检测器(如 CenterPoint、SECOND、PV-RCNN)。
✅ 六、总结与贡献(Conclusion)
MCTrack 提供了一个统一、高效且可扩展的 3D 多目标跟踪系统,在多个 benchmark 上实现领先性能,贡献包括:
统一的 BaseVersion 数据表示,增强系统跨数据集兼容性;
高效的双阶段匹配机制(BEV + RV),提升跟踪精度与鲁棒性;
Ro_GDIoU 代价函数,增强匹配的区分性;
引入 Motion Metrics,为评估轨迹可用于下游任务提供标准;
极高的运行效率,适配实时自动驾驶场景部署。
在使用或复现 MCTrack 系统时,你需要准备的数据包括以下几类内容:
🗂 一、数据类型概览
| 数据类别 | 内容说明 | 来源 |
|---|---|---|
| 传感器原始数据 | 点云(LiDAR)、图像(可选)、雷达(可选)等 | KITTI、nuScenes、Waymo |
| 3D 检测器输出 | 每帧中所有目标的3D包围盒(包括位置、大小、方向、类别、得分等) | CenterPoint、PV-RCNN 等 |
| 标注数据(可选) | 用于评估的 Ground Truth(3D box + track ID) | 数据集自带 |
| 时间与位姿信息 | 车辆自车位姿(ego pose)、每帧时间戳,用于全局坐标对齐 | 数据集自带 |
📁 二、关键数据内容说明
1. 3D检测器结果(Detection Results)
MCTrack 是一个 tracking-by-detection 系统,因此必须提供每帧的3D检测器输出。
每一帧的检测框信息通常包括:
x, y, z:目标中心点的3D坐标(可能是车辆坐标系或世界坐标系)
w, l, h:目标的长宽高
yaw:朝向角
score:置信度
class:类别(如 car, pedestrian 等)
格式示例(KITTI风格):
txt
复制编辑
frame_id, x, y, z, w, l, h, yaw, score, class
MCTrack 支持多种检测器,如 CenterPoint、PV-RCNN、SECOND 等,建议先使用已公开的检测器和预处理脚本。
2. BaseVersion 格式转换
论文中指出 MCTrack 使用了BaseVersion来统一不同数据集的检测结果格式。
你需要确保:
检测框坐标被转换到全局世界坐标系;
不同数据集的帧率、坐标系统一标准化(例如 KITTI 是相机坐标系,nuScenes 是车体坐标系);
检测器输出被转换为统一 .txt 或 .json 格式,方便后续处理。
若你使用作者提供的 GitHub 仓库,通常会包含
convert_kitti.py/convert_nuscenes.py等脚本。
3. 时间与姿态数据
帧时间戳:确保帧间顺序与速度估计一致;
自车位姿(pose):可用于将检测框变换到世界坐标系;
通常包含 [rotation matrix | translation vector] 或四元数;
在 nuScenes、Waymo 中自带每帧 pose 信息。
4. Ground Truth(用于评估)
如果你要验证系统性能或训练某些模块,则需要 Ground Truth,包括:
每个物体在每帧的真实 3D box;
track ID 用于计算 MOTA/HOTA;
与预测轨迹对齐用于评估 Motion Metrics。
🛠 三、准备流程建议(参考)
下载原始数据集(建议使用KITTI或nuScenes);
运行公开的3D检测器,保存检测结果为标准格式;
使用MCTrack提供的预处理脚本,统一转换为 BaseVersion;
验证检测框是否对齐在世界坐标系中;
准备 ground truth(如果要评估);
运行 MCTrack 跟踪主程序。
✅ 附加建议
推荐数据集优先级:KITTI(最小/最快) → nuScenes(标准) → Waymo(庞大复杂);
推荐检测器:CenterPoint(开源+高精度+作者默认支持);
作者官方实现中提供了多种数据的样例和路径说明(例如 data/kitti_tracking/training/label_02/ 和 detection/ 文件夹结构);
若你没有自己的检测器结果,可使用作者提供的预生成数据或 benchmark。














暂无评论内容