- 自动驾驶
- 数据集
- 计算机视觉
【免费下载链接】waymo-open-dataset
Waymo Open Dataset
Waymo Open Dataset 官方仓库中的 LOG.md 记录了从 2021 年 3 月到 2025 年 4 月期间数据集与代码库的历次版本更新。本文以该更新日志为骨架,梳理 Perception(感知)、Motion(运动)、E2E Driving(端到端驾驶)、Object Asset、Sim Agents 等数据集与挑战的演进路径,并结合仓库内实际源码(proto 定义、指标实现、教程与配置文件)逐条验证每条更新的落地细节,帮助研究者和参赛者在面对不同版本数据、指标与提交格式时快速定位对应代码与使用方法。
一、更新日志总览:数据集版本与配套代码的协同演进
从 LOG.md 可以清晰看到 Waymo Open Dataset 的演进遵循"数据集新版本 + 配套代码(指标、proto、教程)"的节奏,主要里程碑包括:
| 时间 | 主要发布内容 | 关联文档/教程 |
|---|---|---|
| 2025-04 | E2E Driving 数据集扩增至 2,037 训练 runs;新增 1,505 runs 测试集与 479 runs 验证集(含 rater feedback 标签与场景标签);发布 Rater Feedback Score 计算代码 | tutorial_vision_based_e2e_driving.ipynb |
| 2025-03 | 发布 E2E Driving 训练集(相机图像 + 高层指令);Motion 指标修复、Sim Agents 指标扩展、交通灯违规指标新增 | end_to_end_driving_data.proto |
| 2024-10 | Motion 数据集 v1.3.0:改善交通灯信息的时间对齐 | — |
| 2024-04 | 允许使用公开开源模型的冻结预训练权重;提交 metadata 新增必填字段 | motion_submission.proto 等 |
| 2024-03 | Perception v1.4.3 / v2.0.1:改进 3D 语义分割标签;Motion v1.2.1:发布相机 token 与 embedding;行为分桶 mAP 逻辑改进 | tutorial_womd_camera.ipynb |
| 2023-12 | pip 包 v1.6.1:修复 WOSAC 碰撞/离路有效性检查 bug | — |
| 2023-08 | 发布超过 120 万个对象中心资产(vehicle/pedestrian),含点云序列、相机 patches 与 2D panoptic 分割 | tutorial_object_asset.ipynb |
| 2023-03 | Perception v2.0.0(模块化格式)与 v1.4.2;Motion v1.2.0(LiDAR 数据);四大 2023 挑战配套代码 | tutorial_v2.ipynb 等 |
| 2022-12 / 2022-06 | Perception v1.4.1 / v1.4.0:2D video panoptic segmentation 标签改进与引入 | tutorial_2d_pvps.ipynb |
| 2022-04/05 | v1.3.x:3D Camera-Only 检测挑战(LET 指标、测试集、num_top_lidar_points_in_box字段) | tutorial_camera_only.ipynb |
| 2022-03 | Perception v1.3.0:3D 语义分割、2D/3D keypoint 标签与指标、Occupancy Flow 挑战、soft mAP | tutorial_3d_semseg.ipynb |
| 2021-09 | Motion v1.1:车道连接、车道边界、车道邻居 | lane_neighbors_and_boundaries.md |
| 2021-03 | 发布 Motion 数据集(10 万+ segments 轨迹与 3D 地图);实时检测挑战说明 | latency/README.md |
需要说明的是,日志中某些条目链接指向 waymo.com 官网或 GitHub 仓库,本文只依据当前仓库内的实际代码展开,官方站点的外部链接不在此赘述。
二、2025 年更新:End-To-End Driving 数据集与 Rater Feedback 指标
2.1 E2E 数据集结构(v1.0.0)
2025 年 3 月日志发布了 E2E Driving 训练集,2025 年 4 月日志进一步给出完整规模:
- 训练集:扩充 200 runs,总计2,037 runs;
- 测试集:新增1,505 runs可供下载;
- 验证集:479 runs,并且首次附带 rater feedback 标签与场景标签(scenario tags),供参赛者验证模型表现。
E2E 数据集的格式定义在 end_to_end_driving_data.proto 中,核心消息为E2EDFrame:
frame:复用 WOD 的 Frame,只填充context.name(帧唯一标识)、context.camera_calibrations(所有相机标定)以及frame.images(相机图像);future_states/past_states:4Hz 采样、未来(0, 5s]与过去(-4s, 0]的 ego 状态,由EgoTrajectoryStates承载,含pos_x/pos_y/pos_z、vel_x/vel_y、accel_x/accel_y;其中未来位置 x、y 是预测目标,z 仅用于可视化;intent:EgoIntent.Intent枚举,表示当前时刻 ego 车辆的驾驶意图,取值包括GO_STRAIGHT、GO_LEFT、GO_RIGHT(以及UNKNOWN);preference_trajectories:带人工评分(rater score)的未来轨迹,仅对部分帧有效,最多 3 条,评分范围为[0, 10](包含端点);其他帧中该字段被标记为无效,评分为 -1 或留空。
坐标系统约定(源码注释):右手坐标系,+x = 前进、+y = 左、+z = 上,原点位于 ego 车辆后轴中点。
2.2 Rater Feedback Score 指标实现
2025 年 4 月日志的关键代码更新是公开了 Rater Feedback Score 的计算代码,并更新了 Colab 教程演示用法。对应实现位于 rater_feedback_utils.py,核心函数为get_rater_feedback_score,其输入输出约定(批大小B、推理轨迹数I、人工标注轨迹数P、时间步T):
inference_trajectories: [B, I, T, 2] # 模型推理轨迹(仅 x、y) inference_probs: [B, I] # 各轨迹的概率 rater_specified_trajectories: [B, P, T, 2] # 人工标注参考轨迹 rater_feedback_labels: [B, P] # 人工评分(0~10) init_speed: [B] # 初始速度,用于缩放阈值关键可调参数与默认值:
| 参数 | 默认值 | 含义 |
|---|---|---|
lat_lng_threshold_multipliers | (1.0, 4.0) | 横/纵向阈值乘子 |
decay_factor | 0.1 | 信任区域之外的分数衰减因子 |
frequency | 4(Hz) | 轨迹采样频率 |
length_seconds | 5(s) | 轨迹长度 |
default_num_of_rater_specified_trajectories | 3 | 每帧默认使用的人工轨迹数 |
minimum_score_outside_trust_region | 4.0 | 未完全落入信任区域的推理轨迹的最低分 |
实现要点(可从源码确认):
- 预处理:通过
process_rater_specified_trajectories将人工轨迹在"轨迹条数"和"waypoint 数"两个维度上进行截断或补全(末尾重复),统一为[B, P, T, 2]与[B, P]; - 信任区域(trust region):以人工标注轨迹为基准,在第 3s 与第 5s 两个时刻(
_THRESHOLD_TIME_SECONDS = [3, 5])用位移向量推导纵向方向、90° 逆时针旋转得到横向方向,将推理轨迹与人工轨迹的差向量分别投影得到横/纵向距离; - 阈值随速度缩放:
get_lat_lng_thresholds用np.clip(0.5 + 0.5 * (init_speed - 1.4) / (11 - 1.4), 0.5, 1.0)生成随初始速度线性缩放的因子,乘以基础阈值_BASE_THRESHOLDS = [1.0, 1.8]; - 打分:横/纵归一化距离取最大后,信任区域内分数平直(指数为
max(normalized_distances - 1.0, 0),衰减为decay_factor^exponent);未完全落入信任区域的推理轨迹分数被裁剪到minimum_score_outside_trust_region以上;最终按inference_probs加权求和得到每帧的rater_feedback_score; - 可视化:设置
output_trust_region_visualization=True时,返回信任区域的中心、宽高与朝向,便于调试。
该指标的评价逻辑在 end_to_end_driving_metrics.proto 的E2EDMetrics中定义:按场景簇(construction、intersection、pedestrian、cyclist、multi_lane_maneuver、single_lane_maneuver、cut_in、foreign_object_debris、special_vehicle、spotlight、others)分别给出 rater feedback 分数,最终average_score为各簇均值;另附ade_at_three_sec与ade_at_five_sec(按 rater 最高分 ground truth 计算每帧 ADE 再取平均)。对应的提交格式见 end_to_end_driving_submission.proto:
TrajectoryPrediction:5s @ 4Hz,共 20 个 waypoint,首个 waypoint 在 t+0.25s,末个在 t+5s,只含 x、y;FrameTrajectoryPredictions.frame_name必须与E2EDFrame.frame.context.name一致;E2EDChallengeSubmission需要为测试集每一帧都给出预测,并填写submission_type(E2ED_SUBMISSION)、account_name、unique_method_name、authors、affiliation、description等元数据。
2.3 教程中的实际用法
tutorial_vision_based_e2e_driving.ipynb 中给出了两条使用路径:一是官方评测服务器会运行 rater feedback metric 并更新排行榜(教程中同时提供了简化 ADE 实现便于参赛者自评);二是直接调用from waymo_open_dataset.metrics.python import rater_feedback_utils,从data_list[i].preference_trajectories读取人工轨迹与评分(注意先判断preference_score != -1以过滤无效帧),再调用get_rater_feedback_score计算。
三、2025 年 3 月更新:指标修复与新数据集配套
2025 年 3 月日志在发布 E2E 训练集的同时,还包含几项与指标代码库相关的修复与新增,均可在当前仓库中找到对应实现:
- Motion Prediction 指标边界修复:修复了 box heading 在个别边界情况下发生翻转(flip)的问题,对应实现位于 motion_metrics.cc;
- Sim Agents 指标扩展:允许模拟维度(simulated dimensions)与更灵活的场景时间配置,使 Scenario Generation 挑战能够复用同一套指标;配套教程 tutorial_scenario_gen.ipynb 与 tutorial_sim_agents.ipynb;
- TTC 指标车辆过滤:time-to-collision(TTC)指标原本对"对象是车辆"做了若干假设,因此对非车辆对象计算不正确;本次为 Sim Agents 与 Scenario Generation 引入车辆过滤。在 challenge_2024_config.textproto 中可以看到
time_to_collision使用 10-bin 直方图(min_val: 0.0, max_val: 5.0, additive_smoothing_pseudocount: 0.1)且independent_timesteps: true,底层计算函数为 interaction_features.py 中的compute_time_to_collision_with_object_in_front; - 交通灯违规指标(traffic light violation):当车辆在路口闯红灯时触发,同样仅过滤车辆。核心实现在 traffic_light_features.py 的
compute_red_light_violation:判定条件为"对象所在车道有交通信号灯 AND 信号灯处于 STOP 状态 AND 对象越过信号灯停止线",使用 bernoulli 分布作为指标聚合方式(challenge_2024_config.textproto 中metametric_weight: 0.0); - Occupancy Flow 指标临时禁用:由于 tensorflow-graphics 已弃用,
occupancy_flow_metrics.py中的 warp 相关函数被临时禁用(直接抛出NotImplementedError),日志说明将在适配 TF 2.13+ 后重新启用。这一点在 occupancy_flow_metrics.py 第 324-331 行的注释中有明确说明。
四、2024 年更新:规则放宽、提交元数据与相机数据
4.1 2024 年 4 月:公开预训练权重与必填元数据字段
- 规则放宽:挑战规则允许使用公开开源模型的冻结预训练权重进行训练(含预训练、联合训练或微调),以便提交挑战结果;
- 提交元数据新增必填字段:在 motion、sim agents、occupancy flow 三者的 submission proto 中新增一组字段,缺失会导致服务器返回错误。以 end_to_end_driving_submission.proto 为参照(同类字段同样出现在 motion/sim_agents/occupancy_flow 的 submission proto 中),包括:
uses_public_model_pretraining:是否使用了公开开源 LLM/VLM 进行预训练(必填);public_model_names:使用的开源模型名称与配置;num_model_parameters:模型参数量估算,格式为整数加乘数后缀(如"200K",来自集合[K, M, B, T, ...])(必填)。
4.2 2024 年 3 月:Perception v1.4.3/v2.0.1 与 Motion v1.2.1
- 3D 语义分割标签改进:重点改善 motorcyclist 类别的 ground truth 质量,对应挑战教程见 tutorial_3d_semseg.ipynb;
- Motion v1.2.1 相机数据:发布 8 个相机(front、front-left、front-right、side-left、side-right、rear-left、rear-right、rear)的图像token 与 VQ-GAN 预训练模型提取的图像 embedding,而非原始图像;与 LiDAR 一致,覆盖每个 9s 窗口的前 1s;配套教程与读取工具见 tutorial_womd_camera.ipynb 与 womd_camera_utils.py;
- 相机数据时间对齐修复:1.2.1 版本为 LiDAR 数据提供新的时间戳与每时间步更新的位姿变换矩阵,修复了部分帧中 LiDAR 与 roadgraph 输入未对齐的问题;
- mAP 行为分桶改进:Motion Prediction 挑战的 mAP 指标背后的行为分桶(behavior bucketing)逻辑被改进,源码层面体现在 motion_metrics.cc 的 P/R 统计与轨迹类型处理(如把
RIGHT_U_TURN并入RIGHT_TURN桶),以及 motion_metrics.proto 中的配置结构; - Sim Agents 相关指标调整:运动学指标改用更平滑的速度/加速度估计;修复高架桥(over-passes)场景下 offroad 计算的边界情况;重新校准指标配置与 composite metrics 权重;simulated collision 与 offroad 以发生率(rates)而非似然值(likelihoods)上报。
4.3 2024 年 10 月:Motion v1.3.0
该次更新只有一项内容:改善交通灯信息的时间对齐(time alignment)。
五、2023 年更新:模块化数据集、对象资产与四大挑战
5.1 2023 年 8 月:Object Asset 数据集
发布大规模对象中心资产数据集,包含超过 120 万张图像与 LiDAR 观测,对象类别为车辆与行人,来源于 Perception Dataset v2.0.0:
- LiDAR 特征:多传感器(5 个相机 + 顶部 LiDAR)提取的 3D 点云序列,支持 3D 对象形状重建;所有车辆对象还通过点云形状配准提供了精化的 box 位姿;
- 相机特征:
most_visible_camera的相机 patch 序列、对应相机上投影的 LiDAR 返回、逐像素相机射线信息,以及支持对象 NeRF 重建的自动标注 2D panoptic 分割; - 配套教程与读取代码:tutorial_object_asset.ipynb、object_asset.py、object_asset_codec.py(含编解码与测试)。
5.2 2023 年 3 月:Perception v2.0.0 与 v1.4.2
- v2.0.0 模块化格式:引入 modular 格式,用户可按需选择下载组件;包含 v1.4.2 除地图外的全部特性;教程见 tutorial_v2.ipynb,配套实现位于 v2/(如 camera_image.py、lidar.py、pose.py 等);
- v1.4.2:2D video panoptic segmentation 标签新增"每像素被多少相机覆盖"的 mask(
num_top_lidar_points_in_box之类的覆盖字段见 dataset.proto);新增 3D 地图数据(以 polyline/polygon 形式)——车道连接、边界、邻居的细节见 lane_neighbors_and_boundaries.md。
5.3 2023 年 3 月:Motion v1.2.0
- 为训练集新增 LiDAR 数据(每个 9s 窗口的前 1s),配套教程 tutorial_womd_lidar.ipynb 与读取工具 womd_lidar_utils.py;
- 地图数据新增 driveway 入口,并调整部分道路边缘边界的高度估计;
- tf_examples 格式的最大地图点数提升至30k、采样间距降至1.0m,使地图覆盖与 scenario proto 格式对齐,并新增了 scenario proto 到 tf_examples 的转换代码(见 scenario_conversion.cc)。
5.4 四大 2023 挑战配套代码
- Sim Agents Challenge:tutorial_sim_agents.ipynb,指标代码在 sim_agents_metrics/;
- Pose Estimation Challenge:tutorial_keypoints.ipynb,指标定义见 pose_estimation_metric.md;
- 2D Video Panoptic Segmentation Challenge:tutorial_2d_pvps.ipynb;
- Motion Prediction Challenge:tutorial_motion.ipynb。
5.5 2023 年 12 月:pip 包 v1.6.1(WOSAC 指标修复)
修复了 WOSAC 指标中碰撞(collision)与离路(offroad)的有效性检查 bug,并修改了当对象无效时 collision/offroad 检查的行为。
六、2022 年更新:感知数据集三大标签能力落地
2022 年是 Perception 数据集标签能力快速扩充的一年,围绕 2022 年挑战展开:
- 2022 年 6 月(v1.4.0):新增2D video panoptic segmentation标签及配套代码,后续在 v1.4.1(2022 年 12 月)改进标签质量,教程见 tutorial_2d_pvps.ipynb;
- 2022 年 5 月(v1.3.2):改进 3D 语义分割标签的时间一致性并修复误标点;修复 2D keypoint 标签的图像裁剪问题;在 dataset.proto 中新增
num_top_lidar_points_in_box字段用于 3D Camera-Only 检测挑战; - 2022 年 5 月(part 2):发布 3D Camera-Only 检测挑战教程 tutorial_camera_only.ipynb,在 Python metrics ops 中支持计算3D-LET-APL(教程
Compute Metrics一节),并修复 Occupancy and Flow 挑战的指标实现 bug; - 2022 年 4 月(v1.3.1):为 3D Camera-Only 检测挑战新增LET-3D-APL 与 LET-3D-AP指标;新增 80 段 20 秒相机测试片段;在 label.proto 的 LiDAR 标签元数据中新增z 轴速度与加速度;修复 dataset.proto 中
projected_lidar_labels的不一致;Occupancy and Flow 挑战默认配置从 aggregate waypoints 切换为subsampled waypoints(见 occupancy_flow_metrics.proto); - 2022 年 3 月(v1.3.0):新增3D 语义分割标签/教程/指标、2D 与 3D keypoint标签/教程/指标(仅行人提供 2D↔3D 对应关系)、Occupancy Flow 预测挑战教程与工具,并为 Motion Prediction 挑战新增soft mAP指标——soft mAP 在 motion_metrics.cc 中体现为:当已为该组联合轨迹找到真阳性时跳过后续重复正样本,仅按置信度排序取一次测量,避免同一轨迹被重复计数。
七、2021 年更新:Motion 数据集的诞生与车道拓扑增强
7.1 2021 年 3 月:Motion 数据集发布
Waymo Open Dataset 首次扩展出Motion 数据集:包含超过 10 万 segments的对象轨迹与对应的 3D 地图。仓库同步补充了该数据集的支持代码,并新增实时检测挑战(real-time detection)的说明与示例,见 latency/README.md(配套的 latency 评测代码位于 latency/ 目录,含 wod_latency_evaluator.py)。
7.2 2021 年 9 月:Motion v1.1——车道连接、边界与邻居
v1.1 版本为地图数据加入了车道拓扑信息,完整技术细节见 lane_neighbors_and_boundaries.md,要点如下:
- 车道连接(lane connections):每条车道携带一组进入/离开该车道的车道 ID 列表;
- 车道边界(lane boundaries):每条车道关联左右两侧的边界要素(boundary features),并标明该边界生效的车道区段;
- 车道邻居(lane neighbors):每条车道关联左右相邻车道——即智能体可能变道进入的车道;
- 同时改进时间戳精度与stop sign 的 Z 值。
八、从日志看仓库定位:如何使用这些版本信息
- 快速定位代码:当需要复现某一指标或读取某一格式数据时,可先对照本表的时间与版本号,再到对应 proto 与 metrics 目录确认字段与实现。例如读取 E2E 验证集需处理
preference_trajectories中的preference_score,而 rater feedback 的计算入口统一在 rater_feedback_utils.py; - 注意版本差异:Occupancy Flow 的 warp 函数因 tensorflow-graphics 弃用被临时禁用(TF 2.13+ 环境),若需该功能应同步旧版本代码;Motion v1.2.1 之前的相机数据存在 LiDAR/roadgraph 时间对齐问题,使用时建议取用最新版本;
- 提交格式自查:2024 年 4 月起 motion/sim agents/occupancy flow(以及后续 E2E)的提交元数据中
uses_public_model_pretraining与num_model_parameters为必填,缺失将导致服务器拒绝; - 指标口径:Sim Agents 的 collision/offroad 以发生率上报、TTC 与交通灯违规指标仅对车辆对象计算,这些口径差异直接影响结果解读与参赛调优。
九、总结
从 2021 年发布 Motion 数据集,到 2022 年补齐感知标签(panoptic 分割、keypoint、3D 语义分割、Occupancy Flow),再到 2023 年模块化 v2 格式与对象资产、2024 年相机 embedding 与提交元数据规范化,直至 2025 年 E2E 端到端驾驶数据集与 Rater Feedback 指标的公开,LOG.md 完整呈现了 Waymo Open Dataset 从"感知为主"走向"感知 + 运动 + 端到端驾驶"的多模态演进路线。对研究者和挑战赛参赛者而言,这份日志既是版本导航,也是快速定位仓库内配套代码(proto、指标、教程、配置文件)的索引。
- 自动驾驶
- 数据集
- 计算机视觉
【免费下载链接】waymo-open-dataset
Waymo Open Dataset
相关推荐
MiniMax H3 API调用详解:3行代码实现文本转视频,支持多模态上下文输入
MiniMax H3 API调用详解:3行代码实现文本转视频,支持多模态上下文输入 MiniMax H3是一个通用的全模态生成系统,支持对文本、图像、视频和音频
大模型多模态媒体生成视频音频Waymo Open Dataset 自动驾驶感知系统开发实战指南
Waymo Open Dataset 自动驾驶感知系统开发实战指南 Waymo Open Dataset 作为业界领先的自动驾驶数据集,为开发者提供了丰富的传感
自动驾驶数据集计算机视觉Yolov13自动驾驶数据集:Waymo Open Dataset训练实践
Yolov13自动驾驶数据集:Waymo Open Dataset训练实践 项目概述 Yolov13作为新一代实时目标检测模型,通过超图增强的自适应视觉感知技术
人工智能计算机视觉深度学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考