手写字符识别

一、手写字符识别原理

以下来源网上。

手写数字识别,可以采用图像识别的方法,左边的x是手写之后的图像,右边的y是对应的数字。

对于图像信息,计算机是用数值来进行表示的,机器学习让计算机具备智能,实际上是训练出数值模型w对于新的输入x,可以通过与w进行数值运算得到y从而进行预测判断的。

上面的一张图片在计算机中的存储方式是数值矩阵

我们用8×8的像素矩阵来表示这张图片,每个像素点用0~16表示灰度,0对应白色,16对应黑色,11, 12 ,13的数值对应的是深灰色,5,6,7等数字,对应的这是浅灰色,

这样上面的模糊图片就对应到下面的数字矩阵。由此手写数字识别问题就转化为计算机可以处理的数值问题。

机器学习是以矩阵运算为基础的。

 

来看一下我们的训练数据集,不同人的手写方式不同,写数字有非常多的写法,但不同的写法之间仍然有一些相似性,人可以识别出来并且打上标签,比如第1排的这些手写体,对应的标签都是数字0,而对于机器学习,每个手写数字都对应一个数值矩阵,他们在数值分布上呈现一定的特征。

比如数字1在数字矩阵中呈现的特征是黑色的像素点在数字矩阵当中是相邻的构成了一个线段。利用这些特征,我们可以在n维向量空间中把这些数值矩阵分为10类,分别对应右边0~9这10个数字,这样手写数字识别问题就转化成为了监督式学习的分类问题classification。

但是有时无法正确识别数字,例如识别3

通过编写程序, 机器学习都无法解决这一问题, 这就需要提到神经网络, 根据大脑对图像的识别原理,解决:

在这里插入图片描述

 通过对每一个神经元赋值, 再乘以权重w, 再加上bias值, 再把计算结果传到激活函数中sigmoid, 用于激活下一层的神经元:

在这里插入图片描述

 

二、手写字符识别例子

下载手写字符识别代码 

地址:https://github.com/mivlab/AI_course

下载MNIST_Dataset数据集 

地址: https://pan.baidu.com/s/18Fz9Cpj0Lf9BC7As8frZrw 提取码:xhgk。

PyCharm新建工程,打开代码目录classify-pytorch

1、训练数据

运行train_minist.py

一开始会出现错误:

 这就需要在菜单栏Run中的Edit Configurations 输入命令行参数

 

也就是在--datapath=后面输入训练数据的目录

 然后就可以正确运行了

2、测试数据

 运行tes_minist.py

 

三、结果

手写字符识别

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值