跳至内容

使用标注增强数据集以训练YOLO11

在建立计算机视觉模型时,训练数据的质量和种类对模型的性能有很大影响。Albumentations 提供了一种快速、灵活、高效的方法来应用各种图像转换,从而提高模型适应真实世界场景的能力。它可以轻松与 Ultralytics YOLO11可帮助您为物体检测分割分类任务创建强大的数据集。

通过使用 Albumentations,您可以利用几何变换和色彩调整等技术提高YOLO11 培训数据的质量。在本文中,我们将了解 Albumentations 如何改进数据扩增流程,使YOLO11 项目更具影响力。让我们开始吧!

图像增强

Albumentations是一个开源图像增强库,创建于2018 年 6 月。它旨在简化和加速计算机视觉中的图像增强过程。它以性能和灵活性为宗旨,支持多种扩增技术,从旋转和翻转等简单变换到亮度和对比度变化等更复杂的调整。Albumentations 可帮助开发人员为图像分类物体检测分割等任务生成丰富多样的数据集。

您可以使用 Albumentations 轻松地对图像、分割掩码边界框关键点应用增强功能,并确保数据集的所有元素都能一起转换。它能与流行的深度学习框架无缝协作,如 PyTorchTensorFlow等流行的深度学习框架无缝协作,使其适用于各种项目。

此外,无论是处理小型数据集还是大型计算机视觉任务,Albumentations 都是增强功能的绝佳选择。它能确保快速高效的处理,缩短数据准备时间。同时,它还有助于提高模型性能,使模型在实际应用中更加有效。

Albumentations 的主要特点

Albumentations 提供了许多有用的功能,可简化各种计算机视觉应用中的复杂图像增强。以下是其中一些主要功能:

  • 变换范围广:Albumentations 提供70 多种不同的变换,包括几何变化(如旋转、翻转)、颜色调整(如亮度、对比度)和噪声添加(如高斯噪声)。有了多种选项,就能创建高度多样化和强大的训练数据集。

图像增强示例

  • 高性能优化:Albumentations 基于 OpenCV 和 NumPy 开发,采用 SIMD(单指令多数据)等先进的优化技术,可同时处理多个数据点,从而加快处理速度。它能快速处理大型数据集,是图像增强技术中速度最快的选择之一。

  • 三级增强Albumentations 支持三种级别的增强:像素级变换、空间级变换和混合级变换。像素级变换只影响输入图像,不会改变遮罩、边界框或关键点。与此同时,图像及其元素(如遮罩和边界框)都会通过空间级变换进行转换。此外,混合级变换是增强数据的一种独特方式,因为它能将多个图像合并为一个图像。

不同级别的增强功能概述

  • 基准测试结果:在基准测试方面,Albumentations 始终优于其他库,尤其是在大型数据集方面。

为什么要在视觉人工智能项目中使用 Albumentations?

在图像增强方面,Albumentations 是计算机视觉任务的可靠工具。以下是您应该考虑在视觉人工智能项目中使用它的几个主要原因:

  • 易于使用的应用程序接口Albumentations 提供了一个简单明了的应用程序接口,可对图像、遮罩、边界框和关键点应用各种增强功能。其设计可轻松适应不同的数据集,使数据准备工作更简单、更高效。

  • 严格的错误测试:扩增管道中的错误会悄无声息地破坏输入数据,通常不会被察觉,但最终会降低模型性能。Albumentations 通过全面的测试套件解决了这一问题,有助于在开发早期发现漏洞。

  • 可扩展性:Albumentations 可用于轻松添加新的增强功能,并通过单一界面和内置转换功能将其用于计算机视觉管道。

如何使用图解法为YOLO11 培训提供补充数据

既然我们已经介绍了 Albumentations 是什么以及它能做什么,那么让我们来看看如何使用它来扩充YOLO11 模型训练的数据。它很容易设置,因为它可以直接集成到Ultralytics 的 训练模式中,如果安装了 Albumentations 软件包,它就会自动应用。

安装

要在YOLO11 中使用 Albumentations,首先要确保安装了必要的软件包。如果没有安装 Albumentations,则在训练过程中不会应用增强功能。设置完成后,您就可以创建用于训练的增强数据集,并集成 Albumentations 自动增强模型。

安装

# Install the required packages
pip install albumentations ultralytics

有关安装过程的详细说明和最佳实践,请查阅我们的Ultralytics 安装指南。在安装YOLO11 所需的软件包时,如果遇到任何困难,请查阅我们的常见问题指南,了解解决方案和技巧。

使用方法

安装必要的软件包后,您就可以通过YOLO11 开始使用 Albumentations 了。当您训练YOLO11 时,通过与 Albumentations 的集成,会自动应用一系列增强功能,从而轻松提高模型性能。

使用方法

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

接下来,让我们来详细了解一下在训练中使用的具体增强技术。

模糊

Albumentations 中的 "模糊 "变换通过在一个小的正方形区域(或称 "核")内平均像素值,为图像应用一种简单的模糊效果。这是通过 OpenCV 的 cv2.blur 功能,这有助于减少图像中的噪点,但也会略微减少图像细节。

以下是本次集成中使用的参数和数值:

  • blur_limit(模糊限制):用于控制模糊效果的大小范围。默认范围是(3, 7),这意味着模糊效果的内核大小可以在 3 到 7 像素之间变化,为了保持模糊效果居中,只允许使用奇数。

  • p:应用模糊的概率。在整合中,p=0.01,因此每张图像应用这种模糊效果的概率为 1%。低概率允许偶尔出现模糊效果,引入一点变化来帮助模型泛化,而不会使图像过度模糊。

模糊增强实例

中值模糊

Albumentations 中的中值模糊(MedianBlur)变换可对图像应用中值模糊效果,这对于在保留边缘的同时减少噪点特别有用。与典型的模糊方法不同,中值模糊使用的是中值滤波器,它在去除椒盐噪点的同时还能保持边缘的清晰度,效果尤为显著。

以下是本次集成中使用的参数和数值:

  • blur_limit(模糊限制):该参数控制模糊内核的最大尺寸。在此集成中,它的默认值范围是(3, 7),这意味着模糊的内核大小在 3 到 7 像素之间随机选择,只允许奇数值,以确保正确对齐。

  • p:设置应用中值模糊的概率。在这里,p=0.01,因此每幅图像有 1%的几率应用这种变换。这种低概率可以确保中值模糊很少使用,从而帮助模型通过偶尔看到噪点减少和边缘保留的图像进行泛化。

下图显示了将这种增强技术应用于图像的一个示例。

中值模糊增强实例

灰度

Albumentations 中的 ToGray 变换可将图像转换为灰度图像,将其还原为单通道格式,并可选择复制该通道以匹配指定数量的输出通道。可以使用不同的方法来调整灰度亮度的计算方法,从简单的平均法到更先进的技术,以获得真实的对比度和亮度感知。

以下是本次集成中使用的参数和数值:

  • num_output_channels(输出通道数):设置输出图像的通道数。如果该值大于 1,单个灰度通道将被复制以创建多通道灰度图像。默认情况下,它被设置为 3,从而生成具有三个相同通道的灰度图像。

  • 方法:定义灰度转换方法。默认方法为 "加权平均",应用的公式(0.299R + 0.587G + 0.114B)与人的感知非常接近,可提供自然的灰度效果。其他选项,如 "from_lab"、"desaturation"、"average"、"max "和 "pca",可根据对速度、亮度强调或细节保留的不同需求,提供创建灰度图像的其他方法。

  • p:控制灰度转换的应用频率。当 p=0.01 时,每幅图像有 1%的几率转换为灰度图像,这样就可以混合使用彩色和灰度图像,帮助模型更好地概括。

下图显示了应用这种灰度转换的示例。

ToGray 扩增实例

对比度受限自适应直方图均衡 (CLAHE)

Albumentations 中的 CLAHE 变换应用了对比度受限自适应直方图均衡(CLAHE)技术,该技术通过均衡局部区域(块)而非整个图像的直方图来增强图像对比度。CLAHE 可产生均衡的增强效果,避免标准直方图均衡化可能导致的对比度过度放大,尤其是在最初对比度较低的区域。

以下是本次集成中使用的参数和数值:

  • clip_limit: 控制对比度增强范围。默认设置范围为(1,4),它决定了每个磁贴中允许的最大对比度。数值越大,对比度越高,但也可能产生噪点。

  • tile_grid_size(磁砖网格大小):定义磁贴网格的大小,通常为(行、列)。默认值为(8, 8),即图像被划分为 8x8 的网格。较小的磁贴尺寸可提供更多局部调整,而较大的磁贴尺寸则可产生更接近全局均衡的效果。

  • p:应用 CLAHE 的概率。在这里,p=0.01 只会在 1%的情况下引入增强效果,从而确保对比度调整只适用于偶尔变化的训练图像。

下图显示了应用 CLAHE 转换的示例。

CLAHE 增强实例

继续学习藻类学

如果您想了解更多有关 Albumentations 的信息,请查看以下资源,了解更深入的说明和示例:

主要收获

在本指南中,我们探讨了用于图像增强的Python 库 Albumentations 的主要方面。我们讨论了它的各种变换、优化性能以及如何在下一个YOLO11 项目中使用它。

此外,如果您想了解有关Ultralytics YOLO11 集成的更多信息,请访问我们的集成指南页面。您将在那里找到宝贵的资源和见解。

常见问题

如何将 Albumentations 与YOLO11 整合,以改进数据扩增?

Albumentations 可与YOLO11 无缝集成,如果安装了该软件包,则可在培训期间自动应用。下面是开始使用的方法:

# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO

# Load and train model with automatic augmentations
model = YOLO("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)

该集成包括经过优化的增强功能,如模糊、中值模糊、灰度转换和 CLAHE,并通过精心调整的概率来提高模型性能。

与其他扩增库相比,使用 Albumentations 的主要优势是什么?

Albumentations 脱颖而出有几个原因:

  1. 性能基于 OpenCV 和 NumPy 构建,经过 SIMD 优化,速度更快
  2. 灵活性支持 70 多种转换,包括像素级、空间级和混合级增强功能
  3. 兼容性:可与流行的框架(如 PyTorchTensorFlow
  4. 可靠性:广泛的测试套件可防止无声数据损坏
  5. 易于使用:适用于所有增强类型的单一统一应用程序接口

哪些类型的计算机视觉任务可以从 Albumentations 增强技术中获益?

Albumentations 可增强各种计算机视觉任务,包括

  • 物体检测:提高模型对光照、比例和方向变化的稳健性
  • 实例分割:通过各种变换提高掩码预测的准确性
  • 分类:通过颜色和几何增强功能提高模型通用性
  • 姿势估计:帮助模型适应不同的视角和光线条件

该库提供了多种增强选项,对任何需要强大模型性能的视觉任务都很有价值。

📅 Created 1 month ago ✏️ Updated 15 days ago

评论