CN103324929B - 基于子结构学习的手写中文识别方法 - Google Patents
基于子结构学习的手写中文识别方法 Download PDFInfo
- Publication number
- CN103324929B CN103324929B CN201310255159.3A CN201310255159A CN103324929B CN 103324929 B CN103324929 B CN 103324929B CN 201310255159 A CN201310255159 A CN 201310255159A CN 103324929 B CN103324929 B CN 103324929B
- Authority
- CN
- China
- Prior art keywords
- minor structure
- segmentation
- character
- chinese character
- minor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Character Discrimination (AREA)
Abstract
本发明公开了一种基于子结构学习的手写中文识别方法,将字符分割片段视为汉字的子结构,从汉字分割片段样本中提取汉字子结构模式,并将汉字子结构模式纳入汉字分类器训练中,最后结合子结构识别信息和汉字子结构组成信息实现手写中文字符串的识别。本发明基于汉字是由一个或多个子结构组成的这一特点,通过提取汉字子结构,并在汉字分类器中将汉字子结构和汉字单字同时进行训练,能有效提高手写中文字符串识别过程中字符分割片段的识别可靠性,减少由于不可靠的字符分割片段识别导致手写中文字符串的识别错误,提高手写汉字识别精度。
Description
技术领域
本发明属于模式识别学科技术领域,特别是一种手写中文字符串的识别方法。
背景技术
手写中文识别技术在办公自动化、数据录入、人机交互等领域具有广泛的应用,然而无限制的手写中文识别技术是其中的难点,制约了其在实际商用中的普及,但其良好的应用前景使其成为当前技术研究的热点。传统手写中文识别技术采用基于识别的分割方法来实现手写中文字符串的识别,先将中文字符串分割成若干个字符片段,通常一个字符会被分割成一个或多个字符片段,由此构成一个字符片段序列,不同的字符片段组合方式形成不同的分割路径。然后,利用汉字识别器/分类器对字符片段的组合进行识别,选择一条汉字识别置信度最高的分割路径实现对手写中文字符串的分割与识别。显然,该技术希望错误的分割片段组合上得到的汉字识别置信度越低越好。传统方法所使用的汉字分类器只对汉字类别进行了训练,而实际应用中,由于手写汉字变形大、不规范、手写风格差异大等诸多因素影响下,传统汉字识别器在字符分割片段上的识别可靠性低,限制了最终的字符串识别精度。若能将稳定的字符分割片段模式提取出来并纳入分类器训练,将有助于提高汉字单字与字符分割片段间的识别与辨析可靠性。
发明内容
本发明就是为了解决上述现有技术中的问题,而提供一种基于子结构学习的手写中文识别方法,将字符分割片段视为汉字的子结构,从汉字分割片段样本中提取汉字子结构模式,并将汉字子结构模式纳入汉字分类器训练中,最后结合子结构识别信息和汉字子结构组成信息实现手写中文字符串的识别。
本发明是按以下技术方案实现的:
一种基于子结构学习的手写中文识别方法,包括子结构学习和基于子结构识别的手写文本识别两大部分;其中,子结构学习包括如下步骤:
步骤1.1局部子结构学习,从某一个汉字对应的分割样本中通过聚类分析去发现和提取局部子结构模式;
步骤1.2全局子结构学习,合并前各局部子结构对应的字符分割片段样本,作为对应全局子结构的训练样本;
步骤1.3创建子结构字典,存储子结构列表和字符分割模式列表;子结构列表中存储步骤1.2中获得的全局子结构;字符分割模式列表记录所有汉字的字符分割模式;
步骤1.4子结构识别器训练,子结构识别器的训练采用的识别特征和识别方法与字符识别器相同。所谓字符识别器是针对单字识别,专业技术人员可用任何已知的单字字符识别方法或训练得到的单字字符识别器。
基于子结构识别的手写文本识别部分包括如下步骤:
步骤2.1字符分割,采用过分割的方法,使一个字符由一个或多个分割片段组成;
步骤2.2分割片段组合生成,相邻的一个或几个分割片段组成一个分割片段子序列,按不同组合方式,对分割片段序列进行划分,再按顺序连接成一个分割片段序列组合;
步骤2.3基于字符识别器的汉字识别,以分割片段子序列为单位,使用字符识别器逐个进行识别,并获得字符分割片段子序列的字符识别置信度;
步骤2.4基于子结构识别器的汉字识别,先在分割片段上使用子结构识别器进行子结构识别,然后通过子结构序列寻找匹配的汉字分割模式,实现汉字识别;
步骤2.5分割路径搜索,一个分割片段序列组合将对应一条分割路径,分割路径搜索为在所有的分割路径中寻找字符串识别置信度最高的一条分割路径,并将该分割路径对应的识别结果作为最终识别结果。
其中,局部子结构学习的聚类分析包括以下步骤:
步骤1.1.1为第i个汉字提取分割片段特征向量:
表示第i个汉字,该汉字有个训练样本,其中第j个样本为,字符样本的分割结果为分割片段序列,为序列长度,即分割片段个数;对第i个汉字的每个样本进行字符分割,获得每个样本的分割片段序列,提取各个分割片段的特征向量,第i个汉字的所有字符分割片段的特征向量保存在列表Li中,如公式(1)所示;
(1)
其中是第i个汉字所有训练字符样本生成的分割片段的总数;
步骤1.1.2为第i个汉字构建分割片段样本距离矩阵:
矩阵行列数为该汉字的分割片段样本总数,每个矩阵元素为分割片段样本两两间的距离:
(2)
步骤1.1.3构建相似样本直方图:
直方图的每一项为样本集中与某个样本相似的样本数目
(3)
相似判据为两样本间距离小于某一阈值,的取值范围大于0,可优选为0.8。;
步骤1.1.4在相似样本直方图中搜索第t轮具有最大值的样本k(t),计算方法如公式(4),t从1开始计数;
(4)
步骤1.1.5分配初始聚类样本:将与第k(t)个样本相似的所有样本分配给第t个分割片段聚类,已分配样本将并在后一轮处理中被忽略,然后搜索轮数加1,即t=t+1;
步骤1.1.6重复步骤1.1.4到步骤1.1.5,直到第t轮直方图最大值小于某个值,即:
(5)
其中;
其中,的取值范围大于0小于1,可优选为0.4。
步骤1.1.7:进行聚类迭代:初始聚类数目为t,且在上述t个初始聚类样本基础上执行聚类迭代,未被分配到初始聚类的样本被舍弃;采用k-means聚类方法执行该聚类分析;
步骤1.1.8:获取第i个汉字的局部子结构列表:以分割片段聚类中心来表示子结构模式,一个聚类对应一个局部子结构,这样,第i个汉字的局部子结构记录为:
(6)
步骤1.1.9:重复步骤1.1.1至1.1.8,逐类获得所有汉字的局部子结构,所有的局部子结构被记录在列表LSS中,如公式(7)所示:
(7)
其中,NLSS为局部子结构的数目。
所述的子结构识别器训练可以采用子结构识别器和字符识别器独立训练的方式,也可以采用子结构识别器和字符识别器一起训练生成融合识别器的方法,在融合识别器中,类型2子结构与其相似的汉字共享分类器单元。
全局子结构学习聚类分析包括如下步骤:
步骤1.2.1构建子结构距离矩阵,检测候选相似子结构:
矩阵行列数为局部子结构总数,每个矩阵元素为局部子结构两两间的距离:
(8)
距离越小,则两个子结构相似度越高,满足以下条件的两个子结构被视为相似子结构:
(9)
其中,分别为第m和第n个局部子结构对应的分割片段样本聚类的标准方差,取值为大于0,可优选为0.3。
步骤1.2.2生成初始子结构聚类:
将两个相似子结构互相为最相似子结构的两个子结构合并为一个初始子结构聚类;
步骤1.2.3初始子结构聚类生长:
以初始子结构聚类为基础,若某个子结构与某个相似子结构聚类内所有成员子结构都构成相似关系,则把该子结构加入到初始子结构聚类中;遍历所有的子结构并重复执行,直到未有新的子结构被合并到初始子结构聚类中,该步骤结束;
步骤1.2.4相似子结构聚类合并:
未被合并到初始子结构聚类的子结构各自构成一个只包含自身的子结构聚类;若两个子结构聚类间相似子结构对的数目大于以下阈值,则该两个子结构聚类视为相似子结构,进行合并;
(10)
其中,分别为第m和n个子结构聚类中局部子结构的数目,取值大于0小于1。
重复执行该步骤,直到未有新的相似子结构聚类合并发生,最终,每个子结构聚类中心SS(n),n=1,…,NGSS表示一个全局子结构,所有的全局子结构记录在列表GSS中,如公式(11)所示;
(11)
其中,NGSS为全局子结构的数目。
步骤1.2.5全局子结构类型划分:
全局子结构分为两类,类型1为不相似于汉字的全局子结构,类型2为相似于汉字的全局子结构;对于类型2子结构,在子结构识别器中,直接使用对应汉字的分类器单元;类型2全局子结构满足式(12)所示条件;
(12)
其中,为第n个子结构和第i个汉字间的距离,如公式(13)所示;
(13)
为所有子结构和汉字距离的平均值,取值大于0。
创建子结构字典步骤中,获取字符分割模式的步骤如下:
对于第i个汉字第j个训练样本的分割片段序列,若其每个分割片段样本都能找到对应的全局子结构,则该分割片段序列有子结构序列和其匹配,该子结构序列即为该汉字的一种字符分割模式,记为;排除重复的字符分割模式即得到该汉字的所有字符分割模式。
步骤2.4的具体实现方法如下:
步骤2.4.1分割片段子结构识别
使用子结构分类器对各个分割片段子序列进行识别,获得不同字符分割片段序列的子结构识别结果;
步骤2.4.2利用子结构组合识别汉字
在分割片段序列中通过不同组合方式,获得不同的子结构序列;若多个子结构识别结果组成的子结构序列,能在子结构字典中寻找到匹配的分割模式,则表明该子结构序列可构成相应汉字。
步骤2.5中寻找最优分割路径的方法为,将单个汉字的两种识别结果,基于字符识别器的汉字识别结果和基于子结构识别器的汉字识别结果,进行比较,比较这两个识别结果中的识别置信度,取识别置信度较高的识别结果为该分割片段序列上的汉字识别结果,并在此基础上计算不同分割路径下的字符串识别置信度,取置信度最高的分割路径为最优分割路径,并将最优分割路径对应的识别字符串作为最终的文本识别结果。
本发明具有的优点和积极效果是:
本发明基于汉字是由一个或多个子结构组成的这一特点,通过提取汉字子结构,并在汉字分类器中将汉字子结构和汉字单字同时进行训练,能有效提高手写中文字符串识别过程中字符分割片段的识别可靠性,减少由于不可靠的字符分割片段识别导致手写中文字符串的识别错误,提高手写汉字识别精度。
附图说明
图1是本发明基于子结构学习的手写中文识别方法系统框图;
图2是基于两阶段聚类的子结构学习方法的流程图;
图3是一个汉字的局部子结构学习示意图;
图4是两种子结构类型的示意图;
图5是字符分割片段序列、子结构序列和字符分割模式间关系的示意图;
图6是本发明的基于子结构识别的手写文本识别方法与传统方法的对比示意图。
具体实施方式
为了实现发明目的,本发明做了以下工作:
1)提出了一种汉字子结构的自动学习方法:
将字符分割片段视为汉字的子结构,从实际文本和字符样本中生成大量的汉字分割片段样本,通过对这些样本的聚类分析自动提取出稳定的字符分割片段模式作为汉字子结构模式,并记录下不同汉字的子结构组成信息,存放在子结构字典中。同时,为了解决大量样本所带来的计算困难,提出了一种两阶段聚类分析方法,将子结构学习分为局部子结构学习和全局子结构学习两阶段进行。
2)提出了一种基于子结构识别的手写文本识别方法:
利用汉字子结构识别器在字符分割片段上的识别结果,结合子结构学习中获取的汉字子结构组成信息,若发现存在由字符分割片段模式组成的合法汉字,则与字符分割片段组合的汉字识别结果进行比较,优选结果作为最终文本字符串中的汉字识别结果。
由此可得,本发明中基于子结构学习的手写中文识别方法包括两部分,子结构学习和基于子结构识别的手写文本识别。整个系统流程图如图1所示。
一、子结构学习:
常用的汉字有数千个,对应的子结构也在数千个左右。同时,在汉字识别器训练中通常每个汉字使用数百个样本,对应每个汉字有数千个汉字分割片段样本。因此,在一般情况下,子结构学习问题实际上是从数百万个汉字分割样本中发现和提取数千个子结构模式的问题。手工实现这个工作不现实,采用自动聚类的方式来实现这一个任务成为必然。但这样大量的样本数据难于一次导入普通计算机中进行运算,即便如此,过长计算时间也难于接受。为此,本发明的方法采用两阶段聚类分析来实现子结构学习过程。
1)局部子结构学习
局部子结构被定义为字符相关子结构,即存在于某一个汉字字符中的子结构模式。仅从某一个汉字对应的分割样本中通过聚类分析去发现和提取局部子结构模式。
2)全局子结构学习
显然,不同字符间存在大量相同或相似的子结构模式,这些子结构模式应该被合并起来,最后作为全局子结构,也就是一般所说的子结构。在子结构组成信息和子结构识别器训练中,都是以全局子结构为基础进行处理。合并前各局部子结构对应的字符分割片段样本都作为对应全局子结构的训练样本。
由此,加上创建子结构字典和子结构识别器训练两步骤,子结构学习共包括四个步骤,如图2所示。
步骤1.1局部子结构学习
假设汉字字符集中共有个汉字,表示第i个汉字,该汉字有个训练样本,其中第j个样本为,字符样本的分割结果为分割片段序列,为序列长度,即分割片段个数。用字符分割片段图像上提取的字符识别特征向量来表示各个分割片段。局部子结构学习对汉字逐个类别进行聚类分析,提取各个汉字类的子结构,为了提取稳定的分割片段模式,局部子结构的聚类分析包括以下步骤:
步骤1.1.1为第i个汉字提取分割片段特征向量。
对第i个汉字的每个样本进行字符分割,获得每个样本的分割片段序列,提取各个分割片段的特征向量,第i个汉字的所有字符分割片段的特征向量保存在列表Li中,如公式(1)所示。
(1)
其中是第i个汉字所有训练字符样本生成的分割片段的总数。
步骤1.1.2:为第i个汉字构建分割片段样本距离矩阵。
矩阵行列数为该汉字的分割片段样本总数,每个矩阵元素为分割片段样本两两间的距离:
(2)
步骤1.1.3:构建相似样本直方图。
直方图的每一项为样本集中与某个样本相似的样本数目
(3)
相似判据为两样本间距离小于某一阈值,的取值范围为大于0,可优选设为0.8。
步骤1.1.4:在相似样本直方图中搜索第t轮具有最大值的样本k(t),计算方法如公式(4)。t从1开始计数。
(4)
步骤1.1.5:分配初始聚类样本。将与第k(t)个样本相似的所有样本分配给第t个分割片段聚类,已分配样本将并在后一轮处理中被忽略,然后搜索轮数加1,即t=t+1。
步骤1.1.6:重复步骤1.1.4到步骤1.1.5,直到第t轮直方图最大值小于某个值,即:
(5)
其中,的取值范围为大于0小于1,可优选设置为0.4。
步骤1.1.7:进行聚类迭代。初始聚类数目为t,且在上述t个初始聚类样本基础上执行聚类迭代,未被分配到初始聚类的样本被舍弃。一般可采用k-means聚类方法执行该聚类分析。
步骤1.1.8:获取第i个汉字的局部子结构列表。以分割片段聚类中心来表示子结构模式,一个聚类对应一个局部子结构,这样,第i个汉字的局部子结构记录为:
(6)
步骤1.1.9:重复步骤1.1.1至1.1.8,逐类获得所有汉字的局部子结构,所有的局部子结构被记录在列表LSS中,如公式(7)所示。
(7)
其中,NLSS为局部子结构的数目。
实际上,步骤1.1.2至步骤1.1.6都是在初始化聚类参数,包括聚类数目和初始聚类样本分配的工作,其目的就在于发现稳定、高概率出现的分割片段模式,排除不稳定的、少见的分割片段噪声样本。图3给出了以一个汉字“啊”为例的子结构学习示意图。
步骤1.2全局子结构学习
全局子结构学习的主要目的在于寻找不同字符间相似的分割片段模式,并将它们合并起来,其中准确发现局部子结构间的相似关系是关键。具体而言,全局子结构学习采用的聚类分析方法为:
步骤1.2.1:构建子结构距离矩阵,检测候选相似子结构。
矩阵行列数为局部子结构总数,每个矩阵元素为局部子结构两两间的距离:
(8)
距离越小则两个子结构相似度越高,满足以下条件的两个子结构被视为相似子结构:
(9)
其中,分别为第m和第n个局部子结构对应的分割片段样本聚类的标准方差,取值为大于0,可优选设为0.3。
步骤1.2.2:生成初始子结构聚类。
若两个相似子结构互相为最相似子结构,则该两个子结构合并为一个初始子结构聚类。
步骤1.2.3:初始子结构聚类生长。
以初始子结构聚类为基础,若某个子结构与某个相似子结构聚类内所有成员子结构都构成相似关系,则把该子结构加入到初始子结构聚类中。遍历所有的子结构并重复执行,直到未有新的子结构被合并到初始子结构聚类中,该步骤结束。
步骤1.2.4:相似子结构聚类合并。
未被合并到初始子结构聚类的子结构各自构成一个只包含自身的子结构聚类。若两个子结构聚类间相似子结构对的数目大于以下阈值,则该两个子结构聚类视为相似子结构,进行合并。
(10)
其中,分别为第m和n个子结构聚类中局部子结构的数目,取值大于0小于1,可优选设为0.5。
重复执行该步骤,直到未有新的相似子结构聚类合并发生。最终,每个子结构聚类中心SS(n),n=1,…,NGSS表示一个全局子结构,所有的全局子结构记录在列表GSS中,如公式(11)所示。
(11)
其中,NGSS为全局子结构的数目。
步骤1.2.5:全局子结构类型划分。
很多子结构本身也是汉字单字,或者相似于汉字单字。因此,全局子结构分为两类,类型1为不相似于汉字的全局子结构,类型2为相似于汉字的全局子结构。对于类型2子结构,在子结构识别器中,将直接使用对应汉字的分类器单元。类型2全局子结构满足式(12)所示条件。
(12)
其中,为第n个子结构和第i个汉字间的距离,如公式(13)所示。
(13)
为所有子结构和汉字距离的平均值,取值大于0,可优选设为0.3。
图4给出了两种子结构类型的示意图,其中,类型2子结构的第三个和第四个例子表示了两个相似的局部子结构合并为一个全局子结构且和一个汉字相似的情况。
步骤1.3创建子结构字典
子结构字典要存储两个重要信息:子结构列表和字符分割模式列表。子结构列表包含子结构学习中获得的全局子结构,即包含在公式(11)所示列表GSS中。字符分割模式指示每个字符在分割中可能得到的一个子结构序列形式。一个字符样本在字符分割中被切分成一个字符分割片段序列。若该序列中的每个字符分割片段都能找到对应的子结构,则该字符分割片段序列与一个子结构序列对应,这个子结构序列即称为该字符的分割模式。一类字符的不同样本可能出现多种字符分割片段序列和对应多种子结构序列,故一类字符可能有多个分割模式。字符分割片段序列、子结构序列和字符分割模式之间的关系如图5所示。
字符分割模式的具体获取方法如下:
对于第i个汉字第j个训练样本的分割片段序列,若其每个分割片段样本都能找到对应的全局子结构,则该分割片段序列有子结构序列和其匹配,该子结构序列即为该汉字的一种字符分割模式,记为。排除重复的字符分割模式即可得到该汉字的所有字符分割模式。
逐类对各个汉字进行处理,记录每个汉字所有可能的字符分割模式,可获得所有汉字的分割模式。为了减小子结构字典大小,在字典创建中一般只保留最常见的子结构和最常见的字符分割模式。最终,所有的字符分割模式记录在列表SP中,如公式(14)所示。
(14)
其中,为列表中第k个字符分割模式。
步骤1.4子结构识别器训练
子结构识别器的训练采用的识别特征和识别方法与字符识别器相同。只有全局子结构需要训练,在全局子结构学习中被合并的各局部子结构对应的字符分割片段样本都可作为相应全局子结构的训练样本。
实际上,由于使用相同特征和识别方法,可将子结构识别器和字符识别器放在一起训练,获得子结构和字符的融合识别器。由于类型2子结构有相似汉字与其对应,在这种方式中,类型2子结构可直接使用融合识别器中对应汉字的分类器单元。由此,融合识别器需要训练的总的类别数为:
(15)
其中,NGSS_Type1为类型1子结构数目。
二、基于子结构识别的手写文本识别
在完成子结构学习,获得子结构字典和子结构识别器后,可以将子结构识别加入手写文本识别过程中,以提高最终识别性能。基于子结构识别的手写文本识别方法的具体过程描述如下。
步骤2.1:字符分割
将目标字符串T切分成一个字符分割片段序列,NA为分割片段数。一般采用过分割的方法,使一个字符由一个或多个分割片段组成。
步骤2.2分割片段组合生成
相邻的一个或几个分割片段可组成一个分割片段子序列,按不同组合方式,对分割片段序列A进行划分,再按顺序连接成一个分割片段序列组合。一个分割片段序列组合将对应一条分割候选路径,所有的分割片段序列组合构成一个集合。
令表示由第m到n个分割片段组成的分割片段子序列。分割片段序列组合集合中第i个分割片段序列组合为,由个分割片段子序列而成。第i个分割片段序列组合的第j个分割片段子序列为,其中分别为该分割片段子序列在分割片段序列A中的起始和结束位置。中第r个分割片段即为。
步骤2.3:基于字符识别器的汉字识别
以分割片段子序列为单位,使用字符识别器逐个进行识别,并获得字符分割片段子序列的字符识别置信度。假设某个分割片段子序列上的汉字识别结果为,识别置信度为,则分割片段序列的汉字识别结果可记为:
(16)
步骤2.4:基于子结构识别器的汉字识别
该步骤实现基于子结构识别器的汉字识别,先在分割片段上使用子结构识别器进行子结构识别,然后通过子结构序列寻找匹配的汉字分割模式,实现汉字识别。
步骤2.4.1分割片段子结构识别
使用子结构分类器对各个分割片段子序列进行识别,获得不同字符分割片段序列的子结构识别结果。假设某个分割片段子序列上的子结构识别结果为,识别置信度为,即分割片段序列的子结构识别结果可记为:
(17)
步骤2.4.2利用子结构组合识别汉字
在分割片段序列中通过不同组合方式,获得不同的子结构序列。若多个子结构识别结果组成的子结构序列,能在子结构字典中寻找到匹配的分割模式,则表明该子结构序列可构成相应汉字。
若子结构字典中存在字符分割模式,说明子结构序列能找到匹配的分割模式,可构成汉字。假设存在顺序相邻的r个分割片段子序列,则它们可组合为一个分割片段序列。若的子结构识别结果为到,则基于子结构识别结果,分割片段序列可识别为汉字,该汉字的识别置信度由子结构序列中各子结构的识别置信度综合计算得到,一般可取其平均值,记为。则分割片段序列基于子结构的汉字识别结果可记为:
(18)
对于一般化表示形式,分割片段序列的基于子结构的汉字识别结果可记为:
(19)
步骤2.5:分割路径搜索
一个分割片段序列组合将对应一条分割路径,分割路径搜索为在所有的分割路径中寻找字符串识别置信度最高的一条分割路径,并将该分割路径对应的识别结果作为最终识别结果。在分割片段序列上,将可能产生两个汉字识别结果:基于字符识别器的汉字识别结果和基于子结构识别器的汉字识别结果,比较这两个识别结果中的识别置信度,取识别置信度较高的识别结果为该分割片段序列上的汉字识别结果。并在此基础上计算不同分割路径下的字符串识别置信度,取置信度最高的分割路径为最优分割路径,并将最优分割路径对应的识别字符串作为最终的文本识别结果。
假设对于某分割片段序列有两个汉字识别结果:,分别为基于字符识别器的汉字识别结果和基于子结构识别器的汉字识别结果,则最终该分割片段序列上的汉字识别结果为:
(20)
由此,第i个分割片段序列组合的识别结果序列为:,对应的识别文本串为。由于一个分割片段序列组合对应一条分割候选路径,分割路径的识别置信度即为对应的分割片段序列组合的识别置信度,一般可取识别结果文本串中字符识别置信度的均值,可表示为:
(21)
最后,搜索分割路径集合,取识别置信度最高的路径为最优分割路径:
(22)
最优分割路径与字符分割片段组合相对应,最终的字符串识别结果为:
(23)
图6给出了基于子结构识别的手写中文识别方法与传统方法的对比示意图,对比了两种方法在同一个手写文本行例子上的运行结果差异。可以看到基于字符识别器的传统方法的几个识别错误在本发明提出的方法中被纠正了。
本发明的原理在于:传统手写中文识别技术采用基于识别的分割方法来实现手写中文字符串的识别,所使用的汉字分类器只对汉字类别进行了训练。在实际应用中,由于手写汉字变形大、手写风格差异大,传统方法在字符分割片段上的识别可靠性低,容易导致识别性能受限。基于汉字是由一个或多个子结构组成的这一特点,通过在汉字分割片段样本集上提取汉字子结构,并将汉字子结构纳入汉字分类器的训练过程中来,汉字分割片段上的识别可靠性将获得提升。汉字子结构检测和提取采用学习的方式自动训练得到,汉字的子结构组成信息存放在子结构字典中。最终,将汉字子结构的识别结果和汉字子结构组成信息结合到手写中文字符串分割路径的优选过程中,提高手写中文字符串的识别精度。
本发明方法的实验结果:
以普通方法为基准,通过和基于子结构学习方法的比较实验,可发现采用新方法后,手写中文字符串识别精度获得明显提升。如下表所示,在实验数据集上,以字符识别正确率为评价指标,识别正确率由53.47%提高到61.11%,提高了7.64个百分点。
表1.基于子结构学习的手写中文字符串识别结果比较
普通手写中文字符串识别方法 | 基于子结构学习的手写中文字符串识别方法 | |
字符识别正确率 | 53.47% | 61.11% |
Claims (8)
1.一种基于子结构学习的手写中文识别方法,其特征在于,该方法包括子结构学习和基于子结构识别的手写文本识别两大部分;其中,子结构学习包括如下步骤:
步骤1.1局部子结构学习,从某一个汉字对应的分割样本中通过聚类分析去发现和提取局部子结构模式;
步骤1.2全局子结构学习,合并前各局部子结构对应的字符分割片段样本,作为对应全局子结构的训练样本;
步骤1.3创建子结构字典,存储子结构列表和字符分割模式列表;子结构列表中存储步骤1.2中获得的全局子结构;字符分割模式列表记录所有汉字的字符分割模式;
步骤1.4子结构识别器训练;
基于子结构识别的手写文本识别部分包括如下步骤:
步骤2.1字符分割,采用过分割的方法,使一个字符由一个或多个分割片段组成;
步骤2.2分割片段组合生成,相邻的一个或几个分割片段组成一个分割片段子序列,按不同组合方式,对分割片段序列进行划分,再按顺序连接成一个分割片段序列组合;
步骤2.3基于字符识别器的汉字识别,以分割片段子序列为单位,使用字符识别器逐个进行识别,并获得字符分割片段子序列的字符识别置信度;
步骤2.4基于子结构识别器的汉字识别,先在分割片段上使用子结构识别器进行子结构识别,然后通过子结构序列寻找匹配的汉字分割模式,实现汉字识别;
步骤2.5分割路径搜索,一个分割片段序列组合将对应一条分割路径,分割路径搜索为在所有的分割路径中寻找字符串识别置信度最高的一条分割路径,并将该分割路径对应的识别结果作为最终识别结果。
2.根据权利要求1所述的基于子结构学习的手写中文识别方法,其特征在于,局部子结构学习的聚类分析包括以下步骤:
步骤1.1.1为第i个汉字提取分割片段特征向量:
表示第i个汉字,该汉字有个训练样本,其中第j个样本为,字符样本的分割结果为分割片段序列为序列长度,即分割片段个数;对第i个汉字的每个样本进行字符分割,获得每个样本的分割片段序列,提取各个分割片段的特征向量,第i个汉字的所有字符分割片段的特征向量保存在列表Li中,如公式(1)所示;
(1)
其中是第i个汉字所有训练字符样本生成的分割片段的总数;
步骤1.1.2为第i个汉字构建分割片段样本距离矩阵:
矩阵行列数为该汉字的分割片段样本总数,每个矩阵元素为分割片段样本两两间的距离:
(2)
步骤1.1.3构建相似样本直方图:
直方图的每一项为样本集中与某个样本相似的样本数目
(3)
相似判据为两样本间距离小于某一阈值的取值范围大于0;
步骤1.1.4在相似样本直方图中搜索第t轮具有最大值的样本k(t),计算方法如公式(4),t从1开始计数;
(4)
步骤1.1.5分配初始聚类样本:将与第k(t)个样本相似的所有样本分配给第t个分割片段聚类,已分配样本将并在后一轮处理中被忽略,然后搜索轮数加1,即t=t+1;
步骤1.1.6重复步骤1.1.4到步骤1.1.5,直到第t轮直方图最大值小于某个值,即:
(5)
其中的取值范围大于0小于1;
步骤1.1.7:进行聚类迭代:初始聚类数目为t,且在上述t个初始聚类样本基础上执行聚类迭代,未被分配到初始聚类的样本被舍弃;采用k-means聚类方法执行该聚类分析;
步骤1.1.8:获取第i个汉字的局部子结构列表:以分割片段聚类中心来表示子结构模式,一个聚类对应一个局部子结构,这样,第i个汉字的局部子结构记录为:
(6)
步骤1.1.9:重复步骤1.1.1至1.1.8,逐类获得所有汉字的局部子结构,所有的局部子结构被记录在列表LSS中,如公式(7)所示:
(7)
其中,NLSS为局部子结构的数目。
3.根据权利要求1所述的基于子结构学习的手写中文识别方法,其特征在于,子结构识别器训练采用子结构识别器和字符识别器独立训练的方式。
4.根据权利要求1所述的基于子结构学习的手写中文识别方法,其特征在于,子结构识别器训练采用子结构识别器和字符识别器一起训练生成融合识别器的方法。
5.根据权利要求1所述的基于子结构学习的手写中文识别方法,其特征在于,全局子结构学习聚类分析包括如下步骤:
步骤1.2.1构建子结构距离矩阵,检测候选相似子结构:
矩阵行列数为局部子结构总数,每个矩阵元素为局部子结构两两间的距离:
(8)
距离越小,则两个子结构相似度越高,满足以下条件的两个子结构被视为相似子结构:
(9)
分别为第m和第n个局部子结构对应的分割片段样本聚类的标准方差,取值为0.3;
步骤1.2.2生成初始子结构聚类:
将两个相似子结构互相为最相似子结构的两个子结构合并为一个初始子结构聚类;
步骤1.2.3初始子结构聚类生长:
以初始子结构聚类为基础,若某个子结构与某个相似子结构聚类内所有成员子结构都构成相似关系,则把该子结构加入到初始子结构聚类中;遍历所有的子结构并重复执行,直到未有新的子结构被合并到初始子结构聚类中,该步骤结束;
步骤1.2.4相似子结构聚类合并:
未被合并到初始子结构聚类的子结构各自构成一个只包含自身的子结构聚类;若两个子结构聚类间相似子结构对的数目大于以下阈值,则该两个子结构聚类视为相似子结构,进行合并;
(10)
分别为第m和n个子结构聚类中局部子结构的数目,取值大于0小于1;
重复执行该步骤,直到未有新的相似子结构聚类合并发生,最终,每个子结构聚类中心SS(n),n=1,…,NGSS表示一个全局子结构,所有的全局子结构记录在列表GSS中,如公式(11)所示;
(11)
其中,NGSS为全局子结构的数目;
步骤1.2.5全局子结构类型划分:
全局子结构分为两类,类型1为不相似于汉字的全局子结构,类型2为相似于汉字的全局子结构;对于类型2子结构,在子结构识别器中,直接使用对应汉字的分类器单元;类型2全局子结构满足式(12)所示条件;
(12)
其中,为第n个子结构和第i个汉字间的距离,如公式(13)所示;
(13)
为所有子结构和汉字距离的平均值,取值大于0。
6.根据权利要求1所述的基于子结构学习的手写中文识别方法,其特征在于,创建子结构字典步骤中,获取字符分割模式的步骤如下:
对于第i个汉字第j个训练样本的分割片段序列,若其每个分割片段样本都能找到对应的全局子结构,则该分割片段序列有子结构序列和其匹配,该子结构序列即为该汉字的一种字符分割模式,记为;排除重复的字符分割模式即得到该汉字的所有字符分割模式。
7.根据权利要求1所述的基于子结构学习的手写中文识别方法,其特征在于,步骤2.4的具体实现方法如下:
步骤2.4.1分割片段子结构识别
使用子结构分类器对各个分割片段子序列进行识别,获得不同字符分割片段序列的子结构识别结果;
步骤2.4.2利用子结构组合识别汉字
在分割片段序列中通过不同组合方式,获得不同的子结构序列;若多个子结构识别结果组成的子结构序列,能在子结构字典中寻找到匹配的分割模式,则表明该子结构序列可构成相应汉字。
8.根据权利要求1所述的基于子结构学习的手写中文识别方法,其特征在于,寻找最优分割路径的方法为,将单个汉字的两种识别结果,基于字符识别器的汉字识别结果和基于子结构识别器的汉字识别结果,进行比较,比较这两个识别结果中的识别置信度,取识别置信度较高的识别结果为该分割片段序列上的汉字识别结果,并在此基础上计算不同分割路径下的字符串识别置信度,取置信度最高的分割路径为最优分割路径,并将最优分割路径对应的识别字符串作为最终的文本识别结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310255159.3A CN103324929B (zh) | 2013-06-25 | 2013-06-25 | 基于子结构学习的手写中文识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310255159.3A CN103324929B (zh) | 2013-06-25 | 2013-06-25 | 基于子结构学习的手写中文识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103324929A CN103324929A (zh) | 2013-09-25 |
CN103324929B true CN103324929B (zh) | 2016-05-18 |
Family
ID=49193657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310255159.3A Expired - Fee Related CN103324929B (zh) | 2013-06-25 | 2013-06-25 | 基于子结构学习的手写中文识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103324929B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268603B (zh) | 2014-09-16 | 2017-04-12 | 科大讯飞股份有限公司 | 用于文字性客观题的智能阅卷方法及系统 |
CN105678339B (zh) * | 2016-01-15 | 2018-10-02 | 合肥工业大学 | 一种具有仿反馈调整机制的脱机手写体汉字认知方法 |
CN107092902B (zh) * | 2016-02-18 | 2021-04-06 | 富士通株式会社 | 字符串的识别方法和系统 |
CN108345853B (zh) * | 2018-02-08 | 2020-10-23 | 吉首大学 | 基于同构理论的字符识别方法、装置及终端设备 |
CN112183513B (zh) * | 2019-07-03 | 2023-09-05 | 杭州海康威视数字技术股份有限公司 | 一种图像中文字的识别方法、装置、电子设备及存储介质 |
CN110674813B (zh) * | 2019-09-24 | 2022-04-05 | 北京字节跳动网络技术有限公司 | 汉字识别方法、装置、计算机可读介质及电子设备 |
CN111639640B (zh) * | 2020-04-24 | 2023-11-14 | 深圳市金溢科技股份有限公司 | 基于人工智能的车牌识别方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6041137A (en) * | 1995-08-25 | 2000-03-21 | Microsoft Corporation | Radical definition and dictionary creation for a handwriting recognition system |
CN101697201A (zh) * | 2009-09-25 | 2010-04-21 | 华南理工大学 | 一种旋转方向无关的手写汉字识别方法 |
CN102156889A (zh) * | 2011-03-31 | 2011-08-17 | 汉王科技股份有限公司 | 一种识别手写文本行语言类别的方法及装置 |
CN102254196A (zh) * | 2011-06-22 | 2011-11-23 | 江苏奥博洋信息技术有限公司 | 计算机鉴别手写汉字的方法 |
CN102298704A (zh) * | 2011-04-28 | 2011-12-28 | 华南理工大学 | 一种基于加权增量二次鉴别函数的书写者自适应方法 |
CN102831434A (zh) * | 2012-07-03 | 2012-12-19 | 天津师范大学 | 基于鉴别归一化的手写汉字识别方法 |
-
2013
- 2013-06-25 CN CN201310255159.3A patent/CN103324929B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6041137A (en) * | 1995-08-25 | 2000-03-21 | Microsoft Corporation | Radical definition and dictionary creation for a handwriting recognition system |
CN101697201A (zh) * | 2009-09-25 | 2010-04-21 | 华南理工大学 | 一种旋转方向无关的手写汉字识别方法 |
CN102156889A (zh) * | 2011-03-31 | 2011-08-17 | 汉王科技股份有限公司 | 一种识别手写文本行语言类别的方法及装置 |
CN102298704A (zh) * | 2011-04-28 | 2011-12-28 | 华南理工大学 | 一种基于加权增量二次鉴别函数的书写者自适应方法 |
CN102254196A (zh) * | 2011-06-22 | 2011-11-23 | 江苏奥博洋信息技术有限公司 | 计算机鉴别手写汉字的方法 |
CN102831434A (zh) * | 2012-07-03 | 2012-12-19 | 天津师范大学 | 基于鉴别归一化的手写汉字识别方法 |
Non-Patent Citations (1)
Title |
---|
手写汉字识别的非线性动态部件模板;石大明等;《自动化学报》;20040520;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103324929A (zh) | 2013-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103324929B (zh) | 基于子结构学习的手写中文识别方法 | |
US11157550B2 (en) | Image search based on feature values | |
CN105389583A (zh) | 图像分类器的生成方法、图像分类方法和装置 | |
CN104573130A (zh) | 基于群体计算的实体解析方法及装置 | |
CN107577702B (zh) | 一种社交媒体中交通信息的辨别方法 | |
CN106528527A (zh) | 未登录词的识别方法及识别系统 | |
CN102663447A (zh) | 基于判别相关分析的跨媒体检索方法 | |
CN103473308B (zh) | 基于最大间隔张量学习的高维多媒体数据分类方法 | |
CN106601235A (zh) | 一种半监督多任务特征选择的语音识别方法 | |
CN103324632A (zh) | 一种基于协同学习的概念识别方法及装置 | |
CN102360436B (zh) | 一种基于部件的联机手写藏文字符的识别方法 | |
Nion et al. | Handwritten information extraction from historical census documents | |
CN110119693A (zh) | 一种基于改进vgg-16模型的英文笔迹鉴别方法 | |
Al-Maadeed et al. | Automatic handedness detection from off-line handwriting | |
CN111475464B (zh) | 一种自动发现挖掘Web组件指纹的方法 | |
CN110502669A (zh) | 基于n边dfs子图的轻量级无监督图表示学习方法及装置 | |
Bart | Parsing tables by probabilistic modeling of perceptual cues | |
CN113313213B (zh) | 一种加速目标检测算法训练的数据集处理方法 | |
CN104778478A (zh) | 一种手写数字识别方法 | |
US11386340B2 (en) | Method and apparatus for performing block retrieval on block to be processed of urine sediment image | |
CN104504385A (zh) | 手写粘连数字串的识别方法 | |
CN107092875B (zh) | 一种新的场景识别方法 | |
Wang et al. | Edcleaner: Data cleaning for entity information in social network | |
Dos Santos | Automatic content extraction on semi-structured documents | |
Liu et al. | Automatically mining review records from forum Web sites |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160518 Termination date: 20180625 |
|
CF01 | Termination of patent right due to non-payment of annual fee |