public:tensorflow:slim_preprocessing

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分别减一个固定值)

  • 最后更改: 2019/10/31 15:49
  • (外部编辑)