图像增强_Keras 常用的图像增强方式

906c7bfc1a01debff76f7f956d3f61cb.png

欢迎关注 “小白玩转Python”,发现更多 “有趣”

在使用神经网络和深度学习模型时,需要进行数据准备。对于更复杂的物体识别任务,也越来越需要增加数据量。

数据增加意味着增加数据量。换句话说,拥有更大的数据集意味着更健壮的模型。但是获取更多的数据并不总是那么容易,而且可能存在存储数据并将其提供给模型的问题。

为了缓解这个问题,我们可以通过做一些修改手动增加数据,或者我们可以使用一个 Keras 图像预处理类,只需几行代码就可以做到这一点。

在这篇文章中,我们将看到在使用 Keras 开发和评估 Python 中的深度学习模型时,如何使用图像数据集进行数据准备和数据增强。

读完这篇文章,你就会知道:

1. 关于Keras提供的图像增强API以及如何在模型中使用它。如何执行特征标准化;

2. 如何对图像执行 ZCA 白化;

3. 如何对图像数据随机旋转,移位和翻转增强;

4. 如何将增强图像数据保存到磁盘。

图像增强 API:ImageDataGenerator

它从原始批处理中生成批处理的增强数据。该算法首先对图像进行随机变换,然后生成一批新的图像进行训练。

注意: 这里需要注意的一点是 ImageDataGenerator 不返回原始图像,而只返回一批增强数据,这是对原始数据进行某些转换的结果。

加载数据集

我们将使用 MNIST 手写数字识别进行数据增强。执行下面的代码将从 keras.datasets 加载 MNIST 数据集:

9d09a459fade66b3b4f86db76d4a02e8.png

将数据分解成训练街和测试集

像素标准化

像素标准化在两个级别上得到支持:每个图像(称为样本级)或每个数据集(称为特征级)。具体来说,标准化像素值所需的平均值和/或平均值和标准差统计量可以仅从每张图像中的像素值计算(按样本计算) ,也可以从整个训练数据集中计算(按特征计算)。

您可以通过在 ImageDataGenerator 类上设置 featurewise_center 和 featurewise_std_normalization 参数来执行标准化过程。

a67918953909d3bea592447f309af08e.png

5b439ff59cf2eb7ee3158176a4f4e744.png

运行这个例子,您可以看到效果是不同的,似乎暗淡和亮化不同的数字。

ZCA 白化

图像的白化变换是一个线性代数运算,它减少了像素图像矩阵中的冗余。通常,图像增白是使用主成分分析分析技术进行的。最近,一种叫做 ZCA 的方法显示了更好的结果,在变换后的图像中保留了所有的原始维度,不像 PCA,结果变换后的图像仍然看起来像原始图像。

466067e301514128ed858e577c669844.png

8b2ad154c3b7e98093c1f589546d8192.png

随机旋转

您可以训练您的模型,以更好地在训练期间人为处理数据集中图像旋转和随机旋转。下面的示例通过设置 rotation _ range 参数创建 MNIST 数字最高90度的随机旋转。

493a7781dc1fed22e96d2b89ffd6940d.png

eeef2392f293c67e642215034e632b55.png

你可以看到图像被左右旋转到90度的极限。这对这个问题没有帮助,因为 MNIST 的数字有一个规范化的方向,但是这种转换可能有助于从物体可能有不同方向的照片中学习。

随机平移

图像中的对象可能不在框架中心。它们可能在各种不同的方面偏离中心。您可以通过人工创建训练数据的平移版本来训练深度学习网络。Keras 支持通过 width_shift_range 和 height_shift_range 参数对训练数据进行水平和垂直随机平移。

同样,由于手写数字已经居中,这对于 MNIST 来说是不必要的,但是您可以看到这在更复杂的问题域中是多么有用。

8ea2a572590c77dba58d36ce602ada5e.png

df85f45a8dc7cd1d1ef7d962f3be2d9f.png

随机翻转

另一个增强图像数据的方法是在训练数据中创建随机的图像翻转,这样可以提高处理大型复杂问题的性能。Keras 支持使用 vertical_flip 和 horizontal_flip 参数沿垂直轴和水平轴进行随机翻转。

3792f4988f4b4ee783f86968cd559e8c.png

fd7412927807eb5d753d4630d7f23907.png

翻转数字不是很有用,因为它们总是有正确的左右方向,但是对于场景中可能有不同方向的物体的照片来说,这可能是有用的。

·  END  ·

HAPPY LIFE

7672632f8ab110d213e25e83e19b5ee6.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Facebook产品经理的三年叙事与协作思考

产品经理和研发工程师的关系经常被大家调侃,可偏偏就有同时受到研发和设计都喜欢的“别人家的产品经理”,沟通协调、对接需求、项目把控面面俱到还有好人缘。有没有人天生就是产品经理?产品经理的工作就是写需求写需求和写需求么?…

sis新地址_坚若磐石不掉速,老平台升级新选择,入手昱联Asint 500G SSD

我是文章的原作者,文章首发于:什么值得买爱折腾的老狐狸​zhiyou.smzdm.com首发文章链接:坚若磐石不掉速,老平台升级新选择,入手昱联Asint 500G SSD _值客原创_什么值得买​post.smzdm.com虽然说,现在越来越…

hive表定义(3种方式)

创建表 方式一 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ..…

进度条设置_为你的练习设置进度条

在我们的日常练习中,遇到最多的一个问题就是不知道自己练得怎么样了?还需不需要继续,或者调整练习方法。这种问题大多出现在自学吉他的学生当中,因为得不到老师的反馈,自己练得对不对,够不够,都…

Python之路(第二篇):Python基本数据类型字符串(一)

一、基础1、编码 UTF-8:中文占3个字节 GBK:中文占2个字节 Unicode、UTF-8、GBK三者关系 ascii码是只能表示英文字符,用8个字节表示英文,unicode是统一码,世界通用码,规定采用2个字节对世界各地不同文字进行编码&#x…

python ftp下载文件_文件上传下载Python

点击上方蓝字关注我!图片来源 pexels.com简单实现文件上传、下载1 Server端 # -*- coding: utf-8 -*-import jsonimport os__author__ sange# Time : 2020/8/17 下午5:26# Author : sange# File : tcpserver_socket.py# Software: PyCharmimport socketserv…

hive列定义

修改 列的名称、类型、位置、注释 hive>ALTER TABLE t3 CHANGE COLUMN old_name new_name String [COMMENT ...] [AFTER column2]; 实例 hive (zmgdb)> alter table t1 change column car sarly int after office; FAILED: Execution Error, return code 1 from org.a…

react json转换_Typescript + React 新手篇

极链科技前端工程师茅丹丹前言 TS是什么Type Type (标准JS)。TS的官方网站:Type is a typed superset of Java that compiles to plain Java。Type是一个编译到纯JS的有类型定义的JS超集。 TS优点 TS 最大的优势是它提供了强大的静态分析能力,结合 TSL…

android listview 滑动条显示_第七十六回:Android中UI控件之RecyclerView基础

各位看官们,大家好,上一回中咱们说的是Android中UI控件之ListView优化的例子,这一回咱们说的例子是UI控件之RecyclerView。闲话休提,言归正转。让我们一起Talk Android吧!看官们,我们在前面章回中介绍了Lis…

数据建模大数据就业挑战月薪30K

点击关注 异步图书,置顶公众号每天与你分享 IT好书 技术干货 职场知识本文大概 10624 字读完共需 30 分钟Tips 参与文末话题讨论,即有机会获得异步图书一本。数据建模是对现实世界各类数据进行抽象组织、界定数据库需管辖的范围、确定数据的组织形式等直…

Hive的数据模型-管理表

概述 管理表,也称作内部表,受控表。 所有的 Table 数据(不包括 External Table)都保存在warehouse这个目录中。 删除表时,元数据与数据都会被删除。 在加载数据的过程中,实际数据会被移动到数据仓库目录中&#xff1b…

mft按钮设计_火力发电厂典型MFT逻辑控制实现.pdf

火力发电厂典型MFT逻辑控制实现.pdf火力发电厂典型MFT逻辑控制实现刘文丰 陈思铭湖南省电力试验研究院 (湖南长沙410007)摘要:以金竹山电厂扩建工程国产2600MW亚临界机组为例,概述了必力发电厂FSSS中典型MFT的原理及重要性,详细介绍各MFT条件…

oracle schema_oracle数据库全局统计更新

--oracle数据库优化 替换用户名 user,在该用户下执行begindbms_stats.gather_schema_stats(ownname >USER,options > GATHER,estimate_percent > dbms_stats.auto_sample_size,method_opt > for all columns size skewonly,degree > 7 );end;————…

python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/redis-pyapi参考文档:http://redis-py.readthedocs.io/en/latest/ 1.安装redis-py pip install redis C:\Users\ajie…

Hive的数据模型-外部表

概述 包含External 的表叫外部表 删除外部表只删除metastore的元数据,不删除hdfs中的表数据 外部表 只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个 外部表 时&…

对github的初步认识以及对软件技术基础课程的期待

对github的初步认识: Git是一个开源的分布式版本控制系统(版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统),客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像…

centos默认安装mysql_centos6.x默认安装mysql5.7

1. yum 安装 mysql5.7 yum 源yum localinstall mysql57-community-release-el6-8.noarch.rpm2. 查看是否成功安装MySQL Yum Repositoryyum repolist enabled|grep ""mysql.*-community.*3. 安装mysqlyum install mysql-community-server4.开启数据库服务service mys…

Hive的数据模型-分区表

需求 select * from t1 where xxxx; 这是全表扫描的。实际应用中,有时候不一定需要全表扫描。 比如电信的日志文件,一个表里存了从去年到现在的日志文件,那是很多很大的,实际需求要查今天的,如果用上面的sql&#xf…

arduino 停止程序_建立Arduino机器人,第五部分:障碍规避

欢迎阅读教程系列的第五篇文章,其中我正在构建一个基于遥控Arduino的车辆机器人。这是我到目前为止发表的文章列表:第一部分:硬件组件第二部分:Arduino编程第三部分:组装机器人第四部分:A(不是那样)基本机器…

debug error怎么解决_我要以血和泪的经历告诉你,这个 bug 太难解决了

[npm install报错: npm WARN tar ENOENT: no such file or directory]npm installnpm WARN deprecated request2.88.2: request has been deprecated, see request/request#3142npm WARN deprecated mkdirp0.5.1: Legacy versions of mkdirp are no longer supported. Please u…