其他分享
首页 > 其他分享> > 人工智能 |利用卷积实现图像可视化

人工智能 |利用卷积实现图像可视化

作者:互联网

问题描述

在学习卷积神经网络部分内容时,我们通常需要掌握一个十分常见的案例,就是对图像实现卷积并可视化,接下来就用TensorFlow进行案例演示。

解决方案

首先,要绘制图像,需要先了解Matplotlib,它是Python的一个绘图库,是Python中最常用的可视化工具之一,可以非常方便地创建2D图表和一些基本的3D图表。本案例中就要调用Matplotlib来进行绘图。

具体可视化过程,先要读取文件数据然后转化为张量,利用过滤器转换成tf变量。(每个filter通过自己的卷积核集处理数据,形成一个单通道输出,加上偏置项后,我们得到了一个最终的单通道输出。如果存在多个filter,这时我们可以把这些最终的单通道输出组合成一个总输出,它的通道数就等于filter数)。

然后进行卷积过程,最后全局初始化,再判断是否为灰度图片,进行转化后,用plt.show()调用图片显示。

以上,即完成图像可视化过程。

 

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()

import   matplotlib.pyplot as plt

 

#读取jpg文件

original_data =  tf.read_file("img1.jpg")

 

#解析数据

img_data =  tf.image.decode_jpeg(original_data)

img_data = tf.cast(img_data, tf.float64)

 

filter =  tf.Variable(tf.random_normal(shape=[5,5,3,3], dtype=tf.float64))

 

img_filter_data =  tf.nn.conv2d([img_data], filter, [1, 1, 1, 1], padding='SAME')

 

#值类型转换

img_filter_data_u64 =  tf.cast(img_filter_data, tf.uint64)

 

with tf.Session() as sess:

     tf.global_variables_initializer().run()

 

     img_filter_data_u64 = sess.run(img_filter_data_u64)

 

     b,h,w,c =   (img_filter_data_u64.shape)

     

     #如果是灰度图片,需转换一下,才能在plt上显示

     if c == 1:

         img_filter_data_u64 = img_filter_data_u64.reshape(b,h,w)

     plt.imshow(img_filter_data_u64[0])

     plt.show()

 

运行结果:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

END

实习主编   |   王楠岚

责       编   |   wrape

 where2go 团队


      

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

标签:plt,img,卷积,u64,filter,人工智能,可视化,tf,data
来源: https://blog.51cto.com/u_15281984/2956802