1.1字符识别概述OCR(OpticalCharacterRecognition)即光学字符识别技术,是通过扫描仪把印刷体或手写体文稿扫描成图像,然后识别成相应的计算机可直接处理的字符。OCR是模式识别的一个分支,按字体分类主要分为印刷体识别和手写体识别两大类。对于印刷体识别又可以分成单一字体单一字号和多种字体多种字号几类。而手写体识别又可分为受限手写体和不受限手写体两类;按识别方式可分为在线识别和脱机识别两类。字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。在整个OCR领域中,最为困难的就是脱机自由手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就,但距离实用还有一定距离。而在手写数字识别这个方向上,经过多年研究,研究工作者已经开始把它向各种实际应用推广,为手写数据的高速自动输入提供了一种解决方案。1.2数字识别研究的目的及意义人类社会己开始进入信息时代,信息产业的发展将对国家的发达和民族的兴旺产生重大的影响。因此,世界各国对信息产业的发展都给予了极大的关注和重视。人类社会的不断进步带来了信息空间的增长和积累,而计算机的出现为现代化信息处理提供了有效的手段。但是,在信息技术高速发展的同时,一个难题也摆在我们面前,那就是计算机数据处理和网络传输的高速度与数据输入的低速度之间的矛盾。目前,人类的许多信息是记录在纸上的文字图像,将这些信息输入计算机是非常繁琐而低效率的工作,这在一定的程度上减缓了社会信息化的进程。因而,作为信息化基础的数据输入成了计算机应用中的瓶颈问题。人们接受信息最频繁的是视觉通道.在日常学习和生活中,所处理的信息有75%—85%是视觉信息,其中文字信息愈来愈占重要地位.比如对各种期刊文献的阅读、查找、翻译:对各种统计报表的汇总、计算、分析;对各种函件票证的分拣、传送、验核等。要实现对这些文字信息处理过程的机械化、自动化,其先决条件就是利用计算机对这些文字信息进行识别。字符识别是利用计算机自动辨识印刷在纸上或人写在纸上的汉字,是模式识别的一个重要分支,也是文字识别领域较为困难的问题之一。本技术涉及模式识别、图像处理、数字信号处理、自然语言理解、人工智能、模糊数学、信息论、计算机、中文信息处理等学科,是一门综合性技术,在中文信息处理、办公室自动化、机器翻译、人工智能等高技术领域,都有着重要的实用价值和理论意义。因此,手写数字的识别研究有着重大的现实意义,一旦研究成功并投入应用,将产生巨大的社会和经济效益。1.3手写数字识别的典型应用手写数字识别有着极为广泛的应用前景,这也正是它受到世界各国的研究工作者重视的一个主要原因。下面将介绍一些以手写数字识别技术为基础的典型应用。(一)手写数字识别在大规模数据统计中的应用在大规模的数据统计[12](如:行业年鉴、人口普查等)中,需要输入大量的数据,以前需要手工输入,需要耗费大量的人力和物力。近年来在这类工作中采用OCR技术已成为一种趋势。因为在这种应用中,数据的录入是集中组织的,所以往往可以通过专门设计表格和对书写施加限制以便于机器的自动识别。目前国内的大多数实用系统都要求用户按指定规范在方格内填写。另外,这些系统往往采用合适的用户界面对识别结果做全面的检查,最终保证结果正确无误[4]。可以看出,这是一类相对容易的应用,对识别核心算法的要求比较低,是目前国内很多单位应用开发的热点。(二)手写数字识别在财务、税务、金融领域中的应用财务、税务、金融是手写数字识别大有可为的又一领域。随着我国经济的迅速发展,每天等待处理的财务、税务报表、支票、付款单等越来越多。如果能把它们用计算机自动处理,无疑可以节约大量的时间、金钱和劳力。与上面提到的大规模数据统计处理相比,在这个领域的应用难度更大,原因有:1、对识别的精度要求更高;2、处理的表格通常不止一种,所以一个系统应具有智能地同时处理若干种表格的能力;3、由于处理贯穿于整个日常工作之中,书写应尽量按一般习惯(如:不对书写者的写法做限定,书写时允许写连续的字串,而不是在固定的方格内书写),这样对识别及预处理的核心算法要求也提高了。1.4国内外研究现状手写体数字识别在学科上属于模式识别和人工智能的范畴。在过去的数十年中,研究者提出了许多识别方法,目前手写体数字识别方法可以分为两类:基于结构特征的方法和基于统计特征的方法。通过几十年来各国研究学者得对数字识别的研究,国内外在手写识别上也取得了一定的成就。在我国邮电部第三研究所,以信函分拣为目的,识别书写在信封上的邮政编码。其它用传统方法进行识别研究的有中国科学院自动化研究所,该所对手写体数字识别的研究历史几乎有20年了,在他们新近的报告中,利用以有限状态自动机为主的识别途径识别1100个手写体数字,识别率达95.2%,拒识4%,误识0.2%,上海交通大学基于压缩字结构特征的手写体数字识别算法选取了12600个样本组成训练集,6000个样本组成测试集,用BP网络进行分类,识别正确率为97.58%,误识率为1.04%,拒识率为1.38%。德国E9的FriedhelmSchwenker采用SV-RBF40对手写体数字进行识别,测试样本10000个,识别正确率为98.56%。清华大学采用SVM对金融票据中的手写体数字进行识别,测试样本20000个,识别率约为92%。然而以上提到的系统,要么对书写的正规程度有要求,要么其测试样本和训练样本出于同一批人之手。总之,一般的系统对书写人员限制较多,或者对书写的正规程度有要求,或者对书写位置有要求,或者对所用笔、纸有要求,例如对税务报表的识别就要求用规定的字型书写数字,并且对书写的位置有要求,而真正的无限制手写体数字的识别的研究还有待进一步提高。1.5手写体数字识别系统概述本文的手写体数字识别系统总体流程可分为两大步骤。(见图1.1)。图1.1系统总流程图其中图像预处理的流程如图1.2所示。图1.2图像预处理流程图神经网络数字识别的具体流程如图1.3所示。图1.3神经网络数字识别流程图1)图像预处理阶段在获取原始数字图像过程中,由于光照、背景纹理、镜头分辨率、拍摄角度等原因,难免会造成图像失真并带有噪声。由于这些噪声的影响,如果对获取得到的数字图像进行直接处理的话通常不能得到满意的结果,因此在获取原始数字图像后,需要对图像进行预处理。对于字符识别的预处理过程一般包括:二值化、去噪声、数字分割、归一化处理、图像细化。经过预处理后的图片不仅能够有效样本训练识别字符特征提取读取图片灰度化二值化归一化调整数字分割去噪声图像细化图像预处理神经网络进行数字识别滤除噪声,并且能够将不同的大小字符进行归一化到一个固定大小,对大量数据进行压缩处理。预处理阶段在该系统中是一个很重要的阶段。预处理效果的好坏会直接影响到整个系统的性能。具体方法可以详见第二章。2)特征提取阶段由于原始数字图像数据量大,冗余信息较多,一般不进行直接识别,而是进行提取有效特征数据、压缩数据,然后再进行识别。换句话说特征提取是为了去除图像信息中对分类没有帮助的部分,将图像信息集中到几个有代表性的特征上来的过程。3)数字识别阶段我们将提取到的特征值输入到已经训练好的神经网络中进行分类识别。1.6本文内容安排本文内容上总体安排为六章。第一章主要是对OCR和手写体数字识别作简单的介绍。介绍内容有:OCR及手写体数字识别的历史及现状;手写体数字识别的典型应用;国内外的研究现状;数字识别系统的整体描述以及本文的研究内容。第二章:主要是研究手写体数字识别中的预处理技术。本文采用预处理有灰度化,二值化,去噪声,归一化,细化等技术,该章节对其进行详细分析。同时本章针对几种阈值分割进行比较,分析其各自的优缺点。第三章:主要研究的是手写体数字识别中的特征值提取技术。在特征值提取模块中,需要根据特征表达方式或者特征提取技术的不同,选用不同的预处理技术。第四章:主要简单介绍神经网络分类识别器实现原理。初步介绍本文采用的BP神经网络,并给出本文采用的学习算法和训练算法。第五章:介绍了本文实现的系统的开发和运行环境,以及系统的处理过程图,系统界面。给出实验结果分析。第六章:对整个论文的研究和工作进行了总结并指出了进一步的研究方向。2手写体数字识别中预处理技术预处理对于一个良好的识别系统不仅是一个必不可少的环节,而且是至关重要的。如果预处理处理得不够理想,会从很大程度上降低整个系统的识别率。一般手写体数字识别而言,预处理包括很多部分,如去噪声、灰度化、二值化、归一化、细化等等。2.1图像灰度化所谓灰度图像就是图像的每一个象素的R、G、B分量的值是相等的。彩色图像的每个象素的R、G、B值是不相同的,所以显示出红绿蓝等各种颜色。灰度图像没有这些颜色差异,有的只是亮度上的不同。灰度值大的象素点比较亮(象素值最大为255,为白色),反之比较暗(象素值最小为0,为黑色)。对读取到的图片进行灰度处理,为下一步二值化做好准备工作。图像灰度化有各种不同的算法,比较直接的一种就是给象素的rgb值各自一个加权系数,然后求和。图2.1测试图像原图图2.2灰度化效果图2.2图像二值化在进行了灰度化处理之后,图像中的每个象素只有一个值,那就是象素的灰度值。它的大小决定了象素的亮暗程度。为了更加便利的开展下面的图像处理操作,还需要对已经得到的灰度图像做一个二值化处理。图像的二值化就是把图像中的象素根据一定的标准分化成两种颜色。在数字图像处理中,二值化占有非常重要的地位。这是因为,一方面类似于字符、指纹、工程图等图像本身就是二值的。另一方面,在某些情况下即使图像本身是有灰度的,也将其转换成二值图像再处理。这样在图像处理系统中,可以减少图像信息并提高处理速度。图像的二值化有几种类型,其中主要的有基于灰度分布的二值化,也有基于梯度信息的二值化。基于灰度分布的二值化处理一般是通过设定阈值,把它变为仅用二值表示前景和背景颜色的图像。图像的二值化可以根据下面的阈值来处理:假设一幅原始图像的象素值p(i,j)的取值范围为[0,m],那么设有其阈值为T=t,0tm,则映射成新的二值图像的象素值p’(i,j)为:1,(,)'(,)0,(,)ifpijTpijifpijT(式2.1)对于基于灰度分布的二值化就是一个带阈值T的二值映射过程,其分割效果的关键在于阈值T的选取。有的应用可以由计算机自动选取,有的则需要人工干预,所以阈值T的选取视应用范围而有所不同。对于字符识别来说,只需要保留文字特征的二值信息即可。目前,众多学者对此已经进行了比较详细的研究,并提出了许多阈值选取的算法,这些算法大体上可以划分为三类:整体阈值法,局部阈值法和动态阈值法。1)整体阈值法(又称全局阈值法)仅由象素点(i,j)的灰度值p(i,j)确定阈值的方法称为整体阈值选择法。典型的阈值选取算法有直方图法,熵阈值法等等,一般地,如果图像灰度直方图呈现双峰,或者图像中背景灰度与目标灰度呈明显分离状,整体阈值法分割图像效果良好且速度快。2)局部阈值法由象素(i,j)的灰度值p(i,j)和象素周围点的局部灰度特性确定阈值的方法称为局部阈值法。不同的阈值法源于N(i,j)的不同选择。对于书写质量差,干扰较严重的字符,采用整体阈值法二值化,效果不太理想,局部阈值法有可能得到较为满意的二值化结果。3)动态阈值法当阈值选择不仅取决于该象素阈值及其周围各象素的灰度值,而且还和象素坐标位置相关时,称之为动态阈值法。这种方法可以处理低质量甚至单峰直方图图像。对文字图像而言,由于笔画和背景的区分比较明显,并且动态阈值法的实现较为复杂、计算时间相对长,因此在文字识别中很少采用。对于以上三种二值化算法中,由于动态阈值法实现较为复杂而且用时较长,很难满足文字识别中的实时性要求,因