python图像增强_使用Python进行图像增强
Python中的图像增强示例
我目前正在进行一项研究,审查图像数据增强的深度和有效性。本研究的目标是在有限或者少量数据的情况下,学习如何增加我们的数据集大小,来训练鲁棒性卷积网络模型。
这项研究需要列出所有我们能想到的图像增强方法,并穷举所有这些组合,尝试提高图像分类模型的性能。首先出现在脑海中最简单的图片增强:是翻转,平移,旋转,缩放,隔离个别的r,g,b颜色通道,和添加噪音。更令人兴奋的增强是使用生成对抗网络模型,或用遗传算法交换生成器网络,更有甚者在图像中应用instagram风格的光照滤镜、随机区域锐化滤镜、基于聚类技术的均值图像增强等创新方法。
本文将向您展示如何使用NumPy对图像进行增强。
下面是一些增强技术的列表和说明,如果你能想到任何其他方法来增强图像,可提高图像分类器的质量,请留下评论。
原始图片(未增强)
增强
所有的增强都是在没有OpenCV库的情况下使用Numpy完成的
# Image Loading Code used for these examples
fromPIL importImage
importnumpy asnp
importmatplotlib.pyplot asplt
img = Image.open('./NIKE.png')
img = np.array(img)
plt.imshow(img)
plt.show()
翻转
翻转图像是最流行的图像数据增强方法之一。
这主要是由于翻转代码的简单性以及对于大多数问题的直观性,翻转图像会为模型增加价值。
下面的模型可以被认为是看到左鞋而不是右鞋,因此通过这种数据增加,模型对于看到鞋的潜在变化变得更加健壮。
#Flipping images with Numpy
flipped_img = np.fliplr(img)
plt.imshow(flipped_img)
plt.show()
平移
平移增强对检测类分类器有很大价值。 这个分类模型试图检测鞋子何时在图像中而不是在图像中。
平移将有助于它在不看鞋架的整个鞋子的情况下拿起鞋子。
# Shifting Left
fori inrange(HEIGHT, 1, -1):
forj inrange(WIDTH):
if(i < HEIGHT-20):
img[j][i] = img[j][i-20]
elif(i < HEIGHT-1):
img[j][i] = 0
plt.imshow(img)
plt.show()
# Shifting Right
forj inrange(WIDTH):
fori inrange(HEIGHT):
if(i < HEIGHT-20):
img[j][i] = img[j][i+20]
plt.imshow(img)
plt.show()
# Shifting Up
forj inrange(WIDTH):
fori inrange(HEIGHT):
if(j < WIDTH - 20andj > 20):
img[j][i] = img[j+20][i]
else:
img[j][i] = 0
plt.imshow(img)
plt.show()
#Shifting Down
forj inrange(WIDTH, 1, -1):
fori inrange(278):
if(j < 144andj > 20):
img[j][i] = img[j-20][i]
plt.imshow(img)
plt.show()
噪点
噪点是一种有趣的增强技术。 我已经看过很多关于对抗训练的有趣论文,你可以将一些噪点投入到图像中,因此模型无法正确分类。 但我仍然在寻找产生比下图更好的噪点的方法。 添加噪点可能有助于光照畸变并使模型更加鲁棒(编者就2:意思是这里让边缘光照发生失真,让尺度不变的情况下特征转变(SIFT),从而能增加鲁棒性(SURF),使得识别更加准确 ,不过,看这文章的水平应该是我多虑了)。
# ADDING NOISE
noise = np.random.randint(5, size = (164, 278, 4), dtype = 'uint8')
fori inrange(WIDTH):
forj inrange(HEIGHT):
fork inrange(DEPTH):
if(img[i][j][k] != 255):
img[i][j][k] += noise[i][j][k]
plt.imshow(img)
plt.show()
GANs(生成对抗网络)
我已经收到很多关于研究使用Generative Adversarial Networks进行数据增强的兴趣,下面是我能够使用MNIST数据集生成的一些图像。
正如我们从上面的图片中可以看出的那样,它们确实看起来像3 ,7和9。我目前在扩展网络架构方面遇到一些麻烦,以支持运动鞋的300x300x3尺寸输出,而不是28x28x1 MNIST数字。
但是,我对这项研究感到非常兴奋,并期待继续这项研究!感谢您阅读本文,希望您现在知道如何实现基本数据扩充以改进您的分类模型!
http://www.gair.link/page/TextTranslation/1088
你每天都有接触到计算机视觉,尽管你没有意识到使用 PCA 进行特征提取使用卷积神经网络做语义分割
如何通过深度学习轻松实现自动化监控
为计算机视觉生成大的、合成的、带标注的、逼真的数据集
使用深度学习做语义分割:简介和代码
使用 SKIL 和 YOLO 构建产品级目标检测系统
MultiTracker 类:基于 OpenCV 的多目标追踪(Python/C++)返回搜狐,查看更多
python图像增强_使用Python进行图像增强相关推荐
- 第一章 第一节:Python基础_认识Python
Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...
- java python算法_用Python,Java和C ++示例解释的排序算法
java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...
- excel python插件_利用 Python 插件 xlwings 读写 Excel
Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...
- 网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器
相关文章: 本篇将会涉及: HTTP 基本认证 对HTTP Basic认证进行密码暴力攻击测试 什么是HTTP 基本认证 HTTP基本认证(HTTP Basic Authentication)是HTT ...
- 动态照片墙 python 实现_利用python生成照片墙的示例代码
这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...
- python字符串_(Python基础教程之七)Python字符串操作
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- python 字符识别_使用python进行光学字符识别入门
python 字符识别 语言模型设计 (Language Model Designing) Optical Character Recognition is the conversion of 2-D ...
- 类的继承python事例_【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸...
作者:白宁超 2016年10月10日22:36:57 摘要:继一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc入门资料包含了基本要点.本文是对文档常用核心要点进行梳理,简 ...
- 【100天精通python】Day1:python入门_初识python,搭建python环境,运行第一个python小程序
目录 专栏导读 1 初始python python 概述 python的应用领域 应用python的公司 2 搭建python 开发环境 2.1 安装python(以windows 系统为例)(1)下 ...
- python计算机_基础python计算机知识
1.计算机基础知识 计算机基础 :组成---输入输出设备 储存器 CPU 内存 cpu 中央处理器 :处理各种数据的 内存 存储数据 硬盘 存储数据的 什么是操作系统:控制计算机的工作流程 软件 什么 ...
最新文章
- 增强现实技术的9个最新应用趋势
- C# 学习笔记(16)ComboBox下拉列表框宽度自适应
- 转发和重定向和request域对象
- Vue.js not detected
- MySQL笔记-免密码登录小技巧(运行参数填写skip-grant-tables)
- ECCV18 | 如何正确使用样本扩充改进目标检测性能(附Github地址)
- shadow阴影属性
- uc浏器保存html,UC浏览器不能保存历史记录
- [Java] 蓝桥杯ADV-158 算法提高 新建Microsoft Word文档
- 10分钟掌握运输问题(一)
- xposed框架android9.0,xposed仓库商店下载
- windows7/windows server 2008 r2升级至sp1
- 熊国正版游戏之TXT文字乱码【已解决】【rutracker】【byrut】【单机】【破解】【俄罗斯】
- [Growth]Steve Jobs——Follow your heart and intuition, everything else is secondary.
- python可视化3d柱状图_「Python实现数据可视化」创建3D柱状图
- AD绘制PCB板框+定位孔(Altium Designer)
- python网络设备巡检(异常自动报警)_常用网络设备巡检命令参考(四)
- 使用pymysql连接数据库
- sql 2005安装图解
- 攻城狮生活-4 高架桥惊魂一幕
热门文章
- 表格标签(HTML)
- Angualr routerLink 两种传参方法及参数的使用
- android安全攻防实践_网络攻防小组招新,等待优秀的你!
- 在eclipse中搭建struts2框架的详细过程
- Python基础知识回顾及scrapy框架爬虫基础
- php中一个字符占用几个字节?
- 阿里云前端周刊 - 第 37 期
- Linux命令解释之chown
- 【汇编语言与计算机系统结构笔记08】如何实现循环(Loops),gcc历史上经历了多种转换模式(微体系结构角度解释),Switch语句,跳转表
- Solve error: Cannot open include file: 'X11/Xlocale.h': No such file or directory