图像标准化和归一化
本篇文章只是用来记录一些学习记录,文章来源于: https://blog.csdn.net/xylin1012/article/details/81217988
使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两种,正常白化处理又叫图像标准化处理,另外一种方法叫做归一化处理,下面就详细的说一下这两种处理方法。
一:图像标准化处理
标准化处理的公式如下:
tensorflow中对图像标准化预处理的API函数如下:
tf.image.per_image_standardization(image)
- image 参数表示一个三维的张量(tensor) 分别对应图像高、宽、通道数目(height, width, channels)
函数返回处理以后的图像,大小与通道数目与原图像保持一致。 使用opencv+tensorflow对图像进行标准化处理的代码演示如下:
、
运行效果
解释
图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理的常见方法之一
二:图像归一化处理
图像归一化最常见的就是最大最小值归一化方法,公式如下:
基于OpenCV实现图像最大最小值归一化的代码演示如下:
原图像素值输出
归一化之后像素值:
解释
原图与归一化之后的运行结果完全一致,说明归一化不会改变图像本身的信息存储,但是通过打印出来的像素值可以发现,取值范围从0~255已经转化为0~1之间了,这个对于后续的神经网络或者卷积神经网络处理有很大的好处,tensorflow官方给出mnist数据集,全部采用了归一化之后的结果作为输入图像数据来演示神经网络与卷积神经网络。