2020-1-1 AI 模型识别图像是桌子、猫、狗还是其他

代码载入训练好的模型,对输入图片分类识别,并观察识别的结果

一、搭建环境并训练模型

1、安装TensorFlow1.13.1
pip install tensorflow==1.13.1
2、下载TensorFlow的models模块
git clone https://github.com/tensorflow/models
3、部署TensorFlow的slim模块
models中models-master路径下的slim文件夹,复制到本地代码同级路径下
4、下载PNASNet模型
https://github.com/tensorflow/models/tree/master/research/slim -> pnasnet-5...,解压以后放在本地代码同级目录下。
5、准备ImhNet数据集标签
直接调用,获取中文标签.csv和图片

二、代码实现:初始化环境变量、载入imgnet标签

# 初始化环境变量
import sys

nets_path = r'slim'
if net_path not in  sys.path:
    sys.path.insert(0, nets_path)
else:
    print('already add slim')

# 引入模块
import tensorflow as tf 
from PIL import Image
from matplotlib import pyplot as plt # import matplotlib.pyplot as plt
from nets.nasnet import pnasnet
import numpy as np 
from datasets import imagenet

slim = tf.contrib.slim
tf.reset_default_graph()
# 获取图片尺寸
image_size = pnasnet.build_pnasnet_large.default_image_size
# 获取标签
labels = imagenet.create_readable_names_for_imagenet_lables()
# 显示输出标签
print(len(labels), labels)
# 打开文件,输出中文标签
def getone(onestr):
    return onestr.replace(',', ' ')
with open('中文标签.csv', 'r+') as f:
    labels = list(map(getone, list(f)))
    print(len(labels), type(labels), labels[:5]) 

三、代码实现-定义网络结构

# 步骤:定义待识别图片占位符->归一化处理占位符,生成张量x1->x1传入pnasnet对象申城处理结果和end_points->获取prob值->找到最大索引即为图片分类
# 定义待测试图片名称
sample_image = ['hy.jpg', 'ps.jpg', '72.jpg']
# 定义占位符
input_imgs = tf.placeholder(tf.float32, [None, image_size, image_size, 3])
# 归一化图片
x1 = 2 * (input_imgs / 255.0) -1.0
# 获得模型命名空间
 arg_scope = pnasnet.pnasnet_large_arg_scope()
with slim.arg_scope(arg_scope):
    logits, end_points = pnasnet.build_pnasnet_large(x1, num_classes = 1001, is_training=False)
    prob = end_points['Predictions']
    y = tf.argmax(prob, axis=1) # 获得结果的输出节点 

四、代码实现-载入模型进行识别

# 步骤:定义模型路径->建立会话->会话中载入预训练模型->模型识别
# 定义预训练模型路径
checkpoint_file = r'pnasnet-5_large_2017_12_13\model.ckpt)'
# 定义saver,用于加载模型
saver = tf.train.Saver()
# 建立会话,载入模型,定义图片预处理函数
with tf.Session() as sess:
     saver.restore(sess, checkpoint_file)
     def  preimg(img):
           ch = 3
           if img.model =='RGBA':
                  ch = 4
           imgnp = np.asarray(img.resize((image_size, image_size)), dtype=np.float32).reshape(image_size, image_size, ch)
            return imgnp[:, : ,3]
# 获得原始图片与预处理图片
batchImg = [preimg(Image.open(imgfilename)) for imgfilename in sample_images]
orgImg = [Image.open(imgfilename) for imgfilename in sample_images]
# 输入模型
yv, img_norm = sess.run([y, x], feed_dict={input_imgs: batchImg})
print(yv, np.shape(yv))
# 定义显示图片的函数
def showresult(yy, img_norm, img_org):
    plt.figure()
    p1 = plt.subplot(121)
    p2 = plt.subplot(121)
    p1.imshow(img_org)
    p1.axis('off')
    p1.set_title('organization image')
    p2.imshow((img_norm * 255).astype(np.uint8))
    p2.axis('off')
    p2.set_title(input image)
    plt.show()
    print(yy, labels[yy])
# 显示每条结果与图片
for yy, img1, img2 in zip(yv, batchImg, orgImg):
    showresult(yy, img1, img2)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容

  • 大家都不在同一个层次 就不要勉强交心 远远相望觉得彼此可爱 点到为止 何必用尽全力脸贴着脸 你看我傻逼我看你傻逼 ...
    刀子ABC阅读 653评论 2 2
  • 大概是太久没有写字,进入了一个怪圈:老在想怎么样的文字能打动人心,却忘记了动笔。 其实很久之前我也算是爱写文的人,...
    陈斑斑阅读 235评论 0 1
  • 文/洛小简 我很想你。眼泪是心的肉体,疼痛是心的灵魂。我的眼泪与疼痛,还会为你而存。 我很想你。只是谢了一片夏,只...
    洛小简阅读 317评论 2 5
  • 如果我真的存在,那也是因为你需要我。
    禾丫阅读 338评论 0 0
  • 脂肪作为人体每天所必需的七大营养素之一,也是需要我们注意去补充的。很多小伙伴都会觉得,我都这么胖了,浑身上下都是脂...
    君小晓阅读 135评论 0 0