电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>PyTorch教程14.1之图像增强

PyTorch教程14.1之图像增强

2023-06-05 | pdf | 0.23 MB | 次下载 | 免费

资料介绍

8.1 节中,我们提到大型数据集是深度神经网络在各种应用中取得成功的先决条件。图像增强在对训练图像进行一系列随机变化后生成相似但不同的训练示例,从而扩大了训练集的大小。或者,图像增强的动机可能是训练示例的随机调整允许模型减少对某些属性的依赖,从而提高它们的泛化能力。例如,我们可以通过不同的方式裁剪图像,使感兴趣的对象出现在不同的位置,从而减少模型对对象位置的依赖。我们还可以调整亮度和颜色等因素,以降低模型对颜色的敏感度。图像增强对于当时 AlexNet 的成功来说可能是不可或缺的。在本节中,我们将讨论这种在计算机视觉中广泛使用的技术。

%matplotlib inline
import torch
import torchvision
from torch import nn
from d2l import torch as d2l
%matplotlib inline
from mxnet import autograd, gluon, image, init, np, npx
from mxnet.gluon import nn
from d2l import mxnet as d2l

npx.set_np()

14.1.1。常见的图像增强方法

在我们对常见图像增强方法的研究中,我们将使用以下方法400×500形象一个例子。

d2l.set_figsize()
img = d2l.Image.open('../img/cat1.jpg')
d2l.plt.imshow(img);
https://file.elecfans.com/web2/M00/A9/CC/poYBAGR9OwuAfxQ9AAHybXAM-vQ446.svg
d2l.set_figsize()
img = image.imread('../img/cat1.jpg')
d2l.plt.imshow(img.asnumpy());
https://file.elecfans.com/web2/M00/A9/CC/poYBAGR9OwuAfxQ9AAHybXAM-vQ446.svg

大多数图像增强方法都具有一定的随机性。为了方便我们观察图像增强的效果,接下来我们定义一个辅助函数applyaug此函数在输入图像上多次运行图像增强方法img 并显示所有结果。

def apply(img, aug, num_rows=2, num_cols=4, scale=1.5):
  Y = [aug(img) for _ in range(num_rows * num_cols)]
  d2l.show_images(Y, num_rows, num_cols, scale=scale)
def apply(img, aug, num_rows=2, num_cols=4, scale=1.5):
  Y = [aug(img) for _ in range(num_rows * num_cols)]
  d2l.show_images(Y, num_rows, num_cols, scale=scale)

14.1.1.1。翻转和裁剪

左右翻转图像通常不会改变对象的类别。这是最早和最广泛使用的图像增强方法之一。接下来,我们使用该transforms模块创建实例RandomHorizontalFlip,它以 50% 的几率左右翻转图像。

apply(img, torchvision.transforms.RandomHorizontalFlip())
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9OxCAR_h_AAKgwdZBIlU089.svg

上下翻转不像左右翻转那样常见。但至少对于这个示例图像,上下翻转并不妨碍识别。接下来,我们创建一个RandomVerticalFlip实例,以 50% 的几率上下翻转图像。

apply(img, torchvision.transforms.RandomVerticalFlip())
https://file.elecfans.com/web2/M00/A9/CC/poYBAGR9OxOAa0bRAAKhFWS9J2s477.svg

Flipping the image left and right usually does not change the category of the object. This is one of the earliest and most widely used methods of image augmentation. Next, we use the transforms module to create the RandomFlipLeftRight instance, which flips an image left and right with a 50% chance.

apply(img, gluon.data.vision.transforms.RandomFlipLeftRight())
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9OxeAbSsbAAKgwXaeKZI169.svg

Flipping up and down is not as common as flipping left and right. But at least for this example image, flipping up and down does not hinder recognition. Next, we create a RandomFlipTopBottom instance to flip an image up and down with a 50% chance.

apply(img, gluon.data.vision.transforms.RandomFlipTopBottom())
https://file.elecfans.com/web2/M00/A9/CC/poYBAGR9OxmAStjwAAKhFd5H4m4670.svg

在我们使用的示例图像中,猫位于图像的中间,但一般情况下可能并非如此。7.5 节中,我们解释了池化层可以降低卷积层对目标位置的敏感性。此外,我们还可以随机裁剪图像,让物体以不同的尺度出现在图像中的不同位置,这样也可以降低模型对目标位置的敏感度。

在下面的代码中,我们随机裁剪一个面积为 10%∼100%每次都是原始区域的大小,这个区域的宽高比是随机选择的 0.5∼2. 然后,该区域的宽度和高度都缩放为 200 像素。除非另有说明,之间的随机数ab本节中指的是从区间中随机均匀采样得到的连续值 [a,b].

shape_aug = torchvision.transforms.RandomResizedCrop(
  (200, 200), scale=(0.1, 1), ratio=(0.5, 2))
apply(img, shape_aug)
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9OxyAUqxIAAMIQfFRxQw242.svg
shape_aug = gluon.data.vision.transforms.RandomResizedCrop(
  (200, 200), scale=(0.1, 1), ratio=(0.5, 2))
apply(img, shape_aug)
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9Ox-AdQaOAAMM3Un8law899.svg

14.1.1.2。改变颜色

另一种增强方法是改变颜色。我们可以改变图像颜色的四个方面:亮度、对比度、饱和度和色调。在下面的示例中,我们将图像的亮度随机更改为 50% (1−0.5) 和 150% (1+0.5) 的原始图像。

apply(img, torchvision.transforms.ColorJitter(
  brightness=0.5, contrast=0, saturation=0, hue=0))
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9OyOAOS8JAAKBDXaQiH4973.svg
apply(img, gluon.data.vision.transforms.RandomBrightness(0.5))
https://file.elecfans.com/web2/M00/A9/CC/poYBAGR9OyaAHswFAAKTRSHZWWM350.svg

同样,我们可以随机改变图像的色调。

apply(img, torchvision.transforms.ColorJitter(
  brightness=0, contrast=0, saturation=0, hue=0.5))
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9OyiAKZ5XAAKgBf48WXw811.svg
apply(img, gluon.data.vision.transforms.RandomHue(0.5))
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9OyuAPyxyAAKjNZd5bQw461.svg

我们也可以创建一个RandomColorJitter实例,同时设置如何随机改变图片的brightness, contrast, saturation, 。hue

color_aug = torchvision.transforms.ColorJitter(
  brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5)
apply(img, color_aug)
https://file.elecfans.com/web2/M00/AA/47/pYYBAGR9Oy2AE_XgAAJd2aug_jE886.svg
color_aug = gluon.data.vision.transforms.RandomColorJitter(
  brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5)
apply(img, color_aug)
https://file.elecfans.com/web2/M00/A9/CC/poYBAGR9Oy-AVr8NAAJhlfJqe4U114.svg

1


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费