当前位置: 首页 > news >正文

【数据增强】

【数据增强】

  • 1 数据增强的情形
  • 2 数据增强的方法

1 数据增强的情形

当数据比较小,难以获取新的训练数据时,可以考虑数据增强,如随机裁剪部分,随机左右上下翻转、随机旋转一个角度、随机亮度变化等微小变化,数据的多样性提高,数据集本身大小未变,只是做了微小调整送入网络。

数据增强数据有限的情况下,可以增加样本的多样性、抑制过拟合,提高正确率。

2 数据增强的方法

torchvision提供了诸多随机改变图片的方法:

transforms.RandomCrop    # 随机位置裁剪  transforms.CenterCrop
transforms.RandomHorizontalFlip(p=1)   # 随机水平翻转
transforms.RandomVerticalFlip(p=1)     # 随机上下翻转
transforms.RandomRotation
transforms.ColorJitter(brightness=1)
transforms.ColorJitter(contrast=1)
transforms.ColorJitter(saturation=0.5)
transforms.ColorJitter(hue=0.5)
tansforms.RandomGrayscale(p=0.5)     # 随机灰度化

如随机裁剪图片:

import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import torchvision
import glob
from torchvision import transforms
from torch.utils import data
from PIL import Imagepil_img = Image.open('dataset2/cloudy134.jpg')	#自定义路径
transform = transforms.Compose([transforms.Resize((256, 256)),transforms.RandomCrop((224, 224))
])plt.figure(figsize=(12, 8))
for i in range(6):img = transform(pil_img)plt.subplot(2, 3, i+1)plt.imshow(img)
plt.subplots_adjust(wspace=0.15, hspace=0.15)
plt.savefig('pics/5_0.jpg') #自定义路径

在这里插入图片描述
随机水平翻转:

pil_img = Image.open('dataset2/cloudy134.jpg')
trans_img = transforms.RandomHorizontalFlip(p=1)(pil_img) 
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.imshow(pil_img)
plt.subplot(1, 2, 2)
plt.imshow(trans_img)
plt.show()
plt.savefig('pics/5_1.jpg')

在这里插入图片描述
随机亮度调整:
注意:这里的区间设置不宜过大,否则图片容易变化过大,导致失真

pil_img = Image.open('dataset2/cloudy134.jpg')
transform = transforms.Compose([transforms.Resize((256, 256)),transforms.ColorJitter(brightness=(0.7, 1.3), contrast=(0.7, 1.3), saturation=(0.7, 1.3), hue=(-0.05, 0.05))
])
plt.figure(figsize=(12, 8))
for i in range(6):img = transform(pil_img)plt.subplot(2, 3, i+1)plt.imshow(img)
plt.subplots_adjust(wspace=0.15, hspace=0.15)
plt.savefig('pics/5_2.jpg')

在这里插入图片描述

http://www.lryc.cn/news/173085.html

相关文章:

  • Ae 效果:CC Force Motion Blur
  • 2023华为杯研究生数学建模竞赛CDEF题思路+模型代码
  • FP独立站之黑科技:AB站收款、斗篷CLOAK
  • 【Linux网络编程】gdb调试技巧
  • ElementUI之登录与注册
  • 报错处理:Error: Redis server is running but Redis CLI cannot connect
  • RocketMQ 源码分析——Producer
  • ISTQB术语表
  • 小米笔试题——01背包问题变种
  • SkyWalking内置MQE语法
  • Springboot2 Pandas Pyecharts 量子科技专利课程设计大作业
  • RabbitMQ里的几个重要概念
  • 23. 图论 - 图的由来和构成
  • 拼多多API接口解析,实现根据ID取商品详情
  • 【JavaScript】解构
  • 现代卷积网络实战系列2:训练函数、PyTorch构建LeNet网络
  • rust特性
  • TouchGFX之画布控件
  • STM32F103RCT6学习笔记2:串口通信
  • Opencv-图像噪声(均值滤波、高斯滤波、中值滤波)
  • MasterAlign相机参数设置-增益调节
  • 9月22日,每日信息差
  • Java版本企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
  • Android studio中如何下载sdk
  • STM32单片机中国象棋TFT触摸屏小游戏
  • 【PHP图片托管】CFimagehost搭建私人图床 - 无需数据库支持
  • CCITT 标准的CRC-16检验算法
  • docker启动mysql服务
  • Postman应用——Request数据导入导出
  • 十四、MySql的用户管理