tf.image.per_image_standardization(image)
程序员文章站
2022-07-07 22:56:19
...
实验环境:windows 7,anaconda 3(Python 3.5),tensorflow(gpu/cpu)
函数介绍:标准化处理可以使得不同的特征具有相同的尺度(Scale)。这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。tf.image.per_image_standardization(image),此函数的运算过程是将整幅图片标准化(不是归一化),加速神经网络的训练。主要有如下操作,(x - mean) / adjusted_stddev,其中x为图片的RGB三通道像素值,mean分别为三通道像素的均值,adjusted_stddev = max(stddev, 1.0/sqrt(image.NumElements()))。stddev为三通道像素的标准差,image.NumElements()计算的是三通道各自的像素个数。
实验代码:
import tensorflow as tf
import matplotlib.image as img
import matplotlib.pyplot as plt
import numpy as np
sess = tf.InteractiveSession()
image = img.imread('D:/Documents/Pictures/logo7.jpg')
shape = tf.shape(image).eval()
h,w = shape[0],shape[1]
standardization_image = tf.image.per_image_standardization(image)#标准化
fig = plt.figure()
fig1 = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('orginal image')
ax.imshow(image)
ax1 = fig1.add_subplot(311)
ax1.set_title('original hist')
ax1.hist(sess.run(tf.reshape(image,[h*w,-1])))
ax1 = fig1.add_subplot(313)
ax1.set_title('standardization hist')
ax1.hist(sess.run(tf.reshape(standardization_image,[h*w,-1])))
plt.ion()
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
实验结果:
两幅hist图分别是原图和标准化后的RGB的像素值分布图,可以看到只是将图片的像素值大小限定到一个范围,但是像素值的分布为改变。
推荐阅读
-
vue-image-crop基于Vue的移动端图片裁剪组件示例
-
firefox background-image垂直平铺问题的解决方法
-
微信小程序 image组件binderror使用例子与js中的onerror区别
-
对python PLT中的image和skimage处理图片方法详解
-
会声会影x6中的image图片文件夹在哪里里?
-
Python/Django后端使用PIL Image生成头像缩略图
-
feign响应Image流对象
-
免费图片批量处理软件Image Tuner详细介绍
-
Image Triangulator将照片制成低多边形色块文字背景教程
-
Canvas与Image互相转换示例代码