和另一种说法数据增强(data augmentation)十分类似。主要区别在于,数据增强是训练时进行的,用于提升模型的鲁棒程度;而这里说的扰动指测试时进行的,用于评估已训练模型的鲁棒程度,因此并不需要数据增强过程中的随机性。考虑读取一张图片如下:

from PIL import Image
import torchvision.transforms as transforms
img = Image.open("1.jpg")
img.show()


  • 高斯模糊Gaussian Blur:
blur = transforms.GaussianBlur(kernel_size=7, sigma=(2.0, 2.0))
img_blur = blur(img)
img_blur.show()


一般来说高斯核的常用大小有5,7,9,sigma取值为0.1到5之间。


  • 缩小Pad:
img_pad = F.pad(img, padding=[24])
resize = transforms.Resize([224, 224])
img_pad = resize(img_pad)
img_pad.show()

为图像四周填充黑边,这一操作实际上会使图像整体的尺寸变大(原尺寸+黑边),为此进行pad操作后往往还需要重新缩放回原尺寸,相当于我们需要观测的对象变小了。


  • 旋转Rotation:
img_rotate = img.rotate(angle=15, expand=False)
img_rotate.show()


默认情况下,旋转后的图像尺寸保持不变,这种时候实际上会被裁切掉一部分,如果不希望裁切的话可以将expand参数设置为True。


  • 水平翻转HorizontalFlip:
hFlip = transforms.RandomHorizontalFlip(p=1.0)
img_hFlip = hFlip(img)
img_hFlip.show()


  • 垂直翻转VerticalFlip:
vFlip = transforms.RandomVerticalFlip(p=1.0)
img_vFlip = vFlip(img)
img_vFlip.show()


  • 灰度Gray:
gray = transforms.Grayscale()
img_gray = gray(img)
img_gray.show()


Ref

https://pytorch.org/vision/stable/transforms.html
https://pytorch.org/vision/stable/auto_examples/plot_transforms.html#sphx-glr-auto-examples-plot-transforms-py

计算机视觉中常见图像扰动方法的Pytorch实现相关推荐

  1. Opencv中常见的滤波方法

    Opencv中常见的滤波方法 - 随性岁分享 - 博客园 opencv:基于opencv的五种滤波方法_M海洋的博客-CSDN博客_opencv滤波 OpenCV3学习(4.2)--图像常用滤波方法( ...

  2. 聊一聊计算机视觉中常用的注意力机制 附Pytorch代码实现

    聊一聊计算机视觉中常用的注意力机制以及Pytorch代码实现 注意力机制(Attention)是深度学习中常用的tricks,可以在模型原有的基础上直接插入,进一步增强你模型的性能.注意力机制起初是作 ...

  3. 计算机视觉-深度学习图像检测方法梳理

    计算机视觉-深度学习图像检测方法梳理 由于之后要转方向啦,趁这段时间整理手中硕士研究方向的一些阅读笔记,这是一篇关于计算机视觉的基础知识梳理 先搞清一些小知识点 首先我们要弄清楚图像分类.目标定位.语 ...

  4. MES系统中常见的数据采集方法

    MES系统中常见的数据采集方法 有以下几种,分享给大家. 1.RFID采集方式:        通过RFID (射频自动识别技术)来采集人员.物料.设备.工装等编码.位置.状态信息需要事先将信息写入R ...

  5. 计算机视觉中的图像标注工具总结

    本文来自公众号CV技术指南资源分享系列 创建高质量的数据集是任何机器学习项目的关键部分.在实践中,这通常比实际训练和超参数优化花费的时间更长.因此,选择合适的标注工具至关重要.在这里,我们总结了一些用 ...

  6. 学习...笔记08:Origin绘制常见图像的方法总结

    文章目录 前言 一.获取绘图使用的数据 1.准备磁滞回线的数据 2.准备标量场平面视图的数据 3.准备带箭头矢量图的数据 4.准备矢量场平面视图的数据 5.准备标量场的数据 6.准备拼图的数据 二.O ...

  7. 关于es6中常见的一些方法----对象篇

    好了,话不多说,是骡子是马拉出来溜溜,这篇文章笔者就来简单介绍下关于对象的一些方法 1.Object.is() Object.is() 方法判断两个值是否是相同的值. 参数: value1: 第一个需 ...

  8. matlab截视频人脸,一种视频图像中人脸图像截取方法与流程

    本发明涉及人工智能领域,具体涉及一种提高人脸比对性能的视频图像中人脸图片截取方法. 背景技术: 人脸图像比对需要对人脸图像提取特征数据,用于人脸对比的人脸特征提取,主要是对经人脸检测过程截取到的视频图 ...

  9. JS中常见的String方法

    对于JS中的字符串(String)我们经常使用,今天总结了一下常见的String方法. 1. length 检测字符串的长度 let str = 'abcdef';console.log(str.le ...

最新文章

  1. java gettext返回值_012-关于EditText中的getText()方法的返回值类型以及string的转换问题(转)...
  2. 从微盟36小时故障,谈谈数据安全这点事
  3. 算法题3 寻找丑数数值逼近
  4. python中transpose函数_对numpy中的transpose和swapaxes函数详解
  5. 软件设计师中级 百度知道_设计师应该知道什么
  6. 影响线型缩聚物分子量的因素_高分子化学试题
  7. 一根绳子从一头烧需30时分钟_小学生一分钟跳绳满分训练指南
  8. TCP/IP网络编程(3)
  9. wifi的web 认证。
  10. Awesome Go
  11. js获取歌曲时长_小白的js——html播放器(3)
  12. BLE HID 协议-----蓝牙鼠标 代码流程分析
  13. python 解决transform.rescale操作,本应得到彩色图像,然而所得图像为灰色图像问题
  14. 分号(;)和逗号(,)的用法
  15. git冲突产生原因_Git 常见问题 冲突原因分析及解决方案
  16. spark出现crossJoin笛卡尔积报错异常解决use the CROSS JOIN syntax to allow cartesian products between these
  17. 远程进服务器怎么全屏显示,远程服务器如何全屏显示
  18. 关于Oracle导出到csv文件的脚本-spool方法
  19. GPS卫星运动及定位matlab仿真
  20. 团队建设管理培训 (2)PPT模板

热门文章

  1. Flex通过Java读取Excel(详细流程)----Excel在客户端(DataGrid动态根据Excel生成)
  2. ubuntu boot空间不足_windows10安装ubuntu双系统教程(绝对史上最详细)
  3. php动态创建属性,PHP使用方法重载实现动态创建属性的get和set方法
  4. 天下手游卡在获取服务器信息,天下手游召唤兽获取与洗练:新手必须知道的事情...
  5. An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometri
  6. 【机器学习-西瓜书】八、Bagging;随机森林(RF)
  7. OpenCV:图片的几何变换
  8. 数据结构(字符串)—— 循环旋转字符串的判断
  9. python 字典转对象
  10. 突击计划——求整数中的较大者