跳到主要内容

数据质检

如何在大规模 ROS 录制数据进入训练与导出之前,自动、一致地判断录制是否满足团队或平台的底线要求(帧率、传感器 Topic、时间同步等)?

典型场景

  • 训练前希望批量筛掉帧率过低、关键 Topic 缺失或时间戳异常的数据。
  • 需要为不同项目配置不同阈值,同时希望全平台有一条「硬底线」(全局规则)。
  • 希望规则变更后,历史数据能自动补跑质检,结论与当前规则对齐。
  • 个别数据被规则误杀时,需要人工覆盖结论并保留审计依据。

数据质检模块通过 质检规则 + 自动任务 实现上述目标:由平台扫描每条 ROS 录制的结构化报告,再按你在界面上配置的断言给出通过/不通过,并在数据集上汇总展示。

与「视频质检」的区别
  • 数据质检(本文):面向 ROS 轨迹 / ROS 录制数据(如 MCAP、bag、db3 等)的规则化检测(指标阈值、Topic 必需/禁止等),与预处理、导出、训练链路衔接。
  • 视频质检:面向 多路视频可视化 的 Doctor 诊断(丢帧、花屏、BRISQUE 等),见 视频质检

核心概念

质检规则

一条规则绑定 一种质检算法(面向 ROS 录制的巡检,当前以 MCAP 报告为主,其它容器与格式会逐步补齐)、作用域若干断言

概念说明
作用域项目规则:仅对指定项目下的数据集生效。全局规则:对全平台 ROS 录制数据生效(含未归属项目的数据)。有项目的数据集会同时匹配全局规则与本项目规则,各自独立产生执行记录。
匹配数据名支持对 dataset.name 使用 glob(如 *arm*);留空表示在当前作用域内匹配全部数据名。
优先级数值越小越优先(展示与执行排序一致);多条规则同时命中时,各自仍独立判定。
启用停用后不再参与匹配与自动排队;启用后可根据策略对历史数据补跑。

断言类型

规则内的「判定条件」称为断言,常见类型包括:

  • 数值阈值:对报告中的指标指定比较符与阈值(如 frame_rate >= 20);可按需限定在「全文件」「某类 Topic」等范围(具体可选范围以界面为准)。
  • 必需 Topic:报告中必须出现某 Topic,否则不通过。
  • 禁止 Topic:报告中不得出现某 Topic,否则不通过。

严重度error(界面展示为「不通过」)级断言未满足会导致本条运行判定为未通过;warning 用于提示,不单独决定未通过(便于先加观察项再收紧)。

权限说明

操作管理员项目经理其他常见角色
查看质检结果、日志支持支持(受项目数据权限约束)采集等角色通常可查看与自己相关的数据
维护项目质检规则支持支持(需在项目内或公开项目)一般不可
维护全局质检规则支持不支持不支持

全局规则的创建、编辑、删除、复制等写操作仅管理员可执行;非管理员在列表中可能看到全局规则,但无法修改。

使用流程概览

何时会自动执行

  • 预处理成功后ROS 录制数据预处理完成时,平台会对命中已启用规则的数据集自动发起质检任务(无需逐条手动点)。当前自动入队仍以 MCAP 为主;bagdb3 等与规则扫描、报告对齐的能力在迭代中,请以线上版本说明为准。
  • 规则新建或变更:保存或启用规则后,可对历史命中数据异步补跑(数据量大时任务会排队执行,请耐心等待)。
  • 手动触发:在单条数据集的质检相关入口,可手动触发当前规则下的执行(具体按钮名称以界面为准)。

非平台当前支持的格式,或尚未完成必要预处理的数据,可能不会进入自动质检队列。

结果如何理解

  • 汇总状态:在数据集列表或详情中,可看到与当前数据命中的规则数及通过/未通过/运行中等汇总(具体展示以界面为准)。
  • 单次运行:每条规则对应独立的运行记录,可查看容器输出的指标、未通过的断言明细等。
  • 系统标签:未通过判定可能伴随系统标签(如 qc:failed),便于在数据运营中筛选;是否影响导出以平台当前策略为准。

人工覆盖

当规则合理但个别样本存在例外(例如现场降帧采集、事后已补救)时,可对某次运行结果做人工覆盖(通过/不通过及原因)。覆盖会参与汇总展示,并用于与导出、标签等逻辑的衔接。

功能截图

质检规则列表

质检规则列表

添加新建/编辑规则

新建或编辑质检规则

数据集详情中的质检结果

数据集详情中的质检结果

延伸阅读