计算机视觉实践 - 街景字符编码识别/关于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
    评论
天池是一个著名的数据科学竞赛平台,而datawhale是一家致力于数据科学教育和社群建设的组织。街景字符编码识别是指通过计算机视觉技术,对街道场景中的字符进行自动识别和分类。 街景字符编码识别是一项重要的研究领域,对于提高交通安全、城市管理和智能驾驶技术都具有重要意义。街道场景中的字符包括道路标志、车牌号码、店铺招牌等。通过对这些字符进行准确的识别,可以辅助交通管理人员进行交通监管、道路规划和交通流量分析。同时,在智能驾驶领域,街景字符编码识别也是一项关键技术,可以帮助自动驾驶系统准确地识别和理解道路上的各种标志和标识,为自动驾驶提供可靠的环境感知能力。 天池和datawhale联合举办街景字符编码识别竞赛,旨在吸引全球数据科学和计算机视觉领域的优秀人才,集思广益,共同推动该领域的研究和发展。通过这个竞赛,参赛选手可以使用各种机器学习和深度学习算法,基于提供的街景字符数据集,设计和训练模型,实现准确的字符编码识别。这个竞赛不仅有助于促进算法研发和技术创新,也为各参赛选手提供了一个学习、交流和展示自己技能的平台。 总之,天池datawhale街景字符编码识别是一个具有挑战性和实际应用需求的竞赛项目,旨在推动计算机视觉和智能交通领域的技术发展,同时也为数据科学爱好者提供了一个学习和展示自己能力的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值