训练U-Net网络随记1:对数据增强函数理解与实例实验,实验图像CT灰度图
keras.preprocessing.image.ImageDataGenerator(featurewise_center=False, samplewise_center=False, featurewise_std_normalization=False, samplewise_std_normalization=False, zca_whitening=False, zca_epsilon=1e-06, rotation_range=0, width_shift_range=0.0, height_shift_range=0.0, brightness_range=None, shear_range=0.0, zoom_range=0.0, channel_shift_range=0.0, fill_mode='nearest', cval=0.0, horizontal_flip=False, vertical_flip=False, rescale=None, preprocessing_function=None, data_format=None, validation_split=0.0, dtype=None)
原始图像
1. featurewise_center=True, featurewise_std_normalization=True,
无任何变化。
2. samplewise_center=True, samplewise_std_normalization=True,
无任何变化。
3. zca_whitening=True, #是否应用ZCA白化(增白)。 zca_epsilon=1e-02,
无任何变化
4. rotation_range=360
旋转变化,但是图像降质了
5. width_shift_range=0.2(前2图),height_shift_range=0.2(中2图),两者都是后1图
图像进行平移。
6. brightness_range
报错:TypeError: __init__() got an unexpected keyword argument 'brightness_range'
7. shear_range
取值为0.5、0.2均无变化
8. zoom_range
取值为0.5时,结果不是单纯的放大缩小,而是在x或y一个方向上的放大缩小(上前2图);取值为[0.5, 0.5]时,为两个方向同时放大(后2图)。
9. channel_shift_range
图像灰度变化, 取100时,查看其灰度值有变换,但是不是二值化
10. fill_mode
可选{"constant", "nearest", "reflect" or "wrap"} 之一。默认为 'nearest'。输入边界以外的点根据给定的模式填充。上图依次是"constant", "nearest", "reflect", "wrap",其中reflect中以图像的水平竖直翻转。
11. cval
当 fill_mode = "constant"时使用,用于边界之外的点的值。下图为取100时。
12. horizontal_flip和vertical_flip
水平翻转和垂直翻转,我选的实验图像垂直翻转看不出来。
13. rescale
取rescale=1/255时,图片看起来没有任何变化,但是直接输出变化后图像的像素值,如下,图片的每个像素值乘上这个放缩因子,这个操作在所有其他变换操作之前进行,在一些模型当中,直接输入原图的像素值可能落入激活函数的“死亡区”,因此设置放缩因子为1/255,把像素值放缩到0和1之间有利于模型的收敛,避免神经元“死亡”。
[[[0.13333334]
[0.15294118]
[0.15686275]
...
[0.14117648]
[0.14117648]
[0.12941177]]
[[0.10588236]
...
[0.10980393]]
[[0.07843138]
...
[0.09019608]]
...
[[0.12941177]
...
[0.14117648]]
[[0.12156864]
...
[0.13333334]]
[[0.11764707]
...
[0.11764707]]]
而原始像素值如下:
[[[34.]
[39.]
[40.]
...
[36.]
[36.]
[33.]]
[[27.]
...
[28.]]
[[20.]
...
[23.]]
...
[[33.]
...
[36.]]
[[31.]
...
[34.]]
[[30.]
...
[30.]]]