大数据采集与预处理技术(微课版)课件 2.1图像预处理依赖库pytorch_第1页
大数据采集与预处理技术(微课版)课件 2.1图像预处理依赖库pytorch_第2页
大数据采集与预处理技术(微课版)课件 2.1图像预处理依赖库pytorch_第3页
大数据采集与预处理技术(微课版)课件 2.1图像预处理依赖库pytorch_第4页
大数据采集与预处理技术(微课版)课件 2.1图像预处理依赖库pytorch_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据采集与预处理技术*

*项目一表情图像数据采集和预处理序号软件配置要求1Python3运行计算机内存8G以上2Pytorch最新版本3Pycharm+Requets+Lxml最新版本一、项目目标:1、完成表情图像数据采集环境安装配置,掌握爬虫必备知识;2、完成表情图像数据爬虫采集程序设计和数据采集;3、完成表情图像数据预处理。二、环境要求:任务三表情图像数据预处理一、任务目标1、掌握常见的图像处理Python依赖库的使用技能;2、完成表情图像数据的旋转、剪切、拉伸等预处理操作;3、完成表情图像数据的Tensor化,编写批量预处理程序。二、知识准备1、Pytorch简介PyTorch是一个基于Python的科学计算软件包,它使用图形处理单元GPU的强大功能。也是为提供最大灵活性和速度而构建的首选深度学习研究平台之一。两个最高级的功能:

具有强大的GPU加速支持的张量计算;

包含自动求导系统的深度神经网络。2、Pytorch常用工具包1)torch:类似NumPy的张量库,强GPU支持;  2)torch.autograd:基于tape的自动区别库,支持torch之中的所有可区分张量运行;  3)torch.nn:与autograd深度整合的神经网络库;  4)torch.optim:与torch.nn一起使用的优化包,包含SGD、RMSProp、LBFGS、Adam等标准优化方式;5)torch.multiprocessing:python多进程并发,进程之间torchTensors的内存共享;  6)torch.utils:数据载入器,具有训练器和其他便利功能;  7)torch.legacy(.nn/.optim):处于向后兼容性考虑,从Torch移植来的legacy代码。安装方法,在集成环境中搜索torchvision选择默认版本安装即可,在命令行使用如下命令:pipinstalltorchvision2、Pytorch常用工具包#检查环境是否正常importtorchimporttorchvisionprint(torch.__version__)#输出PyTorch的版本print(torchvision.__version__)#输出torchvision的版本img=Image.open('bg2017121301.jpg')plt.imshow(np.array(img)) #后续代码中图像显示代码和此处相同,不再一一介绍3、Pytorch常见操作示例示例1:图片裁剪importmatplotlib.pyplotaspltimportnumpyasnpimporttorchvision.transformsasTfromPILimportImageimg=Image.open('bg2017121301.jpg')transform=T.CenterCrop(160)result=transform(img)plt.imshow(np.array(img))关键函数解析Pytorch函数输入的图像可以是PIL或tensor类型,部分函数只接受PIL或只接受tensor。因此在进行处理之前可以使用ToPILImage()和ToTensor进行类型转换。transforms.CenterCrop(size)函数作用:将给定的PIL.Image进行中心裁剪,得到给定的size,size可以是tuple(H,W),也可以是一个Int,在这种情况下,裁剪出来的图片的形状是正方形。size(sequenceorint):裁剪后的尺寸大小,输入为一个int型,输出(size,size)图像;输入为长度1的sequence时,输出(size[0],size[0]);输入为(h,w),输出为(h,w)。示例2:改变图像色彩饱和度transform=T.ColorJitter(brightness=0.3,contrast=0.3,saturation=0.3,hue=0.4)result=transform(img)plt.imshow(np.array(result))关键函数解析transforms.ColorJitter(brightness=0,contrast=0,saturation=0,hue=0)随机改变亮度、对比度、饱和度、色相,其中前3项调整范围为[max(0,1-value),1+value]或给定[min,max],最后1项为[-value,value]或给定[min,max]。brightness(浮点型元组float(min,max)):[max(0,1-brightness),1+brightness]或[min,max]随机选择的非负数。contrast(float(min,max)):[max(0,1-contrast),1+contrast]或[min,max]随机选择的非负数。saturation(float(min,max)):[max(0,1-saturation),1+saturation]或[min,max]随机选择的非负数。hue(浮点型元组float(min,max)):[-hue,hue]或[min,max]随机选择,且0<=hue<=0.5或-0.5<=min<=max<=0.5。示例3:将图像进行5部分裁剪transform=T.FiveCrop(112)results=transform(img)forresultinresults:plt.figure()plt.imshow(np.array(result))关键函数解析transforms.FiveCrop(size)

分别裁剪图像的四个角和中心。size(sequenceorint):裁剪的尺寸大小,输入为一个int型,输出(size,size)图像;输入为长度1的sequence时,输出(size[0],size[0]);输入为(h,w),输出为(h,w)。示例4:图像灰度处理和边界填充transform=T.Grayscale(num_output_channels=1)result=transform(img)plt.imshow(np.array(result),cmap='gray’)transform=T.Pad(padding=(2,4,6,8),fill=(255,255,255),padding_mode='constant')result=transform(img)plt.imshow(np.array(result))关键函数解析transforms.Grayscale(num_output_channels=1)将图像转换为灰度图像。如果是torch.Tensor类型则大小为[…,3,H,W]。num_output_channels(int)-(1or3):输出图像通道数,当”3“时则三通道R=G=B。transforms.Pad(padding,fill=0,padding_mode=‘constant’)将图片所有的边界填充上padding像素值。如果是torch.Tensor类型则大小为[…,H,W]。padding(intorsequence):填充大小,依次左、上、右、下;fill(numberorstrortuple):表示填充的颜色;padding_mode(str):填充模式分为constant,edge,reflect,symmetric模式。其中constant:填充常数;edge:把边界像素值复制到填充区域;reflect:原始[1,2,3,4],不重复边界;symmetric:重复边界[2,1,1,2,3,4,4,3]。示例5:图像随机仿射变换transform=T.RandomAffine(degrees=20,translate=None,scale=None,shear=0.3,resample=False,fillcolor=0)result=transform(img)plt.imshow(np.array(result))关键函数解析transforms.RandomAffine(degrees,translate=None,scale=None,shear=None,interpolation=<InterpolationMode.NEAREST:‘nearest’>,fill=0,fillcolor=None,resample=None)图像随机仿射变换,保持图像中心不变。如果是torch.Tensor类型则大小为[…,H,W]。degrees(sequenceornumber):旋转角度,输入为(min,max);translate(tuple,optional):水平、垂直平移。以(a,b)为例,水平方向上-img_width*a<dx<img_width*a,垂直方向上-img_high*b<dy<img_high*b。scale(tuple,optional):缩放因子区间。shear(sequenceornumber,optional):一个数的情况和一个长度为2的tuple时,对X轴也就是宽上加上一个(-shear,+shear)或(shear[0],shear[1])的随机数;长度为4的tuple时,X轴加上**(shear[0],shear[1])**的随机数,Y轴加上**(shear[2],shear[3])**的随机数。interpolation(InterpolationMode):插值方法,最近邻或双线性插值。fill:变换后图像外的像素点填充值,默认为0,一个数则表示填充的灰度值,如果是长度为3的tuple类型则分别对应R,G,B。Fillcolor、resample:v0.10.0后移除,使用fill、interpolation即可。示例6:随机选择预处理和随机顺序选择处理操作transforms=[T.CenterCrop(160),T.Pad(padding=(2,4,6,8),fill=(255,255,255),padding_mode='constant')]transform=T.RandomApply(transforms,p=0.5)result=transform(img)plt.imshow(np.array(result))transforms=([T.CenterCrop(160),T.Pad(padding=(2,4,6,8),fill=(255,255,255),padding_mode='constant')])transform=T.RandomOrder(transforms)result=transform(img)关键函数解析transforms.RandomApply(transforms,p=0.5)按照给定的概率,随机应用一系列的图像变换函数。transforms(sequenceortorch.nn.Module):用列表存储一系列的图像变换函数,p(float):进行图像变换的概率。示例7:随机裁剪transform=T.RandomCrop((100,200),padding=None,pad_if_needed=False,fill=0,padding_mode='constant')result=transform(img)result=transform(img)plt.imshow(np.array(result)) 关键函数解析transforms.RandomCrop(size,padding=None,pad_if_needed=False,fill=0,padding_mode=‘constant’)随机位置裁剪图像,如果是torch.Tensor类型则大小为[…,H,W]。size(sequenceorint):裁剪后的尺寸大小,输入为一个int型,输出(size,size)图像;输入为(h,w),输出为(h,w)。padding(intorsequence):边界填充大小,为一个int型时,每个边界填充int值;长度为4的sequence时,左、上、右、下边界填充大小。pad_if_needed(boolean):如果图像小于所需的尺寸,它就会填充,以避免引发异常。fill:变换后图像外的像素点填充值,默认为0,一个数则表示填充的灰度值,如果是长度为3的tuple类型则分别对应R,G,B。padding_mode(str):填充模式分为:constant、edge、reflect、symmetric模式。constant是填充常数,edge是把边界的像素值复制到填充区域;reflect是原始[1,2,3,4];symmetric是重复边界。示例8:随机灰度、左右翻转、垂直翻转图像transform=T.RandomGrayscale(p=0.8)result=transform(img)plt.imshow(np.array(result))transform=T.RandomHorizontalFlip(p=0.6)result=transform(img)plt.imshow(np.array(result))transform=T.RandomVerticalFlip(p=0.9)result=transform(img)plt.imshow(np.array(result))关键函数解析transforms.RandomGraycale(p=0.1)按照给定的概率,随机将图片转化为灰度图像。如果是torch.Tensor类型则大小为[…,3,H,W]。transforms.RandomHorizontalFlip(p=0.5)按照给定的概率,随机水平翻转图像。如果是torch.Tensor类型则大小为[…,H,W]。transforms.RandomVerticalFlip(p=0.5)按照给定的概率,随机垂直翻转图像。如果是torch.Tensor类型则大小为[…,H,W]。示例9:随机旋转图像transform=T.RandomRotation(degrees=20,resample=False,expand=False,center=None,fill=0)result=transform(img)plt.imshow(np.array(result))关键函数解析torchvision.transforms.RandomRotation(degrees,interpolation=<InterpolationMode.NEAREST:‘nearest’>,expand=False,center=None,fill=0,resample=None)根据degress旋转图像,如果是torch.Tensor类型则大小为[…,H,W]。

degrees(sequenceornumber):旋转角度,输入为(min,max)或(-degree,+degree);interpolation(interpolationMode):插值方法:最近邻或双线性插值。expand(bool,optional):旋转后是否修改图像大小,True则修改大小保证可以容纳图像;False则维持原大小,对图像进行适当的舍弃。center(sequence,optional):旋转的中心(x,y),左上角为坐标原点。默认为图像中心。fill(sequenceornumber):变换后图像外的像素点填充值,默认为0,如果是一个数则表示填充的灰度值,如果是长度为3的tuple类型则分别对应R,G,B。resample(int,optional):v0.10.0后会移除,使用interpolation即可。示例10:高斯模糊、随机颜色transform=T.GaussianBlur(kernel_size=(5,9),sigma=(0.1,5))result=transform(img)plt.imshow(np.array(result))transform=T.RandomInvert(p=0.8)result=transform(img)plt.imshow(np.array(result))关键函数解析transforms.GaussianBlur(kernel_size,sigma=(0.1,2.0))使用高斯滤波器进行图像模糊,高斯滤波器的参数随机。如果是torch.Tensor类型则大小为[…,C,H,W]。kernel_size(intorsequence):高斯滤波器的大小。sigma(floatortupleofpython:float(min,max)):在(min,max)随机数作为标准差。transforms.RandomInvert(p=0.5)以给定的概率随机地插入给定图像的颜色。如果是torch.Tensor类型则大小为[…,1or3,H,W]。p(float):图像转换的概率示例11:随机色彩分离、过度曝光transform=T.RandomPosterize(bits=2,p=0.6)result=transform(img)plt.imshow(np.array(result))transform=T.RandomSolarize(threshold=192.0)result=transform(img)plt.imshow(np.array(result))关键函数解析transforms.RandomPosterize(bits,p=0.5)通过减少每个颜色通道的比特数,以给定的概率随机地对图像进行处理。如果图像是torchTensor,它应该是torch.uint8类型的大小为[…,1or3,H,W],如果img是PIL图像,预计它的模式是"L"或“RGB”。bits(int):每个通道保留的比特数。p(float):修该通道比特数的概率,默认0.5。transforms.RandomSolarize(threshold,p=0.5)通过反转所有高于阈值的像素值,以给定的概率随机地对图像过度曝光。如果图像是torchTensor,它的大小为[…,1or3,H,W],如果img是PIL图像,预计它的模式是"L"或“RGB”。threshold(float):阈值,所有大于等于阈值的像素点进行反转。p(float):发生反转的概率,默认为0.5。示例12:随机锐度调整、随机增大对比transform=T.RandomAdjustSharpness(sharpness_factor=2,p=1)result=transform(img)plt.imshow(np.array(result))transform=T.RandomAutocontrast(p=1)result=transform(img)plt.imshow(np.array(result))关键函数解析transforms.RandomAdjust

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论