slim库中的预处理方法分析
research/slim/preprocessing/cifarnet_preprocessing.py 源码
对图片的预处理过程为:
训练数据集: 1、 对图片进行填充。(tf.pad) 2、 按指定大小随机裁剪图像。(tf.random_crop) 3、 随机水平翻转。(tf.image.random_flip_left_right) 4、 随机亮度。(tf.image.random_brightness) 5、 随机对比度。 (tf.image.random_contrast) 6、 图像标准化。 (tf.image.per_image_standardization)
验证数据集: 1、 图片裁剪或填充至指定大小。(tf.image.resize_image_with_crop_or_pad) 2、 图像标准化。 (tf.image.per_image_standardization)
research/slim/preprocessing/inception_preprocessing.py 源码
对图片的预处理过程为:
训练数据集: 1、 添加标注框(tf.image.draw_bounding_boxes)。 2、 随机裁剪原图像的一部分( 使用 tf.image.sample_distorted_bounding_box 为图像生成单个随机变形的边界框,并用tf.slice 进行裁剪)。 3、 缩放图片到指定大小(tf.image.resize_images, 第3个参数method随机指定)。 4、 随机水平翻转(tf.image.random_flip_left_right)。 5、 随机扭曲颜色(tf.image.random_brightness 随机亮度, tf.image.random_saturation 随机饱和度, tf.image.random_hue 随机色相, tf.image.random_contrast 随机对比度, tf.clip_by_value 随机完之后重新把值限定到0和1之间)。 6、 图片减去0.5,即 tf.subtract(image, 0.5)。 7、 图片乘以2,即 tf.multiply(image, 2.0)。
验证数据集: 1、 裁剪图片,只要中间87.5%区域(tf.image.central_crop)。 2、 使用双线性插值法缩放图片到指定大小(tf.image.resize_bilinear)。 3、 图片减去0.5,即 tf.subtract(image, 0.5)。 4、 图片乘以2,即 tf.multiply(image, 2.0)。
research/slim/preprocessing/lenet_preprocessing.py 源码
对图片的预处理过程为:
1、 裁剪或填充到指定大小(tf.image.resize_image_with_crop_or_pad 宽高大于指定大小,则进行裁剪,否则用0进行填充)。 2、 图片减去128(tf.subtract(image, 128.0))。 3、 图片除以128(tf.div(image, 128.0))。
research/slim/preprocessing/vgg_preprocessing.py 源码
对图片的预处理过程为:
训练数据集: 1、 图片等比例缩放到随机尺寸。 (tf.random_uniform 生成随机值, tf.image.resize_bilinear 进行缩放) 2、 图片随机指定裁剪位置,然后裁剪到指定大小。 (tf.slice 裁剪, tf.reshape 重新指定大小) 3、 随机水平翻转。 (tf.image.random_flip_left_right) 4、 对图片的RGB值进行变更(RGB分别减一个固定值)。
验证数据集: 1、 图片等比例缩放到特定尺寸。 (tf.image.resize_bilinear) 2、 图片居中裁剪到指定大小。 (tf.slice 裁剪, tf.reshape 重新指定大小) 3、 对图片的RGB值进行变更。 (RGB分别减一个固定值)