使用数据增强技术对已有样本进行扩充

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数量的图片)

《自然语言处理实战入门》---- 文本样本扩展小技巧:使用回译技术进行样本增强

《自然语言处理实战入门》---- 文本样本扩展小技巧:使用回译技术进行样本增强