第一部分PaddleX数据处理_1.4 数据增强与imgaug支持

本文介绍PaddleX内置的数据增强操作及对imgaug增强库的支持,涵盖图像分类、目标检测、实例分割和语义分割任务。通过示例展示如何在PaddleX中使用imgaug方法,包括模糊、裁剪、归一化等操作,以及如何组合增强流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据增强操作可用于在模型训练时,增加训练样本的多样性,从而提升模型的泛化能力。

PaddleX内置增强操作

PaddleX对于图像分类目标检测实例分割语义分割内置了部分常见的数据增强操作,如下表所示,

任务类型增强方法
图像分类RandomCropRandomHorizontalFlipRandomVerticalFlipRandomRotateRandomDistort
目标检测、实例分割RandomHorizontalFlipRandomDistortRandomCropMixupImage(仅支持YOLOv3模型)、RandomExpand
语义分割RandomHorizontalFlipRandomVerticalFlipRandomRangeScalingRandomStepScalingRandomPaddingCropRandomBlurRandomRotateRandomScaleAspectRandomDistort

imgaug增强库的支持

PaddleX目前已适配imgaug图像增强库,用户可以直接在PaddleX构造transforms时,调用imgaug的方法, 如下示例:

import paddlex as pdx
from paddlex.cls import transforms
import imgaug.augmenters as iaa

train_transforms = transforms.Compose([
    # 随机在[0.0 3.0]中选值对图像进行模糊
    iaa.blur.GaussianBlur(sigma=(0.0, 3.0)),
    transforms.RandomCrop(crop_size=224),
    transforms.Normalize()
])

除了上述用法,Compose接口中也支持imgaugSomeofSometimesSequentialOneof等操作,开发者可以通过这些方法随意组合出增强流程。由于imgaug对于标注信息(目标检测框和实例分割mask)与PaddleX模型训练逻辑有部分差异,目前在检测和分割中,只支持pixel-level的增强方法,(即在增强时,不对图像的大小和方向做改变) 其它方法仍在适配中,详情可见下表。

增强方法图像分类目标检测 实例分割语义分割备注
imgaug.augmenters.arithmeticCutout, DropoutJpegCompression
imgaug.augmenters.artistic图像卡通化
imgaug.augmenters.blurGaussianBlur, AverageBlur
imgaug.augmenters.collections提供了RandAugment方法
imgaug.augmenters.colorBrightness, Hue等色调的增强方法
imgaug.augmenters.contrast多种对比度增强方式
imgaug.augmenters.convolutional应用卷积kernel到图像
imgaug.augmenters.edges图像边缘化等方法
imgaug.augmenters.flipFliplrFlipud翻转方法
imgaug.augmenters.geometricAffineRotate等增强方法
imgaug.augmenters.imgcorruptlikeGaussianNoise等图像噪声增强方法
imgaug.augmenters.pillike
imgaug.augmenters.pooling应用pooling操作到图像
imgaug.augmenters.segmentation应用分割方法到图像
imgaug.augmenters.sizeReiszeCropPad等操作
imgaug.augmenters.weather多种模拟天气等增强方法

需要注意的是,imgaug的基础方法中,如imgaug.augmenters.blur仅为图像处理操作,并无概率设置,而在CV模型训练中,增强操作往往是以一定概率应用在样本上,因此我们可以通过imgaugSomeofSometimesSequentialOneof等操作来组合实现,如下代码所示,

Someof 执行定义增强方法列表中的部分方法

Sometimes 以一定概率执行定义的增强方法列表

Sequential 按顺序执行定义的增强方法列表

image imgaug.augmenters as iaa
from paddlex.cls import transforms


# 以0.6的概率对图像样本进行模糊
img_augmenters = iaa.Sometimes(0.6, [
    iaa.blur.GaussianBlur(sigma=(0.0, 3.0))
])
train_transforms = transforms.Compose([
    img_augmenters,
    transforms.RandomCrop(crop_size=224),
    transforms.Normalize()
])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是天才很好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值