在树莓派上建立一个最简单手写体识别系统(二)
2018-01-15 11:17
260 查看
首先得先把opencv安装上。
在PC上我使用的是anaconda,直接输入:
测试代码:
这一步真简单,网上也到处能搜到,我这里就是记个笔记。
第二步,使用opencv来读取图像:
为了适合Mnist模型,我们还得转成灰度图,反色,并缩放到28*28
下面读取w、b参数,还得把输入图像像素归一化
然后直接计做矩阵乘加、softmax输出:
最后得到输出:
0.0303718806336
0.0306637445764
0.0985644947741
0.496698573451
0.0684541058624
0.193191997366
0.0177791782552
0.0252268936033
0.0210481976761
0.0180009338012
预测值= 3
明显,预测值为3,并且结果和直接调用tensorflow一致!
在PC上我使用的是anaconda,直接输入:
conda install --channel https://conda.anaconda.org/menpo opencv3
测试代码:
import cv2 print(cv2.__version__)
这一步真简单,网上也到处能搜到,我这里就是记个笔记。
第二步,使用opencv来读取图像:
import cv2 from matplotlib import pyplot as plt #读取图像 img=cv2.imread('Test3.jpg',cv2.IMREAD_COLOR) #显示图像的方法1 cv2.imshow('Test3',img) k=cv2.waitKey(0) #显示图像的方法2 #首先得把GRG调换个个头 img3=img[:,:,::-1] plt.imshow(img3) plt.show()
为了适合Mnist模型,我们还得转成灰度图,反色,并缩放到28*28
img=cv2.imread('Test3.jpg',cv2.IMREAD_COLOR) img =cv2.resize(img, (28, 28), interpolation=cv2.INTER_CUBIC) img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img = 0xFF-img cv2.imshow('Test3',img) k=cv2.waitKey(0)
下面读取w、b参数,还得把输入图像像素归一化
然后直接计做矩阵乘加、softmax输出:
import cv2 from matplotlib import pyplot as plt img=cv2.imread('Test3.jpg',cv2.IMREAD_COLOR) img =cv2.resize(img, (28, 28), interpolation=cv2.INTER_CUBIC) img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img = 0xFF-img img = img/255 img = img.reshape(784) testx = [img] from numpy import *; import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。 import math import pandas as pd from pandas import Series,DataFrame data = pd.read_csv('mnist_w.csv') #print(data.shape) usew = data.values data = pd.read_csv('mnist_b.csv') useb = data.values useb = useb.reshape(1,10)#必须确定大小,否则会出错 a1 = mat(img); a2 = mat(usew); a4 = a1*a2+useb #计算softmax etab=[0,0,0,0,0,0,0,0,0,0] for i in range(0,10): t = a4[0:,i] t = t.tolist()[0] t = t[0] etab[i] = math.exp(t) a = sum(etab) for i in range(0,10): t = etab[i] t = t/a print(t) print ( "预测值=",etab.index(max(etab)) )
最后得到输出:
0.0303718806336
0.0306637445764
0.0985644947741
0.496698573451
0.0684541058624
0.193191997366
0.0177791782552
0.0252268936033
0.0210481976761
0.0180009338012
预测值= 3
明显,预测值为3,并且结果和直接调用tensorflow一致!
相关文章推荐
- 在树莓派上建立一个最简单手写体识别系统(一)
- 【译】建立属于你的个人高效系统——效率专家 Mike Vardy 教你如何设置一个简单的个人高效系统
- 一个简单的情感识别系统的实现
- 使用azkaban 建立一个简单的任务调度系统
- 一个简单的情感识别系统的实现
- 简单手写体数字识别系统
- 简单手写体数字识别系统
- 树莓派开发板--Linux系统--ROS环境--实现一个简单的消息发布器和订阅器
- 利用HTK工具包快速建立一个语音命令识别系统
- 在树莓派 3 上运行 openSUSE:简单几步搭建一个实用系统
- 利用HTK快速建立一个语音命令识别系统
- 建立和维护一个简单的PKI系统 推荐
- php使用face++实现一个简单的人脸识别系统
- 用树莓派做一个简单的监控系统
- 建立和部署一个最简单的Web服务
- 使用Java编写一个简单的Web的监控系统
- [zz]构建一个分布式操作系统的简单方案—答陈硕的“分布式系统中的进程标识”一文
- 【tcp网络编程】用Socket建立一个简单的文本转换服务器
- 震惊!从青铜到钻石,只因搭了一个图像识别系统
- 通过JAVA编写一个简单的雇员管理系统小项目