Skip to content

数据增强

YoloV8是2023年发布的一种高效的目标检测算法,它的训练需要高质量的数据集,一个高质量的数据集就离不开数据增强等一些数据处理操作。

YoloV8官方推荐了一个数据集网站,就是Roboflow。Roboflow是一个数据集管理平台,提供了免费的数据集,同时也支持上传自己的数据集进行格式转换。使用Roboflow,开发者可以方便地获取所需格式的数据集,无需手动转换格式。此外,Roboflow还提供了多种数据预处理、数据增强等功能,可帮助开发者更好地优化训练数据,本文要讲述的就是利用Roboflow进行数据增强操作下面的图片是Github上面官方下载YOLOv8的网址获取的图片从上面可以看到YOLOv8官方指定的数据集获取网站就是Roboflow。

因此,如果你正在使用YOLOv8模型,Roboflow是一个非常好的选择,可以帮助你快速获取高质量的数据集,从而加快训练效率。同时,Roboflow也是YoloV8官方推荐的数据集网站,保证了数据集的质量和可靠性。

在之前的文章中我们讲到了如何获取你想要的数据集以及导出对应的格式包括(YOLOv5,YOLOv8等需要的各种各样的数据格式),如有不会的可以点击下面链接进行跳转。

为什么选择在 Roboflow 上进行数据增强?

通过 Roboflow(“离线增强”)而不是在训练时进行增强有几个关键的好处。

  • 提高了模型的可重复性。使用 Roboflow,可以获得每个图像增强方式的副本。例如,可能会发现模型在明亮图像而不是暗图像上表现更好,因此您应该收集更多低光训练数据。

  • 。增强是受 CPU 限制的操作。当您在 GPU 上进行训练并即时进行增强时,您的 GPU 通常会等待您的 CPU 在每个时期提供增强数据,这是效率非常低的!

  • 培训成本降低。由于增强是受 CPU 限制的操作,因此租用的昂贵 GPU 通常会等待接收图像以进行训练。

Roboflow具备数据增强的功能

在人工智能领域中,数据增强是一种常见的技术,用于增加训练数据的多样性和数量。数据增强的目的是通过对原始数据应用各种变换和扰动,生成新的样本,以扩展训练集。这样可以提高模型的泛化能力,使其在不同场景下更具鲁棒性。下面的图片上可以看到Roboflow具有的数据增强功能。

数据增强技术在训练模型时可以克服数据集有限的问题,增加模型的鲁棒性和准确性。通常,数据增强过程在训练之前通过预处理步骤应用于原始数据集。

需要根据具体应用场景和数据类型选择适合的数据增强技术,并进行实验评估以确保增强后的数据符合预期的效果。此外,还需要注意数据增强不应导致过度拟合或无意义的数据变换,因此需要根据问题进行合理的调整和选择。

下面我将详细介绍一下其中部分数据增强处理的具体的功能及其效果。

翻转

随机翻转(反射)图像垂直或水平。批注已正确镜像。

  • 水平:翻转图像左/右方向。

  • 垂直:翻转图像向上/向下方向。

90度旋转

将图像随机旋转 90 度或 180 度。

  • 顺时针:将图像顺时针旋转 90 度。

  • 逆时针:将图像逆时针旋转 90 度。

  • 上下颠倒:将图像旋转 180 度(上下颠倒)

随机旋转

  • 将图像随机旋转 90 度或 180 度。

  • 顺时针:将图像顺时针旋转 90 度。

  • 逆时针:将图像逆时针旋转 90 度。

  • 上下颠倒:将图像旋转 180 度(上下颠倒)。

随机裁剪

随机创建图像的子集。这可用于提高模型的泛化性

  • 百分比:要放置的原始图像的百分比区域。(例如,要保留的原始图像的百分比区域。(例如,百分比越高,原始图像的数量越少。

随机剪切

  • 在图像的水平轴或垂直轴上随机扭曲图像。

    • 水平:选择图像将在其 x 轴上随机剪切的最大量。

    • 垂直:选择图像将在其 y 轴上随机剪切的最大量。

噪声

将高斯噪声引入图像。

  • 像素:确定应用于图像的噪声量(即噪声处理的内核大小;所有内核大小都是奇数)。25 像素是最大噪声。

曝光

将图像的伽玛曝光调整为更亮或更暗。

  • 百分比:选择图像随机变亮或变暗的百分比。高达 100% 明亮(全白)或 100% 深色(全黑)。

随机噪声

将随机的盐和胡椒噪声注入图像。

  • 百分比:选择受影响的图像像素百分比,最高为 25%。

边界框扩充

边界框级别增强通过仅更改源图像边界框的内容来生成新的训练数据。这样,开发人员可以更好地控制创建更适合其问题条件的训练数据。

  • 一个2019年论文谷歌研究人员介绍了仅使用边界框增强为其模型创建最佳数据的想法。在本文中,研究人员表明,仅边界框修改会产生系统性改进,特别是对于适合小数据集的模型。

数据增强操作过程

上面介绍了Roboflow具有的数据增强功能有哪些,下面开始来介绍如何利用Roboflow进行数据增强的具体操作。

首先需要登录Roboflow如果大家不会可以看我的另一篇教程里面有从注册到导出你想要的数据格式文件的详细教程(文章的开头有链接)

当我们登录了Roboflow之后需要新建一个新的项目,里面需要导入你的数据集,如果你目前并没有数据集可以在网站上下载一个然后上传上去。

首先按照以上教程注册登录以后的界面如下所示

一开始的项目地方是空的,之后我可以选择新建一个项目,上传你自己想要处理的数据集即可。步骤如下:

点击之后会弹出新的界面如下所示:

在这个界面上,可以输入一些你项目的信息例如:项目的类型(目标检测、分类等可以显示更多),项目名称(给你项目起一个名字),你是检测什么(你的图片标签是什么),许可证。

当输入完所有的信息之后即可点击create public project(创建项目)即可跳转新的界面如下所示:

经过上图的操作你可以上传好自己的数据集。

当我们上传好自己的数据之后就可以对数据集进行数据增强操作,具体可以进行的数据增强已经在前面介绍了,下面来介绍数据增强的操作流程。

当我们建立好一个完整的项目并且上传好图片之后,我们可以对原始上传图像进行多个版本的数据增强操作并同时保存。

然后我们按照步骤一和步骤二进行操作之后就可以进行添加数据增强操作了,最后添加完你想要的数据增强操作之后,可以在版本记录里面看到你保存的不同版本。

Released under the MIT License.