常用的数据增广方法
1. 对图片进行按比例缩放
2. 对图片进行随机位置的截取
3. 对图片进行随机的水平和竖直翻转
4. 对图片进行随机角度的旋转
5. 对图片进行亮度、对比度和颜色的随机变化
下面使用torchvision演示一下这些数据增强方法。
123
|
import sysfrom PIL import Imagefrom torchvision import transforms
|
123
|
# 载入图片img = Image.open('img.jpg')img
|
随机比例缩放
随机比例缩放使用的是torchvision.transforms.Resize()
函数,函数有两个参数,第一个参数为缩放大小,如果为一个值则会按比例缩放,否则按传入的值缩放;第二个参数表示缩放图片使用的方法,默认的是双线性差值。
12345678
|
# 比例缩放print('缩放前尺寸为:{}'.format(img.size))new_img = transforms.Resize(224)(img)print('缩放后尺寸为:{}'.format(new_img.size))new_img
缩放前尺寸为:(134, 43) 缩放后尺寸为:(698, 224)
|
12
|
new_img = transforms.RandomCrop(224, padding=8)(new_img)new_img
|
12345
|
new_img = transforms.Resize((224, 224))(img)print('缩放后尺寸为:{}'.format(new_img.size))new_img
缩放后尺寸为:(224, 224)
|
随机位置截取
随机位置截取能够提取图片中的局部信息,使得网络接受的输入具有多尺度的特征,所以能够有较好的效果,在torchvision中主要有以下两种方式,一个是torchvision.transforms.RandomCrop()
,传入的参数是截取出图片的长和宽,在图片的随机位置进行截取;第二个是torchvision.transforms.CenterCrop()
,同样传入图片的长和宽,会在图片的中心进行截取。
123
|
# 随机位置截取 100x100 的区域random_img = transforms.RandomCrop(100)(new_img)random_img
|
123
|
# 中心裁剪出 100x100 的区域center_img = transforms.CenterCrop(100)(new_img)center_img
|
123
|
# 进行填充后随机裁剪random_img2 = transforms.RandomCrop(224, padding=8)(new_img)random_img2
|
随机水平翻转和竖直翻转
torchvision.transforms.RandomHorizontalFlip()
和torchvision.transforms.RandomVerticalFlip()
123
|
# 随机水平翻转h_flip = transforms.RandomHorizontalFlip()(new_img)h_flip
|
123
|
# 随机竖直翻转v_flip = transforms.RandomVerticalFlip()(new_img)v_flip
|
随机角度旋转
torchvision.transforms.RandomRotation()
12
|
rot_im = transforms.RandomRotation(30)(new_img)rot_im
|
亮度、对比度和颜色变化
torchvision.transforms.ColorJitter()
函数有四个参数,第一个参数为亮度,第二个参数为对比度,第三个参数为饱和度,第四个参数为颜色
123
|
# 亮度bright_img = transforms.ColorJitter(brightness=1)(new_img)bright_img
|
123
|
# 对比度contrast_img = transforms.ColorJitter(contrast=1)(new_img)contrast_img
|
123
|
# 饱和度saturation_img = transforms.ColorJitter(saturation=1)(new_img)saturation_img
|
123
|
# 颜色 随机变换颜色color_img = transforms.ColorJitter(hue=0.5)(new_img)color_img
|
123
|
compose_img = transforms.ColorJitter(0.5, 0.5, 0.5)(new_img)compose_imgnew_img
|
1234567891011121314151617181920
|
import matplotlib.pyplot as plt%matplotlib inline
img_transform = transforms.Compose([ transforms.Resize(232), transforms.RandomCrop(224), transforms.ColorJitter(0.15, 0.15, 0.15)])
nrows = 5ncols = 5figsize = (10, 10)
_, figs = plt.subplots(nrows, ncols, figsize = figsize)for i in range(nrows): for j in range(ncols): figs[i][j].imshow(img_transform(new_img)) figs[i][j].axes.get_xaxis().set_visible(False) figs[i][j].axes.get_yaxis().set_visible(False)plt.show()
|
pytorch数据增广相关推荐
- pytorch数据增广albumentations
pytorch数据增广albumentations 图像增强库官方英文介绍 安装 pip install albumentations 支持的目标检测bbox格式 pascal_voc [x_min, ...
- Pytorch 数据增广(Data Augmentation)
Pytorch 数据增广(Data Augmentation) 0. 环境介绍 环境使用 Kaggle 里免费建立的 Notebook 教程使用李沐老师的 动手学深度学习 网站和 视频讲解 小技巧:当 ...
- PyTorch 使用torchvision进行图片数据增广
使用torchvision来进行图片的数据增广 数据增强就是增强一个已有数据集,使得有更多的多样性.对于图片数据来说,就是改变图片的颜色和形状等等.比如常见的: 左右翻转,对于大多数数据集都可以使用: ...
- 【深度学习】利用一些API进行图像数据增广
[深度学习]利用一些API进行图像数据增广 文章目录 [深度学习]利用一些API进行图像数据增广 1 先送上一份最强的翻转代码(基于PIL) 2 Keras中的数据增强API种类概述 3 特征标准化 ...
- 【深度学习】基于深度学习的数据增广技术一览
◎作者系极市原创作者计划特约作者Happy 周末在家无聊,偶然兴心想对CV领域常用的数据增广方法做个简单的调研与总结,重点是AI时代新兴的几种反响还不错的方法.各种第三方与官方实现代码等.那么今天由H ...
- Mixup vs. SamplePairing:ICLR2018投稿论文的两种数据增广方式
在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...
- 动手深度学习13——计算机视觉:数据增广、图片分类
文章目录 一.数据增广 1.1 为何进行数据增广? 1.2 常见图片增广方式 1.2.1 翻转 1.2.2 切割(裁剪) 1.2.3 改变颜色 1.2.4 综合使用 1.3 使用图像增广进行训练 1. ...
- 数据增广(数据增强)方式
awesome-mixed-sample-data-augmentation(xys:数据增广方式最近文章与代码合集) mixup 目标检测中图像增强,mixup 如何操作?(同时讲解了分类中的mix ...
- python 批量增广数据_GitHub:数据增广最全资料集锦
作者:AgaMiko | 编辑:Amusi Date:2020-10-12 来源:CVer微信公众号 原文:GitHub:数据增广最全资料集锦 前言 CVer 陆续分享了GitHub上优质的AI/CV ...
最新文章
- 【专访】KDD2018主席熊辉教授:数据挖掘与深度学习结合新趋势
- Thymeleaf提取公共页面(从实例入手,以inspinia模板为例)
- 07丨切片集群:数据增多了,是该加内存还是加实例
- 获取Flex SDK加载进度的方法
- angular 注入器配置_Angular2 多级注入器详解及实例
- 服务器端的JavaScript
- 入参为字符串用日期对象接收
- 收费企业邮箱的好处-外贸企业优选
- Android数据库框架-ORMLite
- 工行u盾显示316_工行银行网上交易老是提示插入u盾
- cloudstack上传模板时候的一个报错
- 网线制作方法-RJ45
- electron打包的一些问题
- 每日一学—text-decoration 属性
- python制作软件excel,利用Python制作Excel对比工具
- 第十三章、IO流_File类与递归/基本流/增强流/属性集与打印流__黑马Java第57期个人学习笔记_个人笔记
- jar命令的使用与执行jar包
- wpa_supplicant 源码分析 --conf 配置文件
- 领导力五力模型指什么
- ABOV单片机开发简介
热门文章
- word调整页脚距离 顶端和低端的距离(叫页边距)
- AirDisk产品Q3C和T2硬盘不认的时候,一般就三种原因
- RTC使用野火例程,LSE复位可用,HSE和LSI不可用问题。
- 青椒炒黄瓜+伏特加+Bon jovi+编程
- 一起赚美元⑤ | Instapainting照片转油画服务,通过SEO优化,每月赚取3.2万美元的真实案例
- 自动驾驶汽车的车道检测
- 回复审稿意见应该注意什么?
- sin(1/x)的图像,第二类间断点,震荡间断点
- Ceph部署(二)RGW搭建
- Airtest+Poco+Pytest框架搭建1