计算机视觉实践 - 街景字符编码识别/关于Task2的一些笔记

学习情况

数据扩增方法

常见的有一下几种:

  1. transforms.CenterCrop 对图片中心进行剪裁
  2. transforms.ColorJitter 对图像颜色的对比度、饱和度和零度进行变换
  3. transforms.FiveCrop 对图像的四个角和中心进行剪裁得到五分图像
  4. transforms.Grayscale 对图像进行灰度变换
  5. transforms.Pad 使用固定值进行像素填充
  6. transforms.RandomAffine 随机仿射变化
  7. transforms.RandomCrop 随机区域剪裁
  8. transforms.RandomHorizontalFlip 随机水平翻转
  9. transforms.RandomRotation 随机旋转
  10. transforms.RandomVerticalFlip 随机垂直翻转

这边取本人毕设涉及到的几种扩增方法,使用一下4中方法,并放出效果对比,分别是:

transforms.CenterCrop

import torchvision.transforms
import PIL.Image as Img

image = Img.open("cat.jpg")
print(image.size, image.format, image.mode)

crop_img = torchvision.transforms.CenterCrop((200,200))
image = crop_img(image)

image.save('cat_crop.jpg') # format='JPG')

原图cat.jpg
剪裁后cat_crop.jpg
这边有个地方,输出如果是设置了format:image.save('cat_crop.jpg'), format='JPG')就会报错,不知道为什么,Pillow应该是支持读写JPG格式的。
保存图像的时候还可以设置图片质量参数quality。值的范围从1(最差)到95(最佳),默认值为75。

transforms.RandomCrop

代码同上,只是改了调用方法
cat_Radomcrop.jpg
很明显这边就是随机剪裁了。

transforms.ColorJitter

cat_Colorjitter.jpg
torchvision.transforms.ColorJitter(brightness=0.1,saturation=0.2,contrast=0.2,hue=0.1)这边可以设置四个参数:亮度、对比度、饱和度、色调

transforms.Pad

cat_pad_reflect.jpg
torchvision.transforms.Pad(padding=50, fill=0, padding_mode='reflect')
padding是设置填充像素值的参数
fill= (int or tuple)填充的值是什么(仅当填充模式为constant时有用)。int时,各通道均填充该值,当长度为3的tuple时,表示RGB通道需要填充的值。
padding_mode填充方法,有constant(固定值),edge(边缘填充),reflect(上图所示,像水面照镜子一样的反射),symmetric(不知道跟reflect有什么区别,出来的图跟上面一样)

transforms.FiveCrop

从一张输入图像中crop出5张指定size的图像,这5张图像包括4个角的图像和一个center,输出是4D tensor

transforms.Grayscale

cat_Grayscale.jpg
torchvision.transforms.Grayscale(num_output_channels=1)注意输出通道参数只能等于1或3,图片看出来没什么太大的差别。

transforms.RandomAffine 随机仿射变化

在这里插入图片描述
torchvision.transforms.RandomAffine(degrees=30, translate=None, scale=[1,1], shear=None, resample=False, fillcolor=0) 对图像进行仿射变换,仿射变换是二维的线性变换,由五种基本原子变换构成,分别是旋转、平移、缩放、错切和翻转。

  • degrees:旋转角度设置
  • translate:平移区间设置,如(a,b),a设置宽(width),b设置高(height)。
    图像在宽维度平移的区间为 -img_width * a < dx < img_width * a
  • scale:缩放比例(以面积为单位)
  • fill_colore:一种填充颜色设置。
  • shear:错切角度设置,有水平错切和锤子错切。
    若为a,则仅在x轴错切,错切角度在(-a,a)之间
    若为(a,b),则a设置x轴角度,b设置y的角度。
    若为(a,b,c,d),则a,b设置x轴角度,c,d设置y轴角度。
  • resample:采样方式,有NEAREST、BILINEAR 、BICUBIC。
  • fill_color:填充的颜色

常用的数据扩增库

  • torchvision
    https://github.com/pytorch/vision
    pytorch官方提供的数据扩增库,提供了基本的数据扩增方法,和torch很好的衔接;种类不多,速度中等。
  • imgaug
    https://github.com/aleju/imgaug
    imgaug是常用的第三方数据库,提供了多样的数据扩增方法,且组合起来非常方便,速度较快。
  • albumentations
    https://albumentations.readthedocs.io
    对图像分类、语义分割、物体检测和关键点检测都支持,速度较快
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值