深度学习中,通常需要对数据进行增强处理 Data Augmentaion,再训练数据。常用的数据增强方法有
1、翻转变换 flip(左右/上下)
2、随机修剪 random crop
3、色彩抖动 color jittering
4、平移变换 shift
5、尺度变换 scale
6、对比度变换 contrast
7、噪声扰动 noise
8、旋转变换/反射变换 Rotation/reflection
9、缩放 resize
python代码:
2、随机裁剪
# 随机裁剪图片
image = Image.open('./test.jpg')
img_width = image.size[0]
img_height = image.size[1]
if img_width < self.crop_window_size[0] or img_height < self.crop_window_size[1]:
print("The crop window size is invalid")
return
width_duration = img_width - self.crop_window_size[0] # 宽度的范围
height_duration = img_height - self.crop_window_size[1] # 高度的范围
width_start = np.random.randint(low=0, high=width_duration, size=1)[0]
height_start = np.random.randint(low=0, high=height_duration, size=1)[0]
crop_regin = (width_start, height_start, width_start +
self.crop_window_size[0],height_start + self.crop_window_size[1])
img_crop = image.crop(crop_regin) # 随机裁剪后的图像
8、反转
img_rotate = img.transpose(Image.FLIP_LEFT_RIGHT)
9、缩放
img_resize = image.resize(self.crop_window_size)