深度学习数据增强@TOC
用tensorflow进行数据增强
这几天跑代码,数据量不多,为了防止过拟合和加强训练准确度,就想着做一些图片的数据增强,在网上找了一些代码,能实现功能但是巨慢,甚至比我深度学习训练都慢,昨天花了一点时间写了一个基于tensorflow的,就很快,记录分享一下。
我的这个是用于深度学习的,所以里面包含了json文件的修改,实现的功能很简单,就是同一张图片调对比度,调亮度,加噪声之类的多生成几张图片,修改原始图片json文件中的文件名得到衍生图片的对应标签,这样数据量就能快速增加。
import json
import os, sys
import cv2
import tensorflow as tf
from PIL import Image
import PIL
import matplotlib.pyplot as plt
def get_json_data(json_path,img_path):
with open(json_path, 'rb')as f:
params = json.load(f)
# 加载json文件中的内容给params
params['imagePath'] = img_path # 这两行控制修改的内容 时间有限就写的很草率
dict = params
# 将修改后的内容保存在dict中
f.close()
# 关闭json读模式
return dict
# 返回dict字典内容
def write_json_data(dict):
# 写入json文件
with open(json_path1, 'w')as r:
# 定义为写模式,名称定义为r
json.dump(dict, r, indent=2) # indent控制间隔
# 将dict写入名称为r的文件中
r.close()
# 关闭json写模式
# 图片文件夹路径
file_dir = r'D:/Desktop/sudo/images/' #保存图片的文件夹
json_dir = r'D:/Desktop/sudo/jsons/' #保存json文件的文件夹
for img_name in os.listdir(file_dir):
img_path = file_dir + img_name
json_path = json_dir + img_name.strip('jpg'