Ultralytics YOLO27:

计算机视觉的数据收集与标注策略#

数据收集和标注是每个计算机视觉项目的两个基础步骤:你需要收集具有代表性的图像或视频,然后为其添加标签,使模型能够从中学习。数据质量直接决定模型性能,因此在开始任何训练之前,类别定义、无偏数据来源和一致的标注都非常重要。



Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀

本指南涵盖设置类别和收集数据什么是数据标注以及可选择的标注类型和格式,还有高效的标注策略——每项决策都围绕你的项目目标展开。

设置类别和收集数据#

为计算机视觉项目收集图像和视频归结为三个决策:定义多少个类别、从哪里获取数据,以及如何让数据集不受偏差影响。

为项目选择合适的类别#

启动计算机视觉项目时,首先要考虑的问题之一是应包含多少个类别。你需要确定类别归属,也就是希望模型识别和区分的不同类别或标签。类别数量应根据项目的具体目标确定。

例如,如果你想监控交通,类别可以包括“汽车”“卡车”“公交车”“摩托车”和“自行车”。另一方面,如果要跟踪商店中的商品,类别可以是“水果”“蔬菜”“饮料”和“零食”。根据项目目标定义类别,有助于让数据集保持相关性和聚焦性。

定义类别时,还需要做出一个重要区分:选择粗粒度类别数量还是细粒度类别数量。“数量”指的是你关注的不同类别数。这一决策会影响数据的粒度和模型的复杂度。以下是两种方法需要考虑的因素:

  • 粗粒度类别数量:这些是范围更广、包容性更强的类别,例如“车辆”和“非车辆”。它们可以简化标注并减少计算资源需求,但提供的详细信息较少,在复杂场景中可能限制模型的有效性。
  • 细粒度类别数量:类别更多、区分更细,例如“轿车”“SUV”“皮卡”和“摩托车”。它们能够捕获更详细的信息,从而提升模型的准确率和性能。不过,这些类别的标注更加耗时耗力,也需要更多计算资源。

从更具体的类别开始会非常有帮助,尤其是在注重细节的复杂项目中。更具体的类别可以让你收集更详细的数据、获得更深入的洞察,并在类别之间建立更清晰的区分。这不仅能提高模型准确率,还能在之后需要时更容易调整模型,同时节省时间和资源。

数据来源#

你可以使用公共数据集,也可以收集自己的定制数据。KaggleGoogle 数据集搜索引擎上的公共数据集提供了经过良好标注的标准化数据,是训练和验证模型的良好起点。

另一方面,定制数据收集可以让你根据具体需求定制数据集。你可以使用相机或无人机拍摄图像和视频,从网络上抓取图像,或使用组织内部已有的数据。定制数据让你能够更好地控制数据的质量和相关性。结合公共数据和定制数据来源,有助于创建多样且全面的数据集。

避免数据收集中的偏差#

当数据集中的某些群体或场景代表性不足或过度代表时,就会产生偏差。这会导致模型在某些数据上表现良好,但在其他数据上表现不佳。避免人工智能中的偏差至关重要,这样你的计算机视觉模型才能在各种场景中表现良好。

以下是你在收集数据时避免偏差的方法:

  • 多样化来源:从多个来源收集数据,以捕获不同的视角和场景。
  • 均衡代表性:确保所有相关群体都得到均衡代表。例如,考虑不同的年龄、性别和族群。
  • 持续监控:定期检查和更新数据集,以识别并解决新出现的偏差。
  • 偏差缓解技术:使用对代表性不足的类别进行过采样、数据增强以及公平性感知算法等方法。

遵循这些实践有助于创建更稳健、更公平的模型,使其能够在实际应用中实现良好的泛化。

什么是数据标注?#

数据标注是为数据添加标签,使其可用于训练机器学习模型的过程。在计算机视觉中,这意味着为图像或视频添加模型需要学习的信息。没有正确标注的数据,模型就无法准确学习输入与输出之间的关系。

数据标注类型#

根据计算机视觉任务的具体要求,数据标注有不同类型。以下是一些示例:

  • 边界框:在图像中的对象周围绘制的矩形框,主要用于目标检测任务。这些框由左上角和右下角坐标定义。
  • 多边形:对象的详细轮廓,比边界框提供更精确的标注。多边形用于实例分割等任务,在这些任务中对象的形状非常重要。
  • 掩码:二值掩码,其中每个像素要么属于对象,要么属于背景。掩码用于语义分割任务,以提供像素级细节。
  • 关键点:在图像中标记的特定点,用于识别感兴趣的位置。关键点用于姿态估计和面部标志点检测等任务。
  • 有向边界框:带有旋转角度的矩形,用于OBB任务,其中对象可能以任意方向出现,例如航空影像。

Data annotation types including bounding boxes, polygons, and masks

常见标注格式#

选择标注类型后,选择用于存储和共享标注的适当格式同样重要。最常见的格式包括:

格式文件结构常见用途
COCO单个 JSON 文件目标检测、实例分割、关键点检测、stuff 和全景分割、图像字幕生成
Pascal VOC每张图像对应一个 XML 文件目标检测
YOLO每张图像对应一个 .txt 文件目标检测、分割、姿态和有向框

YOLO 格式为每个对象存储一行数据,类别索引从 0 开始。对于目标检测,该行是带有归一化 0–1 坐标的 class x_center y_center width height分割行将框替换为对象的归一化多边形点,而姿态行保留框,并在其后追加关键点坐标;当数据集声明了 kpt_shape: [n, 3] 时,每个关键点还会带有可见性标志。OBB行使用归一化角点坐标存储 class x1 y1 x2 y2 x3 y3 x4 y4

如果你的标注工具导出 COCO JSON,你可以将其转换为 YOLO .txt 标签,也可以使用自定义数据集类直接在 JSON 上训练

制定标注指南#

选择标注类型和格式后,下一步是制定清晰、客观的标注规则。这些规则是整个标注过程中保持一致性和准确性的路线图。规则的关键方面包括:

  • 清晰与详细:确保说明清晰。使用示例和图示说明预期结果。
  • 一致性:保持标注统一。为不同类型的数据设置标准标注标准,使所有标注都遵循相同规则。
  • 减少偏差:保持中立。训练自己做到客观,尽量减少个人偏见,以确保标注公平。
  • 效率:聪明地工作,而不是更辛苦地工作。使用能够自动化重复任务的工具和工作流,让标注过程更快、更高效。

定期审查和更新标注规则,有助于让标注保持准确、一致,并与项目目标一致。

标注工具#

优秀的标注工具可以让你标注任务所需的每种类型,强制执行一致的指南,并以适合训练的格式导出标签。Ultralytics Platform提供内置的标注编辑器,涵盖检测、实例分割、语义分割、分类、姿态和 OBB,并提供SAM 驱动的智能标注,将一次点击转换为掩码,用于检测、实例分割、语义分割和 OBB 任务。由于标注会以每项任务所需的布局保存——空间任务使用 YOLO .txt,分类使用类别文件夹——你的标注数据集无需转换即可直接进入训练

标注质量:准确性、精确性和离群点#

在大规模标注之前,了解准确性、精确性、离群点和质量控制会很有帮助,这样你就不会以适得其反的方式标注数据。

理解准确性和精确性#

了解准确性和精确性的区别,以及它们与标注的关系非常重要。准确性指标注数据与真实值的接近程度。它有助于衡量标签在多大程度上反映现实场景。精确性表示标注的一致程度,用于检查你是否在整个数据集中为同一个对象或特征赋予相同标签。较高的准确性和精确性可以减少噪声,并提升模型从训练数据中泛化的能力,从而训练出更好的模型。

Accuracy vs precision comparison for data annotation

识别离群点#

离群点是与数据集中的其他观测值存在较大偏差的数据点。在标注方面,离群点可能是标记错误的图像,或与数据集其余部分不匹配的标注。离群点令人担忧,因为它们会扭曲模型的学习过程,导致预测不准确和泛化能力较差。

你可以使用多种方法检测和纠正离群点:

  • 统计技术:要检测像素值、边界框坐标或对象大小等数值特征中的离群点,可以使用箱线图、直方图或 z 分数等方法。
  • 视觉技术:要发现对象类别、颜色或形状等分类特征中的异常,可以使用绘制图像、标签或热力图等可视化方法。
  • 算法方法:使用聚类(例如 K-means 聚类、DBSCAN)和异常检测算法等工具,根据数据分布模式识别离群点。

标注数据的质量控制#

与其他技术项目一样,标注数据也必须进行质量控制。定期检查标注以确保其准确且一致,是一种良好实践。可以通过以下几种方式完成:

  • 审查标注数据样本
  • 使用自动化工具发现常见错误
  • 让其他人再次检查标注

如果你与多人协作,不同标注者之间的一致性非常重要。良好的标注者间一致性意味着指南清晰,且每个人都以相同方式遵循指南。这样可以让所有人保持一致,并确保标注统一。

在审查过程中,如果发现错误,请及时纠正,并更新指南以避免将来再次出错。向标注者提供反馈并定期开展培训,有助于减少错误。建立完善的错误处理流程,可以让数据集保持准确可靠。

高效的数据标注策略#

为了让数据标注过程更加顺畅和高效,可以考虑实施以下策略:

  • 清晰的标注指南:提供包含示例的详细说明,确保所有标注者对任务的理解一致。例如,在标注鸟类时,明确应包含整只鸟还是仅包含特定部位。
  • 定期质量检查:设定基准并使用具体指标审查工作,通过持续反馈保持高标准。
  • 使用预标注工具:许多现代标注平台提供 AI 辅助预标注功能,可以自动生成初始标注,再由人工进行完善,从而显著加快流程。
  • 实施主动学习:这种方法会优先标注信息量最大的样本,在保持模型性能的同时减少所需标注的总数量。
  • 批处理:将相似图像分组进行标注,以保持一致性并提高效率。

这些策略有助于在减少标注过程所需时间和资源的同时,保持高质量的标注。

结论#

收集多样、无偏的数据,并使用合适的工具进行一致标注,是可靠计算机视觉模型的基础。完成数据集的收集和标注后,继续阅读计算机视觉项目步骤指南,进入训练和评估阶段。如果过程中有任何问题,可以在Ultralytics GitHub 仓库Ultralytics Discord 服务器向社区提问。

常见问题#

  • 为了最大限度地减少偏差,请从多样化的来源收集数据,确保所有相关群体(例如不同年龄、性别和族群)得到均衡代表,定期审查和更新数据集以发现新出现的偏差,并应用对代表性不足的类别进行过采样、数据增强和公平性感知算法等缓解技术。通过这种方式避免偏差,可以让你的计算机视觉模型在多样化的现实场景中保持良好表现,并提升其泛化能力。

  • 制定清晰、客观的标注指南,提供详细说明、示例和图示,然后将其统一应用于所有数据类型,使每项标注都遵循相同规则。培训标注者保持中立,以减少个人偏见;定期审查和更新指南;并使用自动化一致性检查以及标注者间反馈,保持较高的准确性并确保其符合项目目标。

  • 每个类别有几百个已标注对象,就足以开始尝试迁移学习,但为了获得可靠的现实应用性能,Ultralytics 建议每个类别至少准备 1,500 张图像和 10,000 个已标注实例。将足够大的数据集与合理的训练计划结合起来——约 300 个周期是常见起点;如果模型过早过拟合,则应减少周期数——并确保标注严格且符合项目的具体目标。你可以在YOLO26 训练指南中了解详细的训练策略。

  • 是的。Ultralytics Platform包含内置的标注编辑器,在单一工作区中支持边界框、多边形、关键点、有向框和分类标签。SAM 驱动的智能标注可以通过一次点击生成掩码,加快检测、实例分割、语义分割和 OBB 任务的标注速度,而姿态和分类则需要手动标注。标注会以每项任务所需的布局存储——空间任务使用 YOLO .txt,分类使用类别文件夹——可直接用于训练

  • 根据你计划训练的任务匹配标注类型。边界框绘制速度最快,也是目标检测所需的全部标注。每个对象的多边形和掩码需要明显更多时间,但当对象的精确形状很重要时,它们是实例分割所必需的。关键点适用于姿态估计和标志点检测,有向框适用于OBB等任务,例如航空影像;在这些场景中,轴对齐矩形会框入过多背景。针对实际需要的最精细任务进行标注,可以让标注工作量与最终结果相匹配。

评论