200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 机器学习:使用numpy实现数据增强(Data Augmentation)

机器学习:使用numpy实现数据增强(Data Augmentation)

时间:2020-10-15 13:59:41

相关推荐

机器学习:使用numpy实现数据增强(Data Augmentation)

文章目录

数据增强原图水平翻转左右上下平移增加噪声

数据增强

图像数据增强一般是大多数人会采用的方法之一,这是由于深度学习对数据集的大小有一定的要求,若原始的数据集比较小,无法很好地满足网络模型的训练,从而影响模型的性能,而图像增强是对原始图像进行一定的处理以扩充数据集,能够在一定程度上提升模型的性能。

一般的方法:

1、对图片进行水平翻转;

2、对图片的光泽、色泽进行变换;

3、将一张较大的图片通过随机剪裁来获得若干张小一点的图片。

有点类似自采样

原图

# -*- coding: utf-8 -*-from PIL import Imageimport numpy as npimport matplotlib.pyplot as plt#%%img = Image.open("dog.jpeg")img = np.array(img)plt.imshow(img)plt.show()

水平翻转

# 对图像进行翻转是最流行的图像数据增强方法之一# Flipping images with Numpyflipped_img = np.fliplr(img)plt.imshow(flipped_img)plt.show()

左右上下平移

# Shifting Leftfor i in range(HEIGHT, 1, -1):for j in range(WIDTH):if (i < HEIGHT-20):img[j][i] = img[j][i-20]elif (i < HEIGHT-1):img[j][i] = 0plt.imshow(img)plt.show()#%%# Shifting Rightfor j in range(WIDTH):for i in range(HEIGHT):if (i < HEIGHT-20):img[j][i] = img[j][i+20]plt.imshow(img)plt.show()#%%# Shifting Upfor j in range(WIDTH):for i in range(HEIGHT):if (j < WIDTH - 20 and j > 20):img[j][i] = img[j+20][i]else:img[j][i] = 0plt.imshow(img)plt.show()#%%#Shifting Downfor j in range(WIDTH, 1, -1):for i in range(278):if (j < 144 and j > 20):img[j][i] = img[j-20][i]plt.imshow(img)plt.show()

增加噪声

# ADDING NOISEnoise = np.random.randint(5, size = (164, 278, 4), dtype = 'uint8')for i in range(WIDTH):for j in range(HEIGHT):for k in range(DEPTH):if (img[i][j][k] != 255):img[i][j][k] += noise[i][j][k]plt.imshow(img)plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。