🧠 第七章 数据标注
📄 一句话概括

同一张 640×480 的图,五种标法的价钱差三个数量级:分类 1 次点击、矩形框 2 次拖拽、 关键点 17 次点击、多边形 20 次点击,分割掩码要约 122 笔涂抹。 掩码体积是框的 19200 倍,耗时是 61 倍。

📝 本节和前面几节的关系

上一节说了标注重要,这一节说标注贵。不同标法的成本差得很远,选错了会浪费大半预算。

一、五种标法,五种几何

图像分类:整张图一个标签。最便宜,信息也最少——它只说「图里有什么」,不说在哪。 矩形框:用四个数框住目标。检测任务的标准答案。 多边形:沿目标边缘点一圈。适合不规则形状,比如被遮挡的车、弯曲的道路。 关键点:标若干个点的坐标。人脸 68 点、人体 17 点,都是这个形式。 分割掩码:逐像素标出目标区域。信息最全,也最贵。

二、成本差多少

按每次点击或拖拽 1.5 秒算:分类 1.5 秒,矩形框 3.0 秒,关键点 25.5 秒, 多边形 30.0 秒。 掩码没法按点击算。 假设目标占画面 8%、笔刷半径 8 像素,要涂约 122 笔,合计 183 秒——三分钟一张。 存储上差得更夸张:矩形框 4 个数 16 字节,掩码 307200 字节,19200 倍。 一千张掩码要 50.9 小时,一个人干一周。一千张框只要 50 分钟。

三、为什么工业界先做框

因为框的性价比最高:它给出「在哪里」,而「在哪里」这件事的下游价值远大于「精确到每个像素」。 检测模型用框就能训出来;真要更细的边界,可以拿框训出的模型去预填掩码,人工只修边界。 这就是「先框后精修」。 精修的成本远低于从零涂:模型给的掩码通常已经八九不离十,人只要推一推边界。 什么时候必须直接上掩码? 医学影像、遥感、自动驾驶的可行驶区域——这些场景里「边界偏三像素」的后果很严重,省不得。

四、选标法的三个问题

  1. 下游要什么。只要「有没有」,分类就够;要「在哪」,上框;要「占多大面积」,只能上掩码。
  2. 误差能容忍多少。框允许目标倾斜、不完整;掩码要求边界严格贴合。容差越小,成本越高。
  3. 预算有多少。这三条按顺序问,第三条最后问——前两条定了,第三条只是在决定做多少张。 常见的错是反过来:先算预算能标多少张,再决定标法,结果标了一堆下游用不上的东西。

五、动手 Demo:五种标注的几何成本对照

按一张 640×480 的图,分别算五种标法要多少次操作、存多少字节、花多少秒:分类 1 次点击、 框 2 次拖拽、多边形 20 顶点、关键点 17 点、掩码按 8% 面积和半径 8 的笔刷估涂抹笔数; 最后换算成一千张的总工时。

area = W * H * 0.08                       # 目标占画面 8%
strokes = area / (math.pi * 8.0 ** 2)     # 笔刷半径 8

u'%d KB' % (W * H / 1024.0)               # 掩码体积
u'%.0f' % (strokes * 1.5)                 # 涂抹耗时

实跑输出:

--------------------------------------------------------------------
五种标注的几何成本:一张 640×480 的图
--------------------------------------------------------------------
  图像尺寸                 640 × 480 = 307200 像素
  操作计时                 每次点击或拖拽按 1.5 秒算
  目标占比                 假设目标占画面 8%
  标注类型   每张的操作               存下来的东西      体积   耗时 秒
  -------------------------------------------------------------------
  图像分类   1 次点击                 1 个标签           4 B       1.5
  矩形框     2 次拖拽(4 个数)       4 个数            16 B       3.0
  多边形     20 次点击(20 个顶点)   40 个数          320 B      30.0
  关键点     17 次点击(17 个点)     34 个数          272 B      25.5
  分割掩码   约 122 笔涂抹            逐像素 1 字节   300 KB       183

  掩码与矩形框的体积比     19200 倍
  掩码与矩形框的耗时比     61 倍
  1000 张的掩码标注        约 50.9 小时
  这张表解释了一件事:为什么工业界先做框、后做掩码。掩码的信息量最大,可体积是框的 19200 倍,耗时是框的 61 倍。
  折中办法是「先框后精修」:模型用框训出来,再用它去预填掩码,人工只修边界。这就是下一节要算的账。

这笔账里最容易被忽略的是「体积」那一列。掩码 300 KB 一张,一万张就是 3 GB,光传输和存储就够呛; 框只要 160 KB,一封信都能带走。 多边形比关键点贵,是因为我按 20 个顶点算。真实目标如果边缘简单,10 个顶点就够,成本能砍一半。 掩码那 122 笔是按「涂满」估的。 实际操作中会用填充工具,先勾一圈再填充,真实耗时比这个低——所以这个数偏保守。 一千张 50.9 小时是按连续作业算的,没算疲劳和返工。真实标注项目一般还要加 20% 到 30% 的返工量。

30 秒实验

  1. 把目标占比从 8% 改成 2% 和 20%,看掩码笔数和耗时怎么变。
  2. 把笔刷半径从 8 改成 16,看涂抹笔数掉多少。
  3. 想一想:为什么医学影像宁可标得慢也要用掩码?

常见误区

  1. 「标得越细越好」——细是要花钱的,下游用不上就是白花。
  2. 「框不够用就上掩码」——中间还有多边形这一档,很多场景够用。
  3. 「先算预算再定标法」——应该先定下游需求,再算要做多少张。
自测三问(点开对答案) 1. 五种标法的信息量从少到多怎么排? —— 分类、矩形框、关键点或多边形、分割掩码。 2. 为什么工业界普遍先做框而不是先做掩码? —— 框只贵一倍却给出位置信息,性价比最高;需要更细时可用模型预填再精修。 3. 掩码的存储成本比框大多少? —— 这一节算的例子里是 19200 倍(307200 字节对 16 字节)。

标法选好了,下一节讲怎么标得快、标得一致。

相关笔记