import tensorflow as tf
import numpy as np
from PIL import Image
import inference
import train
import math
import time
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
e = math.e
# 接收的两个参数
# image_path = ''
# model = 0
#start = time.time()
def recognistion(image_path):
tf.reset_default_graph()
# 根据model参数值的不同来选择不同的模型
# 得到测试图片
image_raw_data = tf.gfile.FastGFile(image_path, 'rb').read()
x = tf.image.decode_jpeg(image_raw_data)
x = tf.cast(x, tf.float32)
x = tf.reshape(x, [-1, 32, 16, 1])
# image = Image.open(image_path)
# image = tf.cast(image,tf.float32)
# x = tf.reshape(image,[32,16,1])
# x = np.asarray(image.convert('L'))
# x = np.asarray(Image.open(image_path).convert('L'))
# 测试图片的前向传播过程
y = inference.inference(x, None, None)
# y_ = tf.array(y)
# p = np.amax(y_, axis=0)
# 得到置信度最高项的下标
prediction = tf.argmax(y, 1)
# 通过变量重命名的方式加载模型
variable_averages = tf.train.ExponentialMovingAverage(train.MOVINGING_AVERAGE_DECAY)
variables_to_restore = variable_averages.variables_to_restore()
saver = tf.train.Saver(variables_to_restore)
with tf.Session() as sess:
sess.run((tf.global_variables_initializer(), tf.local_variables_initializer()))
# tf.train.get_checkpoint_state函数会通过checkpoint文件自动找到目录中最新模型的文件
ckpt = tf.train.get_checkpoint_state(train.MODEL_SAVE_PATH)
if ckpt and ckpt.model_checkpoint_path:
# 加载模型
saver.restore(sess, ckpt.model_checkpoint_path)
# 通过文件名得到模型保存时迭代的轮数
# global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]
prediction,y_ = sess.run([prediction,y])
p = math.pow(e, y_[0][prediction]) / (math.pow(e, y_[0][0])+math.pow(e, y_[0][1])+math.pow(e, y_[0][2])+math.pow(e, y_[0][3])+math.pow(e, y_[0][4])+math.pow(e, y_[0][5])
+math.pow(e, y_[0][6])+math.pow(e, y_[0][7])+math.pow(e, y_[0][8])+math.pow(e, y_[0][9])+math.pow(e, y_[0][10])+math.pow(e, y_[0][11])
+math.pow(e, y_[0][12])+math.pow(e, y_[0][13])+math.pow(e, y_[0][14])+math.pow(e, y_[0][15])+math.pow(e, y_[0][16])+math.pow(e, y_[0][17])
+math.pow(e, y_[0][18])+math.pow(e, y_[0][19])+math.pow(e, y_[0][20])+math.pow(e, y_[0][21])+math.pow(e, y_[0][22])+math.pow(e, y_[0][23])
+math.pow(e, y_[0][24])+math.pow(e, y_[0][25])+math.pow(e, y_[0][26])+math.pow(e, y_[0][27])+math.pow(e, y_[0][28])+math.pow(e, y_[0][29])
+math.pow(e, y_[0][30])+math.pow(e, y_[0][31])+math.pow(e, y_[0][32])+math.pow(e, y_[0][33])+math.pow(e, y_[0][34])+math.pow(e, y_[0][35])
+math.pow(e, y_[0][36])+math.pow(e, y_[0][37])+math.pow(e, y_[0][38])+math.pow(e, y_[0][39])+math.pow(e, y_[0][40])+math.pow(e, y_[0][41])
+math.pow(e, y_[0][42])+math.pow(e, y_[0][43])+math.pow(e, y_[0][44])+math.pow(e, y_[0][45])+math.pow(e, y_[0][46])+math.pow(e, y_[0][47])
+math.pow(e, y_[0][48])+math.pow(e, y_[0][49])+math.pow(e, y_[0][50])+math.pow(e, y_[0][51])+math.pow(e, y_[0][52])+math.pow(e, y_[0][53])
+math.pow(e, y_[0][54])+math.pow(e, y_[0][55])+math.pow(e, y_[0][56])+math.pow(e, y_[0][57])+math.pow(e, y_[0][58])+math.pow(e, y_[0][59])
+math.pow(e, y_[0][60])+math.pow(e, y_[0][61])+math.pow(e, y_[0][62])+math.pow(e, y_[0][63])+math.pow(e, y_[0][64]))
if prediction == 0:
prediction = '0'
elif prediction == 1:
prediction = '1'
elif prediction == 2:
prediction = '2'
elif prediction == 3:
prediction = '3'
elif prediction == 4:
prediction = '4'
elif prediction == 5:
prediction = '5'
elif prediction == 6:
prediction = '6'
elif prediction == 7:
prediction = '7'
elif prediction == 8:
prediction = '8'
elif prediction == 9:
prediction = '9'
elif prediction == 10:
prediction = 'A'
elif prediction == 11:
prediction = 'B'
elif prediction == 12:
prediction = 'C'
elif prediction == 13:
prediction = 'D'
elif prediction == 14:
prediction = 'E'
elif prediction == 15:
prediction = 'F'
elif prediction == 16:
prediction = 'G'
elif prediction == 17:
prediction = 'H'
elif prediction == 18:
prediction = 'J'
elif prediction == 19:
prediction = 'K'
elif prediction == 20:
prediction = 'L'
elif prediction == 21:
prediction = 'M'
elif prediction == 22:
prediction = 'N'
elif prediction == 23:
prediction = 'P'
elif prediction == 24:
prediction = 'Q'
elif prediction == 25:
prediction = 'R'
elif prediction == 26:
prediction = 'S'
elif prediction == 27:
prediction = 'T'
elif prediction == 28:
prediction = 'U'
elif prediction == 29:
prediction = 'V'
elif prediction == 30:
prediction = 'W'
elif prediction == 31:
prediction = 'X'
elif prediction == 32:
prediction = 'Y'
elif prediction == 33:
prediction = 'Z'
elif prediction == 34:
prediction = '藏'
elif prediction == 35:
prediction = '川'
elif prediction == 36:
prediction = '鄂'
elif prediction == 37:
prediction = '甘'
elif prediction == 38:
prediction = '赣'
elif prediction == 39:
prediction = '桂'
elif prediction == 40:
prediction = '贵'
elif prediction == 41:
prediction = '黑'
elif prediction == 42:
prediction = '沪'
elif prediction == 43:
prediction = '吉'
elif prediction == 44:
prediction = '冀'
elif prediction == 45:
prediction = '津'
elif prediction == 46:
prediction = '晋'
elif prediction == 47:
prediction = '京'
elif prediction == 48:
prediction = '辽'
elif prediction == 49:
prediction = '鲁'
elif prediction == 50:
prediction = '蒙'
elif prediction == 51:
prediction = '闽'
elif prediction == 52:
prediction = '宁'
elif prediction == 53:
prediction = '青'
elif prediction == 54:
prediction = '琼'
elif prediction == 55:
prediction = '陕'
elif p
没有合适的资源?快使用搜索试试~ 我知道了~
基于Tensorflow实现AlexNet,实现大陆车牌单个字符的65分类,提供训练和测试数据集的tfrecord文件
共9个文件
py:8个
tfrecords:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 101 浏览量
2023-06-07
21:10:59
上传
评论
收藏 107KB ZIP 举报
温馨提示
基于Tensorflow实现AlexNet AlexNet卷积神经网络实现大陆车牌单个字符的65分类,提供训练和测试数据集的tfrecord文件。 inference文件是AlexNet网络的前向计算过程,其中有网络中卷积核大小、输入层图片大小等超参数,可以进行修改。 train文件是模型的训练文件,其中定义了batch_size,模型保存的路径等信息,训练集图片格式是tfrecord,在训练自己的模型之前应当将数据集转化成这种格式,其中的write_tfrecord文件提供了一个格式可以参考如何将输入图片转化成tfrecord格式。在训练时,直接python train.py即可。 eval文件时用于模型的准确率测试,在该文件中每隔60秒保存一次模型,在该模型上测试准确率。 recognition文件提供了一个接口,输入一个图片,加载模型,给出识别结果。 image是一个脚本文件,用于调整图片大小。 基于Tensorflow实现AlexNet AlexNet卷积神经网络实现大陆车牌单个字符的65分类,提供训练和测试数据集的tfrecord文件。 inference文件是A
资源推荐
资源详情
资源评论
收起资源包目录
AlexNet-65--master.zip (9个子文件)
AlexNet-65--master
eval.py 3KB
image.py 450B
recognition.py 9KB
inference.py 5KB
train.py 5KB
write_tfrecord.py 1KB
tfrecord
train
train.py 1B
test
output_0.tfrecords 110KB
test.py 1B
共 9 条
- 1
资源评论
白话机器学习
- 粉丝: 1w+
- 资源: 7672
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SparkSQL进阶操作相关数据
- java制作的小游戏,作为巩固java知识之用.zip
- Java语言写的围棋小游戏 半成品A Go game written in golang(Semi-finished).zip
- 基于Java-swing的俄罗斯方块游戏:源码+答辩文档+PPT.zip
- florr map详细版
- shiahdifhiahfiqefiwhfi weifwijfiwqufiqweefijeq0jfe
- registry-2.8.3<arm/amd>二进制文件
- Kotlin接口与抽象类详解及其应用
- 51单片机加减乘除计算器系统设计(proteus8.17,keil5),复制粘贴就可以运行
- lv_0_20241114231223.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功