YOLO 中的数据增强详解及参数使用

开发 机器学习
在本文中,我们将探讨可用的数据增强技术并详细了解它们。通过深入了解这些增强选项,您将能够更好地根据您的特定需求定制和微调您的YOLO模型。

在目标检测算法中,YOLO无疑是机器学习从业者中最受欢迎的选择。其卓越的速度和准确性使其成为广泛应用的首选。随着时间的推移,YOLO的多个版本如V5、V7、V8和YOLO-NAS相继出现,不断刷新目标检测的最新记录。

然而,要微调这些YOLO模型以实现最佳性能,仅仅实现算法本身是不够的。其中一个关键方面是数据增强。每个YOLO版本都有其默认的数据增强配置,但仅仅依赖这些设置可能无法为您的特定用例带来理想的结果。在本文中,我们将探讨可用的数据增强技术并详细了解它们。通过深入了解这些增强选项,您将能够更好地根据您的特定需求定制和微调您的YOLO模型。

不同的数据增强方法

1. 图像HSV(色调、饱和度和明度)增强

这种增强技术通过引入颜色、光照条件和对比度的变化来帮助YOLO模型。通过改变色调分量,我们可以模拟不同的光照条件,如日光或人工照明,使模型能够在各种光照设置下学习检测物体。调整饱和度分量可以控制颜色的鲜艳度或暗淡度,使模型能够接触到不同的颜色分布。修改亮度分量会影响图像的亮度,使模型能够适应不同的亮度水平。

通过将HSV增强纳入YOLO,模型变得更加健壮,能够处理具有不同光照条件、色彩方案和对比度的现实场景。在YOLO的后续版本中(不包括V4),我们可以通过为hsv_h、hsv_s和hsv_v指定分数值来配置HSV增强。这些值在0到1的范围内定义,允许精确控制图像色调、饱和度和明度分量的变化。

hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
hsv_v: 0.4  # image HSV-Value augmentation (fraction)

2. 图像角度/度数旋转增强

图像角度/度数增强涉及将输入图像旋转一定角度或度数。通过在训练期间引入旋转变化,模型变得更加健壮,能够处理在现实世界图像中可能以不同方向或角度出现的物体。

图像旋转增强可以通过指定0到360范围内的旋转度数来配置。

degrees: 0.0 # 图像旋转(+/- 度)

3. 图像平移增强

平移增强涉及在图像中移动或偏移物体。这种技术模拟了物体在帧内轻微位移或移动的场景。这种增强提高了模型在物体未居中或位于预期位置时检测物体的准确性。图像平移增强可以通过指定0到1范围内的平移值来配置。

translate: 0.2 # 图像平移(+/- 分数)

4. 图像透视变换增强

透视变换增强涉及扭曲图像以模拟透视变化。这对于物体可能出现在不同距离或视角的场景特别有用。

通过在训练期间应用透视变换,YOLO模型学会处理由透视变化引起的物体大小、形状和扭曲的变化。

perspective: 0.0 # 图像透视(+/- 分数),范围0-0.001

5. 图像缩放增强

图像缩放增强涉及将输入图像调整到不同的比例或尺寸。通过在具有不同比例的图像上训练YOLO模型,它能够更好地适应现实场景中不同大小的物体。

这种增强帮助模型学习检测不同比例的物体,使其能够有效地处理小物体和大物体。

图像缩放增强可以通过指定缩放值来配置,该值决定了图像的缩放级别。当使用较小的缩放值时,图像会缩小,使物体显得更小并提供更广泛的上下文。相反,较大的缩放值会使物体更近,从而产生放大的视图。

scale: 0.9 # 图像缩放(+/- 增益)

6. 图像剪切增强

剪切增强通过沿x或y轴倾斜或扭曲图像来引入几何变形。这种技术模拟了由于透视或相机角度导致物体可能倾斜或扭曲的现实情况。

通过在训练期间引入剪切变换,YOLO模型在检测形状扭曲的物体时变得更加健壮,例如从不同角度或具有透视效果的物体。

shear: 0.0 # 图像剪切(+/- 度)

7. 图像上下翻转(垂直)和左右翻转(水平)

图片

上下翻转增强涉及垂直翻转图像,生成一个镜像图像,其中顶部变为底部,反之亦然。这种增强帮助YOLO模型学习检测在现实场景中可能倒置或反转的物体。

左右翻转增强则涉及水平翻转图像,生成一个镜像图像,其中左侧变为右侧,反之亦然。这种增强使YOLO模型能够从不同的视角或视点学习和检测物体。

通过在垂直翻转或水平翻转的图像上进行训练,模型变得更加健壮和适应性强,使其能够准确地检测物体,无论其方向如何。

flipud: 0.0 # 图像上下翻转(概率)
fliplr: 0.5 # 图像左右翻转(概率)

. 图像马赛克增强

马赛克增强是一种将多张图像组合成一张具有马赛克外观的训练样本的技术。这有助于YOLO模型学习在复杂场景中检测物体,这些场景中物体可能重叠或环境拥挤。

当使用马赛克增强图像训练模型时,它能够更好地处理物体部分隐藏或混合在一起的情况。这种增强技术提高了模型在具有挑战性的场景中准确检测物体的能力。

mosaic: 1.0 # 图像马赛克(概率)

9. 图像混合增强

混合增强将成对的图像及其对应的物体标签组合起来,创建新的训练样本。通过混合图像及其标签,YOLO模型学会识别常见的物体特征,并更好地在不同类别之间进行泛化。

这种增强技术增强了模型处理物体外观变化的能力,并提高了其在检测具有相似特征的物体时的整体性能。

mixup: 0.0 # 图像混合(概率)

10. 图像剪切混合增强

剪切混合增强涉及随机选择一张图像的一部分并将其粘贴到另一张图像上,同时保持相应的物体标签。

这种技术鼓励YOLO模型从混合和重叠的物体实例中学习,促进更好的物体边界定位,并增强模型处理部分物体视图的能力。

结论

数据增强是简化和增强YOLO模型训练过程的有力工具,为在各种实际应用中实现更有效和准确的目标检测铺平了道路。通过结合各种增强方法,如HSV增强、图像角度/度数、平移、透视变换、图像缩放、上下翻转、左右翻转,以及更高级的技术如马赛克、剪切混合和混合增强,我们可以显著提高YOLO模型的性能和鲁棒性。

责任编辑:赵宁宁 来源: 小白玩转Python
相关推荐

2024-12-04 16:50:35

YOLO模型计算机视觉

2019-10-21 13:12:41

数据分析增强分析人工智能

2009-06-11 09:42:57

netbeans启动参数

2012-05-30 15:25:22

JDKURLConnectiJava

2011-08-30 15:57:15

Oracle 10gUNDO_RETENT

2023-06-28 08:34:02

Bind()函数JavaScript

2010-09-26 09:31:27

JVM启动参数

2009-02-18 13:21:04

2011-04-02 14:50:58

数据库代码

2011-08-15 14:12:16

SQL ServerDATEDIFF

2023-05-11 08:00:44

Golangsync.Pool

2010-07-26 10:37:00

Perl模式匹配

2009-08-11 10:45:58

linux中du命令参linux命令行参数linux命令行

2009-05-13 10:28:30

OracleDUAL数据库

2017-12-25 09:11:39

LinuxShell命令

2009-08-16 19:43:07

linux中touchtouch命令linux命令行参数

2009-08-16 19:46:16

linux中ftp命令ftp命令参数linux命令行参数

2023-12-25 22:19:35

函数

2025-01-13 10:00:00

2013-07-10 15:52:17

fragmentAndroid
点赞
收藏

51CTO技术栈公众号