设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率
关键字:二值化 投影 矩阵 目标定位 Matlab
手写数字图像识别简介:
手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字)、阿拉伯数字笔画少并且简单等。手写阿拉伯数字的识别采用的方法相对于人脸识别、汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法、基于有限状态自动机的方法、基于统计的方法和基于神经网络的方法等。本文的开始部分先对手写阿拉伯数字识别的整个处理流程进行论述,而这个流程也可以用于图像中其他模式的识别。当然这个处理流程也不是唯一的,可以根据不同的模式识别应用场景进行与之不同的预处理流程。
手写数字图像识别的主要流程:
第一步:对源图像进行黑白二值化处理;0数字的二值化(左)和1的二值化处理(右)
第二步:将图像在水平方向上和竖直方向上进行投影,这样通过投影图形就可以区分1和0的特征;
第三步:用投影计算出区域的横纵坐标,将其分为九份。定位出数字所在图像中的位置,提取该部分进行分析。
第四步:数字0和1的特征比较与识别
在0和一的比较中发现,在分成的九个区域的中间区域,0中间区域灰度为0,1中间区域灰度为1。
人类之所以能够思考,学习,判断,大部分都要归功于人脑中复杂的神经网络。虽然现在人脑的机理还没有完全破译,但是人脑中神经元之间的连接,信息的传递都已为人所知晓。于是人们就想能否模拟人脑的功能用于解决其他问题,这就发展出人工神经网络。 人工神经网络(artificial neural network,缩写ANN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式。 神经网络是一种运算模型,由大量的节点(或称“神经元”,或“单元”)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
流程如图,首先要对数据进行处理,这个主要是批量读取图片和特征提取的过程,特征提取的方法很多,这里只挑选最简单的来实现,然后是训练出一个神经网络的模型,最后用测试数据进行测试。为了方便,这里的神经网络的创建,训练和测试采用Matlab函数来实现。
要构造出适合神经网络的标签,在这个例子中有10个类,若为某个标签,那么这个位置的值为1,其余为0。
数字特征提取部分
featureextract.m
% featureextract
数字特征提取部分
clear;
clc;
% global定义全局变量P T,by:chen
global P
T;
I = imread('0.bmp');
% 读入数字图片,为个人用画图板制作的图片
p(1,:)=inputvar(I);
% inputvar(x)函数为特征提取函数,对第一个0样本的图片进行特征提取
%I = imread('00.bmp');
I = imread('cccc0.bmp');
p(2,:)=inputvar(I);
% 读入第二个关于字符0的样本
I = imread('000.bmp');
p(3,:)=inputvar(I);
I = imread('0000.bmp');
p(4,:)=inputvar(I);
I = imread('1.bmp');
p(5,:)=inputvar(I);
%I = imread('11.bmp');
I = imread('cc15.bmp');
p(6,:)=inputvar(I);
I = imread('111.bmp');
p(7,:)=inputvar(I);
I = imread('1111.bmp');
p(8,:)=inputvar(I);
I = imread('2.bmp');
p(9,:)=inputvar(I);
I = imread('22.bmp');
p(10,:)=inputvar(I);
%I = imread('222.bmp');
I = imread('cccc2.bmp');
p(11,:)=inputvar(I);
I = imread('2222.bmp');
p(12,:)=inputvar(I);
%I = imread('3.bmp');
I = imread('cccc3.bmp');
p(13,:)=inputvar(I);
I = imread('33.bmp');
p(14,:)=inputvar(I);
I = imread('333.bmp');
p(15,:)=inputvar(I);
I = imread('3333.bmp');
p(16,:)=inputvar(I);
I = imread('4.bmp');
%I = imread('cc444.bmp');
p(17,:)=inputvar(I);
I = imread('44.bmp');
p(18,:)=inputvar(I);
I = imread('444.bmp');
p(19,:)=inputvar(I);
%I = imread('4444.bmp');
I = imread('cc444.bmp');
p(20,:)=inputvar(I);
%I = imread('5.bmp');
I = imread('cccc5.bmp');
p(21,:)=inputvar(I);
I = imread('55.bmp');
p(22,:)=inputvar(I);
I = imread('555.bmp');
p(23,:)=inputvar(I);
I = imread('5555.bmp');
p(24,:)=inputvar(I);
I = imread('6.bmp');
p(25,:)=inputvar(I);
I = imread('66.bmp');
p(26,:)=inputvar(I);
I = imread('666.bmp');
p(27,:)=inputvar(I);
I = imread('6666.bmp');
p(28,:)=inputvar(I);
I = imread('7.bmp');
p(29,:)=inputvar(I);
I = imread('77.bmp');
p(30,:)=inputvar(I);
I = imread('777.bmp');
p(31,:)=inputvar(I);
I = imread('7777.bmp');
p(32,:)=inputvar(I);
I = imread('8.bmp');
p(33,:)=inputvar(I);
I = imread('88.bmp');
p(34,:)=inputvar(I);
I = imread('888.bmp');
p(35,:)=inputvar(I);
I = imread('8888.bmp');
p(36,:)=inputvar(I);
I = imread('9.bmp');
p(37,:)=inputvar(I);
I = imread('99.bmp');
p(38,:)=inputvar(I);
I = imread('999.bmp');
p(39,:)=inputvar(I);
I = imread('9999.bmp');
p(40,:)=inputvar(I);
I = imread('test0.bmp');
p(41,:)=inputvar(I);
I = imread('test00.bmp');
p(42,:)=inputvar(I);
I = imread('test1.bmp');
p(43,:)=inputvar(I);
I = imread('test11.bmp');
p(44,:)=inputvar(I);
I = imread('test2.bmp');
p(45,:)=inputvar(I);
I = imread('test22.bmp');
p(46,:)=inputvar(I);
I = imread('test3.bmp');
p(47,:)=inputvar(I);
I = imread('test33.bmp');
p(48,:)=inputvar(I);
I = imread('test4.bmp');
p(49,:)=inputvar(I);
I = imread('test44.bmp');
p(50,:)=inputvar(I);
I = imread('test5.bmp');
p(51,:)=inputvar(I);
I = imread('test55.bmp');
p(52,:)=inputvar(I);
I = imread('test6.bmp');
p(53,:)=inputvar(I);
I = imread('test7.bmp');
p(54,:)=inputvar(I);
I = imread('test8.bmp');
p(55,:)=inputvar(I);
I = imread('test9.bmp');
p(56,:)=inputvar(I);
P = p;
% 输入的训练与测试样本集
T = [0 0 0 0;
0 0 0 0;
0 0 0 0;
0 0 0 0;
0 0 0 1;
0 0 0 1;
0 0 0 1;
0 0 0 1;
0 0 1 0;
0 0 1 0;
0 0 1 0;
0 0 1 0;
0 0 1 1;
0 0 1 1;
0 0 1 1;
0 0 1 1;
0 1 0 0;
0 1 0 0;
0 1 0 0;
0 1 0 0;
0 1 0 1;
0 1 0 1;
0 1 0 1;
0 1 0 1;
0 1 1 0;
0 1 1 0;
0 1 1 0;
0 1 1 0;
0 1 1 1;
0 1 1 1;
0 1 1 1;
0 1 1 1;
1 0 0 0;
1 0 0 0;
1 0 0 0;
1 0 0 0;
1 0 0 1;
1 0 0 1;
1 0 0 1;
1 0 0 1
0 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
0 0 1 0
0 0 1 0
0 0 1 1
0 0 1 1
0 1 0 0
0 1 0 0
0 1 0 1
0 1 0 1
0 1 1 0
0 1 1 1
-
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19164|2023-10-27
-
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:9981|2022-11-06
-
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8320|2022-11-06
-
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8690|2022-11-06
-
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8634|2022-11-06
-
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9650|2022-11-06
-
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8617|2022-11-06
-
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:7994|2022-11-06
-
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8648|2022-11-06
-
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7531|2022-11-06
|
|
请发表评论