一:图像标准化处理

使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两种,正常白化处理又叫图像标准化处理,另外一种方法叫做归一化处理,下面就详细的说一下这两种处理方法。

一:图像标准化处理

标准化处理的公式如下:

tensorflow中对图像标准化预处理的API函数如下:

  1. tf.image.per_image_standardization(image)
  2. - image 参数表示一个三维的张量(tensor) 分别对应图像高、宽、通道数目(height, width, channels)

函数返回处理以后的图像,大小与通道数目与原图像保持一致。使用opencv+tensorflow对图像进行标准化处理的代码演示如下:

  1. import tensorflow as tf
  2. import cv2 as cv
  3.  
  4. image = cv.imread("D:/javaopencv/dahlia_4.jpg")
  5. cv.imshow("input", image)
  6. std_image = tf.image.per_image_standardization(image)
  7. with tf.Session() as sess:
  8. result = sess.run(std_image)
  9. print(result)
  10. cv.imshow("result", result)
  11. cv.waitKey(0)
  12. cv.destroyAllWindows()

运行效果

解释

图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理的常见方法之一