同一张 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 分钟。
三、为什么工业界先做框
因为框的性价比最高:它给出「在哪里」,而「在哪里」这件事的下游价值远大于「精确到每个像素」。 检测模型用框就能训出来;真要更细的边界,可以拿框训出的模型去预填掩码,人工只修边界。 这就是「先框后精修」。 精修的成本远低于从零涂:模型给的掩码通常已经八九不离十,人只要推一推边界。 什么时候必须直接上掩码? 医学影像、遥感、自动驾驶的可行驶区域——这些场景里「边界偏三像素」的后果很严重,省不得。
四、选标法的三个问题
- 下游要什么。只要「有没有」,分类就够;要「在哪」,上框;要「占多大面积」,只能上掩码。
- 误差能容忍多少。框允许目标倾斜、不完整;掩码要求边界严格贴合。容差越小,成本越高。
- 预算有多少。这三条按顺序问,第三条最后问——前两条定了,第三条只是在决定做多少张。 常见的错是反过来:先算预算能标多少张,再决定标法,结果标了一堆下游用不上的东西。
五、动手 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 秒实验
- 把目标占比从 8% 改成 2% 和 20%,看掩码笔数和耗时怎么变。
- 把笔刷半径从 8 改成 16,看涂抹笔数掉多少。
- 想一想:为什么医学影像宁可标得慢也要用掩码?
常见误区
- 「标得越细越好」——细是要花钱的,下游用不上就是白花。
- 「框不够用就上掩码」——中间还有多边形这一档,很多场景够用。
- 「先算预算再定标法」——应该先定下游需求,再算要做多少张。
自测三问(点开对答案)
1. 五种标法的信息量从少到多怎么排? —— 分类、矩形框、关键点或多边形、分割掩码。 2. 为什么工业界普遍先做框而不是先做掩码? —— 框只贵一倍却给出位置信息,性价比最高;需要更细时可用模型预填再精修。 3. 掩码的存储成本比框大多少? —— 这一节算的例子里是 19200 倍(307200 字节对 16 字节)。标法选好了,下一节讲怎么标得快、标得一致。
- ☐ (本节完,下一节 7.1.3 高效标注方法:提升标注效率和准确率的技巧)