05决定「标哪些」

前四层都在回答"给定这些数据,怎么把它标好"。这一层换了问法: 这些数据里,到底哪些值得标。

数据集的地图 五个用法 稀有和坏长得一样

一、这一层动的是数量级

它看起来最软,实际是五层里杠杆最大的。原因是一个乘法:

总标注成本 ≈ 样本数量 × 每帧单位成本
                ↑              ↑
           治理层在这里     加速层在这里

加速层优化的是每帧多贵,治理层优化的是要标多少帧。而后者的乘数大得多: 在典型流程里,九成以上的成本花在不到百分之一的帧上。

所以它动的是数量级,不是百分比
规范层:让所有人【画得一样】  一致性
加速层:让人【别从零画】      效率,单位成本
治理层:决定【标哪些】        分配,样本数量

二、核心工具:一张数据集的地图

治理层最直观的工具叫相似度图。它怎么来的,是一个从高维到人眼的降维过程:

10 万帧
  ↓  ① 特征提取,每帧变成一个 1280 维向量
  ↓  ② 降维到 2 维
  ↓  ③ 画散点图,一张能用眼睛看的图

第一步是用一个模型把每张图压成向量,这个向量代表这张图的视觉内容。 问题是 1280 维没法看。降维干的就是把它压到 2 维。

降维的目标不是压缩,是保持邻域关系:高维里相近的两个点,在 2 维里也要相近。 于是相似的帧会在图上聚成一团。

t-SNE 那个降维算法本身,全称是 t 分布随机邻域嵌入。 openTSNE 是它的一个开源 Python 实现,比教科书版本快得多, 也支持把新样本投到已经建好的图上。

它只保持局部结构,不能当坐标系读

团的大小、团与团的距离,都没有定量含义
能读的不能读的
✅ 这两帧很像,谁和谁近❌ 团的大小,大团不代表这个场景多
✅ 这些帧各成一类❌ 团与团的距离,离得远不代表差别大
✅ 这个点孤立❌ 绝对位置,旋转或翻转整张图是等价的

把它当坐标系读,会得出错误结论。

三、它只画图,不做决策

先分清工具和动作

它产出的是一张地图,一个客观事实:谁和谁像。 决策(标谁、不标谁)是在图上另外一步做的。

它是测量工具,不是过滤器。跑一下并不会自动去重。

而在同一张图上,要做的是四个方向不同的决策。这是最容易混的地方:

图上的形态决策方向
密集团,大量相似帧降采样,少标⬇️ 删
小团可能是稀有场景,优先标⬆️ 补
离群点也可能是坏数据,丢弃⬇️ 删
整张图按团切分数据集—

注意第二、三行形状一样、方向相反。这一点后面会变成一个很尖锐的结论。

另外,去重是降采样,不是清零。密集团留几个代表就够,因为相似的帧仍然提供统计覆盖, 只是边际价值递减极快:

第 1 帧   价值 100%
第 10 帧  价值 30%
第 100 帧 价值 2%
第 3000 帧 价值接近 0    ← 这就是浪费

四、这张图能干的五件事

① 去重

密集团就是几乎一样的帧。典型来源:车在路口等红灯,连拍三千帧。 决策是只抽几个标,整团跳过。

② 长尾挖掘

孤立点和小团是罕见场景,而罕见场景恰好是模型最缺的数据。

它有一个很宝贵的性质:无监督

你不需要先有一个能识别施工锥桶的模型,就能发现哪些帧是罕见的。

这解掉了一个鸡生蛋问题。传统做法要先训一个模型才能检索场景, 而降维图用通用视觉特征就能给出线索。

③ 异常检测

完全孤立的点可能是镜头被挡、曝光失败、传感器故障、传输损坏。 这类数据混进训练集是有毒的。

④ 数据集切分:最容易被忽略,但代价最大

训练、验证、测试必须按团切,不能随机切
随机切分 → 同一个团的相似帧同时落进训练和验证
        → 模型在验证集上"见过"几乎一样的图
        → 指标虚高
        → 你据此判断"模型够好了" → 出事

这是在相似度图出现之前几乎无法系统解决的问题。 而它一次失误的代价可能比整个标注预算还大。

⑤ 采样与配比策略

图上能直接看出行人多、骑车人少,于是决定要不要针对性补采,要不要按团加权。

五、最尖锐的一个事实:稀有和坏在图上长得一样

离群点有两种
离群点
 ├── 真·稀有场景(牛横穿高速)  →  宝贵,要优先标
 └── 坏数据(镜头被挡、全黑)    →  垃圾,要删

自动删除所有离群点,会精准地误杀掉你最缺的长尾数据。

地图告诉你"这里有个异类",但不告诉你是金子还是垃圾。 所以这一步必须有人看一眼,或者用确定性指标做二次判定。

坏数据靠绝对信号检测,不靠相对位置

分工原则

相似度图:昂贵,无监督,只能给候选,要靠眼睛看。

信号质量指标:廉价,确定性,可以直接判定,可以写成规则。

能用确定性指标判的,不要用相似度图判。

类别指标判什么
曝光与成像 直方图:过曝是大量像素饱和在 255,欠曝堆在 0曝光失败
拉普拉斯方差、图像熵、对比度模糊、全黑、全白
镜头遮挡 图像几乎均匀:单峰窄直方图、熵极低、拉普拉斯方差极低镜头被挡
多帧一致性:连续 N 帧图像几乎不变,而其他传感器在动 比单帧可靠得多
LiDAR 一帧点数远低于正常值、空环比例高采集中断、通道失效
点只落在一个平面,几何退化退化场景,比如正对一堵墙
时序与同步 时间戳间隔突变、重复、倒退、丢帧采集链路故障
点云投到图像上的错位突然变大标定漂移
标注侧 多人标注一致性、标注耗时异常标签不可靠、流程问题
两个容易想错的点

一、坏数据是事件,不是帧。一次镜头被泥挡住,会连续几千帧坏。 所以报告要带时间轴聚合:

✗  第 1207、1208、1209 … 2050 帧不合格      没用的报告
✓  第 1200 到 1850 帧:前视相机镜头遮挡      可执行的事件

二、坏数据最贵的不是标它浪费钱,是它污染训练集。 一帧全黑图像加上标注员硬着头皮画了个框,模型就学到"黑色画面里有车"。 这类污染是静默的,指标和损失曲线上都看不出来。

六、长尾到底指什么

把场景或类别按出现频率排序,画成曲线:

频率
 │█
 │██
 │███▄
 │█████▄▄
 │████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 └─────────────────────────────────────────────►  场景,按频率降序
   └── 头部 ──┘└──────────── 长尾 ────────────┘

左边那一段是常见场景,几类就占了九成数据。 右边那一段单个出现很少,但加起来种类极多,覆盖了大量真实世界的边角情况。

模型在头部表现很好,在长尾上崩。所以长尾挖掘的价值不在于"多标",在于 把有限的预算从头部挪到长尾。而这件事的前提是你能看见长尾在哪里, 那张地图就是用来看见它的。

七、这一页带走什么

治理层改的不是"怎么标",是"标多少"。它是唯一能动数量级的一层。

它的工具是一张降维地图,用途有五个,其中数据集切分最容易被忽略也最贵。

最需要记住的是那条反直觉的:稀有和坏在图上长得一模一样, 所以地图只能给候选,判断得靠确定性指标加人眼。

← 上一页:让人别从零画 ·  下一页:平台的工程真相 →
京ICP备19013239号