数字字符

2024-05-14

数字字符(精选四篇)

数字字符 篇1

数字识别技术是图像处理领域中的一个重要研究方向[1]。在实际生活中有广泛的应用需求, 一直得到很多研究者的重视。近年来随着计算机技术和数字图像处理技术的飞速发展, 数字识别在车牌数字识别[2], 手写体数字识别[3], 机器自动输入等场合已经获得成功的应用。但是, 现存的很多方法中, 数字图像的预处理还存在一定的缺陷, 没有提出一种通用有效的方法, 从而约束了算法的使用范围, 也影响了识别的精度。因此, 研究简单高效的数字识别依然是一个重要的研究方向。

在图像识别系统中常用的字符识别的方法主要有:模板匹配法, 遗传算法, 分形法, 支持向量机法, 人工神经网络法等。近年来, BP神经网络技术得到了巨大的发展[4~5], 它结构简单, 处理信息能力强, 易于软硬件实现, 所以应用于数字识别可靠、实时、精度高[6]。在模式识别领域应用广泛, 效果好。本文改进图像预处理的方法, 改进matlab底层输出函数, 基于BP神经网络原理, 结合matlab仿真软件, 实现了一种字符识别方法。该方法的流程图如图1所示。

2、数字字符图像区域提取和特征提取

多数文献进行数字图像的识别时, 应用Matlab函数—plotchar做图像输出, 限制了区域提取, 只能显示像素大小为5×7[7~8], 从而严重影响了识别精度。为实现一种通用的区域提取方法, 本文对plotchar函数进行了改进, 增加了两个形参, 即像素大小m×n, 主体语句改为:

对应不同像素的大小, 通过形参传递, 直接画图, 应用起来简单方便。

数字字符图像在识别前, 必须首先区域提取, 然后再提取特征, 以特征矩阵作为进一步识别的输入。所以区域提取的问题, 直接影响后面识别的精度。到底提取多大图像最佳?众说纷纭。当然, 提取像素越低, 尺寸越小, 识别速度会越高, 网络训练也越快, 但是, 如果像素太少, 很容易丢失图像的部分信息, 使得准确率下降。反之, 也不是越大越好, 要根据实际图像像素的大小、格式、分辨率、背景等诸多因素来确定。因此, 本文研究了一种通用区域提取方法, 设置提取像素的大小为变量, 其值随实际图像和输出结果改变。

本文识别1-9单个数字, 以3和6为例, 图片像素大小为30×50, 经过多次试验, 提取10×10大小, 识别效果最佳。图像预处理的过程及主要程序为: (1) 读入已经过灰度处理的图像, 应用strcat和imread函数; (2) 图像二值化, 应用im2bw函数; (3) 归一化为10×10矩阵, 主要应用find, imresize, round等函数; (4) 归一化后, 将特征矩阵0, 1值对调。

经过预处理, 每个图片提取特征均为10×10的1-0矩阵, 其中3和6的特征矩阵如下所示:

3、BP神经网络的构建与训练

3.1 BP神经网络简介

BP是一个单向传播的多层前向神经网络, 由输入层, 中间隐含层和输出层组成。

结构图如下:

BP网络的实现分为两个阶段:学习阶段和识别阶段。在学习阶段输入要学习的样本, 按照网络初始设定的权值、阀值以及传输函数进行计算得出每一层神经元的输出, 这是从底层向上进行的;通过理想输出与最高层输出之间的误差来决定是否对权值、阈值进行修改, 这个修改是从高层向下进行的;两个过程反复进行, 直到网络收敛为止, 此为学习阶段。权重的学习就是不断地调整各个神经元的连接强度, 使其能逼近所对应的输出。

3.2 神经网络的构建

3.2.1 输入向量与目标向量

图像预处理后, 每个数字对应一个10×10的矩阵, 将每个矩阵元素重新排列为1行, 10个小矩阵组合为一个10×100大矩阵, 转置后构造网络输入向量为100×10矩阵。输出向量为10×10单位矩阵, 每个字符输入时, 在10个字符中它所排顺序的位置上输出为1, 其他位置上输出0。

3.2.2 权值初始化

对BP而言, 网络的初始权值不同, 每次训练的结果也不同, 这里网络的初始权值选择较小的随机值, 既

保证了隐层神经元节点输出较小, 工作在激励函数斜率变化最大的区域, 也防止多次连续学习后。某些权值的绝对值不合理的无限增长。

3.2.3 网络结构

由输入、输出向量结构, 本文选取100个输入节点和10个输出神经元。隐层层数和神经元数目决定了网络的规模, 而网络规模与其性能密切相关。规模太小, 会造成网络的不适性, 识别效果较差;规模大又会引起过适性, 导致训练时间过长等缺点。但是, 怎样确定适宜的隐层节点数, 以保证足够高的网络性能和泛化能力, 仍没有很好的研究结论, 本文参考以下估算公式[9]:

其中n为输入层节点数, m为输出层节点数, a为1~10之间的常数, 实际训练时, 可

根据训练结果调节隐层节点。

3.3 神经网络的训练

将训练样本送BP神经网络训练, 通过在梯度方向上不断调整权值, 使网络平方和误差最小。为使网络对输入向量有一定鲁棒性, 本文用无噪声的样本和含噪声的样本进行两次训练, 保证网络对噪声不敏感。先用无噪声的输入信号对设计好的网络net进行训练, 然后定义一个结构相同的网络netnew, 把已经训练好的连接权值和阀值赋给netnew, 再用含不同比例的噪声标准差的样本训练网络。

4、仿真结果与分析

据建立的仿真模型, 分别对0-9十个数字字符图像及其含随机噪声的数字字符图像进行识别。

为验证本文提出的新识别方法的优越性, 首先采用以原始plotchar为图像输出函数的识别方法, 识别不含噪声的理想图像, 区域提取的大小为5×7。以3和6为例, 其识别结果如图4所示。显而易见, 图像特征提取太少, 很多特征信息丢失, 无法准确的识别图像。对没有添加噪声的图像, 识别效果尚如此差, 那么, 对于实际数字图像的识别而言, 这样的精度远远达不到要求。

采用本文提出的新识别方法, 图5为添加30%噪声的数字字符, 图6为识别字符, 图7为收敛曲线, 图8为误差曲线。由图5, 图6可见, 这种方法识别效果好, 精度高, 适合于识别实际图像。收敛曲线显示, 网络收敛速度快, 训练指标在很短时间内就可达到。从误差曲线可以看出, 网络经过含噪声信号的训练后, 其容错能力有了明显的增加。随含噪声样本的噪声比例增加, 识别精度有所降低, 本方法对含噪声25%以下的图像, 识别率可以达到100%.

5、结语

本文首先提出一种字符识别时通用的数字图像区域方法, 使区域能够根据实际图像确定, 为此, 改进了Matlab底层函数plotchar, 使图像显示不再局限于5×7像素, 可以随区域提取的大小、通过形参传递常量而随意变化。在此基础上, 本文设计了一种基于BP网络的字符识别的新方法, 对实际的BMP字符图像进行系列预处理、特征提取, 然后进行识别。识别结果显示, 图像输出的大小增加了, 识别的精度也提高了, 这种可根据实际情况任意提取图像大小的数字识别方法, 简单通用, 实时性好可靠, 非常适合应用于在实际环境。

参考文献

[1]张洪刚, 陈光, 郭军.图像处理与识别.北京邮电大学出版社, 2006.

[2]杨凡, 赵建民.一种基于BP神经网络的车牌字符分类识别方法, 计算机科学, 32 (8) :192-195, 2007.

[3]陈念.一种基于复合特征的脱机手写体字符识别方法.14 (1) :40-42, 2008.

[4]严晓梅, 耿国华, 阎明全.基于改进BP神经网络的指纹自动分类器.计算机信息, (1) :281-282, 2007.

[5]苏斐萍, 王一平.基于BP神经网络的信息商品价格预测模型.统计与信息论坛, (1) :93-95, 2007.

[6]韩力群.人工神经网络理论设计及应用——人工神经细胞人工神经网络和人工神经系统.化学工业出版社, 2002.

[7]武强, 董学锋.基于人工神经网络的数字字符识别.计算机工程, 29 (14) :112-113, 2003.

[8]张可, 张高燕等.基于BP神经网络的字符识别系统.计算机与现代化, (1) :63-65, 2009.

数字字符 篇2

数字字符识别问题是模式识别领域的一项传统课题,是图像处理技术和模式识别技术相结合的研究课题。它广泛应用于工业控制(如铁水温控)、条码技术、车牌识别、证据采集等多个项目,涉及到工业、交通、银行、教育、司法和邮政等多个领域[1]。目前实现该目的方法有多种,最为广泛的方式之一就是采用人工神经网络技术。其具体方法是把待识别的数字区域从待识别图像中提取出来,然后把其中的数字字符串分割成单个字符,进而构建相应的神经网络并进行训练,在满足一定的容错率情况下,对各个元数据组成的输入进行识别。对LMBP神经网络进行了深入研究,提出了一种基于改进的LMBP网络数字识别系统的实现方法,为存在噪声干扰情况下的数字识别提供了一条识别率高、识别速度快的新途径。

2 概述

LMBP网络模型是建立在典型的BP网络模型基础上的,即三层前向网络:输入层、隐含层和输出层,各层之间实行全连接,层内神经元之间无连接。网络输入层的神经元个数与待识别模式的特征向量维数相等,每个神经元对应特征向量的一维分量,输出层的神经元个数与该网络要识别的模式集合中的模式个数相等,每个神经元对应模式集合中的一个模式。LMBP算法克服了标准BP算法的缺点,是一种较为有效的优化设计方法。从收敛速度和收敛性来看,它是牛顿法和最速下降法的一种折中算法;从算法实质上来讲,它是将基本算法中误差平方求导变为对误差求导,这也是提高网络收敛速度方面最为成功的算法[2]。如图1所示为基本的LMBP网络。

3 结构设计

LMBP网络的各种参数的选择和确定是网络设计的难点和重点。首先确定网络输出。欲识别目标为“0~9”计10个字符,其输出编码为10行10列矩阵。其次确定网络输入。待识别字符可用“5×7”的小方格进行数字化,即一个向量来表示,其相应存在数据的位置值为1,其他位置值为0。10个含35个元素的输入向量被定义为一个输入向量矩阵。网络训练中,输入信号一般使用两类:一类是在理想的状态下的信号;另一类是用含有噪声的信号。如图2所示,即为数字0、1、2无噪声数字化的结果演示,其中白色区域为0,灰色区域为1。

网络采用输入在(0,1)范围的对数-S型传递函数(两层logsig/logsig网络),通过一个具有10个元素的输出向量来区分这些数字字符。例如字符1对应的输出向量,其第二个位置的元素值为1,而其余位置的元素值都是0。确定好输入输出后可进行网络结构的设计。第1层为输入层,根据以上待识别的数据分析可确定网络输入层有35个节点;第2层为隐含层,可以依据公式一计算后酌情确定[3](式中:h表示隐层的神经元数;n表示输入层的神经元数;m表示输出层的神经元数)。第3层为输出层,根据网络输出需求设计10个输出节点。故下式中,由n=35,m=10,可得h≤19。因此令h=10,形成了35×10×10的网络结构模型,如图3所示。

4 网络训练

神经网络从功能上来讲,具有极强的非线性数据处理能力和容错能力,只需要把经过预处理和特征提取的大量样本数据矩阵提供给网络进行训练即可得到数字输出。

利用神经网络工具箱中的函数编程进行网络训练。首先设定好对应的网络输入矩阵P和输出矩阵T,其次设置好网络训练参数,最后即可对网络进行训练和测试[4]。下面将文中设置、训练网络以及仿真参数的程序列举如下,限于篇幅,采用了省略形式的输入输出矩阵,其完整形式如表1所示。

按照上面的程序,对网络进行训练和仿真测试,结果如图4、图5所示。

为了便于训练和仿真,将隐层神经元数设置为变量n。训练中将训练数据进行了专项统计,如表2所示。

训练及仿真数据分析:由表2可以看出,在多次训练过程中,随着变量n逐步增大,训练时间逐渐增加,而训练步数逐渐减少。由图4可以看出,训练结束阶段,网络收敛曲线的斜率较大,这也从一个侧面反映出LMBP网络收敛速度快的特点。由图5可以看出,仿真后的数据并不是绝对归0或归1的,而是有一定的误差。由于输出矩阵形式简单,只需将大于0.5的数归为1,小于0.5的数归为0即可。通过向量归整处理,即可得到输出向量,亦即字符识别结果。

为了使训练好的网络具备较强的抗噪声干扰能力,需要在训练样本中加入一定的噪声信号。即在输入矩阵中,添加一定比例经过噪声处理的向量,输出矩阵也增加相应维数向量。经过以上处理,即可进行网络训练,方法步骤同上。通过试验,该LMBP网络可以很好地对含噪声的数字进行迅速准确的识别,多次实验,结果均保持不变,说明该网络具有良好的抗噪性能。

图6所示为有无噪声信号的网络训练误差率,实线表示同时经过无噪声信号和有噪声信号训练的网络训练误差率;虚线表示只经过无噪声训练后的网络训练误差率。对比分析可以看出,既使用理想信号又使用带有噪声的信号训练过的网络,其系统容错能力更强,准确性更高。

5 结语

运用人工神经网络理论对数字字符识别问题进行讨论与分析,并重点就LMBP算法的特性、优缺点进行阐述,进而构造LMBP网络模型对数字字符识别问题进行深入的探讨。该模型具有寻优的全局性和精确性,且收敛速度快,识别率高[5]。其中主要应用了Matlab7.0中的神经网络工具箱中的工具函数编写数字字符识别程序,简化了工作量,提高了工作效率,测试结果表明,识别效果较好。

信号处理重点考虑了两个方面:纯数字信号和含噪声数字信号。试验中反复交叉使用两种信号进行网络的学习训练,大大提高了数字识别的容错率和可靠性。

不足之处一是没有运用神经网络基本理论进行自编程设计神经网络,以更好地深化运用、融会贯通所学知识,二是没有结合运用图形图像有关知识深化数字识别问题,如机动车牌照识别问题,希望在以后的学习中能够有所涉及并得到提高。

摘要:通过对BP神经网络学习和数字字符识别问题研究,提出了一种基于改进的神经网络方法解决数字字符识别问题。试验利用Matlab7.0中的人工神经网络工具箱以及纯数字样本进行网络的学习训练。测试结果表明,该算法与传统BP算法相比,具有结构合理、收敛速度快的特点,能够很好地满足数字识别需求,达到了预期设计目的。

关键词:LMBP算法,数字字符识别,人工神经网络,Matlab7.0

参考文献

[1]张彤,肖南峰.基于BP网络的数字识别方法.重庆理工大学学报[J],2010,(3):43.

[2]赖树雨,李向明,段涛.基于Gabor变换和LMBP神经网络的车牌汉字字符识别.湖南工业大学学报[J],2008,(5):94.

[3]陈军,王汝夯.基于LMBP神经网络的声诱饵对抗鱼雷效能评估.鱼雷技术[J],2008,(10):55.

[4]周开利,康耀红.神经网络模型及其Matalab仿真程序设计[M].北京:清华大学出版社,2006.

将一个数字字符串转换为整型数值 篇3

C++编程:将一个数字字符串转换为整型数

#include

#include

void main()

{

int a;

cout<<“请输入一个数字字符串:”;

cin>>a;

if(47>a || a>57)

cout<<“你输入的不是数字字符串”<

else

{

char n;

n=int(a);

cout<

}

}

我写了这段程序,但是同学说我错了,这是将ASCII码转为数字常量的,不符合题意,我想了很久都想不明白题目的意思,到底是什么意思呢??

数字字符 篇4

目前有大量的车牌字符分割的研究算法, 在这些算法中, 分割速度最快的就是投影法, 但是投影法的分割效果却很容易受到车牌自身笔画粘连的影响, 实际的分割效果并不理想。

本文首先通过数学形态学骨骼化进行处理, 然后使用投影法进行初步字符分割, 通过对投影法的结果进行分析, 根据字符特征对字符进行正确切分。通过仿真实验, 本文的算法得到了较好的结果。

2 数学形态学骨骼化

数学形态学骨骼化也是一种图像区域特征的表达方法, 骨骼表示法是将图像区域抽取为图的形式。在数学形态学中, 骨骼化满足下面的公式:

也就是说使用模板B对图像A做k次腐蚀。

骨骼化能够体现包括字体等形式的区域图像区域本身的特征, 因此本文将使用骨骼化对车牌图像进行预处理。效果图如下:

3 利用投影法与车牌字符特征进行分割

接下来, 使用投影法对骨骼化后的车牌图像进行第一次分割。由于骨骼化使得车牌图像的垂直投影特征更加的明显, 因此使用投影法的效果更好。具体的效果图如下:

但是投影法却很容易受到图像成效效果的影响, 特别是在出现字符粘连的情况下, 投影法的处理效果就会出现分割不准确的结构。效果图如下图

由于我国的车牌宽度以及字符宽度是一定的, 如果发生了字符粘连现象, 分割出来的字符个数以及单个字符的宽度就会与标准情况有所不同, 基于这样的思想, 可以很容易的将发生字符粘连的部分判别出来。本文在这个基础上, 给出了根据车牌结构及字符特征的最终字符分割算法, 首先我们先对字符特征进行分析, 如图5所示。

要利用字符特征, 首先就要对字符特征做分类处理, 这里根据字符本身从右向左的结构特征进行分类, 这里需要说明的是中国车牌字符中没有I和O两个字符, 因此这里不对这两个字符进行分类。首先以起始扫描点为分类类别:

(1) 扫描起始为一个点的字符有:2、6、7、A、F、L、R、T、V、W、Y;

(2) 扫描起始为两个点的字符有:B、C、K、S、X、Z;

(3) 扫描起始为三个点的字符有:E;

(4) 扫描起始为一条线段的字符有:0、1、D、H、J、M、N、P、Q、U;

(5) 扫描起始为一个点和一条线段的字符有:3、4、5、8、G。

根据扫描起始就可以缩小字符范围。然后进行接下来的扫描, 假设车牌图像宽度为M, 根据车牌的结构特点, 即宽高比、字符宽度、字符间隔宽度一定, 由于车牌图像中7个字符的总宽度为409mm, 每个字符宽度为45mm, 那么就可以设置扫描步长为, 第一次扫描宽度为, 也就是说使用h步长扫描23次即可至少扫描完成半个字符, 记录这半个字符的结构特征对字符进行归类, 然后再根据固定的宽高比例就可以将字符较准确的分割出来。

根据这一思想, 对投影法后的字符粘连部分进行再次切分。具体的效果图如下:

4 结论

本文根据车牌字符特征与车牌本身结构特征, 提出了结合投影法与车牌字符特征的字符分割算法。首先对车牌图像进行骨骼化处理, 然后进行投影法初步分割。初步分割过后, 根据车牌与车牌字符结构特征, 对初步分割效果进行判断, 如果发生字符粘连, 则根据车牌字体结构特征, 对字符粘连区域进行再次切分, 从而达到快速且准确的字符分割。本文对119幅车牌图像在MATLAB环境下进行了仿真实验, 分割准确率也达到了96.6%, 根据仿真实验结果, 本文算法分割效果较好, 且具有较快的分割速度。

参考文献

[1]钱成, 卢珏.车牌识别中字符分割的研究[J].中国科技论文在线, 2011, 6 (1) :64-66.

[2]郑成勇, 李红.基于字符整体特性及blob分析的车牌字符分割[J].华中科技大学学报, 2010, 38 (3) :88-91.

[3]许礼武, 许伦辉, 黄艳国.基于小波分解的车牌定位算法[J].计算机工程, 2006, 32 (21) :191-193.

上一篇:英语快速阅读教学下一篇:老年骨质疏松护理