快速上手-torchvision和opencv的预处理、图像增强方式

本文介绍了图像增强在深度学习中的作用,详细讲解了torchvision库中的多种图像处理方法,如裁剪、旋转、颜色处理等,并对比了opencv的实现方式。通过这些方法,可以有效地扩充数据集,提升模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像增强在深度学习的作用

目的就是扩充数据集,opencv和torchvision中的transform只是提供一种手段,防止重复造轮子
知道内核后,再去理解图像增强,才能具体情况具体对应

torchvision.transform

对于简单的图像旋转、拼接等处理可以直接用torchvision.transform
下面介绍的标题上的torchvision功能都是在torchvision.transforms以及torchvision.transforms.functional.下,opencv实现方式会在标题后面
部分opencv的方式需要获取转移矩阵,再通过cv2.warpXXXX等方式转换,下面不再叙述
torchvision

import cv2
import numpy as np
import matplotlib.pyplot as plt
from torchvision import transforms
import torch
#这里特意说一下 PIL读入 和CV 读入不一样
img = cv2.imread('data\monet_800600.jpg')
# cv2载入的是BGR模式 如果plt显示图像要用下面代码转成RGB
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
plt.imshow(img)

原图像
在这里插入图片描述
再具体介绍各种操作前,先掌握一下compose标准写法:

#Compose处理 可以把多个transform合并顺序处理
trans = transforms.Compose(
	#如果opencv载入图片的话,先要转成tensor
    [transforms.ToTensor(),
    #中间省略 会按照顺序进行transform处理
    transforms.CenterCrop(500),
    ]
)

如果你想随机选取的话可以用下面这个RandomApply

# 用torch.nn.ModuleList套上你想要的处理,用P指定概率
transforms = transforms.RandomApply(torch.nn.ModuleList([
	transforms.某个处理(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值