深度学习之数据增强(数据集扩充)方式和实现总结

前言: 主要总结了数据增强(Data augmentation)常用的一些方法,包括了翻转(flip)、旋转(rotation)、缩放(scale)、裁剪(crop)、移位(translation)和其他一些方法,列出了使用opencv、numpy、tensorflow和其他一些库进行实现的函数。还有展示了keras中的实现数据增强的工具。
数据增强可以有效提高数据量,可以扩充训练数据集。但也并非万能的,有时过度信任数据增强会带来负面效果,还会增加网络训练时间。需酌情使用。

相关总结如下:

import cv2
import numpy as np
import tensorflow as tf
import imutils
import skimage
import pillow

path = '/home/zhangwei/workfiles/deeplearning/dogVScat/data/cat_1.jpg'
img = cv2.imread(path)
# tensorflow加载图片
# img = tf.gfile.FastGFile(path).read()
# img_data = tf.image.decode_jpeg(img)


#-----> 翻转(flip)<--------------#
# 用opencv实现
flip_11 = cv2.flip(img, 1, dst = None) # 1:水平,0:垂直,-1:对角

# 用numpy实现
flip_21 = np.fliplr(img) # 水平翻转
flip_22 = np.transpose	# 转置

# 用tensorfolw实现
flip_31 = tf.image.flip_up_down(img) 
flip_32 = tf.image.flip_left_right	
flip_33 = tf.image.random_flip_up_down # 随机翻转,50%概率
flip_34 = tf.image.random_flip_left_right
flip_35 = tf.image.transpose_image	# 转置图像


#----> 旋转(rotation)<-----------#
# 用opencv实现
M = cv2.getRotationMatrix2D(center, 45, 1.0)
rotation_11 = cv2.warpAffine(img, M, (w,h))
rotation_12 = imutils.rotate(i
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值