Data Labeling
数据标记会为原始数据添加类别、框、掩码或关键点,让监督模型能够从中学习。介绍标签类型、工作流程和质量检查。
数据标签是指向原始数据附加真实标注信息的过程,例如为图像添加类别名称、为街景照片中的每辆汽车添加边界框,或为音频片段添加转录文本,以便监督学习模型从中学习。标签定义了任务:模型学习预测标签所描述的内容,并尽可能准确、一致地复现标签所表达的信息。数据标注是它的同义词,从事这项工作的人称为标签人员或标注人员。为训练数据添加标签通常是最耗时、最昂贵的步骤,因此许多工作流程会让模型先提出标签,再由人工修正。
计算机视觉中的标签类型#
标签格式取决于模型必须执行的任务:
- 图像分类:每张图像一个类别,例如将质检线上的零件标记为“有缺陷”或“正常”。
- 目标检测:为每个感兴趣对象标注一个轴对齐框和一个类别。
- 有向边界框:使用旋转框框住细长或倾斜的对象,例如航拍图像中的船只和车辆。
- 实例分割:使用多边形或像素掩码分别描绘每个对象的轮廓。
- 语义分割:为每个像素指定类别,例如道路、人行道和天空,但不区分单个对象。
- 姿态估计:在固定地标处标注关键点,例如 COCO 从鼻子和眼睛到脚踝的 17 个关键点,通常还会为每个点添加可见性标志。
细节越多,工作量越大。为 ILSVRC 的ImageNet 挑战赛数据集绘制一个高质量边界框约需 35 秒;采用极限点击法时,标注人员点击对象的最上、最下、最左和最右点,而不是拖动框的角点,在框质量相同的情况下可将耗时降至 7 秒。多边形和像素掩码耗时更长。在计算机视觉以外,标签还可以标注命名实体识别 (NER)中的实体片段、文本分类中的情感,以及语音识别中的转录文本。
标注工作流#
标注项目会先制定书面指南,在开始工作前定义每个类别并明确边界情况:例如被遮挡 90% 的汽车是否应标注边界框、自行车骑手的四肢周围应框得多紧,以及如何处理反射、微小对象和人群。在模型辅助标注中,使用已有标签训练的模型会为新图像预先添加标签,标注人员负责修正错误,审核人员抽查样本,而每次重新训练都会让模型下一轮提出的候选结果更加准确。主动学习在这一循环中增加了一个选择步骤,让人工优先标注模型最不确定的图像。
Ultralytics Platform中的标注编辑器内置了这一循环:其智能模式使用 Meta 的 Segment Anything 模型,将一次点击转换为掩码;也可以将预训练 YOLO 模型或你自己微调的 YOLO 模型生成的预测结果添加为草稿标注。相同的预标注步骤也可以在 Python 中使用 YOLO26检测器运行,它会按训练所用的标签格式写入预测结果:
from pathlib import Path
from ultralytics import YOLO
# 加载预训练的 YOLO26 nano 检测器以生成候选标签
model = YOLO("yolo26n.pt")
# 对未标记图像进行预测
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# 为每个对象写入一行 "class x_center y_center width height",并归一化到 0–1
label_file = result.save_txt("bus.txt")
# 打印标注人员将审核的草稿标签
print(Path(label_file).read_text())打印出的每一行由一个 COCO 类别索引,以及相对于图像尺寸的框中心、宽度和高度比例组成。这就是YOLO 标签格式;标注人员修正错误或缺失的框后,训练即可直接读取。
标签质量#
模型的一致性不可能超过标签本身;即使是著名数据集,也常常存在错误。一项关于10 个广泛使用的基准数据集中的标签错误的研究估计,测试标签平均至少有 3.3% 是错误的,其中 ImageNet 验证集至少有 6% 的标签错误。团队会通过几种标准检查来发现错误:
- 金标准问题:在每位标签人员的任务队列中混入答案已知的项目,以衡量其准确性,这些项目通常来自金标准数据集。
- 重叠标注:由两名或更多标注人员为相同项目添加标签;类别标签的一致性使用 Cohen's kappa评分,框和掩码的一致性则使用它们之间的交并比 (IoU)评分。
- 基于模型的审查:训练好的模型会标记它强烈不认同的标签,而 cleanlab 等工具会为最可能的标签错误排序,供人工审核。










