04让人别从零画

前面三层解决的是"能不能""对不对"。从这一层开始,问题变成"贵不贵"。 这一页讲 AI 在标注流水线里到底干了什么,以及它带来的代价。

五个角色 数据飞轮 人在环

一、人的能力是极端不对称的

先算一下从零画一个 3D 框,一个人的动作序列:

① 在点云里【搜索】物体在哪      耗时最久
② 判断物体的三个维度和朝向      需要经验
③ 拉框、微调角点               机械操作

而人脑在这三件事上的表现差得很远:

能力人
判断"这个框对不对"✅ 极快、极准,几十毫秒
穷举"这里所有东西都找出来"❌ 慢、会漏、注意力会疲劳
这一层最核心的一句
AI 干的不是"标注",AI 干的是【穷举搜索】
   把人的工作从"找"降级成"看"

有预标注:人的任务是【看一眼 + 微调】
没有预标注:人的任务是【搜索 + 判断 + 拉框】

从零画约 8 分钟/帧,改框约 1 到 2 分钟/帧
人力成本砍掉七到八成

二、AI 在这条流水线上有五个角色

很多人一听"标注环节用 AI",想到的就是预标注。在一个成熟平台里,模型至少扮演五种角色。

角色具体模型干什么价值
① 预标注YOLOR(2D)、OpenPCDet(3D)先生成候选框,人来改砍掉大部分人力
② 标签传播AB3DMOT(跟踪)已标的帧推导未标的帧跨帧复用
③ 交互式辅助RITM(图像分割)人在操作时实时响应,点一下自动分割出物体单帧内的人机回环
④ 数据挖掘MobileNetV3 加 openTSNE决定标哪一帧,不是标什么决定钱花在哪
⑤ 质检与评估ModelRun 机制对比模型标的和人标的差异就是错误和难例

① 和 ③ 是两种完全不同的交互模式,工程要求也不一样:

预标注(①):模型先跑完 → 人再改        异步、批处理
交互式(③):人操作     → 模型立刻响应   同步、实时

这个区别后面会变成一条架构判据:异步批量放服务端,同步交互放客户端。

三、经济账

数字
省下的标注费,一次迭代约 3.7 万元
跑模型服务的 GPU 开销一块 GPU 跑一天约 240 元
投入产出比约 150 倍

在一个九成成本都在标注的流程里,任何能减少标注人力的东西都是杠杆最高的投资。 所以"为什么每个标注平台都塞 AI"这个问题,答案很朴素:账算下来太划算。

四、更深一层:这是数据飞轮的物理实现

模型 → 预标注 → 人工修正 → 新训练数据 → 更好的模型 → 更好的预标注 → …

要让这个轮子转起来,系统必须能区分"人标的"和"模型标的"。这就是标签来源字段的作用:

sourceId = -1      人标的,也就是 Ground Truth
sourceId = 模型ID   某个模型版本标的
Ground Truth / GT 真值,标准答案。 在这个上下文里特指"由人确认过的标注",用来和模型产出的标注区分开。

这个字段一旦存在,评测和难例挖掘就变成了副产品:

你想知道的数据里直接就有
模型在这个数据集上错在哪对比 model run 和 GT 的差异
哪些帧模型最不擅长差异最大的帧,就是优先补数据的地方
模型 v1 比 v2 好多少两个 model run 都跑同一批数据,比差异
导出干净的训练集按来源过滤,只要人工标注

最后一行是重点。如果不记录来源,AI 预标注的数据会污染训练集, 模型把自己的错误当成正确答案学回去。

五、「人在环」到底是什么意思

这个词是 Human-in-the-loop 的直译,关键词在环,不在"人参与"。

说法含义标注场景
Human-in-the-loop人的介入在每个决策的回路内每帧都过人,这是标注平台的默认形态
Human-on-the-loop人在环上监督,只在异常时介入只抽检一成
Human-out-of-the-loop无人工介入全自动标注

所以"在环"的含义是精确的:不是有人坐在旁边,而是人的判断是每一次输出都绕不过去的一站。

其实有两个环,节奏完全不同

微观环,同步,帧内
  人操作 → 模型实时响应 → 人看到结果 → 再操作
  对应 RITM。要的是【低延迟】

宏观环,异步,跨迭代
  模型 → 预标注 → 人工修正 → 新训练数据 → 更好的模型
  就是数据飞轮。要的是【可复现、可追溯】

两个都是人在环,但工程实现完全不同。

为什么必须在环,不只是因为模型不够好

通常的说法是"模型不准,所以需要人补"。这只是临时理由。还有一条结构性理由:

全自动标注 = 模型给自己产标签 = 模型自己教自己
          → 模型的错误被当成正确答案学回去 → 逐步坍缩

系统需要一个不来自模型的信息源。这个源就是人。所以人在环里有两个功能,层次不同:

功能性质
补模型的不足,把八成修成十成临时,模型变强就少用人
提供模型无法自己产生的判据,比如什么算行人、躺在地上算不算🏛️ 结构性,永远需要

第二条是本质。"正确"的定义不可能从模型内部长出来。

而"记录标签来源"这个设计,在这里就变成了人在环的制度化: 环要闭合,系统必须能区分人给的和模型给的,否则导出纯净训练集和对比评测这两件事都做不了。

另外,在环里的人不止一层。标注员产出标签,审核员审标注员,管理员定义本体。 连"人"这个环节本身都做成了回路,因为人标注的一致性远不完美。

「别从零画」和「做人在环」是一件事的两面

别从零画  →  减少人的【操作量】   效率诉求
做人在环  →  保证人的【判断仍在】 质量诉求

合起来 = 减少劳动,但不移除判断

这也解释了为什么"全自动标注"在这里不是一个更高级的形态。 它做到了前半句,却把后半句做掉了。而来源标记那套设计,本质就是在防止后半句被做掉。

六、但 AI 辅助有真实的代价

上一节的账算得很漂亮,但它有前提。只看收益不看代价,很容易做出错误的部署决策。

代价一:锚定偏差

人看到预标注框后,倾向于"接受加微调",而不是独立判断。 后果是模型漏掉的物体,人也容易跟着漏。

模型没见过的长尾物体
  → 预标注不给框
  → 人看着"没有框",也容易以为这里没东西
  → 漏标
  → 新训练集里还是没有这个类别
  → 模型还是不会
  → 长尾永远补不上
这是个闭环陷阱

预标注让效率提升,同时也让模型的能力边界变成了数据的能力边界。

而且它是静默的。损失曲线看不出,指标上看不出, 直到你在真实场景里遇到那个模型没见过的物体。

代价二:预标注质量不够时反而更慢

如果模型在这个场景上很差,框全是错的,人改一个错框可能比自己画还慢。 因为要先理解这个错框想表达什么,还要抵抗被它带偏。

所以有"预标注质量阈值"这个概念:先小批量试跑,够好才全量跑。

代价三:成熟平台必须有对抗机制

机制对抗什么
随机抽样做全盲标注,不给预标注锚定偏差。用来测量"如果没人提示,人会标出多少"
对比模型 run 与人工标注的差异分布系统性漏检,不是随机错误,是结构性的
定期人工审核预标注结果确认偏差累积
一个容易被忽略的前提

人在环有收益的前提是模型达到某个质量阈值。

低于阈值时,人不但在环里,还被环拖累。这时候"人出环"、全盲标注反而更准。

这正是平台要做随机全盲标注的原因:它用来测量"没有人在环时人会标成什么样", 以诊断锚定偏差有没有累积。

如果平台没有这些机制,它实际上是在用效率换数据质量,而且这个交换是隐形的。

七、一个反直觉的工程结论

既然预标注是给人改的,它的优化目标就不该和车端模型一样。

错误类型后果严重性
漏检人可能也跟着漏,数据被污染且静默无声🔴 严重
误检人一眼删掉,浪费几秒🟡 只是成本
结论

预标注模型应该追求高召回,而不是高精度。 宁可多检几个让人删掉,也不要漏检让数据悄悄坏掉。

漏检是质量问题,误检只是成本问题。

这和自动驾驶感知的取舍恰好相反。车上误检会导致幽灵刹车,很危险,所以要压精度。

同样是检测模型,在预标注场景下损失函数是不对称的。

八、这一页带走什么

AI 在标注里的核心价值不是"替你标",是替你找。它把人的工作从搜索降到判断。

但这份收益是带条件的。条件有三条:模型得够好、来源得能区分、锚定偏差得有办法量。 少一条,省下来的时间和坏掉的数据就会互相抵消。

下一节看最后一层:决定标哪些数据,而不是怎么标。

← 上一页:让 20 个人同时干、画得一样 ·  下一页:决定「标哪些」 →
京ICP备19013239号