一种基于隐马尔科夫模型的联机手写化学符号识别方法与流程

文档序号:11143258阅读:434来源:国知局
一种基于隐马尔科夫模型的联机手写化学符号识别方法与制造工艺

本发明属于模式识别与人机交互领域,具体涉及一种基于隐马尔科夫模型的联机手写化学符号识别方法。



背景技术:

化学公式(化学方程式)是表示化学反应规律的式子,是化学及化学活动最重要的表现形式。化学公式和数学公式一样,是自然科学领域应用非常广泛的一种表达式。随着信息化社会的发展,越来越多的化学相关工作转移到电子设备上完成。然而如何快速、高效地将化学知识特别是化学公式录入到计算机中仍然是一个难题。目前,化学公式主要还是依靠专业软件进行录入,这类软件共有的缺点包括界面复杂、效率低下、操作繁琐、设备依赖。由于存在上述缺点,传统的基于鼠标、键盘的录入方式严重制约了化学知识特别是化学公式的数字化水平,一些正常的应用受到限制。因此,探索新的、快速高效的化学信息录入方式成为当务之急。与传统方式相比,基于电子笔的手写录入因其操作自然、界面简洁的特点更符合这一要求。

联机手写化学符号的识别问题独立于化学公式分析、理解及应用。其主要任务包括:高精度识别字母、数字、操作符、有机环等各类化学符号,同时传递有用的版面信息和时间序列给后续操作。因此提出一套比较完整的联机手写化学符号识别方法框架具有两方面的意义:一是为设计并实现一个独立的化学符号识别器打下基础,该识别器可以作为底层引擎提供给同类研究使用。二是用实时识别的结果支持公式级、物质级的语法分析和化学规则校验。

在整个联机手写化学公式处理问题中,符号识别起到核心作用,实现将用户输入的数字墨水“翻译”为可重用化学信息的功能。进行相关研究的难点包括:(1)化学符号集合规模较大,且其中的相似结构很多;(2)符号的大小、位置隐含着某些化学含义,识别出符号后还需要分析和传递这些隐含信息;(3)手写样本变形严重,笔划质量参差不齐。因此,准确识别手写化学符号是一项挑战性工作。



技术实现要素:

本发明目的是解决联机手写化学符号的识别问题,提供一种基于隐马尔科夫模型的联机手写化学符号识别方法,以正确识别不同用户通过不同设备输入的手写化学符号。

本发明采取分级处理、逐层优化的策略解决【背景技术】中提到的难点。首先利用全局特征将整个问题拆分为无机符号(非环)识别和有机符号(环)识别两个子问题,在小集合上再提取精细局部特征进一步分类。这种分级处理的思想大幅度降低了匹配模型的性能消耗,提高了识别流程的可用性。此外还为识别主体提供了预处理和后处理等辅助技术支撑,两级优化的策略也保证了识别结果的可靠性。

为实现本发明目的需要着重从以下几方面考虑:

1、准确识别输入符号的能力。在将人的任意手写输入转换为数字结果的过程中,难免发生错误。作为输入的最基本单元,手写符号的识别准确率是评价系统可用性的重要指标。对于不同的应用系统,尽管标准不同,但都存在一个识别率的临界区间。当单符号的识别率未达到该边界值时,整段输入都将是不可读的。对本发明而言,提高化学符号识别率有两种策略:一是尽量选取有效的特征,规避书写变形带来的干扰;二是在识别后给出一个结果候选队列,利用化学规则遴选可信的结果。总之,联机手写化学符号必须具有较高的识别率才能满足实际应用的要求。

2、用户无关的能力。对于化学公式处理系统而言,同一套内核应该可以识别不同书写者的输入。即使公式的书写风格不一致,如笔划顺序不一、符号大小有异等,系统也应该正确辨识。一方面,加大训练样本规模可以涵盖更多的特殊情况。另一方面,引入适当的预处理机制也可以最大限度的消除多次书写之间的差异,统一符号规格。这些措施都有助于使系统具备用户无关的处理能力。

本发明技术方案

本发明在综合考虑以上几点的基础上,提出了一种基于隐马尔科夫模型的联机手写化学符号识别方法,该方法包括以下步骤:

第1、定义联机手写化学符号集合及分类和采集标准,对采集到的符号进行预处理;

第2、针对第1步生成的联机手写化学符号集合提出环、非环粗分类特征提取方法;

第3、针对第2步提取出的粗分类特征,选用支持向量机进行环、非环的两类粗分类;

第4、在粗分类结果上,分别对环、非环符号提取基于点序列的局部特征;

第5、利用隐马尔科夫模型的方法实现联机手写化学符号的最终分类和识别。

本发明的具体处理流程如下:

1、定义联机手写化学符号集合及分类和采集标准,对采集到的符号进行预处理

定义的联机手写化学符号的集合与分类包括10个阿拉伯数字、24个大写字母、20个小写字母、10个化学操作符和38个有机环符号,这里选取以下102个化学符号作为处理对象。

定义的采集标准包括:样本代号命名规则、采集环境、书写规范程度和书写时间。这样采集到的符号样本满足多源异构的要求,具备代表性。对符号标签的命名规则如下:编码SXY表示S区内横坐标为X、纵坐标为Y的符号。例如000代表符号‘0’,212代表符号109代表‘化学键’,形式可以是任意方向、任意长度的线段。

样本代号(label)按照信息块码方式编制,是一个长度为15的字符串,其中左起第1位代表样本采集环境:T代表平板电脑、H代表数位板、P代表普通个人电脑;第2位代表样本的书写规范程度:S代表非常标准(Standard)的符号、N代表正常(Normal)书写的符号、F代表自由(Freestyle)书写的符号;第3-6位代表样本书写者编号;第7-9位代表化学符号编码,其中第7位是符号所属的区间:0区存放数字和字母、1区存放操作符和化学键、2区存放有机环结构;第8-9位代表该符号在所属区间(一个10*10列表)中的位置;第10-15位代表按书写者区分的样本编号。

对采集到的符号进行预处理是指,对采集到的初始符号样本进行一系列符合其特点的预处理操作,包括:去除重复点、插值补点、检测锐点、去钩和平滑,从而优化其质量,使符号样本满足后续处理的需要。流程如图1所示。预处理的第一步是去除重复点,使用最小距离过滤法,以两个采样点Pi(xi,yi)和Pj(xj,yj)为例,如果它们的欧几里德距离D小于一定阈值,则只保留一个,另一个去除。如下式所示:

第二步是插值补点,假设给定笔划采样点序列为S={P1(x1,y1),…,PN(xN,yN)),计算点间平均距离d如下:

其中,D(i,i+1)为点Pi(xi,yi)与Pi+1(xi+1,yi+1)之间的欧几里德距离。设定d=Len*70%为笔划中任意连续的两点间允许出现的最大间隔,则如果两点之间距离大于d,采用下面公式计算其间新加点的坐标:

第三步使用5个有效点确定锐点的位置。利用其两两夹角计算ΦA=|Φ1234|,如果ΦA超过预先设定的阈值ΦT=60°,那么认为点3是要找的锐点。

最后,令之前找到的锐点为控制点,对其它点使用平均平滑算法。即用连接点1与点3之间直线上的点代替原来的点2,同理用点2与点4之间直线上的点代替点3,直到遇到最后一个点。

2、针对第1步生成的联机手写化学符号集合提出环、非环粗分类特征提取方法

所述的环、非环粗分类特征提取方法包括两种:

第一种是将符号外接矩形分割为4×4的均匀网格,按照由上到下、由左到右的顺序依次计算位于每个子区域中坐标点的个数,经归一化处理后将得到的16维向量作为粗分类的网格特征。

分别提取化学符号的网格特征和外围轮廓特征如图2所示。首先获取样本的外接矩形,即图2中的网格边界围成的区域。然后按照外接矩形将样本划分成m×m个等大的子区域,按照由上到下、由左到右的顺序依次计算位于每个子区域中点的个数,并记为N1,N2,...,Nm*m。对这些原始统计数据进行归一化,计算每个小方格内的采样点数Ni占符号采样点总数的比例,相关公式如下:

令m取4,得到的网格特征共16维,每维特征的数值都分布在[0,1]区间内且所有16个数值的和等于1。

第二种方法提取外围轮廓特征,按先后顺序从样本图像的左、下、右、上4边分别向右、上、左、下4个方向扫描,直至扫描线遇到笔划或中轴,记下各自扫描线经过的距离即为该样本的外围轮廓特征。选取符号上的等间隔特定线路进行扫描。如图2所示,从符号外接矩形的左边界开始自左向右扫描轮廓,其他三个边界的扫描过程和特征计算方法与左边界相似。每个方向设置5条扫描线,该种特征共计20维。

3、针对第2步提取出的粗分类特征,选用支持向量机进行环、非环的两类粗分类

所述的环、非环的两类粗分类选用基于径向基内积函数的支持向量机实现,参数组合为:惩罚因子C=211,径向基核函数的参数γ=2。支持向量机是统计学习理论的重要组成部分,与传统方法比较,它具有坚实的理论基础和较好的推广能力、优秀的非线性处理能力和高维处理能力。对于两类模式分类问题,它不但有着优美而直观的表达,而且处理效率也在同类方法中领先。

4、在粗分类结果上,分别对环、非环符号提取基于点序列的局部特征

所述的基于点序列的局部特征是基于用户联机输入的笔划点序列提取。HMM是一个双内嵌式随机过程,其中一个是状态转移序列,另一个是每次转移时输出的符号序列。利用HMM构建的化学符号模型应该能够表达符号构件(笔划)的书写顺序和轨迹。从化学符号的第一个采样点开始逐点记录该化学符号的特征表示,选取涵盖了特征点所处区域完整的位置信息和方向信息的11维局部特征,包括:归一化的水平距离、归一化的垂直距离、长宽比、弯曲、线性、归一化的一阶导数、归一化的二阶导数和书写方向;对于有机化学符号,在提取局部特征之前先进行点序列的重排操作。

5、利用隐马尔科夫模型的方法实现联机手写化学符号的最终分类和识别

隐马尔科夫模型的参数组合为:6状态、每个状态9个混合高斯。使用该模型区分符号的细致类别。联机手写的符号由一系列离散的采样点组成,这些点正是按照书写的时间顺序排列起来的。所以联机手写符号的时序特性决定了它适合于使用HMM的方法进行处理。

本发明的优点和积极效果:

本发明提出了一种基于隐马尔科夫模型的联机手写化学符号识别方法,该方法构建了识别联机手写化学符号的处理框架,采取分层处理、逐级优化的策略解决相关问题。基于支持向量机的方法选用网格特征和外围轮廓特征区分有机环符号及非环符号,分类错误率控制在千分之二以下;基于隐马尔可夫模型的方法识别具体符号,准确率在百分之九十以上。本发明方法经在Tablet PC、数位板、鼠标模拟笔输入等数据源上的实验证明具有普遍意义,可有效解决联机手写化学符号识别的问题。

【附图说明】

图1为预处理工作流程图。

图2为粗分类网格特征和外围轮廓特征示意图。

图3为符号锐点搜索算法示意图。

图4为有机环符号重排算法示意图。

图5为方法整体流程图。

【具体实施方式】

实施例1

具体实施过程如下:

步骤1:采集化学符号样本并对其进行预处理

组织20名用户使用HP Tablet PC进行样本采集。这项工作使用采集软件HCSC在Windows Vista操作系统下进行,共采集到有效的符号样本12444个。以每名用户书写完整的102个符号记为一套,最长书写时间22分钟、最短书写时间6分钟、平均书写时间11分钟;单个样本的平均书写时间是2.58秒,其中落笔1.753秒、提笔1.85秒。

对样本依次进行去重、插值、检测锐点、去钩、平滑五步预处理操作,其中钩结构一般发生在起笔或落笔时,长度较小、角度变化比较大,对符号的识别精度影响严重。先以图3所示的方法找到锐点,使用5个有效点计算ΦA=|Φ1234|,如果ΦA超过预先设定的阈值ΦT=60°,那么认为点3是要找的锐点。找到锐点之后,如果其数目多于两个,使用两条线段Segb与Sege来确定笔划中是否存在“钩笔”并获取其位置。Segb是笔划起始处两个锐点之间的线段,Sege为笔划上最后两个锐点之间的线段,βb与βe分别为它们的倾斜角,LSeg为线段Segb或Sege的长度。再定义两条线段,Segb+1是笔划起始处第二个和第三个锐点之间线段,Sege-1为倒数第二个和第三个锐点之间的线段,则它们的倾斜角分别为βb+1与βe-1。参数λ定义如下:

λ=|βbb+1|orλ=|βee-1| (5)

如果线段LSeg和角度λ同时满足下面的条件则对应的线段就是一个“钩笔”,直接去除。

λ≤Thresholdangle&&LSeg≤Thresholdlen (6)

其中,确定Thresholdangle为90°,Thresholdlen是对角线长度的3%。这里对角线即笔划外接矩形的对角线,由下式求得:

对所有采集到的有效样本依次重复以上步骤进行预处理。

步骤2:提取化学符号的网格特征和外围轮廓的粗分类特征

步骤2.1:计算网格特征

获取每个有效样本的外接矩形,按照外接矩形将样本划分成4*4个等大的子区域,如图2所示。按照由上到下、由左到右的顺序依次计算位于每个子区域中点的个数,并记为N1,N2,...,Nm*m。对这些原始统计数据进行归一化,计算每个小方格内的采样点数Ni占符号采样点总数的比例,最后每个样本都得到共16维的网格特征。

步骤2.2:计算外围轮廓特征

对于每个样本图像,按先后顺序从图像的左、下、右、上4边分别向右、上、左、下4个方向扫描,直至扫描线遇到笔划或中轴,记下各自扫描线经过的距离即为该样本的外围轮廓特征。为了减少计算成本,对这一特征进行改进,仅选取符号每个方向上的5条线路进行扫描,而不是逐行(列)扫描。记下左边界的五个扫描值为Ii(i=1,2,…,5),li为从左边界开始沿第i条线扫描经过的距离,同样将轮廓特征归一化。扩展到4个方向后,外围轮廓特征规格为4*5=20维。

最终,每个样本都被等价变换成上述的16+20=36维特征向量。

步骤3:使用支持向量机进行环、非环的两类粗分类

对于采集到的12444个有效样本,使用基于径向基内积函数的支持向量机实施分类。径向基内积函数为:

采用的参数组合为:惩罚因子C=211,径向基核函数的参数γ=2。

使用该参数配置对样本集进行粗分类,得到的环、非环结构识别率是99.82%,即在1000个任意书写的联机手写化学符号中,有不到两个符号可能被划分到错误的环、非环类别中。

步骤4:提取化学符号的基于点序列的局部特征

步骤4.1:对有机环符号进行坐标点重排

在提取局部特征前,需要将有机环符号的原始点序列重排得到新的符号数据,如图4所示。对于同一个有机符号而言,这一步骤实现的效果是:它的所有重排后的样本具有相同的“笔划顺序”,即整个点序列从有机符号的某个部位开始在时间先后上是趋于一致的。具体算法如下:

第一步:计算有机符号样本的质心;

第二步:由质心向外引一条射线(记为扫描线),扫描线与X轴正向的夹角(方向角)记为θ;将θ初始值设为0。

第三步:遍历有机符号的点序列,计算每个点到扫描线的距离d。如果d小于一个预先设定的阈值T,将此点存入重排点队列List,否则不予处理。

第四步:沿逆时针方向将扫描线旋转一个角度Δθ(由经验设定),此时扫描线的方向角为θ+Δθ;返回到上一步。

第五步:有机符号的所有数据点全部存入队列List,则重排完毕,List中的点即为重排结果。

将步骤3中分类得到的所有有机环符号进行上述处理,重排坐标点得到新的符号数据。

步骤4.2:计算坐标点局部特征

对于非环符号及重排后的有机环符号,基于用户联机输入的笔划点序列提取其局部特征。从化学符号的第一个采样点开始逐点记录其特征表示,选取涵盖了特征点所处区域完整的位置信息和方向信息的11维局部特征,包括:归一化的水平距离、归一化的垂直距离、长宽比、弯曲、线性、归一化的一阶导数、归一化的二阶导数、书写方向等。经过这一步操作,可以得到12444个符号样本各自的11维局部特征。

步骤5:使用隐马尔科夫模型实现最终分类和识别

选用隐马尔科夫模型对12444个联机手写化学符号进行细分类。

对于64种无机化学符号,各采集122套有效样本,共含手写符号7808个。按照3:1的比例划分为两个子集,其中训练集包含5856个样本、测试集包含1952个样本。隐马尔科夫模型参数为6状态、每个状态9个混合高斯。此时的首候选最高识别率为89.5%,前二候选准确率和前三候选准确率分别是97.0%和98.4%。

对于38种有机环符号,各自采集122套有效样本,合计包含符号4636个。按照3:1的比例划分为两个子集,其中训练集包含3477个样本、测试集包含1159个样本。隐马尔科夫模型参数为8状态,每个状态9个混合高斯。此时的最高识别率为98.5%,前二候选准确率和前三候选准确率分别是99.5%和99.9%。

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