3. 公开数据集概览
在自动驾驶研发中,公开数据集既是算法训练的“燃料”,也是评测基准的“标尺”。不同数据集诞生于不同时期、不同采集平台和不同任务目标,因此它们在传感器配置、标注粒度、场景分布和评测协议上差异显著。理解这些差异,才能避免“用错数据集、训错模型、评错指标”的常见工程问题。本节从传感器配置、标注能力、场景覆盖和典型用途四个维度,对五个主流数据集进行横向梳理。
核心原理:数据集差异来自采集平台与任务定位
公开数据集的本质是“带标注的真实驾驶观测记录”。其价值取决于三件事:传感器是否同步且标定准确、标注是否覆盖目标任务的监督信号、场景分布是否贴近目标落地环境。KITTI 诞生于早期车载视觉研究,以双目相机和激光雷达为核心,场景集中在德国城市与郊区;nuScenes 首次大规模引入 360° 相机、5 个毫米波雷达和 32 线激光雷达,强调多模态融合与 3D 检测;Waymo Open Dataset 依托 Waymo 车队,传感器冗余度高、标注质量严格,适合研究高精度 3D 检测与跟踪;Argoverse 强调高精地图与轨迹预测,提供车道级地图和运动预测标注;BDD100K 则以大规模、多样化的 2D 图像和视频为主,覆盖天气、昼夜、城市与乡村,适合 2D 感知与行为理解。
方法流程:如何根据任务选择数据集
选择数据集不是“越大越好”,而是“越匹配越好”。建议按以下流程决策:
- 明确任务类型:2D 检测/分割优先 BDD100K;3D 检测优先 KITTI、nuScenes、Waymo;轨迹预测优先 Argoverse;多模态融合优先 nuScenes。
- 检查传感器模态:若算法依赖毫米波雷达,nuScenes 是少数提供雷达点云的大规模数据集;若只做视觉,BDD100K 和 KITTI 更轻量。
- 评估场景分布:目标落地城市若多雨雾,nuScenes 和 BDD100K 的恶劣天气样本更有价值;若关注高精地图,Argoverse 提供车道级地图。
- 核对标注格式与评测协议:不同数据集的 3D 框定义、坐标系、类别体系不同,跨数据集训练需做类别映射和坐标对齐。
- 考虑算力与存储:Waymo Open Dataset 数据量达 TB 级,nuScenes 约 300GB,KITTI 仅约 12GB,需按团队资源取舍。
工程提示:跨数据集训练时,务必先做“类别对齐表”。例如 KITTI 的“Car”与 nuScenes 的“vehicle.car”语义相近,但 nuScenes 还细分“vehicle.emergency”“vehicle.truck”,直接合并会导致类别不平衡。
案例/场景:三个典型选型实例
场景一:城市道路 3D 目标检测。若目标是训练一个多模态 3D 检测器,nuScenes 是首选:它提供 6 相机 360° 覆盖、32 线 LiDAR 和 5 个毫米波雷达,且标注了 23 类目标与跟踪 ID。Waymo Open Dataset 精度更高,但数据获取需申请,且传感器配置与自车平台差异大,迁移成本高。
场景二:轨迹预测与行为规划。Argoverse 提供高精地图和 5 秒历史轨迹 + 3 秒未来轨迹,是轨迹预测的标准基准。其地图包含车道线、人行横道、停止线等矢量要素,适合研究地图编码与交互建模。
场景三:2D 感知与域适应。BDD100K 拥有 10 万段视频、1 亿帧图像,覆盖晴天、雨天、雪天、夜间、城市、乡村。若算法需要在不同天气和光照下保持鲁棒,BDD100K 的多样性远胜 KITTI。但需注意其标注为 2D 框和图像级标签,无法直接用于 3D 任务。
误区与复盘:常见选型陷阱
误区一:用 KITTI 指标代表所有 3D 检测能力。KITTI 仅 7481 个训练样本,且场景以白天、郊区为主。在 KITTI 上刷到高 AP 的模型,迁移到 nuScenes 的夜间、雨天场景往往大幅下降。建议至少在一个大规模多模态数据集上验证。
误区二:忽略标注坐标系差异。KITTI 使用相机坐标系(x 右、y 下、z 前),nuScenes 使用自车坐标系(x 前、y 左、z 上),Waymo 使用全局坐标系。直接混合训练会导致 3D 框方向错误。
误区三:把 BDD100K 当 3D 数据集用。BDD100K 没有 LiDAR 和 3D 框,只有 2D 框和图像级标签。若任务需要深度或 3D 位置,必须换用 KITTI、nuScenes 或 Waymo。
数据集关键参数速查清单
| 数据集 | 发布年份 | 传感器 | 样本规模 | 核心标注 | 适用任务 |
|---|---|---|---|---|---|
| KITTI | 2011 | 双目 + 64线LiDAR | 约 15K 帧 | 2D/3D 框、光流、深度 | 3D 检测、视觉里程计 |
| nuScenes | 2019 | 6相机 + 32线LiDAR + 5雷达 | 1000 场景 × 20s | 3D 框、跟踪、语义地图 | 多模态检测、跟踪、预测 |
| Waymo Open | 2019 | 5相机 + 64线LiDAR | 1150 场景 × 20s | 3D 框、跟踪、2D 框 | 高精度 3D 检测、域适应 |
| Argoverse | 2019 | 7相机 + 2LiDAR + 高精地图 | 113 场景 × 15s | 轨迹、车道线、地图 | 轨迹预测、地图构建 |
| BDD100K | 2018 | 单目相机 + GPS/IMU | 100K 视频 | 2D 框、车道线、可行驶区域 | 2D 检测、分割、域适应 |
# 以 nuScenes 为例:加载并检查传感器配置
from nuscenes.nuscenes import NuScenes
nusc = NuScenes(version='v1.0-trainval', dataroot='/data/nuscenes', verbose=True)
sample = nusc.sample[0]
print('相机数量:', len(sample['cams']))
print('LiDAR 通道:', sample['lidar_path'])
print('雷达通道:', sample['radar_path'])
# 输出示例:
# 相机数量: 6
# LiDAR 通道: samples/LIDAR_TOP/xxx.pcd.bin
# 雷达通道: samples/RADAR_FRONT/xxx.pcd
总结来看,KITTI 适合快速验证与教学,nuScenes 适合多模态融合与城市复杂场景,Waymo Open Dataset 适合追求高精度标注与大规模训练,Argoverse 适合轨迹预测与地图相关研究,BDD100K 适合 2D 感知与鲁棒性测试。实际工程中,常采用“预训练用大规模数据集、微调用目标场景数据集、评测用标准基准”的组合策略,而非单一数据集包打天下。