深圳尤洛视觉
深圳
立即加入

探索计算机视觉项目的数据标注

Abirami Vina

4 分钟阅读

2024年9月2日

阅读我们关于计算机视觉项目数据标记的全面深入探讨,了解如何标记视觉数据以及为什么它如此重要。

人工智能 (AI) 专注于赋予机器类人的能力,其中最流行的方法之一是通过监督学习。换句话说,通过向 AI 模型展示带标签的示例来教导它们,可以帮助它们从模式中学习并提高任务能力。这与人类从经验中学习非常相似。那么,这些带标签的示例是如何创建的呢?

数据标注涉及标记或标记数据,以帮助机器学习算法理解它。在计算机视觉中,这意味着标记图像或视频,以准确识别和分类对象、动作或场景。数据标记至关重要,因为 AI 模型的成功在很大程度上取决于其训练所用的已标记数据的质量。

研究表明,超过 80% 的 AI 项目时间 花费在数据管理上,从收集和聚合数据到 清洗和标注 数据。这表明数据标注在 AI 模型开发中的重要性。使用高质量的标注数据使得 AI 模型能够在实际情况下更准确、更可靠地执行 面部识别目标检测 等任务。

为什么数据标注是必要的

数据标注构成了计算机视觉模型性能好坏的基础。 标注数据是模型用来学习和进行预测的真实数据。 真实数据是关键,因为它代表了模型试图理解的真实世界。 如果没有这个可靠的基准,AI 模型就像一艘没有指南针的航船。 

__wf_reserved_inherit
图 1. 真值与预测结果对比。

准确的标注有助于这些模型理解它们所看到的内容,并做出更好的决策。如果数据标注不佳或不一致,模型将难以做出正确的预测和决策,就像学生从不正确的教科书中学习一样。由于有了带注释的数据,模型可以学习诸如图像分类实例分割姿态估计等任务,从而识别图像和视频中的对象。 

数据集的最佳资源

在创建一个全新的数据集并仔细标记图像和视频之前,最好先看看是否可以使用现有的数据集来完成您的项目。有几个很棒的开源存储库,您可以在其中免费访问高质量的数据集。其中一些最受欢迎的包括:

  • ImageNet:它通常用于训练图像分类模型。
  • COCO此数据集专为目标检测、分割和图像描述而设计。
  • PASCAL VOC:它支持物体检测和分割任务。
__wf_reserved_inherit
图 2. COCO 数据集中的数据示例。

在选择数据集时,重要的是要考虑诸如它与您的项目的契合程度、数据集的大小、多样性以及标签的质量等因素。此外,请务必查看数据集的 许可条款 以避免任何 法律 后果,并检查数据的格式是否适合您的工作流程和工具。

如果现有数据集不太符合您的需求,创建自定义数据集是一个不错的选择。您可以根据项目的需要,使用网络摄像头、无人机或智能手机等工具来收集图像。理想情况下,您的自定义数据集应该是多样化的、平衡的,并且能够真实地代表您尝试解决的问题。这可能意味着在不同的光照条件下、从不同的角度以及在多个环境中捕获图像。

如果您只能收集到少量图像或视频,数据增强是一种有用的技术。它涉及通过对现有图像应用旋转、翻转或颜色调整等变换来扩展数据集。它可以增加数据集的大小,并使您的模型更强大,并且能够更好地处理数据中的变化。通过混合使用开源数据集、自定义数据集和增强数据,您可以显着提高计算机视觉模型的性能。

图像标注技术的类型

在开始标注图像之前,熟悉不同类型的标注非常重要。这将帮助您为您的项目选择合适的标注类型。接下来,我们将了解一些主要的标注类型。 

边界框

边界框是计算机视觉中最常见的标注类型。它们是用于标记图像中对象位置的矩形框。这些框由其角点的坐标定义,并帮助AI模型识别和定位对象。边界框主要用于目标检测

__wf_reserved_inherit
图 3. 边界框示例。

分割掩码

有时,需要比仅通过绘制在对象周围的边界框更准确地检测对象。 您可能对图像中对象的边界感兴趣。 在这种情况下,分割掩码可让您勾勒出复杂的对象。 分割掩码是更详细的像素级表示。 

这些掩码可用于 语义分割实例分割。语义分割涉及根据图像中每个像素所代表的物体或区域(如行人、汽车、道路或人行道)对其进行标记。而实例分割则更进一步,它可以单独识别和分离每个物体,例如区分图像中的每辆汽车,即使它们都是同一类型的。

__wf_reserved_inherit
图 4. 语义分割(左)和实例分割掩码(右)的示例。

3D 立方体

3D 立方体类似于边界框,其独特之处在于 3D 立方体增加了深度信息,并提供了物体的 3D 表示。这些额外的信息使系统能够理解物体在 3D 空间中的形状、体积和位置。3D 立方体通常用于自动驾驶汽车,以测量物体与车辆的距离

__wf_reserved_inherit
图 5. 3D 立方体示例。

关键点和地标

另一种有趣的标注类型是关键点标注,即在对象上标记眼睛、鼻子或关节等特定点。地标标注更进一步,通过连接这些点来捕捉更复杂形状的结构和运动,例如面部或身体姿势。这些类型的标注用于面部识别、动作捕捉和增强现实等应用。它们还可以提高 AI 模型在诸如手势识别或分析运动表现等任务中的准确性。

__wf_reserved_inherit
图 6. 关键点示例。

如何使用 labelImg 标注数据

现在我们已经讨论了不同类型的标注,让我们了解一下如何使用流行的工具 LabelImg 来标注图像。LabelImg 是一款开源工具,可以简化图像标注,并可用于创建 YOLO (You Only Look Once) 格式的数据集。对于从事小型 Ultralytics YOLOv8 项目 的初学者来说,这是一个不错的选择。

设置 LabelImg 非常简单。首先,确保您的计算机上安装了 Python 3。然后,您可以使用一个简单的命令安装 LabelImg。

安装完成后,您可以使用以下命令启动该工具:

LabelImg 可在多个平台上运行,包括 Windows、macOS 和 Linux。如果您在安装过程中遇到任何问题,可以从官方 LabelImg 存储库中获取更详细的说明。

__wf_reserved_inherit
图 7. 使用 LabelImg 进行图像标注。

启动工具后,请按照以下简单步骤开始标记您的图像:

  • 设置您的类别: 首先,定义要在名为“predefined_classes.txt”的文件中注释的类别(种类)列表。 此文件让软件知道您将在图像中标记哪些对象。
  • 切换到 YOLO 格式: 默认情况下,LabelImg 使用 PASCAL VOC 格式,但如果您使用 YOLO,则需要切换格式。只需单击工具栏上的“PascalVOC”按钮即可切换到 YOLO。
  • 开始标注: 使用“打开”或“打开目录”选项加载您的图像。然后,在要标注的对象周围绘制边界框,并分配正确的类标签。标记每个图像后,保存您的工作。LabelImg 将创建一个与您的图像同名的文本文件,其中包含 YOLO 标注。
  • 保存并查看: 注释以 YOLO 格式保存在 .txt 文件中。该软件还会保存一个列出所有类名称的 “classes.txt 文件。

高效的数据标注策略

为了使数据标注过程更加顺畅,需要牢记以下几个关键策略。例如,清晰的标注指南至关重要。如果没有它们,不同的标注员可能会对同一任务做出不同的解读。 

假设任务是用边界框注释图像中的鸟类。一个注释者可能标记整只鸟,而另一个注释者可能只标记头部或翅膀。这种不一致可能会在训练期间混淆模型。通过提供明确的定义,例如“标记包括翅膀和尾巴的整只鸟”,以及针对棘手情况的示例和说明,您可以确保数据被准确且一致地标记。

定期的质量检查对于维持高标准也很重要。通过设定基准并使用特定的指标来审查工作,您可以保持数据的准确性,并通过持续的反馈来改进流程。 

数据标注概览

数据标注是一个简单的概念,但会对您的计算机视觉模型产生重大影响。 无论您是使用 LabelImg 等工具来标注图像,还是在开源数据集上训练模型,了解数据标注都是关键。 数据标注策略可以帮助简化整个过程,并使其更高效。 花时间改进您的标注方法可以带来更好、更可靠的 AI 结果。

继续探索和扩展您的技能!与我们的社区保持联系,不断学习人工智能!查看我们的 GitHub 仓库,了解我们如何利用人工智能在制造业医疗保健等行业创建创新解决方案。🚀

让我们一起构建人工智能的未来!

开启您的机器学习未来之旅

免费开始
链接已复制到剪贴板