使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两种,正常白化处理又叫图像标准化处理,另外一种方法叫做归一化处理,下面就详细的说一下这两种处理方法。
一:图像标准化处理
标准化处理的公式如下:
tensorflow中对图像标准化预处理的API函数如下:
函数返回处理以后的图像,大小与通道数目与原图像保持一致。使用opencv+tensorflow对图像进行标准化处理的代码演示如下:
运行效果
解释
图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理的常见方法之一
二:图像归一化处理
图像归一化最常见的就是最大最小值归一化方法,公式如下:
基于OpenCV实现图像最大最小值归一化的代码演示如下:
原图像素值输出
归一化之后像素值:
解释
原图与归一化之后的运行结果完全一致,说明归一化不会改变图像本身的信息存储,但是通过打印出来的像素值可以发现,取值范围从0~255已经转化为0~1之间了,这个对于后续的神经网络或者卷积神经网络处理有很大的好处,tensorflow官方给出mnist数据集,全部采用了归一化之后的结果作为输入图像数据来演示神经网络与卷积神经网络。
为山者基于一篑之土,以成千丈之峭凿井者起于三寸之坎,以就万仞之深
关注【OpenCV学堂】
长按或者扫码二维码即可关注
【关于学堂】 - 获取微信联系
技术交流合作!
领取专属 10元无门槛券
私享最新 技术干货