自动驾驶的概率3D多目标跟踪
Hsu-kuang Chiu1、Antonio Prioletti2、Jie Li2、Jeannette Bohg1
1斯坦福大学, 2丰田研究院
2019年NeurIPS人工智能驾驶奥林匹克研讨会NuScenes跟踪挑战赛一等奖。
摘要
我们提出了一种在线跟踪方法,该方法在2019年NeurIPS人工智能驾驶奥林匹克研讨会上举办的NuScenes跟踪挑战赛[1]中获得一等奖。我们的技术报告可在arxiv上查阅。我们还提供了源代码和逐步说明,以重现验证集性能数据。
定量结果
验证集结果
下表显示了我们在NuScenes验证集上的定量跟踪结果:总体平均多目标跟踪准确率(AMOTA)和每个目标类别的单独AMOTA,与跟踪挑战赛官方AB3DMOT[2]基准结果进行比较。AB3DMOT[2]基准和我们的方法使用相同的MEGVII[3]检测结果作为跟踪系统的输入。有关完整验证集结果(包括我们实现的AB3DMOT[2]基准和我们的消融实验),请参阅我们在arxiv上的论文。
方法 | 总体 | 自行车 | 公交车 | 汽车 | 摩托车 | 行人 | 拖车 | 卡车 |
---|---|---|---|---|---|---|---|---|
AB3DMOT[2] | 17.9 | 0.9 | 48.9 | 36.0 | 5.1 | 9.1 | 11.1 | 14.2 |
我们提出的方法 | 56.1 | 27.2 | 74.1 | 73.5 | 50.6 | 75.5 | 33.7 | 58.0 |
我们可以看到,我们的方法显著提高了AMOTA,特别是对于较小的目标,如行人。
测试集结果
NuScenes跟踪挑战赛组织者分享了前3名参与者和官方AB3DMOT[2]基准的测试集性能,如下表所示。AB3DMOT[2]基准和我们的方法使用相同的MEGVII[3]检测结果作为跟踪系统的输入。完整的跟踪挑战赛排行榜可在跟踪挑战赛网页上查看。
排名 | 团队名称 | 总体 |
---|---|---|
1 | StanfordIPRL-TRI (我们的) | 55.0 |
2 | VV_team | 37.1 |
3 | CenterTrack | 10.8 |
基准 | AB3DMOT[2] | 15.1 |
定性结果
以下图表是官方AB3DMOT[2]基准和我们方法的跟踪结果的鸟瞰图可视化。对于这个场景,我们在同一个图中绘制了同一场景不同时间步的所有汽车边界框。不同的颜色代表不同的跟踪ID。我们还显示了地面真值标注和输入检测结果作为参考。更多可视化结果,请参阅我们在arxiv上的论文。
AB3DMOT[2] | 我们的方法 |
---|---|
输入检测 | 地面真值 |
---|---|
我们可以看到,我们的方法能够更好地跟踪做急转弯的目标。
使用我们的代码重现验证集结果
- 选择一个工作目录YOUR_WORKING_DIR(我的是/juno/u/hkchiu),下载我们的代码并设置环境。在以下命令中,将/juno/u/hkchiu替换为YOUR_WORKING_DIR:
cd /juno/u/hkchiu
git clone https://github.com/eddyhkchiu/mahalanobis_3d_multi_object_tracking
conda create --name probabilistic_tracking python=3.6
conda activate probabilistic_tracking
cd mahalanobis_3d_multi_object_tracking
pip install -r requirements.txt
- 选择一个目录YOUR_NUSCENES_DEVKIT_DIR(我的是/juno/u/hkchiu)并下载nuscenes devkit。在以下命令中,将/juno/u/hkchiu替换为YOUR_NUSCENES_DEVKIT_DIR:
cd /juno/u/hkchiu
git clone https://github.com/nutonomy/nuscenes-devkit.git
cd nuscenes-devkit
pip install -r setup/requirements.txt
- 将nuscenes devkit添加到Python路径中。在以下命令中,将/juno/u/hkchiu替换为YOUR_NUSCENES_DEVKIT_DIR。请注意,每次激活conda环境后都需要运行此命令:
export PYTHONPATH="${PYTHONPATH}:/juno/u/hkchiu/nuscenes-devkit/python-sdk"
-
选择一个目录YOUR_NUSCENES_DATA_DIR(我的是/juno/u/hkchiu/dataset/nuscenes),然后从NuScenes下载网页下载并解压mini、trainval和test数据。请注意,您需要在那里创建一个账户。zip文件的总大小约为360GB,解压步骤还需要相同数量的额外磁盘空间。
-
选择一个目录YOUR_NUSCENES_DETECTION_DIR(我的是/juno/u/hkchiu/dataset/nuscenes_new),然后从NuScenes跟踪网页下载并解压MEGVII[3]的检测结果。
-
编辑我们的代码:在main.py、evaluate_nuscenes.py、get_nuscenes_stats.py中,将"/juno/u/hkchiu/dataset/nuscenes_new/"替换为YOUR_NUSCENES_DETECTION_DIR,将"/juno/u/hkchiu/dataset/nuscenes/"替换为YOUR_NUSCENES_DATA_DIR。
-
运行我们提出方法的跟踪代码和评估代码(跟踪需要15分钟,评估需要90分钟):
python main.py val 2 m 11 greedy true nuscenes results/000008;
python evaluate_nuscenes.py --output_dir results/000008 results/000008/val/results_val_probabilistic_tracking.json > results/000008/output.txt
- 你也可以运行我们实现的AB3DMOT[2]基线方法:
python main.py val 0 iou 0.1 h false nuscenes results/000001;
python evaluate_nuscenes.py --output_dir results/000001 results/000001/val/results_val_probabilistic_tracking.json > results/000001/output.txt
- 或者你可以使用以下脚本运行所有跟踪方法(我们实现的AB3DMOT[2]、我们的消融方法和我们最终提出的方法):
source run.sh
- (可选)你还可以运行get_nuscenes_stats.py来查看我们如何使用训练集数据来估计卡尔曼滤波器的协方差矩阵。(10分钟)我已经将结果硬编码到covariance.py文件中,因此运行get_nuscenes_stats.py不是运行上述跟踪和评估命令所必需的。
python get_nuscenes_stats.py > nuscenes_train_stats.txt
致谢
-
我们在AB3DMOT[2]的开源代码基础上实现了我们的方法。
-
我们使用了MEGVII[3]的检测结果作为我们跟踪方法的输入。
-
丰田研究院("TRI")提供资金协助作者进行研究,但本文仅反映作者的观点和结论,不代表TRI或任何其他丰田实体。
参考文献
- [1] "nuScenes:用于自动驾驶的多模态数据集",Holger Caesar, Varun Bankiti, Alex H. Lang, Sourabh Vora, Venice Erin Liong, Qiang Xu, Anush Krishnan, Yu Pan, Giancarlo Baldan, 和 Oscar Beijbom, arXiv:1903.11027, 2019。
- [2] "3D多目标跟踪的基线", Xinshuo Weng 和 Kris Kitani, arXiv:1907.03961, 2019。
- [3] "用于点云3D目标检测的类平衡分组和采样", Benjin Zhu, Zhengkai Jiang, Xiangxin Zhou, Zeming Li, Gang Yu, arXiv:1908.09492, 2019。
引用我们的论文
@ARTICLE{chiu2020probabilistic,
title={用于自动驾驶的概率3D多目标跟踪},
author={Chiu, Hsu-kuang and Prioletti, Antonio and Li, Jie and Bohg, Jeannette},
journal={arXiv preprint arXiv:2001.05673},
year={2020}
}
相关论文
ICRA 2021
我们还有一篇ICRA 2021的后续论文:用于自动驾驶的概率3D多模态、多目标跟踪,该论文提出了一个深度学习模型,可以
- 学习如何融合2D图像和3D LiDAR点云的特征,以捕获物体的外观和几何信息,
- 学习一个结合马哈拉诺比斯距离和特征距离的度量用于数据关联,以及
- 学习何时从未匹配的目标检测初始化新轨迹。
@ARTICLE{chiu2021probabilistic,
title={用于自动驾驶的概率3D多模态、多目标跟踪},
author={Chiu, Hsu-kuang and Li, Jie and Ambrus, Rares and Bohg, Jeannette},
journal={IEEE国际机器人与自动化会议(ICRA)},
year={2021}
}
ICRA 2024
在我最新的ICRA 2024论文:用于自动驾驶的基于可微分多传感器卡尔曼滤波的概率3D多目标协同跟踪中,我们提出了一种新颖的算法:DMSTrack,用于自动驾驶中的协同跟踪。我们的算法在V2V4Real数据集上与最先进的方法相比,跟踪精度提高了17%,同时通信成本仅为0.037倍。V2V4Real是全球首个可用的真实世界车对车感知数据集,包含3D跟踪基准。我们的代码可在此页面获取。
@ARTICLE{chiu2024probabilistic,
title={用于自动驾驶的基于可微分多传感器卡尔曼滤波的概率3D多目标协同跟踪},
author={Chiu, Hsu-kuang and Wang, Chien-Yi and Chen, Min-Hung and Smith, Stephen F.},
journal={IEEE国际机器人与自动化会议(ICRA)},
year={2024}
}