一、数据扩增简介
在深度学习中数据扩增非常重要,可以增加训练样本数量,同时可以在一定程度上缓解模型过拟合,提高模型的泛化能力,可以扩展样本空间。
二、常⻅的数据扩增⽅方法
常见的数据扩增方法主要是从图像颜色,尺寸,形态,空间和像素角度进行变换。不同的数据扩增方法可以自由组合,得到更加丰富的数据扩增方法。以torchvision为例,常用的数据扩增方法包括:
- transforms.CenterCrop 对图片中心进行裁剪
- transforms.ColorJitter 对图像颜色的对比度,饱和度和零度进行变换
- transforms.FiveCrop 对图像四个角和中心进行裁剪得到5份图像
- transforms.Grayscale 对图像进行灰度变换
- transforms.Pad 使用固定值进行像素填充
- transforms.RandomAffine 随机放射变换
- transforms.RandomCrop 随机区域裁剪
- transforms.RandomHorizontalFlip 随机水平翻转
- transforms.RandomRotation 随机旋转
- transforms.RandomVerticaIFlip随机垂直翻转
三、常用数据扩增库
1.torchvision
https://github.com/pytorch/vision
pytorch官方提供的数据扩增库,提供了基本的数据扩增方法,可无缝与torch进行集成,数据扩增方法种类较少,速度中等。
2.imgaug
https://github.com/aleju/imgaug
imgaug常用第三方数据扩增库,提供多样数据扩增方法,组合起来方便,速度较快。
3.albumentations
https://albumentations.readthedocs.io
常用第三方数据扩增库,提供多样数据扩增方法,对图像分类、语意分割、物体检测、关键点检测都支持,速度较快。