1. 引言
汉字是非字母化的文字,在当今高度信息化的社会里,如何快速高效地将汉字输入计算机,已成为影响人机接口效率的一个重要瓶颈,也关系到计算机能否真正在我国得到普及应用。因此,进行汉字识别的研究与开发,使汉字输入自动化,具有广泛的应用前景和重大的经济价值。
汉字识别技术可分为印刷体汉字识别和手写体汉字识别两大类,后者又可分为联机(on-line)手写汉字识别和脱机(off-line)手写汉字识别。其中又以脱机手写汉字识别最为困难。
主要表现在:
数量多:由于汉字数量众多,一级汉字有3755个,二级汉字有6763个。汉字识别问题属于超多类模式集合的分类问题
变形大:印刷体汉字有宋体、楷体、黑体、仿宋体、圆体等字体,手写体汉字更是因人而异,一人一个写法,而且同一个人在不同的时间书写的汉字也不尽相同
相似字:人、入;已、己等等。
2. 算法
SVM(Support Vector Machine)或称支撑向量机是在统计学习理论基础上发展起来的一种新的通用的模式识别方法。本文提出的采用基于SVM的分类决策方法,在小字符集脱机手写体汉字识别问题中,取得了较好的效果。
SVM算法的基本思想是根据Vapnik提出的结构风险最小化(Structure Risk Minimization)原理,通过最大化分类间隔或边缘(Margin)尽量提高学习机的泛化(Generalization)性能。下面对SVM算法做一简要介绍。
2.1 最优分类面
设线性可分样本集(Xi,Yi),i=1,…,n,X∈Rd,Y∈{+1,-1}是类别标号。D维空间中线性判别函数一般形式为g(X)=W·X+b,分类面方程为:W·X+b=0,将判别函数归一化,使得两类所有样本都满足|g(X)|≥1,即使离分类面最近的样本的|g(X)|=1,这样分类间隔就等于2/‖W‖,因此使间隔最大最大等价于‖W‖(或‖W‖2)最小;而要求分类线对所有样本正确分类,要求满足
Yi[(W·Xi)+b]-1≥0,i=1,2,…,n。
满足上述条件且使‖W‖2最小的分类面就是最优分类面,过两类样本中离分类面最近的点且平行于最优分类面上超平面H1、H2上的训练样本就是上式中使等号成立的样本,称为支撑向量(Support Vectors)。因为他们支撑起了最优分类面。
其中分类间隔最大的超平面称为最优分类面。
它通过选择训练一组称为支持向量(Support Vectors)的特征子集,使得对支持向量集的线性划分等价于对整个数据集的分割,实现了在保证分类精度的同时降低运算的复杂度。简单地说,支撑向量就是支撑最优分类面的向量。
当问题线性不可分时,通过非线性变换到高维空间中的线性问题。非坐标变换,而只改变内积的定义,避免了维数灾难。
3. 特征提取
为了增大各样本之间的区分性。采用三种方法提取特征。即外围轮廓法、投影法(笔划密度特征)和网格点阵法。每个汉字样本在特征提取以前先进行预处理,包括位置归一化、大小归一化和细化。
3.1 外围轮廓特征
针对规格为24x24的二值图像汉字样本,按先后顺序从左、右、上、下四边分别向右、作、下、上四个方向扫描,直至扫描线遇到汉字象素点或与扫描线垂直的中轴,记下各自扫描线走过的距离,即为该汉字样本的外围轮廓特征。显然,是一24x4=96维的特征。之所以,扫描到中轴就停止,而不是扫描到底,是因为这样可以防止冗余信息。
3.2 投影特征(笔划密度特征)
针对规格为24x24的二值图像汉字样本,按先后顺序从左、上两边分别向右、下两个方向扫描,记下扫描线所穿过的汉字笔划数,即为该汉字的投影特征。这是一个24x2=48维的特征。优字的垂直投影和水平投影分别如图所示:
图1 垂直投影 图2 水平投影
3.3 网格点阵特征
针对规格为24x24的二值图像汉字样本,把汉字分成均匀的网格,比如2x2,4x4等,然后计算网格中汉字象素点的个数,即为该汉字样本的网格点阵特征。统计时,按从左至右、从上到下的顺序进行。如果网格是2x2的,则该特征有24x24/2/2=144维。
4. 实验结果和分析
4.1 实验参数和结果
本文选用的试验数据为同济大学教务处手写体成绩识别系统中经过二值化和去噪等预处理后的中文字符图像数据,包括“优”,“良”,“中”,“及”,“格”,“不”6种汉字。
下图为部分汉字样本的图像:
应用SVM方法,核函数选择RBF径向基函数,选择不同的特征和参数,训练集6类汉字共1562个。各种特征最优的实验结果如下:
汉字特征 | 外围轮廓 | 投影 | 网格点阵 |
优 | 97.9% | 97.5% | 98.6% |
良 | 97.1% | 92.5% | 98.0% |
中 | 99.7% | 99.0% | 99.0% |
不 | 100% | 97.2% | 100% |
及 | 89.0% | 85.8% | 89.0% |
格 | 95.8% | 94.0% | 96.3% |
总体 | 96.4% | 94.2% | 96.7% |
4.2 多分类器
将这三个分类器通过简单投票法组合成多分类器,即有两个或两个以上的分类器作出决策A,则认为决策A合法,若每个分类器作出的决策不同,则选择识别率较高的分类器的决策。
这样得到的组合分类器的识别率在97.7%以上,识别率提高了1%以上。
从概率上分析,假设分类器A正确率96%、分类器B正确率94%和分类器C正确率97%,三者组合识别率应该在96%*94%*3%+94*97%*4%+96%*97%*6%+94%*96%*97%=99.5%以上。实际效果并没有这么好,是因为上述公式成立的条件是识别错误的汉字足够发散,也就是说分类器A识别错误的汉字,分类器B应该有94%的识别正确率,实际上并非如此。很多分类器A识别错的汉字,在分类器B和C中还是有很高的错误率。
因此,如果想通过多分类器组合来实现高识别率,不同分类器的错误应该尽量发散,或者有足够多的分类器。
5. 总结
本文阐述了应用SVM实现小字符集脱机手写汉字识别系统,分别介绍了三种不同特征,取得了较好的识别率。并且分析了多分类器集成的效果,提出了进一步增强识别率的方法。
今后的研究方向主要是神经网络、HMM等其他分类器,相信识别错误汉字的离散度会比都使用SVM分类的分类器要高。这样,组合成多分类器就可以取得更高的识别率。