图像处理(1):PyTorch垃圾分类 数据预处理

基于深度学习框架PyTorch transforms 方法进行数据的预处理

产品和技术负责人,专注于NLP、图像、推荐系统

整个过程主要包括:缩放、裁剪、归一化、标准化几个基本步骤。

图像归一化是计算机视觉、模式识别等领域广泛使用的一种技术。所谓图像归一化, 就是通过一系列变换, 将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)

基于矩的图像归一化过程包括 4 个步骤 即坐标中心化、x-shearing 归一化、缩放归一化和旋转归一化。

Pytorch:transforms方法

  1. 裁剪——Crop

中心裁剪:transforms.CenterCrop
随机裁剪:transforms.RandomCrop
随机长宽比裁剪:transforms.RandomResizedCrop
上下左右中心裁剪:transforms.FiveCrop
上下左右中心裁剪后翻转,transforms.TenCrop

  1. 翻转和旋转——Flip and Rotation

依概率p水平翻转:transforms.RandomHorizontalFlip(p=0.5)
依概率p垂直翻转:transforms.RandomVerticalFlip(p=0.5)
随机旋转:transforms.RandomRotation

  1. 图像变换

resize:transforms.Resize
标准化:transforms.Normalize
转为tensor,并归一化至[0-1]:transforms.ToTensor
填充:transforms.Pad
修改亮度、对比度和饱和度:transforms.ColorJitter
转灰度图:transforms.Grayscale
线性变换:transforms.LinearTransformation()
仿射变换:transforms.RandomAffine
依概率p转为灰度图:transforms.RandomGrayscale
将数据转换为PILImage:transforms.ToPILImage
transforms.Lambda:Apply a user-defined lambda as a transform.

  1. 对transforms操作,使数据增强更灵活

transforms.RandomChoice(transforms), 从给定的一系列transforms中选一个进行操作
transforms.RandomApply(transforms, p=0.5),给一个transform加上概率,依概率进行操作
transforms.RandomOrder,将transforms中的操作随机打乱

导入库

# 导入torch 包
import torch
import torch.nn as nn
from torchvision import transforms

加载图片数据

file_name ='../images/dog.jpg'
from PIL import Image
input_image = Image.open(file_name)
print(input_image)
print(input_image.size) # 尺寸大小:长=1546,宽1213

# 数据处理后,我们看看处理后图片
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示符号
plt.imshow(input_image)

在这里插入图片描述

图片数据预处理

preprocess = transforms.Compose([
    # 1. 图像变换:重置图像分辨率,图片缩放256 * 256 
    transforms.Resize(256),
    # 2. 裁剪: 中心裁剪 ,依据给定的size从中心裁剪
    transforms.CenterCrop(224),
    # 3. 将PIL Image或者 ndarray 转换为tensor,并且归一化至[0-1].注意事项:归一化至[0-1]是直接除以255
    transforms.ToTensor(),
    # 4. 对数据按通道进行标准化,即先减均值,再除以标准差
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),#图片归一化
])

# 原始数据预处理
input_tensor = preprocess(input_image)
print('input_tensor.shape = ',input_tensor.shape)
print('input_tensor = ',input_tensor)
input_tensor.shape =  torch.Size([3, 224, 224])
input_tensor =  tensor([[[-1.9295, -1.9295, -1.9124,  ..., -2.0323, -1.9467, -1.9295],
         [-1.9980, -1.8953, -1.9124,  ..., -1.9638, -1.9295, -1.7754],
         [-1.9980, -1.9467, -1.9124,  ..., -2.0494, -1.9638, -1.8953],
         ...,
         [-1.4843, -1.6042, -1.6213,  ..., -0.8678, -1.1075, -1.0733],
         [-1.5357, -1.6042, -1.6213,  ..., -1.0390, -1.6213, -1.4500],
         [-1.5528, -1.4843, -1.2445,  ..., -0.9192, -1.2788, -1.2617]],

        [[-1.8256, -1.8256, -1.8081,  ..., -1.9832, -1.9132, -1.9132],
         [-1.8256, -1.8431, -1.8431,  ..., -1.9657, -1.9307, -1.8782],
         [-1.8256, -1.8431, -1.8606,  ..., -1.9657, -1.9482, -1.9132],
         ...,
         [-0.9853, -0.9678, -0.9853,  ..., -0.4601, -0.6352, -0.6702],
         [-0.9853, -0.9853, -1.0028,  ..., -0.5651, -1.1253, -0.8978],
         [-0.9503, -0.9853, -0.8102,  ..., -0.3901, -0.8102, -0.7402]],

        [[-1.6127, -1.5953, -1.5604,  ..., -1.7173, -1.6999, -1.7173],
         [-1.6650, -1.6302, -1.6302,  ..., -1.7173, -1.7173, -1.6476],
         [-1.6476, -1.6650, -1.6476,  ..., -1.7347, -1.6999, -1.6824],
         ...,
         [-1.3164, -1.5081, -1.5953,  ..., -0.8981, -1.1596, -1.0898],
         [-1.2990, -1.5256, -1.6127,  ..., -0.9504, -1.4907, -1.3861],
         [-1.2816, -1.4210, -1.2293,  ..., -0.7413, -1.1247, -1.2816]]])

数据预处理后的效果

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示符号

input_tensor = input_tensor.permute(1,2,0) #Changing from 3x224x224 to 224x224x3
print('input_tensor.matplotlib.shape = ',input_tensor.shape)
#clamp表示夹紧,夹住的意思,torch.clamp(input,min,max,out=None)-> Tensor
input_tensor = torch.clamp(input_tensor,0,1)
print('input_tensor.matplotlib.clamp.shape = ',input_tensor.shape)
plt.imshow(input_tensor)

在这里插入图片描述

<p> <span><b><span style="background-color:#FFE500;">【超实用课程内容】</span></b><br /> </span> </p> <p> <span>本课程从</span>pytorch安装开始讲起,从基本计算结构到深度学习各大神经网络,全程案例代码实战,一步步带大家入门如何使用深度学习框架pytorch,玩转pytorch模型训练等所有知识点。最后通过 kaggle 项目猫狗分类,实战pytorch深度学习工具。 </p> <p> <br /> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><span style="background-color:#FFE500;">【课程如何观看?】</span></b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> PC端<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/26150"></a><a href="https://edu.csdn.net/course/detail/26150"></a><a href="https://edu.csdn.net/course/detail/27286">https://edu.csdn.net/course/detail/27286</a> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 移动端CSDN 学院APP注意不是CSDN APP哦 </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 本课程为录播课,课程永久观看,大家可以抓紧时间学习后一起讨论哦~ </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <strong><span style="background-color:#FFE500;">【学员专享增值服务】</span></strong> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b>源码开放</b> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 下载方式电脑登录<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/26150"></a><a href="https://edu.csdn.net/course/detail/27286">https://edu.csdn.net/course/detail/27286</a>,点击右下方课程资料、代码、课件等打包下载 </p> <p> <br /> </p>
相关推荐
<p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <span style="color:#E53333;"><strong>【课程介绍】</strong></span>  </p> <p style="text-align:left;">      Pytorch项目实战 垃圾分类 课程从实战的角度出发,基于真实数据集与实际业务需求,结合当下最新话题-垃圾分类问题为实际业务出发点,介绍最前沿的深度学习解决方案。 </p> <p style="text-align:left;">     从0到1讲解如何场景业务分析、进行数据处理,模型训练与调优,最后进行测试与结果展示分析。全程实战操作,以最接地气的方式详解每一步流程与解决方案。 </p> <p style="text-align:left;">     课程结合当下深度学习热门领域,尤其是基于facebook 开源分类神器ResNext101网络架构,对网络架构进行调整,以计算机视觉为核心讲解各大网络的应用于实战方法,适合快速入门与进阶提升。 </p> <p style="text-align:left;"> <strong><span style="color:#E53333;">【课程要求】</span></strong> </p> <p style="text-align:left;"> 1开发环境python版本Python3.7+;<span style="color:#E53333;"> torch 版本1.2.0+; torchvision版本0.4.0+</span> </p> <p style="text-align:left;"> 2开发工具Pycharm; </p> <p style="text-align:left;"> 3学员基础需要一定的Python基础,及深度学习基础; </p> <p style="text-align:left;"> 4学员收货掌握最新科技图像分类关键技术; </p> <p style="text-align:left;"> 5学员资料内含完整程序源码和数据集; </p> <p style="text-align:left;"> 6课程亮点专题技术,完整案例,全程实战操作,徒手撸代码 </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <span style="color:#E53333;"><strong>【课程特色】</strong></span> </p> 阵容强大 <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> 讲师一直从事与一线项目开发,高级算法专家,一直从事于图像、NLP、个性化推荐系统热门技术领域。 </p> <p style="text-align:left;"> 仅跟前沿 </p> <p style="text-align:left;"> 基于当前热门讨论话题垃圾分类,课程采用学术届和工业届最新前沿技术知识要点。 </p> <p style="text-align:left;"> 实战为先 </p> <p style="text-align:left;"> 根据实际深度学习工业场景-垃圾分类,从产品需求、产品设计和方案设计、产品技术功能实现、模型上线部署。精心设计工业实战项目 </p> <p style="text-align:left;"> 保障效果 </p> <p style="text-align:left;"> 项目实战方向包含了学术届和工业届最前沿技术要点 </p> <p style="text-align:left;"> 项目包装简历优化 </p> <p style="text-align:left;"> 课程内垃圾分类图像实战项目完成后可以直接优化到简历中 </p> <p style="text-align:left;"> <strong><span style="color:#E53333;">【课程思维导图】</span></strong> </p> <p style="text-align:left;"> <img src="https://img-bss.csdn.net/201912081323318969.png" alt="" /> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <strong><span style="color:#E53333;">【课程实战案例】</span></strong> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <img src="https://img-bss.csdn.net/201912081326184463.png" alt="" /> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <br /> </p>
<p> <b><span style="background-color:#FFE500;">【超实用课程内容】</span></b> </p> <ul> <li> <span style="font-size:14px;"><span>深度学习在图像处理领域的发</span><span>展过程;</span></span> </li> <li> <span style="font-size:14px;"><span>解析经典的卷积神经网络;</span></span> </li> <li> <span style="font-size:14px;"><span>垃</span><span>圾分类实战。本课程将使用Pytorch深度学习框架进行实战,并在ubuntu系统上</span><span>进行演示,包括不同标注文件下的数据集读取、编写卷积神经网络、训练垃圾分类数据集、测试训练网络模型、网络可视化、性能评估等。</span></span> </li> </ul> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="color:#000000;background-color:#FFE500;"><b><br /> </b></span> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="color:#000000;background-color:#FFE500;"><b>【课程如何观看?】</b></span> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="color:#000000;">PC端<a href="https://edu.csdn.net/course/detail/26277"><span id="__kindeditor_bookmark_start_21__"></span></a><a href="https://edu.csdn.net/course/detail/26295">https://edu.csdn.net/course/detail/26295</a></span> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="color:#000000;">移动端CSDN 学院APP注意不是CSDN APP哦</span> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="line-height:24px;background-color:#FFE500;font-size:14px;"><span style="line-height:24px;"><strong>【学员专享增值服务】</strong></span></span> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="line-height:24px;font-size:14px;"><b>源码开放</b></span> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="line-height:24px;font-size:14px;">课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化</span> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <span style="line-height:24px;"><span style="font-size:14px;">下载方式电脑登录<span style="color:#000000;"><a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/26295">https://edu.csdn.net/course/detail/26295</a></span></span><span style="font-size:14px;">,点击右下方</span><span style="line-height:24px;background-color:#CCCCCC;font-size:14px;">课程资料、代码等打包下载</span></span> </p> <p> <br /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页