tensorflow图像裁剪进行数据增强操作


Posted in Python onJune 30, 2020

我就废话不多说了,大家还是直接看代码吧~

#!/usr/bin/env python
# encoding: utf-8
'''
@author: lele Ye
@contact: 1750112338@qq.com
@software: pycharm 2018.2
@file: 13mnist.py
@time: 2018/12/17 10:23
@desc:
'''
import tensorflow as tf
import scipy.misc
import matplotlib.pyplot as plt
import random
 
# 读取图像可任意大小
filenames = ['./tianchi.jpg']
# 创建文件读取队列
filename_queue = tf.train.string_input_producer(filenames)
# 一个阅读器,读取整个文件,返回文件名称key,以及文件中所有的内容value
reader = tf.WholeFileReader()
# Returns the next record (key, value) pair produced by a reader
key, value = reader.read(filename_queue)
images = tf.image.decode_jpeg(value) # tf.image.decode_png(value)
target_width = target_height = 224
 
# 裁切图片
with tf.Session() as sess:
  # Coordinator的使用,用于多线程的协调
  coord = tf.train.Coordinator()
  # 启动所有graph收集到的队列运行器(queuerunners)
  threads = tf.train.start_queue_runners(coord=coord)
  height,width,channels = sess.run(tf.shape(images))
  offset_height = random.randint(0,height-target_height)
  offset_width = random.randint(0,width-target_width)
  reshapeimg = tf.image.crop_to_bounding_box(images, offset_height=offset_height, offset_width=offset_width,
                        target_height=target_height,target_width=target_width)
  print(type(reshapeimg)) # <class 'tensorflow.python.framework.ops.Tensor'>
  reimg1 = reshapeimg.eval() # reimg1的类型是<class 'numpy.ndarray'>
  scipy.misc.imsave('./crop.jpg', reimg1)
  plt.imshow(reimg1)
  plt.axis("off")
  plt.show()
  # 请求线程结束
  coord.request_stop()
  # 等待线程终止
  coord.join(threads)

原始图像480x320x3:

tensorflow图像裁剪进行数据增强操作

裁剪后224x224x3:

tensorflow图像裁剪进行数据增强操作

补充知识:Tensorflow 图像增强(ImageDataGenerator)

当我们训练一个较为复杂的网络,并且我们的训练数据集有限时,网络十分容易陷入过拟合的状态。

解决这个问题的一个可能的有效方法是:进行数据增强,即通过已有的有限的数据集,通过图像处理等方法(旋转,剪切,缩放…),获得更多的,类似的,多样化的数据。

数据增强处理,不会占用更多的存储空间,即在数据增强过程中,原始的数据不会被修改,所有的处理过程都是在内存中 即时(on-the-fly) 的处理。

注意:

数据增强不一定是万能药(虽然数据多了),数据增强提高了原始数据的随机性,但是若 测试集或应用场景 并不具有这样的随机性,那么它将不会起到作用,还会增加训练所需的时间。

使用方法:

train_datagen = ImageDataGenerator(
    rescale=1./255, #数据值除以255,[0-255] ->[0,1]
    shear_range=0.2, #剪切强度(逆时针方向的剪切角度,以度为单位)
    zoom_range=0.2, #随机缩放范围
    horizontal_flip=True) #水平翻转

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
    'data/train',
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
    'data/validation',
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary')

model.fit_generator(
    train_generator,
    steps_per_epoch=2000,
    epochs=50,
    validation_data=validation_generator,
    validation_steps=800)

以上这篇tensorflow图像裁剪进行数据增强操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python深入学习之特殊方法与多范式
Aug 31 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
Python挑选文件夹里宽大于300图片的方法
Mar 05 Python
python绘图方法实例入门
May 19 Python
python先序遍历二叉树问题
Nov 10 Python
一篇文章快速了解Python的GIL
Jan 12 Python
python实现简单登陆系统
Oct 18 Python
pandas取出重复数据的方法
Jul 04 Python
Python的log日志功能及设置方法
Jul 11 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 29 Python
Python ConfigParser模块的使用示例
Oct 12 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 #Python
Python openpyxl模块实现excel读写操作
Jun 30 #Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 #Python
Python的控制结构之For、While、If循环问题
Jun 30 #Python
关于tensorflow softmax函数用法解析
Jun 30 #Python
基于tensorflow for循环 while循环案例
Jun 30 #Python
解析Tensorflow之MNIST的使用
Jun 30 #Python
You might like
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP中overload与override的区别
2017/02/13 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
JS分页效果示例
2013/10/11 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
python创建和删除目录的方法
2015/04/29 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
浅谈flask源码之请求过程
2018/07/26 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
创业计划书——互联网商机
2014/01/12 职场文书
政府采购方案
2014/06/12 职场文书
交通安全责任书范本
2014/07/24 职场文书
端午节活动总结
2014/08/26 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
教师业务学习材料
2014/12/16 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
浅谈Web Storage API的使用
2021/06/23 Javascript