众所周知,在深度学习图像分类、目标检测等任务的训练过程中需要大量的训练图片;为了方便快速批量的读取数据,往往都会先把图片数据集转化成特殊的文件格式,常见的如:.mat, .npy, .pkl, .csv
等。本文主要介绍如何由现有图片生成.pkl
文件。
图片的整理
首先,将图片按类别整理成如下目录格式:
- 第一层目录为/jpg
- 第二层目录如图
显然每个文件夹下放的是各类的图片。
转换程序
# img2pkl.py
from __future__ import division, print_function, absolute_import
import os
import sys
# import tarfile
import numpy as np
import pickle
import random
from PIL import Image
# 主要函数接口
def load_data(dirname="17flowers", pklpath='17flowers/jpg/',
resize_pics=(224, 224), shuffle=True, one_hot=False):
dataset_file = os.path.join(dirname, 'dataset.pkl')
X, Y = build_image_dataset_from_dir(directory=pklpath,
dataset_file=dataset_file,
resize=resize_pics,
filetypes=['.jpg', '.jpeg'],
convert_gray=False,
shuffle_data=shuffle,
categorical_Y=one_hot)
return X, Y
###