前面配置好了环境并且将数据集转换成了HDF5格式。这一节要编写图片预处理脚本,并且学习HDF5格式的载入。
三种预处理方式
1.去均值
去均值预处理的意思是,计算训练集中所有图片通道均值,然后每张图片每个像素去减去这个均值。作用的话书上说是为了去除光照的影响,我也没搞懂为什么这样就能去除光照的影响了。这里的均值不是指图像本身的均值而是整个训练集的均值啊,难道意思是减少不同图像之间光照的影响?留个问题去问老师。
2.裁剪图片到合适的大小
这里采用随机裁剪的方法,比如将256×256的图片随机裁剪到277×227。
3.裁剪加数据增强
这个目的也是裁剪,区别是它是有规律的裁剪,对一张图片的4个定点加中心点5个点作为起点裁剪,然后水平翻转。加上上面的一张随机裁剪,一张图片变成了11张图片,顺便进行了数据增强。能提升1%-2%的分类准确度。
HDF5数据载入
首先是HDF5调用和实现
trainGen = HDF5DatasetGenerator(config.TRAIN_HDF5, 32, aug=aug,
preprocessors=[pp, mp, iap], classes=2)#128
# import the necessary packages
from keras.utils import np_utils
import numpy as np
import h5py
class HDF5DatasetGenerator:
def __init__(self, dbPath, batchSize, preprocessors