[doc格式] 基于笔顺自由及连笔的联机手写汉字识别
基于笔顺自由及连笔的联机手写汉字识别
2009年第5期计算机系统应用
基于笔顺自由及连笔的联机手写汉字识别?
On-LineChineseCharacterRecognitionBasedonFreeOrderingand
ConnectiveStrokes
崔景楠邢长征(辽宁工程技术大学计算机应用技术专业辽宁葫芦岛125105)
摘要:提出了一种基于笔顺重排算法的手写汉字识别.将手写汉字的可见线段和不可见线段进行联合编码,并
采用了一种基于单字切分及基本笔顺
的识别方法.首先将单字分解为部件,根据分解的结构,对字典
进行粗略的过滤,将字典中不符合待识别汉字拆分结构的字排除,然后根据笔划编码进行识别,有效提
高了笔划的匹配速度,较好地解决了联机手写汉字识别中连笔及笔顺自由问题.
关键词:连笔笔顺联机手写汉字识别笔顺重排单字拆分
联机手写汉字识别技术涉及模式识别,图象处理,
自然语言理解,人工智能等多种学科,是一门综合性技
术,在中文信息处理,办公自动化,机器翻译,等高技
术领域,都有着重要的实用价值和理论意义.
1引言
为解决连笔书写汉字的轨迹编码问题,本文将落
笔到提笔的可见线段称为stroke线,从提笔到下一次
的落笔所经过的不可见线段称为connection线.将输
入汉字所有的stroke线和connection线都作为汉字
书写轨迹而进行笔画编码.这样将stroke线和
connection线一同编码,在进行汉字识别时等于匹配
汉字的行笔方向和位置等信息,而避开了落笔和提笔
等信息,能有效地解决汉字连笔书写的问题.
由于将stroke线和connection线的引入,匹配
只依据整体的行笔方向,走势,位置等信息,而没有
用到落笔,提笔的信息,很自然地解决了连笔的问题.
甚至可以很好地识别完全连笔的汉字,即一笔书写而
成的汉字【1l.
上述算法的明显缺点是它的连笔自由是建立在笔
顺不自由的基础上的.虽然,通过向字典里添加笔顺
变种的模版,可在一定程度上解决笔顺自由的问题,
但是,会带来字典过于庞大,匹配速度减慢等问题,
而且也不可能穷尽所有可能的笔顺变化.因此,必须
?收稿时间:2008—10—11
加以改进才能用于笔顺自由的识别系统上.
文献【1】提出:”为了实现笔顺自由,待识汉字同
标准模式匹配时,可以首先找出它们之间的正确的笔
画对应关系,把输入汉字的笔顺和标准模式的笔顺调
整一致,就可以同时解决笔顺自由和连笔自由的问
题”,将待识别汉字的与标准模版笔顺的匹配问题转换
为了指派问题.
这种方法的好处是”能较好地同时解决笔顺自由
和连笔自由的问题”.缺点是:待识别汉字必须针对字
典中的每一个标准模板,改变其笔顺以获得最小的匹
配距离,这就大大增加了识别时的系统开销,降低了
识别效率.
本文提出了一种基于单字切分及基本笔顺表的识
别方法.首先将单字分解为部件,根据分解的结构,
对字典进行粗略的过滤,将字典中不符合待识别汉字
拆分结构的字排除,然后根据笔划编码进行识别,有
效的提高了笔划的匹配速度.
2局部笔顺重排
如果字典中只存放一种笔顺,或者不是存放所有
的笔顺变化而只存放几种笔顺的模版,为了实现笔顺
自由,需要对笔顺进行重新排列.但是由于汉字字型
复杂,手写汉字更是于变万化,对整个汉字进行笔划
重新排列是不现实的.因此,本文采用对汉字先分块,
Resea.rchandDevelopment研究开发29
2009年第5期计算机系统应用
2.2笔顺排列基本规则
这里我们介绍如何将块内的笔划排序.我们列出
了所有的笔划,并且根据他们之间的位置关系决定他
们的先后顺序.,
2.2.1笔划的分类
表1列出了汉字笔顺的基本规I~lJ[6].笔划集合中
与表1的顺序不_致时,便按照汉字基本笔顺表将之
纠正过来.对于可能存在的一些例外情况,我们可以
在程序中用case语句特殊处理.
表1笔顺的基本规则
RuleExamp1eOrderofstroke
Firsthorizontal.then十l一十
verticaI
Firstleft-falling,then人I人
right-falling?
FrOmtoptobottom广=三f
Fromlefttoright州I州卅州
Firstoutside,then月lJ月月月
inside
Finishinside,then四lII-IKI四四
close
Middle.thenthetwo小IlJ,J小
sides
在定制笔顺表之前,应该先定制基本笔划表.表
2列举了7种笔划,所有的笔划兜被映射成这7种笔
划.笔划的类型根据笔划长度,笔划的斜率以及笔划
和笔划之间的向量角来决定.确定笔划类型的算法如
图1所示:
/变量定义T为笔划长度门限Tvar两个笔划之间
的向量夹角Tvar笔划最大斜率Tvar笔划最小斜率
|
T:thresholdofstrokelength(1O0pixe1)
Tvar:themaximumanglebetweentwovectors
inastroke
Tvar:maximumslopeofstroke
Tva:minjmumslopeofstroke
foralIstrokesinthesetofstrokesQ={S1,s2…
sn}{
/*定义笔划”点”/
if(1engthofsi<TL)labelofsi=DOT
/定义笔划”钩”/
elseif(vectorangleofsi>Tvar)
labeIofsi=HOOK
/定义笔划”竖”/
elseif(slopeofsi<Tmin)
Iabelofsi=VERTIC:AL
/定义笔划”横”/
elseif(slopeofsi>Tmax)
labelofsi=HORIZONTAL
/定义笔划”捺”/
elseif(X—valueofsi>0)
labelofsi=RIGHTFALLING
/定义笔划”撇”/
elselabelofsi=LEFTFALLING
f0rallstrokesinthesetofstrokesQ={s1,s2…sn}
/定义笔划”折”/
if(1abelofsi=VETICAL&&
labelofsj=HORIZONTAL&&
Intersect(si,sj)=TRUE)
Labelofsisj=TURNING
}
图1笔划分类算法
表2基本笔划表
LabeIStroke
,D0T
1.dHORIZONTAL
1lII
VERTICALII
LEFTFALLINGl/
RIGHTFALLING
TURNING.11—
2.2.2笔划重排算法
根据笔划之间的位置关系对笔划做出了更细致的
划分.我们定义了笔划结合表(表3),并且定义了他们
之间的相对位置关系.对于一个笔划集合Q=
{S1,s2…sn),其中si将根据与其他笔划的位置关系在
表中定位.算法如图2所示:
/定义Q为笔划集合L为表序号集合/
Q={S1,s2…sn}:thesetofstrokes
L=fI1.I2…ln}:thesetofIabels
/确定笔划在基本表中的序号/
1.ForallstrokesinQ={S1,s2…sn},determine
ResearchandDevelopment研究开发31
计算机系统应用2009年第S期
theIabelofsi.
/确定笔划在子表中的序号/
2.SubdividetheIabeIofSi
Iabels).
身的,反对称的和可传递的.我们在这里所考虑的笔
划顺序如同是将笔划集合Q中的元素进行排序.”<”
(simayhaveseveral的定义规则如表4所示.
/删除在基本表和子表中不一致的笔划/
3.Deletethelabelsofsiwhichdonotkeep
consistency.
/循环,直到笔划序号si唯一/
4.Repeat3,untilthelabelofsiisunique.
图2笔划细分类算法
表3笔划细分类
BaseLabelEx.Description
DOT,Notdivided
NONEGeneraI
CROSSIntefSeCtiOn
IHORIZONTALLEF_rjLeftofother
strokes
RIGHTRightofother
strokes
CLOSE0l口or日
NONEIGeneral
VERTICUTfVerticaIof王
CROSSlIntersection
LEF_r,jVerticalof口
NONEJGeneraI
HO0KCROSSLIntersection
CROSS2】Hookof子
NONE/:GeneraI
LEF.rFSYMSymmetry
ALLINGSYM2Abovethe-——
RIGHTIntersection
RIGHTFNONEGeneraI
ALUNGSYMSymmetry
SYM2Abovethe-——
TURNlNGNONE1GeneraI
FTurningof民
当所有笔划都在表中定位完成后,我们定义笔划
的顺序.我们在两个笔划之间定义”<”.”<”应该是反
32研究开发ResearchandDevelopment
表4笔顺信息表
AheadLater
DOTH0RIZ0NTALCLOSE
H0RIZ0NTALCROSSVERTICALCL0SE
HORIZONTALCROSSHOOK—CROSS
VERTICAL—NONEHORIZONTALLEFT
NONEHORIZONTALRIGHT VERTICAL—
VERTlCALTHORIZONTALCROSS
VERTlCAL—LEFTTURNING—NONE
VERTICAL—NONELEF_rFALLING—SYM
VERTICALN0NERIGHTFALLING—SYM
HOOK—NONEHORIZONTALLEFT
NONEHORIZONTALRlGHT H0OK—
HOOK—CROSS2HORIZONTALCROSS
H0OK—NONELEFEFALLING—SYM
H0OK—NONERIGHTFALLlNG—SYM2
RIGHTFALUNG—NON
LEFEFALLING—NONE
E
LEFEFALLlNG—SYMHORIZONTALNONE
LEFEFALLING—SYM2HORIZONTALCROSS
RIGHTFALLING—NON
LEFEFALLING—RIGHT
E
RIGHTFALLING—SYM2HORIZON.T-ALNONE
RIGHTFALUNG—SYM2HORIZON1’ALCR0SS
TURNlNG—FVERTICAL—NONE
TURNING—FHOOK—N0NE
2.3块与块的排列
被识别汉字被切分为Block之后,Block和Block
之间的顺序依照汉字的书写习惯,即:从左到右,从
上到下,先里后外排列即可.
3编码与识别
按照表4的笔划顺序基本表以及块间排列顺序,
我们用排序算法得到了待识别汉字的笔划序列s,则S
=
(s1,s2,…,s)n为待识别汉字的笔划数目,T为标准
模版的笔划序列T=(tl,t2,…,tm)m为标准模版的笔
划数.S和T的匹配算法采用文献【1】提到的DP算法.
即通过如下的DP迭代式计算出一条最佳的输入序列
2009年第5期计算机系统应用
和标准序列的匹配路径.
D(sj,)=miIl{D(一l,f『一1)+2?(,),D(,一1)+(,),
D(s『_I,ti)+d(s,,f,)}(1)
待识别笔划序列与标准序列之间的最小距离即为
识别结果.
4性能分析和测试实验
基于部件内的笔顺重排,通过将单字拆分成若干
部件,分析待识别汉字的部件间分布机构,缩小了标
准字典中模版匹配的个数,减少了匹配次数,缩短了
识别时间.
本文采用visualstudio2005编写联机手写汉字
输入识别系统,利用前面提出的方法从8套GB2312
的6763个单字样本中,将笔划进行随机打乱.用没
有进行笔划排序的联机识别算法进行识别,识别率为
47.27jl;:进行单字切分,粗分类,部件内部排序,
部件之间的排序后,识别率为98.22茗.在配置为
Pentium4CPU,3.2GHz,512MB内存的pc机上
对这些汉字进行识别,平均耗时为203宇/秒.
参考,.J吠
1曹醋炯,王永成.笔顺连笔自由的联机手写汉字识别.
计算机工程与应用.2005,29:167—169.
2余楚中,赵学军,彭静,等.联机手写体汉字识别中的笔
划分类及笔划识别.重庆大学,1998,2(2):131—
134.
3SangOkKooHyunGyuJang,KwangHeeWon,Soon
KiJung.AutomaticStrokeExtractionandStroke
OrderingBasedonTrueTypeFontEGUKTheoryand
PracticeofComputerGraphics.
(上接第24页)
Voice
厂—]l
Voice;l{
1..
VXMHTTP
.I_cIicI1I
Voice
XMI
Serv
VXML
图9VXML消息处理
的请求,在应答中产生VXML文档,该文档在VXML
解释器中处理.VXML解释器上下文(VXML
interpretercontext)是VXML解释器(VXML
interpreter)的执行环境.VXML解释器上下文可以在
监视用户输入的同时,解释执行V×ML文档.比如,
一
个V×ML解释器上下文可以一直监听一个用户需要
帮助的事件,同时监听改变语音合成参数(如音量或者
不S特征)的事件.
VoiceBrowser能够产生用户响应和动作(比如:
讲话或输入字符,挂机)的事件和系统事件(比如:事件
超时).这些事件中一些由VXML解释器本身进行处
理,另外一些由V×ML解释器上下文进行处理.
4结束语
在各种各样的增值服务中,智能化,移动化和个
性化成为未来服务发展的一个重要方面.这些方兴未
艾的增值服务必将给运营商带来新的业务增长点.
我们开发的移动通信增值应用平台及应用系统采用先
进的开放的软硬件体系结构,开发工具非常灵活易用
而且能够快速灵活地开面向2G/3G的移动增值新业
务,快速而且有效地满足移动增值应用市场需求.
-
J.~-文献
1N.S0018厂rIA/EIA/IS.826W琢EI.ESSINTELLIGENT
NETWORKCAPAB?IT?SFORPRE.PAID
CHARGING.2oo0.
2N.S0ol3厂】?A/EIA,IS771WirelessIntelligentNetwork
AN_sIT1.114-1988SignalingSystemNumber7(SS7)-
TransactionCapabilitiesApplicationPart(TCPd~),2000.
33G
S32.200:Telecommunicationmanagement;
Chargingmanagement;Chargingprinciples,2003.
43GPPTS32.240:Telecommunicationmanagement;
Chargingmanagement;ChargingArchitectureand
Principles,2003.
53GPPTS32.297:Telecommunicationmanagement;
Chargingmanagement;ChargingDataRecords(CDR)
fileformatandtransfer.2002.
63GPPTR32.815:OnlineChargingSystem(OCS)
architecturestudy.20o3.