手写数字识别系统 基于python

本文介绍了使用Python3.6和TensorFlow构建手写数字识别系统的过程,包括图像预处理(二值化、高斯滤波等)、CNN神经网络训练以及MNIST数据集的应用。系统通过GUI界面实现手写数字实时识别,具有高识别率和抗噪性能。
摘要由CSDN通过智能技术生成

环境基于Python3.6和Tensorflow框架 实现手写数字识别系统
本文使用python基于TensorFlow设计手写数字识别算法,并编程实现GUI界面,构建手写数字识别系统。文中首先对如何对手写数字图像的获取进行了介绍;其次,对待手写数字图片的预处理的进行了介绍,包括二值化、高斯滤波、膨胀、腐蚀等图像处理方法,图片的预处理是利用opencv和PIL实现的;之后,探讨了读取MNIST训练数据集数据与标签,设置CNN神经网络参数 ,归一化数据集标签并训练CNN神经网络;最后GUI界面使用PyQt5,该识别器可以实时识别从GUI(图形用户界面)中画出的数字图片,利用截图的方式存储图片,并对图片进行预处理,进行界面分割成多个区域分别进行CNN识别,最终以一图一数字的形式组合返回至前端的手写数字识别系统。实验结果表明,本方法具有较高的识别率,并具有较好的抗噪性能。
系统组成
(1)获取手写数字图像:用户使用鼠标在所开发系统的手写面板上书写多个数字。
(2)手写数字图像预处理:对手写数字图像进行图像灰度化、图像二值化、去噪(干扰)等操作。
(3)CNN神经网络训练:读取MNIST训练数据集数据与标签,设置CNN神经网络参数(隐藏层层数、迭代次数、激活函数等),归一化数据集标签并训练CNN神经网络。
(4)手写数字图像识别:利用训练神经网络得到的权重信息测试手写数字识别功能。
开发环境:Windows 10 +python3.6 +tensorflow框架
MNSIT数据集
MNIST 数据集来自美国国家标准与技术研究所National Institute of Standards and Technology (NIST)。训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员。 测试集(test set) 也是同样比例的手写数字数据。它是一个计算机视觉数据集,它包含70000张手写数字的灰度图片,其中每一张图片包含 28 X 28 个像素点。每一张图片都有对应的标签,也就是图片对应的数字。数据集被分成两部分:60000 行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。
其中:60000 行的训练集分拆为 55000 行的训练集和 5000 行的验证集。60000行的训练数据集是一个形状为 [60000, 784]的张量,第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点。在此张量里的每一个元素,都表示某张图片里的某个像素的强度值,值介于 0 和 1 之间。60000 行的训练数据集标签是介于 0 到 9 的数字,用来描述给定图片里表示的数字。称为 “one-hot vectors”。一个 one-hot向量除了某一位的数字是 1 以外其余各维度数字都是 0。如标签 0 将表示成 ( [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] )。因此,其标签是一个 [60000, 10] 的数字矩阵。
[link]http://www.tensorfly.cn/tfdoc/tutorials/deep_cnn.html
CNN神经网络
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一 。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification,因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。
对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络 ;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域 。
卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习࿰

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值