汉字字形切割结果正确性的判别方法与流程

文档序号:12126069阅读:776来源:国知局
汉字字形切割结果正确性的判别方法与流程

本发明属于汉字笔画和部件自动提取领域,涉及一种汉字字形切割结果的判别方法,具体涉及一种利用字形重建、字形属性、部件分类和字形骨架四种判别算法对一种字形切割算法得到的切割结果的正确性进行判别的方法。



背景技术:

汉字的字形切割技术包括对汉字笔画的自动提取和对汉字部件的自动提取。汉字字形切割技术最初作为光学字符识别过程中的预处理步骤,利用字形切割的结果辅助汉字字符的识别。随着字形计算技术的不断发展,汉字字形切割技术成为汉字字库自动生成技术、笔迹鉴定、汉字辅助书写,数字墨水等研究课题中的核心技术,相关研究也出现了蓬勃的发展。

文献Sun 2014(Sun,Hao,Zhouhui Lian,Yingmin Tang,and Jianguo Xiao."Non-rigid point set registration for Chinese characters using structure-guided coherent point drift."2014IEEE International Conference on Image Processing(ICIP),pp.4752-4756.IEEE,2014.)中记载了一种基于使用结构信息指导的非刚性点集注册算法的字形切割方法,该方法对字形的切割总共分为四步。第一步,对待切割字形和楷体数据库中对其相对应的带有部件信息的模板字形进行骨架提取,得到两个骨架提取结果,我们分别称为数据点集和模板点集。第二步,将数据点集、模板点集以及模板点集的部件归属关系作为基于结构信息的非刚性点集注册算法的输入,算法输出的结果即为数据点集的部件归属关系。第三步,将数据点集的归属关系转换成数据轮廓段的归属关系。此时每个部件对应的轮廓段有可能是间断不闭合的。第四步,对上一步生成的轮廓段进行正确的闭合,从而得到完整的部件结果。

字形切割技术对字形切割后得到的子字形称为“部件”。由于汉字字形的复杂性,人们书写时的不确定性,以及算法的准确率等因素的影响,字形切割方法得到的切割结果并不总是完全正确。例如,对上述Sun 2014记载的字形切割方法得到的切割结果,现有技术难以实现对得到的切割结果进行正确性的判别。因此,目前缺少一种对字形切割方法得到的切割结果进行正确性判别的技术。



技术实现要素:

为了克服上述现有技术的不足,本发明提供一种针对汉字字形切割算法结果的正确性的判别方法,可实现针对Sun 2014中提出的字形切割算法存在错误切割的结果,进行正确性的判别。

为方便说明,本发明约定以下术语定义:

部件:对字形进行切割之后得到的结果。

平均笔画宽度:用汉字图像的所有黑色像素点的个数除以汉字图像边缘点的个数。

本发明提供的技术方案是:

一种汉字字形切割结果正确性的判别方法,依次包括基于字形重建的判别过程、基于部件分类的判别过程、基于字形属性的判别过程和基于字形骨架的判别过程;具体包括:

1)基于字形重建的判别过程:

将每一个汉字字形切割得到部件,根据原位置进行重新拼接,对得到的拼接字形和原字形进行像素级别的比较,统计得到差异像素值;设定差异像素值阈值,再根据设定的差异像素值阈值进行判别,将所述字形判别为错误切割结果或正确切割结果;

2)基于部件分类的判别过程:

首先,构建一个由正确部件组成的部件数据集,在所述部件数据集上训练一个部件分类器;然后,使用训练得到的部件分类器对待判别的字形切割结果进行分类,得到分类的结果为正确部件或错误部件;

3)基于字形属性的判别过程:

设定正确部件相对应的字形属性,当部件不符合相应的字形属性时,判定该部件是字形切割错误产生的结果;

4)基于字形骨架的判别过程:

将汉字字形中的每个笔画的轮廓中段进行平滑性的检测,当在笔画中段出现轮廓突变时,判定该字形切割结果错误。

针对上述汉字字形切割结果正确性的判别方法,进一步地,在所述基于字形重建的判别过程、基于部件分类的判别过程、基于字形属性的判别过程和基于字形骨架的判别过程中,当任一判别过程针对待判别的字形切割结果进行判别得到的判定结果为错误切割结果时,将所述待判别的字形切割结果判定为字形切割错误。

针对上述汉字字形切割结果正确性的判别方法,进一步地,所述基于字形重建的判别过程中,所述差异像素值阈值设为笔画宽度的平方。

针对上述汉字字形切割结果正确性的判别方法,进一步地,所述基于字形重建的判别过程具体包括如下步骤:

11)根据原字形的尺寸,生成一个与原字形尺寸相等的差异值矩阵,该差异值矩阵的所有元素均初始化为0;

12)遍历切割得到的每一个部件的结果,根据在原图中的位置,将该部件图像对应到差异值矩阵的一个和部件图像尺寸相等的区域,再将部件图像和差异值矩阵的对应区域进行像素级别的累加;完成所有部件的累加,得到差异值矩阵;

13)分别生成与原字形尺寸相等的一个缺失区域矩阵和一个多余区域矩阵;所述两个矩阵的所有元素均初始化为0,同时遍历原字形的每个像素和所述差异值矩阵的对应位置像素;分两种情况设置原字形像素值;第一种情况是原字形像素值为0,另一种情况是原字形像素值为1;针对第一种情况,当所述差异值矩阵对应像素值为1时,将所述多余区域矩阵对应位置的值设为1,否则设为0;针对第二种情况,当所述差异值矩阵对应像素为0,将所述缺失区域矩阵对应位置的值设为1,否则设为0;

14)分别对所述缺失区域矩阵和多余区域矩阵进行连通区域检测,得到两个矩阵所有的连通区域的像素个数;设定连通区域像素阈值,当任意一个连通区域的像素总数超过所述连通区域像素阈值时,将该字形判别为错误切割结果,否则判别为正确切割结果。

针对上述汉字字形切割结果正确性的判别方法,进一步地,所述基于部件分类的判别过程中,部件分类器的训练包括如下步骤:

21)图像预处理,执行如下操作:

采用非刚性缩放的方式对部件图像进行缩放,将每个部件图像都归一化为一个正方形图像,正方形的边长记为L;

22)选择局部子图像,对局部子图像进行局部特征的提取,得到多个局部特征向量,将局部特征向量的个数记为num_lf;

23)字典构建:

在得到的局部特征向量中,随机采样得到其中多个局部特征作为总的特征集合;局部特征的个数取值范围应大于10000;最大可以设为全部的局部特征向量个数num_lf;采用K均值聚类算法得到num_k个聚类中心,作为稀疏字典;num_k的取值范围是256到全部局部特征的个数num_lf;

24)稀疏表示:

根据上一步得到的稀疏字典,应用稀疏编码算法对一个部件所有的局部特征进行编码;随后采用最大值池化算法将所有的局部特征进行结合,得到一个维度为num_k的稀疏表示特征,维度的数量和聚类中心的数量相等;

25)分类器训练:使用线性支持向量机算法对所述稀疏表示特征进行训练,得到部件分类器。

针对上述汉字字形切割结果正确性的判别方法,进一步地,所述基于部件分类的判别过程中,所述分类具体计算所述待判别的字形切割结果使用分类器得到的部件类别和应属于的部件类别是否相同来判别;当该分类结果与部件应属于的类别不同时,该字形判别为错误切割结果,当该分类结果与部件应属于的类别相同时,该字形判别为正确切割结果。

更进一步地,步骤22)所述局部特征提取,具体执行如下操作:

22a.对局部子图像进行均匀网格切分,得到多个区域,设为n*n个;设局部子图像的边长为L_sub,得到每个区域的边长为L_sub除以n;所述n*n个区域将局部子图像均匀划分,互相之间无交集,合并起来恰好构成切分前的局部子图像;在每个区域内利用Sobel算子进行卷积,得到幅度和相位的结果;

22b.将相位均匀分为n*n个区间,每个区间统计得到局部子图像中相位落在该区间的像素点的幅度值的总和;得到一个n*n维的局部特征;

22c.将n*n区域的相应维度的局部特征进行拼接,得到多维的局部特征。

针对上述汉字字形切割结果正确性的判别方法,进一步地,所述基于字形属性的判别过程中,所述字形属性包括部件尺寸属性和部件区域属性。

针对上述汉字字形切割结果正确性的判别方法,进一步地,所述基于字形骨架的判别过程具体步骤如下:

41)设一个字形切割结果得到的一个部件中笔画个数为N,对于每个部件轮廓上的点,得到N个值,分别代表该轮廓点距离N个笔画骨架的最近距离;

42)将一个轮廓点和所有笔画骨架的最近距离取最小值,将取到最小值的笔画骨架作为轮廓点应属于的笔画,将取到的最小值作为轮廓点和笔画骨架的距离;

43)构建轮廓点集合:设定N个轮廓点集合,初始化为空集,第i个集合代表第i个笔画的轮廓;遍历所有的轮廓点,当轮廓点属于第i个笔画时,将这个轮廓点加入到第i个集合;完成集合的构建之后,将每个集合中距离最近笔画骨架点是笔画的起始M%和末尾M%的轮廓点去除,剩下的轮廓点就是笔画中段的轮廓点;

44)求得每个集合的轮廓点到所属的笔画骨架距离的众数,作为该段笔画的平均笔画宽度;当轮廓点到所属的笔画骨架距离超过了平均笔画宽度的K倍时,判定该轮廓点是突变轮廓;当突变轮廓点的数量超过了预先设定的突变轮廓点数量阈值时,将所述部件判别为错误切割的部件。

更进一步地,步骤41)所述轮廓点距离N个笔画骨架的最近距离的具体计算方法是:对于一个轮廓点,遍历N个笔画骨架,每个笔画骨架遍历所有的骨架点计算得到轮廓点和这些笔画骨架点的距离,取距离的最小值作为该轮廓点距离当前遍历的笔画骨架的最近距离;步骤43)所述M的取值范围是0到50;步骤44)所述K的取值范围是0.8到3;所述突变轮廓点数量阈值为平均笔画宽度的X倍,X的取值范围是0.7到3。

与现有技术相比,本发明的有益效果是:

本发明提供一种针对该字形切割算法的结果进行正确性判别的方法,本方法依次包括基于字形重建的判别过程、基于部件分类的判别过程、基于字形属性的判别过程和基于字形骨架的判别过程,当任一判别过程针对待判别的字形切割结果进行判别得到的判定结果为错误切割结果时,将所述待判别的字形切割结果判定为字形切割错误。通过本发明所提供的字形切割结果判别方法,能够识别出97%以上的错误切割结果。因此,本发明能够有效的判别切割错误的情况。

附图说明

图1是字形切割结果示例;

其中,(a)为字形切割技术得到的正确的字形切割结果;(b)为字形切割技术得到的错误的字形切割结果。

图2是本发明提供的字形切割结果正确性判别方法的流程框图。

图3是本发明实施例中基于字形骨架对字形切割结果正确性进行判别过程截图;

其中,(a)为待判别的部件图像;(b)为该部件的字形骨架;(c)为属于该部件的第五个笔画“横”的边缘点的示意图;(d)为判别出的突变边缘点。

具体实施方式

下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。

字形切割算法运行完成之后可以得到汉字的原字图像、汉字切割得到的所有部件图像、部件所属的类别和部件包含的笔画。本发明提供一种针对该字形切割算法的结果进行正确性判别的方法,本方法依次包括基于字形重建的判别过程、基于部件分类的判别过程、基于字形属性的判别过程和基于字形骨架的判别过程,图2是本发明提供的字形切割结果正确性判别方法的流程框图,具体过程如下:

1)基于字形重建的判别过程

基于字形重建的判别过程通过将一个汉字字形切割得到部件,根据原位置进行重新拼接,对得到的拼接字形和原字形进行像素级别的比较,统计相互对应但是像素值却不同的像素的个数,称为差异像素值。设定差异像素值阈值,再根据设定的差异像素值阈值进行判别。阈值可设为笔画宽度的平方。具体来说可以分为以下四步:

11)根据原字形的尺寸,生成一个与原字形尺寸相等的差异值矩阵,该差异值矩阵的所有元素均初始化为0。

12)遍历切割得到的每一个部件的结果,根据在原图中的位置,将该部件图像对应到差异值矩阵的一个和部件图像尺寸相等的区域,然后将部件图像和差异值矩阵的对应区域进行像素级别的累加。完成所有部件的累加之后,得到最终的差异值矩阵。

13)根据原字形的尺寸,生成一个与原字形尺寸相等的缺失区域矩阵和一个尺寸相等的多余区域矩阵。这两个矩阵的所有元素均初始化为0。同时遍历原字形的每个像素,以及差异值矩阵的对应位置像素。接下来分两种情况,第一种情况是原字形像素值为0,另一种情况是原字形像素值为1。第一种情况下,如果差异值矩阵对应像素值为1,则将多余区域矩阵对应位置的值设为1,否则设为0。第二种情况下,如果差异值矩阵对应像素为0,则将缺失区域矩阵对应位置的值设为1,否则设为0。

14)分别对缺失区域矩阵和多余区域矩阵进行连通区域检测,得到两个矩阵所有的连通区域的像素个数。设定连通区域像素阈值,该阈值为一个非负实数,根据设定的连通区域像素阈值,如果任意一个连通区域的像素总数超过阈值,则将该字形判别为错误切割结果,否则判别为正确切割结果。

2)基于部件分类的判别过程

基于部件分类的判别算法的目的是为了得到字形切割结果和其应属于的部件类别的相似程度,相似程度由分类器的分类结果来度量,分类器的分类结果如果与该字形切割结果应属于的部件类别相同,则认为相似程度高,字形切割结果正确。如果分类器的结果与该字形切割结果应属于的部件类别不同,则认为相似程度低,字形切割结果错误。算法的基本思路是首先构建一个由正确部件组成的部件数据集,部件数据集中包括了部件应属于的类别,在这个部件数据集上训练一个部件分类器,然后使用训练得到的部件分类器对待判别的字形切割结果进行分类,得到分类的结果。如果该分类结果与部件数据集中的部件应属于的类别不同,则判定为错误部件。部件分类器的训练步骤如下:

21)图像预处理;

采用非刚性缩放的方式对部件图像进行缩放。即将每个部件图像都归一化为一个正方形图像,正方形的边长记为L,L的取值标准是部件图像不会产生较大失真,实际应用时可以选择64到256之间的任意整数。使用非刚性缩放的一个好处就是可以间接的对部件图像进行矫正。

22)局部特征提取;

在局部特征提取时,本算法选择的局部子图像为正方形,边长为图像尺寸的四分之一到四分之三范围之间的任意一个值。实际应用时可以取L除以2的。总体来说,先对部件图像进行边缘点的随机采样,每个部件选择200到600个采样点。以每个采样点为中心提取局部子图像,然后对局部子图像进行局部特征的提取。局部特征的提取方式如下:

22a.对局部子图像进行4乘4的均匀网格切分,得到16个区域。设局部子图像的边长为L_sub,则每个区域的边长为L_sub除以4,16个区域将局部子图像均匀划分,互相之间无交集,合并起来则恰好构成切分前的局部子图像。然后在每个区域内利用Sobel算子进行卷积,得到幅度和相位的结果;

22b.将相位均匀分为16个区间,每个区间统计局部子图像中相位落在该区间的像素点的幅度值的总和。统计完所有的像素点之后可以得到一个16维的局部特征。

22c.将16个区域的16维局部特征进行拼接得到256维的局部特征。

23)字典构建;

在对部件数据集中所有部件进行局部特征提取后,可以得到num_lf个局部特征向量,在其中随机采样得到若干局部特征作为总的特征集合,局部特征的个数取值范围应大于10000,最大可以设为全部的局部特征个数。随后采用K均值聚类算法得到num_k个聚类中心作为稀疏字典,num_k的取值范围是256到全部局部特征的个数num_lf。

24)稀疏表示;

根据上一步得到的稀疏字典,应用稀疏编码算法对一个部件所有的局部特征进行编码,随后采用最大值池化算法将所有的局部特征进行结合,得到一个维度为num_k的稀疏表示特征,维度的数量和聚类中心的数量相等。

25)分类器训练;

使用线性支持向量机算法对稀疏表示特征进行训练,得到部件分类器。

3)基于字形属性的判别过程;

基于字形属性的判别算法根据汉字的特点和部件定义的规律,设定一系列的正确部件应具有的字形属性,当部件不符合某一条字形属性时,则认为该部件是字形切割错误产生的结果。字形属性定义如下:

部件尺寸属性:正确部件的宽度和高度至少要大于部件所属字形的一倍平均笔画宽度。字形切割技术定义的部件至少会包含一个笔画,因此切割得到的部件图像尺寸至少要大于一倍平均笔画宽度。

部件区域属性:部件图像中的连通区域的像素总数至少要大于一倍笔画宽度的平方。显然,部件中最小的笔画应该是“点”,因此切割得到的部件图像的连通区域最少要大于等于一个笔画“点”的大小。这里认为最小的“点”的大小近似等于一倍笔画宽度的平方。

4)基于字形骨架的判别算法;

基于字形骨架的判别算法根据笔画中段相对比较平滑这个汉字固有的特点,将每个笔画的轮廓中段进行平滑性的检测,如果在笔画中段出现轮廓突变情况,则认为字形切割结果错误。具体步骤如下:

41)设一个字形切割结果得到的一个部件中笔画个数为N,则对于每个部件轮廓上的点,得到N个值,分别代表该轮廓点距离N个笔画骨架的最近距离。具体计算方法是:对于一个轮廓点,遍历N个笔画骨架,每个笔画骨架遍历所有的骨架点计算得到轮廓点和这些笔画骨架点的距离,取距离的最小值作为该轮廓点距离当前遍历的笔画骨架的最近距离。

42)将一个轮廓点和所有笔画骨架的最近距离取最小值,取到最小值的笔画骨架就是轮廓点应属于的笔画,取到的最小值就是轮廓点和笔画骨架的距离。

43)设定N个轮廓点集合,初始化为空集,第i个集合代表第i个笔画的轮廓。遍历所有的轮廓点,若轮廓点属于第i个笔画,则将这个轮廓点加入到第i个集合。完成集合的构建之后,将每个集合中距离最近笔画骨架点是笔画的起始M%和末尾M%的轮廓点去除,剩下的就是笔画中段的轮廓点,M的取值范围是0到50。

44)求每个集合的轮廓点到所属的笔画骨架距离的众数,并认为这个距离是该段笔画的平均笔画宽度。如果轮廓点到所属的笔画骨架距离超过了平均笔画宽度的K倍,则认为该轮廓点是突变轮廓,K的取值范围是0.8到3。当突变轮廓点的数量超过了预先设定的阈值,则将这个部件判别为错误切割的部件,突变轮廓点数量阈值为平均笔画宽度的X倍,X的取值范围是0.7到3。

5)设置分类决策方法。本方法的分类决策方法设置为,只要被上述任何一种算法判定为错误,则将字形切割结果判定为错误。

图1是字形切割结果示例;其中,(a)为字形切割技术得到的正确的字形切割结果;(b)为字形切割技术得到的错误的字形切割结果。以下是采用本发明提供方法判断字形切割结果正确性的实施方式。

1、运用基于字形重建的算法,统计缺失区域矩阵和多余区域矩阵的连通区域的像素个数。如果任意一个连通区域的像素总数超过一倍笔画宽度的平方,则将该字形判别为错误切割结果,算法结束。否则进入2。具体来说,包含以下步骤:

a.根据原字形的尺寸,生成一个与原字形尺寸相等的差异值矩阵,该差异值矩阵的所有元素均初始化为0。

b.遍历切割得到的每一个部件的结果,根据在原图中的位置,将该部件图像对应到差异值矩阵的一个和部件图像尺寸相等的区域,然后将部件图像和差异值矩阵的对应区域进行像素级别的累加。完成所有部件的累加之后,得到最终的差异值矩阵。

c.根据原字形的尺寸,生成一个与原字形尺寸相等的缺失区域矩阵和一个尺寸相等的多余区域矩阵。这两个矩阵的所有元素均初始化0。同时遍历原字形的每个像素,以及差异值矩阵的对应位置像素。接下来分两种情况,第一种情况是原字形像素值为0,另一种是原字形像素值为1。第一种情况下,如果差异值矩阵对应像素值为1,则将多余区域矩阵对应位置的值设为1,否则设为0。第二种情况下,如果差异值矩阵对应像素为0,则将缺失区域矩阵对应位置的值设为1,否则设为0。

d.分别对缺失区域矩阵和多余区域矩阵进行连通区域检测,得到的两个矩阵所有的连通区域的像素个数。根据设定的连通区域像素阈值,如果任意一个连通区域的像素总数超过一倍笔画宽度的平方,则将该字形判别为错误切割结果,否则判别为正确切割结果。

2.利用基于部件分类的判别算法,得到的部件分类器对每个部件的类别进行分类。如果有一个部件的类别与其所应属于的类别不符合,则将该字形判别为错误切割结果,算法结束。否则进入3。

3.运用基于字形属性的判别算法,只要有一个部件不输入任意一个字形属性,则将该字形判别为错误切割结果,算法结束。否则进入4。

4.运用基于笔画骨架的判别算法,具体实施方式如下:

a.如附图3所示,该部件图像中笔画个数为5,对于每个部件轮廓上的点,可以得到5个值分别代表该轮廓点距离每个笔画骨架的最近距离。具体计算方法是对于一个轮廓点,遍历5个笔画骨架,每个笔画骨架遍历所有的骨架点计算得到轮廓点和这些笔画骨架点的距离,取距离的最小值作为该轮廓点距离当前遍历的笔画骨架的最近距离。

b.将一个轮廓点和所有笔画骨架的最近距离取最小值,取到最小值的笔画骨架就是轮廓点应属于的笔画,取到的最小值就是轮廓点和笔画骨架的距离。设定5个轮廓点集合,初始化为空集,第i个集合代表第i个笔画的轮廓。遍历所有的轮廓点,若轮廓点属于第i个笔画,则将这个轮廓点加入到第i个集合。完成集合的构建之后,将每个集合中距离最近笔画骨架点是笔画的起始20%和末尾20%的轮廓点去除,剩下的就是笔画中段的轮廓点。

c.求每个集合的轮廓点到所属的笔画骨架距离的众数,并认为这个距离是该段笔画的平均笔画宽度。如果轮廓点到所属的笔画骨架距离超过了平均笔画宽度的1倍,则认为该轮廓点是突变轮廓。如附图3中的轮廓异常部分。当突变轮廓点的数量超过了0.8倍笔画宽度,则将这个部件判别为错误切割的部件。

需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1