1. 课程导入
自动驾驶系统的能力上限,很大程度上由数据决定。一辆测试车每天可能产生数 TB 的原始数据,包括多路摄像头视频、激光雷达点云、毫米波雷达目标、IMU/GNSS 定位、CAN 总线信号以及各类事件触发记录。这些数据经过采集、回传、解析、清洗、去重、标注、质检、入库,最终才成为可用于感知、预测、规划控制模型训练与验证的高价值资产。数据工程,就是支撑这条链路稳定运转的“基础设施”。
如果把自动驾驶研发比作一座工厂,算法模型是生产线,那么数据就是原材料。原材料中混杂着重复片段、无效帧、标定异常、时间戳错乱、传感器遮挡、场景冗余等问题,直接投喂给模型,不仅浪费算力与标注成本,还会引入偏差,导致模型在真实道路上的表现不可控。因此,数据清洗、去重与质量治理不是附属环节,而是决定数据资产价值密度的核心工序。
一、数据工程全景:从车端到训练平台
自动驾驶数据工程通常覆盖五个阶段:车端采集与触发、数据回传与存储、解析与预处理、清洗去重与质量治理、标注与数据集交付。每个阶段都有明确的输入、输出和质量指标。下图展示了从车辆传感器到训练数据集的整体数据流与治理位置。
图中紫色区域是本课程的核心关注点。它位于解析预处理之后、标注与数据集构建之前,承担“过滤噪声、压缩冗余、量化质量”的职责。治理做得好,后续标注成本可下降 30% 以上,训练迭代周期也会明显缩短。
二、清洗、去重与质量治理的定义
数据清洗是指识别并处理不符合使用要求的原始数据,例如时间戳跳变、传感器丢帧、图像过曝或全黑、点云缺失、标定文件与数据不匹配等。清洗的目标是让每一帧数据“可用且可信”。
数据去重是指发现并合并高度相似或完全重复的数据片段。自动驾驶数据中,车辆在直道上匀速行驶、长时间等红灯、同一路段反复采集,都会产生大量近似帧。去重既包括精确重复(文件级、帧级哈希一致),也包括语义重复(场景高度相似但像素不完全一致)。
质量治理是更高层的体系化工作,涵盖质量指标定义、自动评分、问题归因、治理流程、数据血缘和持续监控。它不只处理单条数据,而是让整个数据资产池保持可度量、可追溯、可优化。
一句话理解:清洗解决“脏”,去重解决“冗”,质量治理解决“乱”。三者共同决定数据资产的价值密度。
三、核心方法流程与关键参数
一个典型的治理流水线通常按以下顺序执行,每一步都会输出统计指标,便于监控和回溯。
- 数据接入与解析:读取 rosbag、mcap、视频、点云等格式,统一时间基准。
- 完整性检查:校验帧数、时间戳连续性、传感器同步偏差。
- 无效帧过滤:剔除全黑、过曝、遮挡、点云稀疏、定位跳变等帧。
- 重复检测:先做文件级哈希,再做帧级感知哈希或特征相似度。
- 质量评分:综合清晰度、同步误差、标定置信度、场景稀有度打分。
- 场景均衡与采样:按场景标签控制比例,避免直道数据淹没稀有场景。
- 输出与血缘记录:生成清洗报告、去重清单、质量标签和版本号。
下面是一段简化的治理配置示例,用于说明常见参数如何组织:
pipeline:
input: s3://av-data/raw/2024-06-01/
output: s3://av-data/curated/v1.3/
checks:
timestamp_gap_ms: 50 # 相邻帧最大允许间隔
sync_tolerance_ms: 20 # 多传感器同步容差
min_lidar_points: 8000 # 单帧点云最少点数
image_dark_ratio: 0.85 # 过暗像素占比阈值
dedup:
file_hash: true
frame_phash_threshold: 6 # 感知哈希汉明距离阈值
semantic_similarity: 0.92 # 语义相似度阈值
quality:
min_score: 0.65 # 低于该分数不进入标注
rare_scene_boost: 1.2 # 稀有场景加权
四、案例场景:一次典型的治理收益
某团队在城区 NOA 项目中,原始数据约 120 万帧。未治理前,直接抽样送标,标注成本高且模型对“加塞”“施工区”等场景召回偏低。引入治理流水线后,先过滤约 18% 的无效帧,再通过感知哈希与语义相似度去除约 27% 的重复片段,最后按场景标签重采样。结果送标数据降至约 62 万帧,标注成本下降约 40%,而稀有场景占比从 3% 提升到 11%,模型在关键场景上的召回率提升了 6 个百分点。
| 治理环节 | 主要对象 | 典型指标 | 常见工具/方法 |
|---|---|---|---|
| 清洗 | 无效帧、异常帧 | 无效帧率、时间戳跳变数 | 规则引擎、统计阈值 |
| 去重 | 重复片段、近似帧 | 去重率、相似度分布 | 哈希、特征向量、聚类 |
| 质量治理 | 整体数据资产 | 质量分、场景覆盖率 | 评分模型、血缘系统 |
五、常见误区与复盘
误区一:只做文件级去重。文件哈希只能发现完全相同的文件,无法处理“同一路段多次采集”的语义重复,去重率往往被严重低估。
误区二:清洗阈值一刀切。不同城市、天气、传感器配置下,合理阈值差异很大。阈值过严会误删有效数据,过松则治理形同虚设。
误区三:治理一次就结束。数据分布会随采集范围、车型、季节变化,质量治理必须持续监控和迭代,而不是一次性脚本。
复盘时建议重点关注三个问题:治理前后数据量变化是否合理?被剔除的数据是否有抽样人工复核?治理后的数据集在模型指标上是否真正带来提升?只有把治理动作和下游效果关联起来,数据工程才不是“自嗨式清洗”。
六、学习目标与课程结构
本课程围绕“能定义、能实现、能评估、能优化”四个层次展开。学习完成后,你应当能够:
- 说清自动驾驶数据工程的整体链路,以及清洗去重与质量治理在其中的位置;
- 独立设计并实现帧级清洗、文件级与语义级去重流程;
- 定义质量指标,构建可监控、可追溯的治理体系;
- 结合实战项目,完成从原始数据到高质量数据集的端到端交付。
课程结构分为四个模块:基础与全景(数据工程链路、治理定义与指标)、清洗与去重技术(规则、哈希、特征、聚类、场景挖掘)、质量治理体系(评分、血缘、版本、监控)、实战项目(多传感器数据治理流水线搭建与效果评估)。每个模块都配有可运行的代码示例和真实场景数据。
实战项目预告:你将拿到一批包含摄像头、LiDAR 和 CAN 信号的原始数据,完成解析、清洗、去重、质量评分与数据集发布,并用治理前后的数据分别训练一个小型感知模型,对比指标差异。项目会贯穿课程始终,帮助你把这套工程能力真正落地。