利用已经得到的keras模型识别自己手写的数字
2018-02-25 21:57
323 查看
环境:Python+keras,后端为Tensorflow
训练集:MNIST
对于如何训练一个识别手写数字的神经网络,网上资源十分丰富,并且能达到相当高的精度。但是很少有人涉及到如何将图片输入到网络中并让已经训练好的模型惊醒识别,下面来说说实现方法及注意事项。
首先import相关库,这里就不说了。
然后需要将训练好的模型导入,可通过该语句实现:model = load_model('cnn_model_2.h5') (cnn_model_2.h5替换为你的模型名)
之后是导入图片,需要的格式为28*28。可用opencv导入:img = cv2.imread('temp3.png', 0) (temp3.png替换为你手写的图片)
然后reshape一下以符合模型的输入要求:img = (img.reshape(1,1,28,28)).astype("float32")/255
之后就可以用模型识别了:predict = model.predict_classes(img)
最后print一下predict即可。
下面划重点:因为MNIST使用的是黑底白字的图片,所以你自己手写数字的时候一定要注意把得到的图片也改成黑底白字的,否则会识别错(至少我得到的结论是这样的 ,之前用白底黑字的图总是识别出错)
源码一览:
import cv2
import numpy as np
from keras.models import load_model
model = load_model('cnn_model_2.h5')
image = cv2.imread('temp3.png', 0)
img = cv2.imread('temp3.png', 0)
img = (img.reshape(1,1,28,28)).astype("float32")/255
predict = model.predict_classes(img)
print ('识别为:')
print (predict)
cv2.imshow("Image1", image)
cv2.waitKey(0)
效果图:
训练集:MNIST
对于如何训练一个识别手写数字的神经网络,网上资源十分丰富,并且能达到相当高的精度。但是很少有人涉及到如何将图片输入到网络中并让已经训练好的模型惊醒识别,下面来说说实现方法及注意事项。
首先import相关库,这里就不说了。
然后需要将训练好的模型导入,可通过该语句实现:model = load_model('cnn_model_2.h5') (cnn_model_2.h5替换为你的模型名)
之后是导入图片,需要的格式为28*28。可用opencv导入:img = cv2.imread('temp3.png', 0) (temp3.png替换为你手写的图片)
然后reshape一下以符合模型的输入要求:img = (img.reshape(1,1,28,28)).astype("float32")/255
之后就可以用模型识别了:predict = model.predict_classes(img)
最后print一下predict即可。
下面划重点:因为MNIST使用的是黑底白字的图片,所以你自己手写数字的时候一定要注意把得到的图片也改成黑底白字的,否则会识别错(至少我得到的结论是这样的 ,之前用白底黑字的图总是识别出错)
源码一览:
import cv2
import numpy as np
from keras.models import load_model
model = load_model('cnn_model_2.h5')
image = cv2.imread('temp3.png', 0)
img = cv2.imread('temp3.png', 0)
img = (img.reshape(1,1,28,28)).astype("float32")/255
predict = model.predict_classes(img)
print ('识别为:')
print (predict)
cv2.imshow("Image1", image)
cv2.waitKey(0)
效果图:
相关文章推荐
- 自己写程序利用lenet模型识别手写数字
- keras入门 利用卷积神经网络进行手写数字识别
- 利用Keras实现多层感知器(MLP)模型和卷积神经网络(CNN)模型并对手写数字图像分类
- 机器学习Tensorflow基于MNIST数据集识别自己的手写数字(读取和测试自己的模型)
- caffe中如何训练自己的手写数字识别系统?
- caffe_手写数字识别Lenet模型理解
- 利用贝叶斯分类器实现手写数字识别
- Tensorflow实战——利用多层感知机识别手写数字
- 第一章: 利用神经网络识别手写数字
- 利用scikit-learn下的knn实现kaggle的手写数字识别问题
- Keras入门课2 -- 使用CNN识别mnist手写数字
- TensorFlow - 手写数字识别 (模型训练完成后的使用)
- Tensorflow学习笔记(二):利用CNN实现手写数字(mnist)识别
- keras 入门 --手写数字识别
- 从一到二:利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试
- 利用caffe训练好的模型测试自己的手写字体图片
- [置顶] 【python keras实战】利用VGG卷积神经网络进行手写字体识别
- TensorFlow用MNIST训练的模型来识别手写数字
- Keras手写数字识别
- 一文全解:利用谷歌深度学习框架Tensorflow识别手写数字图片(初学者篇)