3. 公开数据集概览

在自动驾驶研发中,公开数据集既是算法训练的“燃料”,也是评测基准的“标尺”。不同数据集诞生于不同时期、不同采集平台和不同任务目标,因此它们在传感器配置、标注粒度、场景分布和评测协议上差异显著。理解这些差异,才能避免“用错数据集、训错模型、评错指标”的常见工程问题。本节从传感器配置、标注能力、场景覆盖和典型用途四个维度,对五个主流数据集进行横向梳理。

核心原理:数据集差异来自采集平台与任务定位

公开数据集的本质是“带标注的真实驾驶观测记录”。其价值取决于三件事:传感器是否同步且标定准确、标注是否覆盖目标任务的监督信号、场景分布是否贴近目标落地环境。KITTI 诞生于早期车载视觉研究,以双目相机和激光雷达为核心,场景集中在德国城市与郊区;nuScenes 首次大规模引入 360° 相机、5 个毫米波雷达和 32 线激光雷达,强调多模态融合与 3D 检测;Waymo Open Dataset 依托 Waymo 车队,传感器冗余度高、标注质量严格,适合研究高精度 3D 检测与跟踪;Argoverse 强调高精地图与轨迹预测,提供车道级地图和运动预测标注;BDD100K 则以大规模、多样化的 2D 图像和视频为主,覆盖天气、昼夜、城市与乡村,适合 2D 感知与行为理解。

主流自动驾驶公开数据集:传感器配置与任务定位对比 数据集 核心传感器 标注能力 典型任务 场景特点 KITTI 2011 · 德国 双目相机 + 64线LiDAR GPS/IMU 2D/3D 框、光流 语义分割、深度 3D 检测、光流估计 视觉里程计 城市/郊区 白天为主 nuScenes 2019 · 波士顿/新加坡 6×相机 360° + 32线LiDAR 5×毫米波雷达 3D 框、属性、跟踪ID 语义地图、雷达点 多模态 3D 检测 跟踪、预测 城市密集 昼夜/雨天 Waymo Open 2019 · 美国多城市 5×相机 + 64线LiDAR 多雷达、高精定位 3D 框、跟踪、分割 2D 框、关键点 高精度 3D 检测 跟踪、域适应 多城市/多天气 标注严格 Argoverse 2019 · 迈阿密/匹兹堡 7×相机 + 2×LiDAR 高精地图、GPS/IMU 轨迹、车道线、地图 3D 框、运动预测 轨迹预测 地图构建、检测 城市复杂路口 高精地图覆盖 BDD100K 2018 · 美国多地 单目相机 + GPS/IMU 无 LiDAR 2D 框、车道线、可行驶区域 语义分割、行为标签 2D 检测、分割 行为预测、域适应 大规模多样 天气/昼夜/乡村

方法流程:如何根据任务选择数据集

选择数据集不是“越大越好”,而是“越匹配越好”。建议按以下流程决策:

  1. 明确任务类型:2D 检测/分割优先 BDD100K;3D 检测优先 KITTI、nuScenes、Waymo;轨迹预测优先 Argoverse;多模态融合优先 nuScenes。
  2. 检查传感器模态:若算法依赖毫米波雷达,nuScenes 是少数提供雷达点云的大规模数据集;若只做视觉,BDD100K 和 KITTI 更轻量。
  3. 评估场景分布:目标落地城市若多雨雾,nuScenes 和 BDD100K 的恶劣天气样本更有价值;若关注高精地图,Argoverse 提供车道级地图。
  4. 核对标注格式与评测协议:不同数据集的 3D 框定义、坐标系、类别体系不同,跨数据集训练需做类别映射和坐标对齐。
  5. 考虑算力与存储: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 感知与鲁棒性测试。实际工程中,常采用“预训练用大规模数据集、微调用目标场景数据集、评测用标准基准”的组合策略,而非单一数据集包打天下。