提升模型泛化能力:数据增强技术

机器学习领域,模型的泛化能力是指其在未见过的数据上的表现能力。一个泛化能力强的模型能够在新的、不同的数据上做出准确的预测。为了提高模型的泛化能力,一种有效的方法是通过数据增强技术来扩充训练数据集。数据增强通过应用一系列变换来生成新的训练图像,从而模拟数据的多样性。例如,可以对数据集中的某些图像应用灰度增强,复制数据集中的图像并将它们转换为灰度图像。如果训练的模型中物体的颜色不重要,这种增强可能是理想的选择。

使用Roboflow进行数据增强

在本指南中,将详细介绍如何使用Roboflow平台生成增强图像。增强后的图像数据集可以用于在Roboflow上训练模型,也可以导出用于自定义模型训练流程。首先,需要在Roboflow中创建一个项目。项目是存储特定计算机视觉模型数据的地方。创建一个免费的Roboflow账户,然后导航到Roboflow仪表板并点击“创建项目”按钮。将被带到一个页面,可以在该页面配置新项目:在本页设置项目名称,然后选择“目标检测”数据类型。点击页面底部的“创建项目”以创建Roboflow项目。

上传数据

创建项目后,可以上传数据到Roboflow,之后可以对这些数据应用增强。可以上传没有注释的图像,或者上传带有注释的图像,支持的格式包括YOLOv8 PyTorchTXT和PaliGemma JSONL等。查看支持的注释格式完整列表。要上传图像,将数据拖放到Roboflow仪表板中。图像将被处理,然后会出现一个“保存并继续”按钮。点击此按钮后,图像将上传到Roboflow项目中。这个过程所需的时间将取决于尝试上传的图像数量以及互联网连接速度。

增强目标检测数据

一旦数据被标记,就准备好生成增强图像了。要生成增强图像,点击Roboflow项目左侧边栏中的“生成”。在本页,可以配置数据集版本。数据集版本是数据集在某个时间点的快照。可以在不改变底层数据集的情况下,对数据集版本应用增强和预处理步骤。这允许使用不同的增强生成多个数据集,这对于在评估不同增强如何帮助改进数据集时进行实验是理想的。增强将通过复制数据集中的一些图像并对副本进行增强来应用。这意味着所有的原始训练图像以及增强图像都将包含在数据集版本中。要添加增强,点击数据集生成页面上的“增强”。然后,点击“添加增强步骤”。一个窗口将出现,提供几个增强选项。

可以对目标检测数据集应用两种类型的增强:图像级或边界框级。图像级增强应用于整个图像。边界框级增强应用于边界框区域内。有许多可用的增强,包括:翻转、90度旋转、裁剪、旋转、亮度、灰度、噪声等。要了解哪些增强可能最适合特定项目,请参考图像增强和预处理指南。当准备好应用增强时,在窗口中点击一个选项。然后,将能够配置增强。例如,如果选择一个图像级翻转增强,将能够选择图像可以翻转的方向(水平、垂直或两者)。配置好增强后,可以通过点击增强窗口中的“应用”来应用它。可以对数据集版本应用尽可能多的增强。话虽如此,应用更多的增强并不一定意味着模型会表现得更好。建议适度应用增强,并根据指导原则进行。

使用增强图像训练目标检测模型

一旦数据集生成完成,它将可用于在Roboflow平台内训练模型,或者从Roboflow平台导出。可以在数据集版本页面上看到训练模型和导出数据集的选项:通过在Roboflow上训练模型,可以在不编写任何代码的情况下创建模型。要在Roboflow上训练模型,点击“使用Roboflow训练”,然后按照Web应用程序中的模型训练配置流程配置模型。然后,模型将开始训练。如果在Roboflow上训练模型,可以在云端部署它,或者使用开源的Roboflow推理服务器在自己设备上部署。要了解更多关于设备部署的信息,请参考推理文档。此外,如果在自己的基础设施上训练一个支持的模型(例如YOLOv8),可以将其上传到Roboflow并在云端或使用推理部署它。要导出数据集,点击“导出数据集”。可以以许多不同的格式导出数据集,包括YOLOv8 PyTorch TXT、Pascal VOC XML和COCO JSON。查看支持的格式完整列表,可以导出数据集。

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