论文部分内容阅读
[摘要]随着信息化的发展,手写数字的识别研究有着重大的现实意义。本文通过建模、系统实现对手写数字识别技术进行概述,然后通过实验结果来对手写数字识别系统来的识别率和错误率进行分析。
[关键词]手写数字识别;建模;系统实现;系统实验
中图分类号:U534 文献标识码:A 文章编号:1009-914X(2015)05-0329-01
一、概述
手写数字识别(Handwritten Numeral Recognition,简称HNR)是光学数字识别(0pitical Character Recognition,简称OCR)技术的一个分支,在整个OCR领域中,最为困难的就是脱机手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就,但距实用还有一定距离。手写数字识别是把手写阿拉伯数字(如0,1,2,…,9)通过扫描或其它方式输入到计算机中,再通过计算机建立的识别系统,自动辨别用笔写在纸或其它介质上的数字。它是模式识别、人工智能的一个重要分支,在办公自动化,机器翻译等方面有重要实用意义。手写数字识别涉及到模式识别和图像处理、人工智能统计决策理论、模糊数学、组合数学、信息论、计算机等学科。手写数字识别是介于基础研究与应用研究之间的一门综合性的技术。手写数字识别主要包括两大类,一类是联机手写数字识别,另一类是脱机手写数字识别。
二、手写数字识别系统的重要意义及难点
1、手写数字识别技术研究的理论意义
手写数字识别作为模式识别领域的一个重要问题,有着重要的理论价值和意义。首先,阿拉伯数字是唯一的被世界各国通用的符号,对手写数字识别的研究基本上与文化背景无关,这样就为各国、各地区的研究工作者提供了一个施展才智的大舞台。其次,由于数字识别的类别数较小,有助于做深入分析及验证一些新的理论。这方面最明显的例子就是人工神经网络,相当一部分的人工神经网络模型都以手写数字识别作为具体的实验平台,验证理论的有效性,评价各种方法的优缺点。第三,尽管人们对手写数字的识别已从事了很长时间的研究,并已取得了很多成果,但到目前为止机器的识别本领还无法与人的认知能力相比,这仍是一个有难度的开放问题。最后,手写数字的识别方法很容易推广到其它一些相关问题,一个直接的应用是对英文这样的拼音文字的识别。事实上,很多学者就是把数字和英文字母的识别放在一块儿研究的。
2、手写数字识别的难点
手写数字识别是一个跨学科富挑战性的前沿课题,近年来,手写数字识别技术一直是一个难题。虽然数字只有十种模式,笔划又简单,看起来识别不是很困难。但事实上,一些测试结果表明,数字识别的正确率还不如印刷汉字等的识别正确率高。其困难在于以下三个方面:
(1)数字笔划简单,其笔划差别相对较小,字形相差不大,使得准确区分某些数字(例如3-3与8.0与9,5与6等)相当困难。
(2)手写数字由于各个书写者的一些书写习惯和随意性,造成单个模式内变化很大。
(3)数字前后之间一般无语义相关性。这就减少了通过后处理进行纠正的可能性。从而使手写数字的正确识别率比印刷体汉字识别和联机手写体汉字识别低。为此,研究并建立一高效可靠的识别系统将是难点所在。
三、手写数字识别系统实现及实验结果分析
1、功能模块的介绍
1.1手写模块:手写模块的主要功能是给用户创造一个手写数字的界面,用户通过这个界面,可以通过移动鼠标按自己的手写习惯手写数字字符0——9。手写模块是学习模块、识别模块和清除模块的前提。
1.2學习模块:学习模块的主要功能实现学习功能,用鼠标移动写出的数字字符经过学习模块就写入数据库作为样本,因为不同人的书写风格都不同,同一个数字会有很多种的写法,所以每个数字都要多学习很多次,尽量让写的数字字符样本足够多,样本越多,识别率就会越高。
1.3识别模块:识别模块的主要功能是识别出用户通过鼠标写出的数字字符。因为经过学习模块后,样本库里的样本就已经足够多了,这个时候通过识别模块就可以知道用户所写的数字是不是在样本数据库中。识别模块主要运用的技术是模式匹配。
1.4清除模块:清除模块的功能主要是清除用户手写的数字字符。很多时候用户自己会写错数字字符,这个时候清除功能就非常有必要了。清除模块给用户带来可以随意擦写的方便。
1.5帮助模块:帮助模块的功能是给用户带来帮助,让用户能够轻松的运用这个软件。
2、基于结构特征的手写数字识别系统有学习和识别两个阶段组成。
2.1学习阶段
学习阶段主要是对手写的数字字符(0—9)进行特征提取,把他们的特征写入到样本厍中,为识别阶段提供依据。
2.2识别阶段
识别阶段就是对手写的数字进行提取后与样本库中的数据进行比对,如果库中存在,输出结果;如果比对失败,把他们的特征写入到样本库中。
3、系统实现
本文构建的基于结构特征的手写数字识别系统,采用MFC编写而成。通过把手写数字字符的结构特征保存到样本库中,识别的时候直接把待识别的数字字符和样本库中的所有数据一一相匹配,只要有一个能匹配的就说明能识别,没有匹配的就说明不能识别。当识别不了时,就把待识别数字字符特征存入样本厍中,下次就可以识别了。
本系统主要由学习手写数字字符和识别手写数字字符两部分构成。首先对手写的数字字符进行学习,学习后再对手写的数字字符进行识别。
当用户手写的数字字符存在断点的时候,也是可以识别的。虽然存在断点,但是整个数字字符基本的特征都已经有了,识别时只要和样本库中的数据一一匹配一下,匹配了就能识别。当手写数字字符倾斜时,本系统也是能识别的。当手写数字字符‘6’时,本系统有的时候会出现错误,
4、实验结果与分析
本文对0—9这10个数字字符进行识别,每个数字字符都手写了500次。通过对这些数字字符样本的比对实验发现,本系统对手写数字字符的识别能达到很好的效果,基本上识别率都在90%以上,对规范的手写数字字符,识别率基本可以达到100%。系统也存在一些不足之处,在识别数字字符‘0’、‘6’、‘8’、‘9’时识别的正确率不高,识别率在90%左右。在识别数字‘0’和‘6’时可能会出现识别错误,这些是本系统需要改进的地方。
四、小结
随着信息化的迅速发展,使手写体数字识别在很多领域中都有很多的应用,为此国内外学者已做了大量的研究工作,而且提出了大量优秀的数字识别算法,例如人工神经网络、小波分析、人工免疫系统,支持向量机等方法,其中相关向量机等已经渗透到手写体数字识别,并为现代信号处理发展注入了新的活力,但手写体数字识别在实际应用方面还没能达到理论识别中抗干扰极强、稳定、适合各种个人手写情况的高效系统水平。目前存在的主要问题有:识别精度有待提高,各类核心函数核心参数选择,将自然语言理解知识应用于后处理,高精度与高速度相互矛盾等问题。
实际运用中,数字识别通常会输入大量的数据,通常会涉及到金融等很多财会领域,因此其严格性是不可疏忽的,所以要提高手写数字的精确识别率和降低一些误识率,就要对识别算法提出更多的要求。然而提高数字图像特征获取的研究,采用更好的特着提取方法准别的进行数字识别,设计更为合理的分类器等等都是进一步提高识别率的前提,这些都是需要今后大家深入研究的课题。
[关键词]手写数字识别;建模;系统实现;系统实验
中图分类号:U534 文献标识码:A 文章编号:1009-914X(2015)05-0329-01
一、概述
手写数字识别(Handwritten Numeral Recognition,简称HNR)是光学数字识别(0pitical Character Recognition,简称OCR)技术的一个分支,在整个OCR领域中,最为困难的就是脱机手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就,但距实用还有一定距离。手写数字识别是把手写阿拉伯数字(如0,1,2,…,9)通过扫描或其它方式输入到计算机中,再通过计算机建立的识别系统,自动辨别用笔写在纸或其它介质上的数字。它是模式识别、人工智能的一个重要分支,在办公自动化,机器翻译等方面有重要实用意义。手写数字识别涉及到模式识别和图像处理、人工智能统计决策理论、模糊数学、组合数学、信息论、计算机等学科。手写数字识别是介于基础研究与应用研究之间的一门综合性的技术。手写数字识别主要包括两大类,一类是联机手写数字识别,另一类是脱机手写数字识别。
二、手写数字识别系统的重要意义及难点
1、手写数字识别技术研究的理论意义
手写数字识别作为模式识别领域的一个重要问题,有着重要的理论价值和意义。首先,阿拉伯数字是唯一的被世界各国通用的符号,对手写数字识别的研究基本上与文化背景无关,这样就为各国、各地区的研究工作者提供了一个施展才智的大舞台。其次,由于数字识别的类别数较小,有助于做深入分析及验证一些新的理论。这方面最明显的例子就是人工神经网络,相当一部分的人工神经网络模型都以手写数字识别作为具体的实验平台,验证理论的有效性,评价各种方法的优缺点。第三,尽管人们对手写数字的识别已从事了很长时间的研究,并已取得了很多成果,但到目前为止机器的识别本领还无法与人的认知能力相比,这仍是一个有难度的开放问题。最后,手写数字的识别方法很容易推广到其它一些相关问题,一个直接的应用是对英文这样的拼音文字的识别。事实上,很多学者就是把数字和英文字母的识别放在一块儿研究的。
2、手写数字识别的难点
手写数字识别是一个跨学科富挑战性的前沿课题,近年来,手写数字识别技术一直是一个难题。虽然数字只有十种模式,笔划又简单,看起来识别不是很困难。但事实上,一些测试结果表明,数字识别的正确率还不如印刷汉字等的识别正确率高。其困难在于以下三个方面:
(1)数字笔划简单,其笔划差别相对较小,字形相差不大,使得准确区分某些数字(例如3-3与8.0与9,5与6等)相当困难。
(2)手写数字由于各个书写者的一些书写习惯和随意性,造成单个模式内变化很大。
(3)数字前后之间一般无语义相关性。这就减少了通过后处理进行纠正的可能性。从而使手写数字的正确识别率比印刷体汉字识别和联机手写体汉字识别低。为此,研究并建立一高效可靠的识别系统将是难点所在。
三、手写数字识别系统实现及实验结果分析
1、功能模块的介绍
1.1手写模块:手写模块的主要功能是给用户创造一个手写数字的界面,用户通过这个界面,可以通过移动鼠标按自己的手写习惯手写数字字符0——9。手写模块是学习模块、识别模块和清除模块的前提。
1.2學习模块:学习模块的主要功能实现学习功能,用鼠标移动写出的数字字符经过学习模块就写入数据库作为样本,因为不同人的书写风格都不同,同一个数字会有很多种的写法,所以每个数字都要多学习很多次,尽量让写的数字字符样本足够多,样本越多,识别率就会越高。
1.3识别模块:识别模块的主要功能是识别出用户通过鼠标写出的数字字符。因为经过学习模块后,样本库里的样本就已经足够多了,这个时候通过识别模块就可以知道用户所写的数字是不是在样本数据库中。识别模块主要运用的技术是模式匹配。
1.4清除模块:清除模块的功能主要是清除用户手写的数字字符。很多时候用户自己会写错数字字符,这个时候清除功能就非常有必要了。清除模块给用户带来可以随意擦写的方便。
1.5帮助模块:帮助模块的功能是给用户带来帮助,让用户能够轻松的运用这个软件。
2、基于结构特征的手写数字识别系统有学习和识别两个阶段组成。
2.1学习阶段
学习阶段主要是对手写的数字字符(0—9)进行特征提取,把他们的特征写入到样本厍中,为识别阶段提供依据。
2.2识别阶段
识别阶段就是对手写的数字进行提取后与样本库中的数据进行比对,如果库中存在,输出结果;如果比对失败,把他们的特征写入到样本库中。
3、系统实现
本文构建的基于结构特征的手写数字识别系统,采用MFC编写而成。通过把手写数字字符的结构特征保存到样本库中,识别的时候直接把待识别的数字字符和样本库中的所有数据一一相匹配,只要有一个能匹配的就说明能识别,没有匹配的就说明不能识别。当识别不了时,就把待识别数字字符特征存入样本厍中,下次就可以识别了。
本系统主要由学习手写数字字符和识别手写数字字符两部分构成。首先对手写的数字字符进行学习,学习后再对手写的数字字符进行识别。
当用户手写的数字字符存在断点的时候,也是可以识别的。虽然存在断点,但是整个数字字符基本的特征都已经有了,识别时只要和样本库中的数据一一匹配一下,匹配了就能识别。当手写数字字符倾斜时,本系统也是能识别的。当手写数字字符‘6’时,本系统有的时候会出现错误,
4、实验结果与分析
本文对0—9这10个数字字符进行识别,每个数字字符都手写了500次。通过对这些数字字符样本的比对实验发现,本系统对手写数字字符的识别能达到很好的效果,基本上识别率都在90%以上,对规范的手写数字字符,识别率基本可以达到100%。系统也存在一些不足之处,在识别数字字符‘0’、‘6’、‘8’、‘9’时识别的正确率不高,识别率在90%左右。在识别数字‘0’和‘6’时可能会出现识别错误,这些是本系统需要改进的地方。
四、小结
随着信息化的迅速发展,使手写体数字识别在很多领域中都有很多的应用,为此国内外学者已做了大量的研究工作,而且提出了大量优秀的数字识别算法,例如人工神经网络、小波分析、人工免疫系统,支持向量机等方法,其中相关向量机等已经渗透到手写体数字识别,并为现代信号处理发展注入了新的活力,但手写体数字识别在实际应用方面还没能达到理论识别中抗干扰极强、稳定、适合各种个人手写情况的高效系统水平。目前存在的主要问题有:识别精度有待提高,各类核心函数核心参数选择,将自然语言理解知识应用于后处理,高精度与高速度相互矛盾等问题。
实际运用中,数字识别通常会输入大量的数据,通常会涉及到金融等很多财会领域,因此其严格性是不可疏忽的,所以要提高手写数字的精确识别率和降低一些误识率,就要对识别算法提出更多的要求。然而提高数字图像特征获取的研究,采用更好的特着提取方法准别的进行数字识别,设计更为合理的分类器等等都是进一步提高识别率的前提,这些都是需要今后大家深入研究的课题。