跳到主要内容

AI 批量标注

这个功能解决什么问题

数据集里有几千张图要标,纯人工一张张画框要花好几天。如果项目里已经有一个能用的模型,能不能让模型先把大部分明显目标标出来,人只负责修正错误和补漏?

AI 批量标注就是这个思路。它用当前项目的模型对选中的图片跑一遍推理,把检测到的目标直接写成标注文件,再按置信度自动分流:高置信度的进入「已通过」,低置信度的进入「待审核」等人工把关,没检测到任何目标的图片自动标记为反例。

两段式设计

为什么拆成两段

AI 批量标注拆成「配置」和「执行」两步,避免每次都要重新挑模型、调阈值。

  • 配置(头部「AI 标注设置」按钮):选模型 / 版本 / 制品、调置信度和 IoU 阈值、设覆盖开关。配置保存后整个批次复用,不用每次执行前重选。
  • 执行(浮动操作栏「AI 标注」按钮):对当前选中的图片用已保存的配置跑一遍。

配置弹窗

在批次详情页头部点「AI 标注设置」,打开配置弹窗:

AI 标注配置弹窗
图1:模型选择 + 阈值 + 覆盖开关
字段类型必填默认值说明
模型 / 版本 / 制品层级选择器必填先选 Model 系列,再选 Version,最后选 ModelArtifact。选择器按当前项目的任务类型自动过滤,只显示发布版本的 is_default=True 制品的模型。
置信度阈值滑块可选0.25推理时的检测过滤阈值。低于此值的检测框不写入标注。这是推理过滤阈值,不是审核自动通过阈值,两者语义不同。
IoU 阈值滑块可选0.45NMS(非极大值抑制)重叠判定阈值。两个框 IoU 超过此值时保留置信度高的那个。
覆盖开关开关可选关闭关闭 = 跳过已有标注的图片;开启 = 全部重新标注,覆盖原有结果。
置信度阈值和自动通过线不是一回事

这里的「置信度阈值」是推理检测过滤门槛(默认 0.25),低于这个值的检测框根本不会写出。批次头部的「自动通过线」(默认 0.5)是审核分流门槛,高于它才自动通过。两者独立,别调混了。

举例:置信度阈值 0.25、自动通过线 0.5 时,0.25 ~ 0.5 之间的标注会写入但进入「待审核」队列,0.5 以上的自动通过。

执行流程

  1. 切换到「图片网格」Tab

    在批次详情页点顶部标签栏的「图片网格」。

  2. 用筛选 Tab 选目标图片

    点顶部的 6 个筛选 Tab 之一缩小范围。比如想给所有未标注图跑 AI,点「未标注」Tab,列表只剩没标过的图。

  3. 勾选图片

    单张勾选,或者点工具栏的「全选」按钮一次性选中当前筛选条件下的全部图片(最多 10000 张)。选中至少一张后,页面底部浮出操作栏。

  4. 点「AI 标注」按钮

    浮动操作栏里的「AI 标注」按钮会用头部已保存的配置执行。如果还没配置过,会提示先去头部点「AI 标注设置」。

  5. 确认覆盖提示(如果有)

    如果选中图片里已经有标注,且覆盖开关是关闭的,会提示跳过多少张。覆盖开关打开时会提示将覆盖多少张。确认后开始执行。

  6. 等待执行完成

    后台逐张推理,完成后浮动栏消失,图片网格自动刷新当前页(不丢滚动位置和筛选状态)。

覆盖开关

关闭(默认)= 跳过已有标注

覆盖开关关闭时,AI 标注只处理「没有标注」的图片。已经有标注(不管人工还是 AI)的图会被跳过,原有标注保留。这种模式适合在已有标注基础上增量补充,不会破坏人工修正过的结果。

开启 = 全部重新标注

覆盖开关打开时,所有选中图片的标注(包括人工标注)都会被新的 AI 结果替换。如果图片里已经有人工修正过的标注,开启覆盖会丢失这些修正。除非明确知道要重标,否则保持关闭。

AI 标注完成后的分流

执行完成后,图片按置信度自动分流:

  • 高置信度(≥ 自动通过线):状态变为「已通过」,不进入人工审核队列。
  • 低置信度(< 自动通过线):状态变为「待审核」,进入审核视图等人工逐张确认。
  • 无检测目标:图片被标记为「反例」,创建空标签文件。这类图告诉训练模型「这张图里没有目标」,能提升背景区域的判别力。
审核状态统一为 pending_review

AI 标注的图进入「待审核」时,review_status 统一设为 pending_review,不会自动确认。即使置信度高于自动通过线,状态变化是系统级的「自动通过」,但 annotation_source 仍标记为 AI 来源,便于后续追溯。

已退回图片不会被高置信度覆盖

已经被人工退回的图片,即使本轮 AI 标注的置信度高于自动通过线,也不会自动通过。人工判断优先于 AI 置信度,防止用同一个模型反复推翻你的决定。

批量上限

单次 AI 预标注上限 200 张

单次 AI 预标注最多处理 200 张图片。如果选中超过 200 张,按钮文案会变成 开始预标注 (200/N),按顺序处理前 200 张,剩下的需要分批执行。

这个限制是为了避免单次任务时间过长、占用过多推理资源。如果想一次跑完,分多次点「AI 标注」即可,每次自动从未处理的图开始。

其他批量操作没有 200 上限

批量通过、批量退回、批量删除、标记反例这些非 AI 操作按全量执行,没有 200 张限制。只有 AI 预标注(涉及推理算力)有这个硬上限。

模型选择约束

层级选择器只显示已发布制品

模型选择器是 Model → Version → Artifact 三级层级结构,按当前项目的任务类型自动过滤。只有发布版本(is_default=True)的 Artifact 会出现在选择器里。draft 版本不能用于批量标注,需要先在训练 Tab 发布。

标注步骤只接受 .pt 制品

批量标注 AI 流程内部直接调用 Ultralytics 模型对象,只能用 .pt 格式的 Artifact。如果选中的是 ONNX 制品,会触发 ValueError 拒绝执行。需要 ONNX 推理的场景(如主动学习评分)走另一条路径,不受此限制。

归档批次不能执行 AI 标注

归档批次 AI 标注入口隐藏

已经导入数据集的归档批次只显示「图片网格」一个 Tab,头部「AI 标注设置」按钮和浮动操作栏「AI 标注」按钮都不显示。归档批次的数据已经合并到数据集,不应该再修改。

操作流程:典型 AI 标注场景

  1. 打开批次详情页

    进入项目「数据标注」,点开目标批次。

  2. 配置 AI 标注

    头部点「AI 标注设置」,选模型 / 版本 / 制品,设置信度 0.25、IoU 0.45,覆盖开关按需。保存配置。

  3. 切到图片网格选未标注图

    点「图片网格」Tab,再点「未标注」筛选 Tab,点工具栏「全选」勾选所有未标注图。

  4. 执行 AI 标注

    浮动操作栏点「AI 标注」,确认提示后开始执行。如果未标注图超过 200 张,会自动处理前 200 张。

  5. 切到审核视图逐张审核

    AI 标注完成后,低置信度的图进入「待审核」。切到「审核视图」逐张把关,详见图片级审核

  6. 提交复核

    所有待审核图处理完后,头部点「提交复核」交给管理员,详见任务复核与合并导入

常见问题

AI 标注完成后图片网格没刷新

执行完成后系统会递增一个刷新信号,触发当前页重新拉取数据。如果界面没自动刷新,手动切一下筛选 Tab 或翻一页就会重新加载,不会丢失滚动位置和选择状态。

为什么有些图 AI 标注后还是「未标注」

可能的原因:覆盖开关关闭且这些图已有标注被跳过、置信度阈值设得太高导致没有任何检测框通过、或者图片本身没有任何目标被标记为反例。先去「反例」和「已通过」Tab 看看是不是分流到那里去了。

能不能选多个模型同时跑

不能。一次 AI 标注只能用一个模型制品。如果想对比两个模型的效果,分两批执行:第一次用模型 A 跑(覆盖开关关闭,跳过已有标注),第二次切到模型 B 时把覆盖开关打开。注意第二次会覆盖第一次的结果。

怎么挑置信度阈值

推理置信度阈值(默认 0.25)建议保持低值,让模型把所有可能的目标都写出来,再由审核流程过滤。如果阈值设太高,模型不确定的目标直接被丢弃,反而漏标。

审核自动通过线(默认 0.5)才是控制人工审核工作量的关键。模型质量好就把线调高(0.6 ~ 0.7)减少审核量,模型质量一般就调低(0.4 ~ 0.5)多审几张。

主动学习场景的 AI 标注

主动学习(Active Learning)迭代里的批量标注任务由系统自动创建和触发,不走本页的人工操作流程。但底层用的是同一套批量标注处理器,分流规则、自动通过线、反例标记等行为完全一致。详见主动学习相关文档。