开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情。
- Transforming and augmenting images。本章只对 transforms 的
22
个方法进行简要介绍和总结。总的来说 transforms.py 中的各个预处理方法可以归纳为四大类:
1,裁剪-Crop
- 中心裁剪: transforms.CenterCrop
- 随机裁剪: transforms.RandomCrop
- 随机长宽比裁剪: transforms.RandomResizedCrop
- 上下左右中心裁剪: transforms.FiveCrop
- 上下左右中心裁剪后翻转: transforms.TenCrop
2,翻转和变换-Flip and Rotations
- 依概率 p 水平翻转:transforms.RandomHorizontalFlip(p=0.5)
- 依概率 p 垂直翻转:transforms.RandomVerticalFlip(p=0.5)
- 随机旋转:transforms.RandomRotation
3,图像变换
- resize: transforms.Resize
min-max Normalization
: 对应torchvision.transforms.ToTensor()
方法zero-mean Normalization
: 对应torchvision.transforms.Normalize()
方法- 填充: transforms.Pad
- 修改亮度、对比度和饱和度:transforms.ColorJitter
- 转灰度图: transforms.Grayscale
- 线性变换: transforms.LinearTransformation()
- 仿射变换: transforms.RandomAffine
- 依概率
p
转为灰度图: transforms.RandomGrayscale - 将数据转换为
PILImage
: transforms.ToPILImage - transforms.Lambda: Apply a user-defined lambda as a transform.
4,对 transforms 操作,使数据增强更灵活
transforms.RandomChoice(transforms)
: 从给定的一系列 transforms 中选一个进行操作transforms.RandomApply(transforms, p=0.5)
: 给一个 transform 加上概率,依概率进行操作transforms.RandomOrder
: 将 transforms 中的操作随机打乱
这里
resize
图像增强方法为例,可视化其调整输入图像大小的效果。# 为了节省空间,这里不再列出导入相应库的代码和show_images函数 img_PIL = Image.open('astronaut.jpeg') print(img_PIL.size) # if you change the seed, make sure that the randomly-applied transforms # properly show that the image can be both transformed and *not* transformed! torch.manual_seed(0) # size 参数: desired output size. resized_imgs = [transforms.Resize(size=size)(orig_img) for size in (30, 50, 100, orig_img.size)] show_images(resized_imgs, 1, 4)
程序运行后的输出图如下。
四,imgaug 图像增强
imgaug 是一个用于机器学习实验中图像增强的库。 它支持广泛的增强技术,允许轻松组合这些技术并以随机顺序或在多个 CPU 内核上执行它们,具有简单而强大的随机接口,不仅可以增强图像,还可以增强关键点/地标、边界框、 热图和分割图。
单个输入图像的示例增强如下所示。
imgaug 的图像增强方法如下所示。
- Basics
- Keypoints
- Bounding Boxes
- Heatmaps
- Segmentation Maps and Masks
- Stochastic Parameters: 随机参数
- Blending/Overlaying images: 混合/叠加图像
- Augmenters: 增强器概述
各个方法的使用请参考 imaug 官网。
参考资料
- 《解析卷积神经网络-第5、6章》
- 《OpenCV-Python-Toturial-中文版》