使用数据增强技术对已有样本进行扩充
Posted 大彤小忆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用数据增强技术对已有样本进行扩充相关的知识,希望对你有一定的参考价值。
当数据集中的样本量较少时,直接将其输入网络进行训练可能会导致过拟合,所以需要对已有样本通过使用数据增强技术进行扩充。扩充时主要有翻转和旋转两种操作,其中翻转包含水平翻转、上下翻转两种,旋转包含逆时针旋转 9 0 ∘ 90^\\circ 90∘、 18 0 ∘ 180^\\circ 180∘、 27 0 ∘ 270^\\circ 270∘三种。
具体代码如下所示。
# -*- coding: utf-8 -*-
from PIL import Image
import os
file_dir = 'E:/Remote Sensing/' # 原始图片路径
save_dir = 'E:/Remote Sensing/' # 保存路径
img_name = 'airplane.jpg'
img_path = file_dir + img_name # 批量读取图片
im = Image.open(img_path)
LEFT_RIGHT = im.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转
TOP_BOTTOM = im.transpose(Image.FLIP_TOP_BOTTOM) # 上下翻转
rotated_90 = im.transpose(Image.ROTATE_90) # 逆时针旋转90度
rotated_180 = im.transpose(Image.ROTATE_180) # 逆时针旋转180度
rotated_270 = im.transpose(Image.ROTATE_270) # 逆时针旋转270度
LEFT_RIGHT.save(save_dir + 'LEFT_RIGHT_'+img_name) # 保存左右翻转后的图片
TOP_BOTTOM.save(save_dir + 'TOP_BOTTOM_'+img_name) # 保存上下翻转后的图片
rotated_90.save(save_dir + 'rotated_90_'+img_name) # 保存逆时针旋转90度后的图片
rotated_180.save(save_dir + 'rotated_180_'+img_name) # 保存逆时针旋转180度后的图片
rotated_270.save(save_dir + 'rotated_270_'+img_name) # 保存逆时针旋转270度后的图片
运行代码后得到的结果如下所示。
-
原图
-
水平翻转
-
上下翻转
-
逆时针旋转 9 0 ∘ 90^\\circ 90∘
-
逆时针旋转 18 0 ∘ 180^\\circ 180∘
-
逆时针旋转 27 0 ∘ 270^\\circ 270∘
以上是关于使用数据增强技术对已有样本进行扩充的主要内容,如果未能解决你的问题,请参考以下文章
数据增强(每10度进行旋转,进行一次增强,然后对每张图片进行扩充10张patch,最后得到原始图片数*37*10数量的图片)