tensorflow中图像增强的方法详解
tf.keras.preprocessing.image.ImageDataGenerator()官方文档如下:
1 tf.keras.preprocessing.image.ImageDataGenerator(
2 featurewise_center=False,
3 samplewise_center=False,
4 featurewise_std_normalization=False,
5 samplewise_std_normalization=False,
6 zca_whitening=False,
7 zca_epsilon=1e-06,
8 rotation_range=0,
9 width_shift_range=0.0,
10 height_shift_range=0.0,
11 brightness_range=None,
12 shear_range=0.0,
13 zoom_range=0.0,
14 channel_shift_range=0.0,
15 fill_mode='nearest', cval=0.0,
16 horizontal_flip=False,
17 vertical_flip=False,
18 rescale=None,
19 preprocessing_function=None,
20 data_format=None,
21 validation_split=0.0,
22 dtype=None
23 )
1. featurewise_center
布尔类型,大意是数据集去中心化,每个输入样本除以整个数据集的标准差
2. samplewise_center
布尔类型,大意是样本去中心化,每个输入样本除以自身的标准差
3. featurewise_std_normalization
布尔类型,输入样本除以数据集的标准差以完成标准化, 按feature执行
4. samplewise_std_normalization
布尔类型,输入样本除以自身的标准差以完成标准化
5. zca_whitening
布尔类型,对输入数据施加ZCA白化,即对图像进行PCA降维操作,减少图片的冗余信息,保留最重要的特征,细节可参看:Whitening transformation--维基百科(https://en.wikipedia.org/wiki/Whitening_transformation),Whitening--斯坦福(http://ufldl.stanford.edu/wiki/index.php/Whitening)
6. rotation_range
整数(取值为0-180的整数),数据提升时图片随机转动的角度, 在 [0, 指定角度] 范围内进行随机角度旋转
7. width_shift_range
浮点数(取值为0-1的浮点数,可以大于1,但最好不要大于1),水平方向平移的幅度(平移距离 / 图像宽度)
8. height_shift_range
浮点数(取值为0-1的浮点数,可以大于1,但最好不要大于1),垂直方向平移的幅度(平移距离 / 图像高度)
9. shear_range
浮点数,剪切强度(逆时针方向的剪切变换角度),效果就是让所有点的x坐标(或者y坐标)保持不变,而对应的y坐标(或者x坐标)则按比例发生平移,且平移的大小和该点到x轴(或y轴)的垂直距离成正比。
10. zoom_range
浮点数或形如[width_zoom_range, height_zoom_range]的列表。若为浮点数,图片同时在长宽两个方向进行同等程度的放缩操作;若为列表,即分别对长宽进行不同程度的放缩
参数大于0小于1时,执行的是放大操作,当参数大于1时,执行的是缩小操作
11. channel_shift_range
浮点数,颜色通道的数值偏移,改变图片的整体颜色,相当于给整个数据集加了一个“滤镜”
12. fill_mode
‘constant',‘nearest',‘reflect'或‘wrap'之一,当对图片进行平移、放缩、剪切等操作时,图片中会出现一些缺失的地方,那这些缺失的地方该用什么方式补全呢?就由fill_mode中的参数确定
13. cval
浮点数或整数,当fill_mode=‘’constant‘’时,指定要向超出边界的点填充的值
14. horizontal_flip
布尔值,随机的对图片进行水平翻转,意味着不一定对所有图片都会执行水平翻转,这个参数适用于水平翻转不影响图片语义的时候。
15. vertical_flip
布尔值,随机垂直翻转
16. rescale
浮点数(取值为0-1的浮点数),将在执行其他处理前乘到整个图像上,我们的图像在RGB通道都是0~255的整数,所以该值通常定为 1/255
17. preprocessing_function
将被应用于每个输入的函数。该函数将在任何其他修改之前运行。该函数接受一个参数,为一张图片(秩为3的numpy array),并且输出一个具有相同shape的numpy array
18. data_format
字符串,“channel_first”或“channel_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channel_last”对应原本的“tf”,“channel_first”对应原本的“th”。以128x128的RGB图像为例,“channel_first”应将数据组织为(3,128,128),而“channel_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channel_last”。