图像增强方法总结:transforms.py 中的各种预处理方法简要介绍

释放双眼,带上耳机,听听看~!
本文简要介绍了transforms.py 中的各种预处理方法,包括裁剪、翻转和变换、图像变换以及对transforms操作,使数据增强更灵活。了解transforms.py 中的方法对图像进行增强,提高图像处理效果。

开启掘金成长之旅!这是我参与「掘金日新计划 · 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)
    

    程序运行后的输出图如下。

    图像增强方法总结:transforms.py 中的各种预处理方法简要介绍

    四,imgaug 图像增强

    imgaug 是一个用于机器学习实验中图像增强的库。 它支持广泛的增强技术,允许轻松组合这些技术并以随机顺序或在多个 CPU 内核上执行它们,具有简单而强大的随机接口,不仅可以增强图像,还可以增强关键点/地标、边界框、 热图和分割图。

    单个输入图像的示例增强如下所示。

    图像增强方法总结:transforms.py 中的各种预处理方法简要介绍

    imgaug 的图像增强方法如下所示。

    • Basics
    • Keypoints
    • Bounding Boxes
    • Heatmaps
    • Segmentation Maps and Masks
    • Stochastic Parameters: 随机参数
    • Blending/Overlaying images: 混合/叠加图像
    • Augmenters: 增强器概述

    各个方法的使用请参考 imaug 官网

    参考资料

    1. 《解析卷积神经网络-第5、6章》
    2. 《OpenCV-Python-Toturial-中文版》
本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

飞桨PaddlePaddle-源于产业实践的开源深度学习平台

2023-12-6 11:41:14

AI教程

Unlimiformer: 长程Transformer的无限长度输入技术

2023-12-6 12:00:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索