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

Pytorch - 数据增广

增加一个已有数据集,使得有更多的多样性

  • 在语言里面加入各种不同的背景噪音
  • 改变图片的颜色和形状

翻转

  • 左右翻转
  • 上下翻转

但是并不总是可行的。

切割

从图片中切割一块,然后变形到固定形状

  • 随机高宽比
  • 随机大小
  • 随机位置
image-20231026135233417

颜色

改变色调、饱和度、明亮度。

image-20231026135646907

总结:

  • 数据增强通过变形数据来获取多样性从而使得模型泛化性能更好
  • 常见图片增强包括翻转、切割、变色

代码实现

随机水平翻转

from PIL import Image
from torchvision import transforms

image = Image.open("../data/1.jpg")
# 水平方向随机翻转
horizontal = transforms.RandomHorizontalFlip()
horizontal_out = horizontal(image)
horizontal_out.show()

随机垂直翻转

# 垂直方向随机翻转
vertical = transforms.RandomVerticalFlip()
vertical_out = vertical(image)
vertical_out.show()

随机裁剪

# 随机裁剪
# size 裁剪后重新设置大小为 200 * 200
# 随机裁剪区域大小设置为 从原图大小的10%到100%随机裁剪
# ration:高宽比
resizeCrop = transforms.RandomResizedCrop(size=(200,200),scale=(0.1,0.9),ratio=(0.5,2))
resizeCrop_out = resizeCrop(image)
resizeCrop_out.show()

随机更改图像的亮度

# 随机更改图像的亮度
# brightness:亮度,0.5亮度增加/降低50%
# contrast:对比度
# saturation:饱和度
# hue:颜色
colorJitter = transforms.ColorJitter(brightness=0.5,contrast=0,saturation=0,hue=0)
colorJitter_out = colorJitter(image)
colorJitter_out.show()

随机更改图像的色调

# 随机更改图像的色调
colorJitter = transforms.ColorJitter(brightness=0,contrast=0,saturation=0,hue=0.5)
colorJitter_out = colorJitter(image)
colorJitter_out.show()

常用的是,同时调整,上下50%

colorJitter = transforms.ColorJitter(brightness=0.5,contrast=0.5,saturation=0.5,hue=0.5)
colorJitter_out = colorJitter(image)
colorJitter_out.show()
image-20231026145559744

http://www.kler.cn/a/106891.html

相关文章:

  • uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别
  • 四:HTTP的诞生:它解决了哪些网络通信难题?
  • 鸿蒙HarmonyOS 地图不显示解决方案
  • MySQL的SQL书写顺序和执行顺序
  • PNG图片批量压缩exe工具+功能纯净+不改变原始尺寸
  • 结构体是否包含特定类型的成员变量
  • Unity3D 如何用unity引擎然后用c#语言搭建自己的服务器
  • C# 基于腾讯云人脸核身和百度云证件识别技术相结合的 API 实现
  • ​ iOS自动混淆测试处理笔记
  • 干式电抗器的尺寸和重量对系统有什么影响?
  • Redis快速上手篇八(redission分布式锁)
  • AXI-Stream协议详解(3)—— AXI4-Stream IP核原理分析
  • 使用一个Series序列减去另一个Series序列Series.subtract()
  • buuctf_练[GYCTF2020]FlaskApp
  • UVa10976 Fractions Again?!(分数拆分)
  • shell实验
  • Linux常用命令——chpasswd命令
  • 2.19每日一题(分段函数求定积分)
  • MATLAB算法实战应用案例精讲-【目标检测】YOLOV8
  • C++STL----list的使用
  • 解决eslint与prettier在代码格式上的冲突
  • C++系列之list的模拟实现
  • SpringBoot | SpringBoot中实现“微信支付“
  • Flask Run运行机制剖析
  • Kafka - 3.x 副本不完全指北
  • 工业相机常见的工作模式、触发方式