一句话理解数据标注

数据标注 = 给传感器数据打上"正确答案",让神经网络学会看懂世界——标注的质量直接决定了模型性能的上限。

自动驾驶是一个数据驱动的领域。顶级算法团队和普通团队之间的差距,很多时候不是模型架构的差距,而是数据质量和规模的差距。一个好的标注系统能自动、高效、精确地为海量传感器数据生成标签。


🎯 标注类型与技术规范

2D 标注

Bounding Box(2D 检测框)

  • 格式:$(x_{\text{min}}, y_{\text{min}}, x_{\text{max}}, y_{\text{max}})$ 或 $(x_c, y_c, w, h)$
  • 属性:类别(car, pedestrian, cyclist…)、遮挡程度(0~3)、截断程度
  • 要求:框必须紧贴目标轮廓,边缘落在目标可见像素的外边界上

语义/实例分割(Segmentation)

  • 语义分割:每个像素分配一个类别标签(道路、天空、车辆……)
  • 实例分割:同一类别下区分不同个体(车 A vs. 车 B)
  • 格式:多边形(polygon)或 RLE(run-length encoding)
  • 标注精度要求:像素级,通常边缘误差 < 2 像素

关键点标注(Keypoint)

  • 用于人体姿态估计、车辆关键点(车轮、车顶角点)
  • 通常标注 17 个人体关键点(COCO)或 4~8 个车辆角点
  • 需要明确关键点的可见性标注

3D 标注

3D Cuboid(3D 检测框)

  • 7 自由度:$(x, y, z, w, h, l, \theta)$
    • $(x, y, z)$:框的中心坐标(通常在自车坐标系中)
    • $(w, h, l)$:宽度、高度、长度(米)
    • $\theta$:绕 $z$ 轴的偏航角(yaw)
  • 标注要求:
    • 框必须紧密包围物体,不遮挡其他目标
    • 朝向角必须与目标实际行进方向一致
    • 相邻帧之间保持框的尺寸稳定

点云标注(Point Cloud Annotation)

  • 在 LiDAR 点云中标注 3D 框
  • 通常需要在多个视角(BEV、前视图、侧视图)同时调整框的位置
  • 挑战:远距离点云稀疏,标注者难以判断目标边界
  • 常用辅助:将点云投影到图像上,利用图像语义辅助标注

BEV 标注

  • 直接在鸟瞰图上标注道路元素(车道线、路沿、停止线)
  • 格式:折线或多边形,每个点对应 BEV 网格中的位置
  • 精度要求:厘米级(相对于地图坐标系)

时序标注

自动驾驶数据是视频序列而非单帧图像。时序标注包含:

  • Tracking ID:为每个目标分配跨帧的持久化 ID
  • 生命周期标注:标记目标"出现→持续→消失"的帧区间
  • 属性变化:跟踪目标属性的变化(如车辆刹车灯亮/灭)
  • 遮挡推理:被遮挡时 ID 不变,基于运动模型推断位置

时序一致性是标注中最大的挑战。标注工具需支持插值传播:标注者只需标注关键帧,中间帧由光流或跟踪模型自动传播,人工修正。


🔧 常用标注工具

商业平台

平台支持标注类型特点定价模式
Scale AI2D/3D/Cuboid/Polygon/Lidar全球最大自动驾驶标注平台,曾服务于 Waymo/GM按量计费
Labelbox2D/3D/Video/Text支持模型辅助标注(Model-assisted labeling)订阅制
Supervisely2D/3D/Video开源功能丰富,支持插件扩展混合模式
Segments.aiPoint Cloud/2D/3DLiDAR 点云标注体验好按量计费

开源工具

工具语言特点
CVATPython/TSIntel 开源,功能全面,支持自动标注插件
LabelImgPython轻量级 2D 框标注,适合快速启动
LabelStudioPython多模态标注(文本、图像、音频)
Point Labeler (ROS)C++/Python基于 RViz 的 3D 点云标注,ROS 生态
annotatorPythonFacebook 开源的 3D 标注工具

企业级标注的架构

工业标注系统通常包含这几个模块:

  1. 数据管理:PB 级存储、去重、分布统计
  2. 预标注服务:用已有模型做初始标注,人工只需修正
  3. 标注队列:自动分发任务到不同标注员,做交叉验证
  4. 质量审核:自动检查标注一致性,抽样人工审核
  5. 版本管理:每次标注修改都形成新版本,可回溯

🧪 数据增强

数据增强是扩充训练集、提升泛化性的低成本手段。

几何增强

用于 2D/3D 检测的常用几何增强:

增强方法2D3D说明
随机翻转(Horizontal Flip)左右镜像,注意交通规则(左舵/右舵)
随机缩放模拟目标尺寸变化
随机旋转2D: ±10°, 3D: ±45°(yaw)
随机裁剪模拟部分可见
颜色抖动亮度/对比度/饱和度扰动
3D 平移/旋转(全局)模拟不同泊车位置
点云 dropout模拟远距离或遮挡

场景级增强

  • Object Paste:从其他场景中裁剪目标,粘贴到当前场景
  • Ground Truth Sampling:在训练时随机将 GT 目标插入到 BEV 空间(PointPainting 做法)
  • 场景混合:将两个场景的 BEV 特征混合(MixUp / CutMix 的 BEV 版本)

传感器仿真增强

  • 天气/光照模拟:使用 GAN 或 ControlNet 改变图像的天气、光线
  • 传感器噪声注入:模拟相机运动模糊、LiDAR 多径效应

🤖 现代标注范式:从人工到自动化

范式一:Auto-Labeling(自动标注)

Auto-Labeling 使用预训练模型自动生成伪标签,人工仅做修正和审核。

典型流程:

  1. 初步检测:使用已有 3D 检测模型在无标注数据上生成初始框
  2. 时序优化:利用 tracking 和 smoother(如 EKF)跨帧优化框的尺寸和位置稳定性
  3. 多传感器交叉验证:LiDAR 3D 框投影到图像上,用 2D 检测模型验证一致性
  4. 人工审核:抽样检查伪标签质量,纠正系统性错误

标杆工作

  • Waymo AutoLabel:使用离线大模型和时序优化生成高质量 3D 标签,据称在一项研究中替代了 97% 的人工标注
  • Tesla 的数据引擎:在车端运行影子模式,遇到模型不确定性高的场景即上传数据,自动标注后加入训练集

范式二:NeRF / 3DGS 数据生成

Neural Radiance Field(NeRF)和 3D Gaussian Splatting(3DGS)可以从稀疏图像重建出可控场景,然后:

  1. 新视角生成:在重建场景中放置虚拟相机,生成任意视角的图像——训练视角鲁棒的感知模型
  2. 场景编辑:在重建场景中移动/插入/删除物体,自动更新对应的 3D 标注
  3. Corner Case 合成:手动编辑场景(如增加一辆横穿马路的车),生成在真实世界中罕见的危险场景

三种范式对比

维度纯人工标注Auto-LabelingNeRF/3DGS 生成
成本低(一次构建,无限生成)
精度中高(需人工审核)中(受重建质量限制)
规模10^5 帧级10^7 帧级理论上无限
可控性高(可编辑场景)
成熟度✅ 成熟✅ 工业标配⚠️ 快速发展中

📊 主流数据集

多模态数据集

数据集规模传感器标注类型特点
nuScenes1000 scenes, 1.4M frames6 cam + 5 radar + 1 LiDAR3D bbox, 23 cls, 8 attrs最流行的学术数据集,场景覆盖广
Waymo Open1150 scenes, 230K frames5 cam + 5 LiDAR3D bbox, 4 cls高密度 LiDAR,单帧 100+ 目标
Argoverse 21000 scenes7 cam + 2 LiDAR3D bbox, 地图提供 HD Map,支持预测任务
Lyft Level 5366 scenes7 cam + 3 LiDAR3D bbox早期开放数据集,现已被 nuScenes 覆盖

纯视觉/Camera-only 数据集

数据集规模标注类型特点
ONCE1M frames (100K 标注)3D bbox, 5 cls大规模、多天气、多时段
SODA10M10M frames (20K 标注)2D bbox, 6 cls巨大规模,半监督评测基准
BDD100K100K frames2D bbox, lane, drivable area多样化路况,美国多地

🎯 Corner Case 挖掘

Corner Case(边缘场景)是提升自动驾驶系统安全性的关键。常见挖掘方法:

基于模型的挖掘

  1. 不确定性估计:使用 MC-Dropout 或 Ensemble 方法估计模型预测的不确定性,高不确定性样本优先标注
  2. OOD 检测:检测模型遇到分布外(Out-of-Distribution)样本,如未见过类型的施工区域
  3. 闭环 Failure Detection:在仿真器中运行规划器,检测何时规划失败(碰撞、急刹、偏离车道),回溯对应的传感器场景

基于场景的挖掘

  1. 场景检索:在庞大数据集中检索特定场景(雨夜、十字路口、施工区)
  2. 路采回放:持续记录路试数据,自动筛选出有"惊险事件"的片段(接管、急刹、近距离 cut-in)
  3. 对抗生成:使用生成模型对现有场景添加扰动(如插入新障碍物),测试模型鲁棒性

数据飞轮

最好的数据策略是一个闭环的数据飞轮

每一轮循环都在不断拓宽模型的能力边界,减少未知场景。


📚 延伸阅读

  1. Caesar, H. et al. “nuScenes: A multimodal dataset for autonomous driving.” CVPR, 2020.
  2. Sun, P. et al. “Scalability in Perception for Autonomous Driving: Waymo Open Dataset.” CVPR, 2020.
  3. Mao, J. et al. “One Million Scenes for Autonomous Driving: ONCE Dataset.” NeurIPS, 2021.
  4. Han, J. et al. “SODA10M: A Large-Scale 2D Self/Semi-Supervised Object Detection Dataset.” ECCV, 2022.
  5. Yang, Z. et al. “UniSim: A Neural Closed-Loop Simulator for Autonomous Driving.” arXiv, 2023.
  6. Mildenhall, B. et al. “NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis.” ECCV, 2020.
  7. Kerbl, B. et al. “3D Gaussian Splatting for Real-Time Radiance Field Rendering.” SIGGRAPH, 2023.