网易首页 > 网易号 > 正文 申请入驻

PyTorch那些事儿(五):Transforms—图像处理与增强

0
分享至

正文共: 26893字 32图 预计阅读时间: 68分钟

计算机视觉任务中,对图像的变换(Image Transform)往往是必不可少的操作,例如在迁移学习中,需要对图像尺寸进行变换以使用预训练网络的输入层,又如对数据进行增强以丰富训练数据。

作为深度学习领域的主流框架,pytorch中提供了丰富的图像变换API。这些API实现了常用的图像数据增强操作,可以灵活组合使用。主要特点:

  • 丰富的数据增强操作,包括Crop、Flip、Color变换等

  • 支持PIL Image和Tensor

  • 可以链式组合使用

  • 提供了方便的功能函数接口

本文将对pytorch中torchvision.transforms提供的丰富多样的图像变换API进行整理介绍。为了方便理解记忆以及后续使用过程中查找,我把pytorch中提供的transform分为6大类:

  1. 几何变换:改变图像几何形状和结构的变换,如裁剪、旋转、缩放等。主要用于提升模型对角度、尺寸的鲁棒性。

  2. 色彩变换:改变图像颜色的变换,如调整亮度、对比度、饱和度等。主要用于增强模型对颜色变化的鲁棒性。

  3. 图像格式与数值转换:在PIL Image和Tensor间进行转换。对图像像素值进行正则化等操作。

  4. 图像增强组合:将多个变换组合使用,如RandomApply等。这是Transforms的精髓所在。

  5. 自动搜索学习数据增强策略:一些通过强化学习等方案学习而来的增强方法。

为方便下文展示各种图像变换API的效果,我们借助matplotlib定义一个名为show_image函数来展示图片,如下所示:

import torch
import numpy as np
from torchvision import transforms
from torchvision.io import read_image
import matplotlib as mpl
import matplotlib.pyplot as plt
def show_image(img_lst, **imshow_kwargs):
img_lst: 保存图像和标题的list,形如:[(image1, title1),(image2, title2)]。image可以使Pillow.Image对象,也可以是torch.Tensor。
imshow_kwargs: 需要传递给plt.imshow的参数
fig, axs =plt.subplots(1,len(img_lst), constrained_layout=True, figsize=(2*len(img_lst),2), squeeze=False)
for i, (img, title) in enumerate(img_lst):
if isinstance(img, torch.Tensor): # 如果是torch.Tensor类型,就必须转换成Pillow.Image类型,才能进行展示
img = transforms.ToPILImage()(img)
axs[0, i].imshow(np.asarray(img), **imshow_kwargs)
axs[0, i].set_title(title)
plt.show()
1 加载图片 1.1 PIL库

对于存储在磁盘中的图片文件,使用Pillow库提供的Image类对象进行打开是一种十分常用的方法,如果你还没有安装,你可以通过以下命令方便下文进行:

pip install Pillow
from PIL import Image

我们通过Pillow中提供的方法,打开一张图片,并通过show_image()方法进行展示,下文中各种图像变换,我们都将以此图片为例,进行演示:

raw_img = (Image.open('fruit.jpeg'), '原始图片')
show_image([raw_img])
1.2 pytorch中提供的图像加载方法

pytorch的torchvision.io模块本身也提供有加载图像数据的方法:read_image。该方法直接将图片加载为Tensor类型数据。

from torchvision.io import read_image
raw_img2 = read_image('fruit.jpeg')
raw_img2.shape
torch.Size([3, 448, 596])
type(raw_img2)
torch.Tensor

我们也通过之前定义的show_image()方法进行展示,注意,show_image()方法之所以能展示Tensor类型数据为图像,是因为show_image()方法内将Tensor转为PIL图像了。

show_image([(raw_img2, 'read_image()')])

好了,知道怎么打开与展示图像之后,我们就可以开始介绍本篇中的主角——pytorch中的那些transform们。

2 几何变换

几何变换是指对图像的大小、形状、角度等几何形态和结构进行调整,常用于数据增强,有助于提高模型的泛化能力。一般在图像分类/检测等任务中,会频繁使用这些几何变换,防止过拟合和提高鲁棒性。

需要注意,这些变换大多数会在内部调用PIL来处理图像,因此输入需要是PIL Image格式。几何变换主要分为以下几类:

1. 大小变换。生成不同分辨率和尺寸的图像,增强模型对大小变化的鲁棒性。

  • Resize调整图像大小。

2. 空间变换。可以增强模型对关键特征的学习,防止过拟合背景信息。

  • RandomCrop随机裁剪图像区域。

  • CenterCrop中心裁剪图像。

  • RandomResizedCrop随机裁剪并resize。

  • FiveCrop与TenCrop从图像的四个角以及中心进行多次裁切

3. 形变变换。可以模拟弹性物体运动时的形变,增强模型对形变的鲁棒性。

  • ElasticTransform给图像添加随机形变。

4. 仿射变换。可以从不同视角获取图像,增强模型对视角变化的鲁棒性。

  • RandomRotation随机旋转图像。

  • RandomAffine进行随机仿射变换。

  • RandomPerspective进行透视变换。

5. 翻转变换。增加图像方向的多样性,防止过拟合某一方向。

  • RandomHorizontalFlip随机水平翻转。

  • RandomVerticalFlip随机垂直翻转。

6. 填充变换。可以防止信息丢失,也可用于模型输入大小不匹配。

  • Pad在图像边缘填充特定像素,扩大图像。

2.1 Resize

按给定尺寸对图像进行缩放,Resize主要参数size可以为int型,此时,原始图像短边将缩放至size像素,长边将缩放至:size×长边÷短边����×长边÷短边 。以上述原始图片为例,假设输入size=300,原始图像短边高是448像素,长边宽是596像素,所以缩放后,长边宽为:300×596÷448=399像素300×596÷448=399像素;当size为序列时,size=(h, w),原始图像将高和宽分别缩放至h和w。除了size参数外,Resize还有其他参数,可以参考[官方文档

raw_img = read_image('data/fruit.jpeg')

transform1 = transforms.Resize(size=300)
transform2 = transforms.Resize(size=(300, 300))
transform3 = transforms.Resize(size=(800, 800))
tran_img1 = transform1(raw_img)
tran_img2 = transform2(raw_img)
tran_img3 = transform3(raw_img)
print(f'size=300,缩放后图像宽高为:{tran_img1.shape}')
print(f'size=(300, 300),缩放后图像宽高为:{tran_img2.shape}')
show_image([
(raw_img, '原始图像'),
(tran_img1, 'size=300'), # 对PIL.Image类型图片进行裁切
(tran_img2, 'size=(300, 300)'), # 对torch.Tensor类型图片进行裁切
(tran_img3, 'size=(800, 800)') # 对torch.Tensor类型图片进行裁切
])

size=300,缩放后图像宽高为:torch.Size([3, 300, 399])
size=(300, 300),缩放后图像宽高为:torch.Size([3, 300, 300])
2.2 RandomCrop

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
铜梁龙又赢麻了!一场比赛创下“三大亮点”和“两个笑点”登顶榜首

铜梁龙又赢麻了!一场比赛创下“三大亮点”和“两个笑点”登顶榜首

林子说事
2026-04-12 12:24:31
美伊停火内幕曝光!巴官员:中国本不愿担保,经巴方劝说才出面

美伊停火内幕曝光!巴官员:中国本不愿担保,经巴方劝说才出面

书写传奇
2026-04-11 15:48:39
毛主席的厨师公开揭露:毛主席一生最爱吃三种食物,大家知道吗?

毛主席的厨师公开揭露:毛主席一生最爱吃三种食物,大家知道吗?

鹤羽说个事
2026-04-09 22:36:32
48 小时 2 架飞机:郑丽文做了马英九连战没做的事!引美专机抵台

48 小时 2 架飞机:郑丽文做了马英九连战没做的事!引美专机抵台

眼界看视野
2026-04-11 20:50:20
广东男子钓上1.35米长鳄雀鳝!有人想出价1000元买走,被当场拒绝

广东男子钓上1.35米长鳄雀鳝!有人想出价1000元买走,被当场拒绝

豆妈热爱每一天
2026-04-12 11:01:50
程晓玥首曝和郑恺分手真相:不是不爱,是当时的我太骄傲了

程晓玥首曝和郑恺分手真相:不是不爱,是当时的我太骄傲了

小猫娱乐叭叭
2026-04-11 19:45:03
曾沛慈被老公孙立衡牵连,退出《浪姐》!?

曾沛慈被老公孙立衡牵连,退出《浪姐》!?

八卦疯叔
2026-04-12 10:26:14
以色列政坛大地震!反对派61席锁死胜局!贝内特正疯狂背刺内氏

以色列政坛大地震!反对派61席锁死胜局!贝内特正疯狂背刺内氏

书纪文谭
2026-04-11 19:05:01
爆炸性新闻!加州民调第一的州长候选人被曝强奸女下属,民主党高层迅速划清界线

爆炸性新闻!加州民调第一的州长候选人被曝强奸女下属,民主党高层迅速划清界线

大洛杉矶LA
2026-04-12 04:46:31
美高官:先打中国再打朝鲜,打不过就核战,因中国火箭军太强大

美高官:先打中国再打朝鲜,打不过就核战,因中国火箭军太强大

说历史的老牢
2026-04-12 11:36:58
郑丽文访陆第三天,韩国瑜不装了,侯友宜被怒怼,卢秀燕老奸巨猾

郑丽文访陆第三天,韩国瑜不装了,侯友宜被怒怼,卢秀燕老奸巨猾

阿凫爱吐槽
2026-04-11 01:28:37
节俭!瓜帅周薪50万欧,但他女儿在用裂了的iPhone15

节俭!瓜帅周薪50万欧,但他女儿在用裂了的iPhone15

懂球帝
2026-04-11 02:27:07
从图片就能看出来,郑丽文生活里一定是个有趣的人

从图片就能看出来,郑丽文生活里一定是个有趣的人

汉宫秋
2026-04-12 06:11:38
陈丽华年轻照出乌龙:美女照片主人出来辟谣,真实年轻照像韩红

陈丽华年轻照出乌龙:美女照片主人出来辟谣,真实年轻照像韩红

动物奇奇怪怪
2026-04-11 15:25:19
《生活大爆炸》演员!

《生活大爆炸》演员!

下水道男孩
2026-04-10 22:44:25
169元路由器塞了星闪芯片,TP-LINK把牙膏挤爆了

169元路由器塞了星闪芯片,TP-LINK把牙膏挤爆了

薛定谔的BUG
2026-04-10 09:07:18
一代神车,退场了

一代神车,退场了

凤凰网财经
2026-03-26 19:58:07
1977年,邓小平找傅崇碧谈话,给你8个月到1年时间,整顿卫戍区

1977年,邓小平找傅崇碧谈话,给你8个月到1年时间,整顿卫戍区

大运河时空
2026-04-11 15:05:03
六个本科专业将“烂大街”,家长误以为前景不错,实则毕业即失业

六个本科专业将“烂大街”,家长误以为前景不错,实则毕业即失业

缘史记
2026-04-10 20:16:19
别不信,能不能发生关系,第一次见面就差不多定了

别不信,能不能发生关系,第一次见面就差不多定了

加油丁小文
2026-03-30 07:31:22
2026-04-12 14:08:49
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3314文章数 11129关注度
往期回顾 全部

科技要闻

理想称遭恶意拉踩,东风日产:尊重同行

头条要闻

媒体:伊朗新领袖"冒死接班"1个月未露面 突然全面亮剑

头条要闻

媒体:伊朗新领袖"冒死接班"1个月未露面 突然全面亮剑

体育要闻

五大联赛首冠出炉?拜仁或提前4轮卫冕德甲

娱乐要闻

46岁赵达官宣结婚!曾与殷桃谈婚论嫁

财经要闻

三轮磋商谈至深夜 美伊谈判三大议题仍待解

汽车要闻

焕新极氪007/007GT上市 限时19.39万起

态度原创

手机
艺术
家居
游戏
房产

手机要闻

Omdia权威发布:Q1全球增1%,三星夺冠,苹果第二

艺术要闻

2025殊相——中国油画学会创作研修作品展 | 油画选刊(六)

家居要闻

复古风格 自然简约

PS5界面又有大变化!观感更醒目 体验升级

房产要闻

土地供应突然暴跌!2026海口楼市,格局大变!

无障碍浏览 进入关怀版