Data Annotation
数据标注会为原始数据添加类别、框、掩码和关键点等真实标注。介绍不同任务的标注类型、文件格式和自动标注。
数据标注是指向原始数据添加真实标注信息的过程,例如为图像添加类别名称、在每个对象周围绘制框或多边形、标记人体关键点,或为一段文本添加标签,以便监督学习模型从中学习。数据标注也称为数据标签;计算机视觉团队通常会用“标注”指代框和掩码等绘制几何形状。标注包含两部分:由人员或模型绘制的几何形状或标签,以及用于存储这些信息以供训练的文件格式。
按任务划分的标注类型#
模型需要生成的输出决定了标注人员要绘制什么。细节越多,耗时越长,因此团队会选择能够承载模型所需信息的最简单标注类型。
- 边界框:每个对象一个框和一个类别,用于目标检测。YOLO 格式为每张图像写入一个文本文件,其中每个对象占一行
class x_center y_center width height,并根据图像尺寸归一化到 0–1。COCO JSON 以像素为单位存储[x_min, y_min, width, height],Pascal VOC XML 则存储两个角点的像素坐标。 - 多边形和掩码:用于实例分割的轮廓,或用于语义分割的逐像素类别。YOLO 和 COCO 将多边形存储为顶点列表;COCO 还会使用游程编码 (RLE) 为拥挤区域存储掩码。
- 类别标签:每张图像一个类别,用于图像分类,通常存储为包含图像的文件夹名称,也就是 ImageNet 风格分类数据集的文件夹布局。
- 关键点:用于姿态估计的每个地标都包含一个 x、y 位置和一个可见性标志。COCO 人物标注标记 17 个关键点,每个点都标注为未标记、已标记但被遮挡或可见。
- 有向框:用四个角点框住旋转对象,例如航拍图像中的船只和车辆,用于有向边界框检测。
标注精度对小目标尤其重要。一个 20 × 20 像素的边界框在水平和垂直方向上各偏移 3 像素后,与原始框的交并比(IoU)会降至 0.57;因此,即使预测结果与真实目标相符,在 COCO 平均精度均值(mAP)所平均的 10 个 IoU 阈值(0.60 至 0.95)中,也会有 8 个阈值将其判为漏检。书面指南会定义每个类别并明确边界情况(例如部分遮挡的目标应如何紧密框选),从而确保数千个标注保持一致。
图像以外的标注#
- 视频:在每一帧上绘制框或掩码,并用跟踪 ID 将它们关联起来,以便随着时间推移跟踪每个对象,用于多目标跟踪。
- 激光雷达与 3D:在点云中标注长方体,每个长方体包含中心、尺寸和朝向角,用于驾驶和机器人领域的3D 目标检测。
- 文本:通过字符偏移和实体类型标记文本片段,用于命名实体识别 (NER);也可以为每份文档添加一个标签,用于情感分析等任务。
- 音频:添加带时间戳的片段及其转录文本或说话人身份,用于语音识别。
- 模型偏好:标注人员从两个模型回答中选出更好的一个,生成用于基于人类反馈的强化学习 (RLHF)的比较数据。
自动标注#
模型辅助标注从模型生成的候选结果开始,由人工审核并修正。检测器会为其已知类别生成候选框,而像 Meta 的 Segment Anything 这样的可提示分割模型可以将框或点击转换为掩码,无需逐个顶点描绘多边形。Ultralytics 包中的 auto_annotate 函数会串联这两个步骤:YOLO26检测器负责发现并分类对象,而在 Ultralytics 包中运行的 SAM 2.1 会将每个框转换为多边形,并以 YOLO 分割格式保存。
from pathlib import Path
from ultralytics.data.annotator import auto_annotate
from ultralytics.utils import ASSETS
# Detect objects in the bundled sample images, then turn each box into a SAM 2.1 polygon
auto_annotate(data=ASSETS, det_model="yolo26n.pt", sam_model="sam2.1_b.pt", output_dir="auto_labels")
# Read the annotation file written for the bus image
rows = Path("auto_labels/bus.txt").read_text().splitlines()
print(f"{len(rows)} objects annotated")
print(rows[0][:80])bus.txt的每一行都包含一个 COCO 类别索引,后面跟着按 0–1 归一化的多边形 x、y 顶点坐标,标注人员可以在训练前审核并修正。低于默认置信度阈值0.25 的检测不会生成标注,因此仍需手动绘制漏检对象。Ultralytics Platform 还可以使用只需类别名称的视觉语言模型和开放词汇检测器自动标注检测数据集;VLM 基准测试结果则显示每个模型标注真实世界图像的准确度。










