数据增强与机器学习模型性能提升

机器学习领域,模型的性能往往取决于输入数据的质量。然而,当可用数据量不足时,如何提升模型的性能呢?这时,数据增强技术就显得尤为重要。特别是使用现实数据生成器进行数据增强,可以在不改变模型架构的情况下,显著提升模型的表现。

本文将深入探讨Kopikat.co这一数据增强工具。Kopikat由OpenCV.ai开发,旨在提升实际规模数据集的质量。在生产环境中,人们通常使用不超过5,000张图片——与大型研究数据集相比,后者的规模要大一个数量级。本文将展示Kopikat如何在不改变模型架构的情况下,提升小规模数据集的性能。

将以自定义的“Hard Hat Workers”数据集为例,该数据集来自Roboflow Universe。这是一个理想的日常工程实践数据示例,代表了一项重要的现实任务,但其规模有限(训练子集仅约5,000张图片),这是常见的情况。

使用了数据的v5版本,并排除了“person”类别。以下是数据集中的一些示例图片。红色边界框对应于“helmet”类别,而蓝色边界框则指代“head”。

首先,需要安装UltralyticsYOLOv8包及其所有必要的依赖项。

!pip3 install ultralytics==8.0.20

接下来,将使用带有COCO格式注释的数据集。可以手动下载,或者使用以下代码片段通过Roboflow API下载:

!pip install roboflow from roboflow import Roboflow rf = Roboflow(api_key="YOUR_API_KEY") project = rf.workspace("opencvai").project("hard-hat-sample-with-kopikat") dataset = project.version(1).download("yolov8")

在实验中,使用了YOLOv8-nano,这是YOLOv8家族中最轻量级的变体。要开始训练,首先需要准备一个数据集配置:

from ultralytics import YOLO # 加载模型 model = YOLO('yolov8n.yaml') # 从YAML构建新模型 # model = YOLO('yolov8n.pth') # 从预训练权重初始化 # 训练模型 model.train(data='./Hard-Hat-Sample-With-Kopikat-1/data.yaml', # './Hard-Hat-Sample-With-Kopikat-2/data.yaml' batch=128, device=0, project="roboflow", name="baseline", # kopikat verbose=True, imgsz=416)

从头开始训练模型。

要评估模型,启动以下命令:

from ultralytics import YOLO model = YOLO('path/to/best.pt') # 加载最后一个检查点 # 验证模型 metrics = model.val() # 不需要参数,记住数据集和设置

评估完成后,获得了以下结果:mAP50指标为95.4,对于轻量级模型来说已经相当不错。然而,可以使用Kopikat.co来增强数据,进一步推动指标。

要将训练好的模型上传到Roboflow,可以使用以下代码片段:

from roboflow import Roboflow rf = Roboflow(api_key="YOUR_API_KEY") project = rf.workspace("opencvai").project("hard-hat-sample-with-kopikat") version = project.version(1) # 使用2上传Kopikat训练的模型 version.deploy("yolov8", model_path="./roboflow/baseline/") # ./roboflow/kopikat

上传完成后,指标将显示出来,可以尝试使用Deploy页面上的模型:

Kopikat的核心思想是在保留原始数据注释的同时生成原始图像的新副本。已经使用Kopikat多次扩展了Hard Hat Workers数据集。下面,展示了原始图像(左侧)及其增强副本(右侧):

Kopikat保留了对象的位置和类别,因此可以应用原始数据集的注释,并在训练中使用增强的数据。

有了增强的数据副本后,启动了几次实验:真实数据+每张图像的两个增强副本。总计:14,654张图片。从上面的图像中,可以看到每张图像的两个副本有助于推动指标,并实现96 mAP(+0.6)。

在模型上传到Roboflow后,可以在那里检查指标:

需要注意的是,结果可能会因具体数据集而异。但关键的收获是,生成式AI和Kopikat增强可以帮助在不改变模型架构和学习过程的超参数的情况下,提高机器学习模型的结果。

本文探讨了如何使用Kopikat这一生成式AI数据增强工具来提升机器学习模型的性能。文章使用自定义的Hard Hat Workers数据集和YOLOv8-nano模型进行训练,实现了mAP指标的64.4。在使用Kopikat增强数据后,mAP指标提高到了65.5,每张图像有两个副本。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485