3. 数据质量维度
在自动驾驶数据工程中,“数据质量”并不是一个单一指标,而是一组相互制约、需要分别度量的质量属性。感知模型、预测模块、规划控制以及离线仿真,对数据的关注点并不相同:有的更在意标注框是否准确,有的更在意场景是否覆盖长尾,有的则关心同一目标在连续帧中的轨迹是否一致。因此,工程上通常把数据质量拆解为六个核心维度:完整性、准确性、一致性、时效性、代表性和平衡性。理解它们的定义、度量方式与相互冲突,是构建数据质量看板和准入规则的前提。
核心思想:数据质量不是“好/坏”二值判断,而是多维向量。一个数据集可能标注准确率极高,但代表性不足;也可能场景覆盖全面,却存在大量漏标。质量治理的目标是让每个维度都有可量化指标、可追溯阈值和可执行的修复动作。
一、六个质量维度的定义与度量
完整性关注“该有的信息是否缺失”。在自动驾驶数据中,完整性既包括文件级完整(如图片、点云、标注文件、标定文件是否齐全),也包括对象级完整(如目标是否被漏标、遮挡区域是否被合理忽略)。常用度量包括:文件缺失率、帧缺失率、漏标率、属性字段缺失率。例如漏标率可定义为人工复核发现的漏标目标数除以该帧真实目标总数。
准确性关注“记录的值与真实值是否一致”。它覆盖标注框位置误差、类别错误、属性错误、时间戳偏差、标定参数误差等。度量方式通常包括:IoU 阈值下的类别正确率、边界框中心点误差、尺寸误差、朝向角误差、时间戳抖动。对于激光雷达点云,还要关注点云与图像的外参对齐误差。
一致性关注“同一事实在不同来源、不同时间、不同标注员之间是否统一”。典型问题包括:同一目标在连续帧中 ID 跳变、图像与点云标注不一致、不同标注批次采用不同标注规范、同一场景重复采集导致重复样本。度量指标包括:跨模态一致率、ID 切换次数、重复样本比例、标注规范符合率。
时效性关注“数据是否在需要的时间窗口内可用且有效”。自动驾驶数据具有强时间属性:交通标志可能变化、道路施工可能结束、天气和光照具有季节性。度量包括:数据采集到入库的延迟、数据年龄分布、过期场景占比、时间戳同步误差。对于在线仿真和回放,时效性还意味着传感器时间同步精度。
代表性关注“数据集是否覆盖真实运行域”。如果训练数据只来自晴天城市主干道,那么模型在雨天、夜间、乡村道路上的表现会显著下降。度量方式包括:运行域维度覆盖率、场景类别分布与目标域分布的 KL 散度或 JS 散度、长尾场景出现频次、地理区域覆盖度。
平衡性关注“不同类别、不同场景、不同难度样本之间的比例是否合理”。它和代表性相关但不同:代表性强调覆盖,平衡性强调分布。度量包括:类别不平衡比、难易样本比例、不同天气/时段样本占比、正负样本比。极端不平衡会导致模型偏向多数类,因此常用重采样、加权损失或分层采样来缓解。
二、质量维度之间的关系与冲突
六个维度并非彼此独立。提高准确性往往需要更多人工复核,可能降低时效性;追求代表性需要主动采集长尾场景,可能引入更多噪声,影响一致性;强调平衡性可能对多数类欠采样,反而降低整体代表性。因此,质量治理需要明确当前业务目标:若用于安全回归测试,应优先保证代表性和完整性;若用于在线数据闭环,则时效性和一致性更关键。
三、度量流程与工程落地
质量度量应嵌入数据流水线,而不是事后抽查。一个可落地的流程如下:
- 定义质量契约:为每个数据集声明六个维度的阈值,例如漏标率 ≤ 2%、IoU ≥ 0.7、ID 切换 ≤ 1 次/轨迹、入库延迟 ≤ 24 小时。
- 自动采集指标:在数据入库、标注完成、训练前三个节点分别计算指标,写入质量元数据表。
- 分层抽样复核:对高风险场景(夜间、雨天、遮挡、密集车流)提高复核比例,降低漏检风险。
- 质量门禁:未达阈值的数据集不得进入训练或回归测试,并自动生成修复工单。
- 闭环反馈:将模型在特定场景的失败案例反哺到代表性、平衡性指标,驱动下一轮采集。
# 质量指标计算示例(伪代码)
quality_report = {
"completeness": {
"missing_file_rate": missing_files / total_files,
"miss_label_rate": missed_objects / true_objects
},
"accuracy": {
"mean_iou": mean(iou_scores),
"center_error_px": mean(center_errors)
},
"consistency": {
"id_switch_per_track": id_switches / total_tracks,
"cross_modal_match_rate": matched / total_objects
},
"timeliness": {
"ingest_delay_hours": p95(ingest_delays),
"data_age_days": mean(data_ages)
},
"representativeness": {
"odd_coverage": covered_odd_cells / total_odd_cells,
"js_divergence": js_divergence(dataset_dist, target_dist)
},
"balance": {
"class_imbalance_ratio": max_class_count / min_class_count,
"hard_sample_ratio": hard_samples / total_samples
}
}
四、案例与常见误区
案例:某团队发现城市道路感知模型在夜间表现差。排查后发现训练集夜间样本仅占 3%,且夜间标注漏标率高达 8%。这里同时暴露了代表性和完整性问题:夜间场景覆盖不足,且已有夜间数据标注质量不达标。修复动作包括:定向采集夜间数据、对夜间标注进行专项复核、在质量看板中增加“夜间漏标率”指标。
常见误区一:只看准确性,忽略完整性。高 IoU 可能建立在大量漏标之上,模型会学到“忽略困难目标”。
常见误区二:把代表性和平衡性混为一谈。覆盖了所有天气不等于各类别比例合理,反之亦然。
常见误区三:时效性只关注入库速度,忽略场景有效期。三年前的施工场景数据可能已经失效。
常见误区四:用单一总分掩盖维度短板。质量总分高不代表安全关键场景达标,应分维度设门禁。
五、质量维度清单
| 维度 | 核心问题 | 典型度量 | 常见修复动作 |
|---|---|---|---|
| 完整性 | 信息是否缺失 | 文件缺失率、漏标率 | 补采、补标、字段校验 |
| 准确性 | 值是否真实 | IoU、中心点误差、时间戳偏差 | 复核、重标、标定校准 |
| 一致性 | 表达是否统一 | ID 切换、跨模态一致率 | 统一规范、轨迹后处理 |
| 时效性 | 是否在有效窗口 | 入库延迟、数据年龄 | 加速流水线、过期数据淘汰 |
| 代表性 | 是否覆盖运行域 | ODD 覆盖率、分布散度 | 定向采集、场景挖掘 |
| 平衡性 | 比例是否合理 | 类别不平衡比、难易样本比 | 重采样、加权、分层采样 |
实践建议:在数据平台中为每个数据集维护一张“质量护照”,记录六个维度的当前值、阈值、计算时间和责任人。质量护照随数据集版本一起流转,训练、仿真和回归测试都以此为准入依据。这样,数据质量才从主观判断变成可审计、可追踪、可改进的工程能力。