数字识别的应用中,人们往往很关心的一个指标是“识别精度”,即:在所有识别的字符中,除去拒识字符,正确识别的比例有多大,我们定义:
识别精度P=A/(A+S)*100%。
一个理想的系统应是R,S尽量小,而P,A尽可能大。而在一个实际系统中,S,R是相互制约的,拒识率R的提高总伴随着误识率S的下降,与此同时识别率A和识别精度P的提高。因此,在评价手写数字识别系统时,我们必须综合考虑这几个指标。另外,由于手写数字的书写风格、工整程度可以有相当大的差别,因此必须弄清一个指标在怎样的样本集合下获得的。
以上多种因素使得不同系统的性能很难做绝对比较,根据作者从文献中所看到的和在科研研究的较高水平是:对自由书写的数字,在不拒识时达到96%以上的识别率;在拒识少于15%的样本时,误识率能降到0.1%以下。
2.4 基于手写数字识别的应用系统的特殊要求:
尽管手写数字识别与一般的文本(如:汉字,英文等)识别同属于光学字符识别(OCR)的大范畴,从应用的角度出发,手写数字识别应用系统有很多特殊的要求:
1. 识别精度要达到很高的水平:
在一般的文本识别中,信息的冗余较大,有充分的上下文信息,因而对识别的精度要求不是十分高,达到98%-99%就足够了。而在数字识别中,由于没有上下文关系,数据中的每一位数字都至关重要(试想:在财务报表中,把40,000元认成90,000元,从字符识别的角度仅认错了一个数字,但对用户而言,这是一个绝对不能容许的错误)。一般来说,这类实用系统的精度至少应在99.9%以上。前面已经提到,高性能的自由手写数字识别是一个很困难的问题,至今为止还没有什么方法能与人的辨识能力相比,那么在目前的技术水平下,如何满足高精度的要求呢?
(1) 要求书写者用规定的字型认真填写,避免使用某些容易造成混淆的变体。
这个限制对用户可能是很不方便的,因为这意味着书写速度的降低和书写习惯的改变,但从整体上,系统的识别水平将有大幅度的提高,能很大程度上提高系统的运行效率。
(2) 提高拒识率。
通过提高拒识率就可以减低误识率,直到达到指定的精度要求。当然,拒识的增多意味着操作人员的介入的增加,这对用户是极为不利的。
(3) 加入逻辑校验。
在通信系统中,人们常通过加校验码来保证数据的高质量传输,常见的校验码有:奇偶校验,汉明码等。在基于手写数字的应用系统中,我们也可以采用类似的方法。不过,这时校验方式应尽量简单,直观,利于填写人快速算出。
2. 对处理速度也有很高的要求:
数字识别面对的都是极其大量的数据报表,一般都要求达到每分钟几页到几十页的处理能力(包括扫描到完成识别的全过程)。而众所周知,处理速度与处理精度是一对矛盾,现在既要达到前面提到的高识别精度,又要有如此之高的速度,无疑增加了系统的设计难度。不过近年来,硬件水平提高很快,目前市场上已有较低价格,每分钟可扫描10-20页的高性能扫描仪;微机的运算速度更是飞快提高。这些都为高的处理速度奠定了坚实的基础。
3. 要能批量自动作业。
在一般的文本识别中,多是操作者一页页地送入文本,手工帮助机器进行版面分割(机器的自动分割能力往往是十分有限的)后再开始识别,很难保证高质量的批量自动识别。而在数字识别系统中这是一个必须做到且应能做到的基本要求。原因如下:
(1) 如果每页的处理都要人手工帮助完成,系统的综合处理速度无法达到要求;
(2) 扫描仪的自动进纸(ADF-Automatic Document Feeding)技术已十分成熟;
(3) 处理的对象在很多情况下是版面完全相同的大批表格,很容易作到栏目的自动提取。
4. 要有便于批量快速校对修改的手段。
3. 手写体数字识别的基本原理本系统主要由手写体数字识别的训练过程和识别过程组成,训练过程和识别过程均包括预处理、特征提取和模式识别三部分。系统构成如图3.1所示。
图3.1 系统流程图
下面分别介绍各部分工作的基本原理。
3.1 预处理
预处理主要由二值化,平滑去噪,规范化,细化等组成。
本文采用了基于阈值的二值化算法,通过最大类间方差法即OTSU方法,统计图像的灰度直方图选取全局阈值,然后进行二值化处理。
其次,在二值化后利用均值滤波的方法消除孤立点、线的噪声,这样图中就只剩下手写体数字。在滤波中本文采用的是3*3大小的模板。
平滑去噪后,对图像进行规范化处理。找出图像中数字的边界,然后提取出数字把它居中放置在正方形方框中,再对此正方形图像进行线性插值缩放,使它变为统一规格大小的图像,本文中归一化图像的大小是36*36。
在提取特征之前,要对手写体数字进行细化。本文是采用的基于数学形态学的细化算法。细化可用两步腐蚀来实现:第一步是正常的腐蚀,但它是有条件的,也就是说,那些被标为可除去的像素点并不立即消去;在第二步中,只将那些消除后并不破坏连通性的点消除,否则保留。以上每一步都是一个3*3邻域运算。细化是将一个曲线性数字细化为一条单像素宽的线,从而图形化地显示出其拓扑性质。
数字图像预处理前后效果比较如下图所示。图3.2为数字“5”的原始图像,图3.3为对图3.2预处理后的结果图。类似地,图3.4为数字“6”的原始图像,图3.5为对图3.4预处理后的结果图。
图3.2 原始图像
图3.3 预处理后图像
图3.4 原始图像
图3.5 预处理后图像
3.2 特征提取
特征提取的目的是从原始数据中抽取出用于区分不同类型的本质特征。无论是识别过程还是学习过程,都要对研究对象固有的、本质的重要特征或属性进行量测并将结果数值化,形成特征矢量。
通常能描述对象的元素很多,为了节约资源,节省计算机存储空间、处理时间、特征提取的费用,有时更是为了可行性,在保证满足分类识别正确率要求的条件下,按某种准则尽量选用对正确分类识别作用较大的特征,使得用较少的特征就能完成分类识别任务。这项工作表现为减少特征矢量的维数或符号字符数。在本系统中采用对待识别数字图像进行行列扫描与数字起点结合的方法提取特征。