计算机工程
COMPUTER ENGINEERING
1999年 第25卷 第8期 Vol.25 No.8 1999



手写速记符的识别与特征匹配研究
聂瑞华，邬家炜
摘要：着重介绍了中文笔式人群速记电脑系统中速记符的笔画分类和数据结构及其特征匹配处理的方法，并对速记符的笔画识别的主要算法进行了研究。
关键词：人群速记符；笔画识别；特征匹配
Research on Discrimination and Characteristics Match of Handwritten Shorthand Symbol
Nie Ruihua,Wu Jiawei
(Department of Computer Science,South China Normal University,Guangzhou 510631)
【Abstract】This paper introduces handling method of stroke classification,data structure and characteristics mathch on Chiniese handwritten RenQuen shorthand symbol computer system,research into main algorithms for stroke discrimination of shorthand symbol.
【Key words】RenQuen shorthand symbol;Stroke discrimination;Characteristics match
　　速记是根据民族语言的特点，运用一套系统的简便符号和有规律的缩略方法，迅速记录语言、译写文字、笔录思维的先进书写技术。速记广泛应用于经济、新闻、政法、科技等领域。人群速记法是我国目前最新创立的一种流线型椭圆系统速记方式，其优点是它的基本符号 ( 声符 ) 只有 “ 两级比例，一个角度，一个总方向 ” ，简单易学、易掌握，是一种易于推广的速记方法 [1] 。随着计算机技术的推广应用，人们希望能将速记符快速地输入计算机，并翻译其中文含义。 
　　中文笔式人群速记电脑系统 ( 以下简称系统 ) 研究的目的在于：书写者只要严格按照人群速记符的书写标准，从书写板上输入速记符，计算机读取来自书写板的书写轨迹信息并进行预处理，再经过笔画识别 [2,3] 和特征匹配，得到标准速记符，并根据速记符与汉语拼音的对应关系翻译其中文含义。系统框图如图 1 所示。 

图 1 系统框图 
1 速记符的笔画分类和数据结构 
1.1 笔画分类 
　　根据人群速记符的音符特点，笔画主要有以下几种类型，如表 1 所示。 
表 1 速记符的笔画分类 

　　其中，线和椭圆弧有长符和短符之分，它们的倾斜角度有正、零、负之分 , 而且椭圆弧本身也有正和负之分 ; 圆弧的开口方向大致有向左 (D 弧 ) 、向右 (C 弧 ) 、向上 (U 弧 ) 和向下 (A 弧 )4 种，且每种圆弧又有大、小之分。 
1.2 笔画的数据结构 
　　设各笔画的起始坐标为 B(Xb，Yb) ，终止坐标为 S(Xe，Ye) ，取样点坐标为 Q(X1，Y1) ，起始点与终止点间的距离为 d ， 笔画的倾斜角为 A 。笔画的数据结构如下： 
struct BH 
{ int BHType ； 
　int Length ； 
　int Angle ； 
　} ； 
　　其中： (1) BHType 域指明笔画的类型； (2) Length 域指明笔画为长符 ( 值为 1) 或短符 ( 值为 0) ，尾和点均为短符； (3) Angle 域指明笔画的倾斜角度或开口方向。 
2 笔画识别的主要算法 
　　由于手写轨迹信息中包含有各种各样的干扰和噪声，如：人手的抖动、笔的速度变化等，而且不同的人书写的轨迹也有较大的偏差，因此，从识别的效率和实用效果考虑，速记符的笔画识别是模糊识别，即容许笔画的长度、倾斜角度等在一定误差范围内的变形经过预处理后，每个笔画的起始坐标、终止坐标以及笔画的取样点坐标均已输入，即是已知参数，所以可以根据这些参数识别出各种类型的笔画。 
2.1 椭圆弧的识别 
　　人群速记符的书写特点：笔画顺序是从左到右，且大多数速记符的第一笔是线或椭圆弧，因此，识别线和椭圆弧又是笔画识别的基础。 
　　为了使椭圆弧的识别算法简单明了，在预处理时取样点的选取，是取该点与前一点的连线的斜率和与其后一点的连线的斜率相差最大的一点为取样点，如图 2 所示。算法描述如下： 

图 2 椭圆弧的取样点的选取 
　　(1) 取得该笔画的起点、终点和取样点的坐标值； (2) 过取样点 Q(X1，Y1) 作一条平行于 Y 轴的直线 l1 ，该直线 l1 与由笔画起始点、终止点决定的直线 l 相交于点 P(Xp，Yp ) ，若|Y1-Yp|在一定范围 L 外，则该笔画类型为椭圆弧； (3) 若 Y1<Yp, 则该笔画为正弧 (BHType=2); 若 Y1<Yp , 则笔画为负弧 (BHType=-2) ； (4) 若 d>lengthdw × 2/3, 则该笔画为长符 (Length=1), 否则为短符 (Length=0) ； (5) tgA=(Ye - Yb )/(Xe-Xb) 。若 tgA>0, 则该笔画的倾斜角度为正 (Angle=1); 若 tgA=0, 则该笔画的倾斜角度为零 (Angle=0); 若 tgA<0, 则该笔画的倾斜角度为负 (Angle=-1) 。 
2.2 圆弧的识别算法 
　　人群速记符的第二笔多为圆弧 , 而且圆弧的开口方向有多种 , 每种不同开口方向的圆弧又有大小之分，以同一类型笔画 ( 线或弧 ) 起笔的速记符的区别就是根据第二笔圆弧的开口方向或大小来区别，因此圆弧的识别是速记符笔画识别的核心环节，且识别算法有一定的难度。由于手写速记符的识别是 “ 模糊 ” 的识别，因此，从模糊数学的角度来寻求圆弧识别的算法。 
　　设E为一个集合，集合 A 为集合 E 的一个子集， E 中一个元素 X 为 A 的成员。从而可以给出普通集合的定义[5]。 
　　定义1对于集合 A ，定义一个从 E 到 {0 ， 1} 的函数 μ A(X) ，有

　　函数 μ A(X) 称为集合 A 的特征函数。 
　　显然，在普通集合中，元素对集合的隶属关系只有两种状态，要么为 “ 真 ”(“1”) ，要么为 “ 假 ”(“0”) ，二者必居其一。如果将 “ 隶属关系 ” 扩展为 “ 隶属程度 ” ，或者说特征函数 μ A(X) 是从 E 到 {0 ， 1} 的函数。现将其扩展到区间 [1,0]上全体实数的函数，从而也就从普通集合引伸出模糊集合了。 
　　定义 2 集合 E 以及从 E 到区间[0,1]内的函数 μ A(X) ，序对集 A={(X| μ A(X) ，∨ X ∈ E)} 称为集合 E 上的一个模糊子集， μ A(X) 称为模糊子集 A 的隶属函数。
　　圆弧的开口方向如表 2 所示： 
表 2 圆弧的开口方向 
笔 画
开口方向向右向左向下向上
名 称C 弧D 弧A 弧U 弧

　　先把圆弧分成垂直的 (C、D弧) 和水平的(A、U弧)两种，则：
A= arctg((Ye -Yb)/(Xe-Yb)) 
　　表示连接起点和终点的直线 l 与 X 轴的夹角。水平曲线 HC 和垂直曲线 VC 两个模糊集合可分别由其隶属函数 μ HC(A) 和 μ VC(A) 表示： 
μ HC(A)=1-min{ min[|A|,| π -A|,|2 π -A|]/ π /2,1 } 
μ VC(A)=1-min{ min[| π /2-A|,|3 π /2-A|]/ π /2,1 } 
　　然后 , 再根据取样点位于起点与终点决定的直线 l 的不同位置来判断圆弧究竟属于哪一类。圆弧的识别算法描述如下： 
　　(1) 取得笔画的起点、终点和取样点的坐标值； 
　　(2) 该笔画为圆弧 (BHType=3) ； 
　　(3) 若 d>lengthdw × 2/3, 则该笔画为长符 (Length=1), 否则为短符 (Length=0); 
　　(4) A= arctg((Ye -Yb )/(Xe-Yb)) ； 
　　(5) 求水平曲线和垂直曲线的隶属函数值 
　　HC=1-min{ min[|A|,| π -A|,|2 π -A|]/ π /2,1 } 
　　VC=1-min{ min[| π /2-A|,|3 π /2-A|]/ π /2,1 } 
　　(6) 若 HC>VC ，该笔画为水平曲线 (A、U 弧) 。求过取样点 (X1，Y1) 平行于 Y 轴的直线l1 与由笔画起始点、终止点决定的直线 l 的交点 P 的坐标值 (Xp，Yp)；若 (Y1>Yp), 则该笔画为 A 弧 (Angle=1); 否则 , 该笔画为 U 弧 (Angle=2); 
　　(7) 若 HC<VC, 该笔画为垂直曲线 (C 、 D 弧 ) 。求过取样点 (X1，Y1) 平行于 X 轴的直线 l1 与由笔画起始点、终止点决定的直线 l 的交点 P 的坐标值 (Xp ，Yp ) ；若 (X1 < Xp ), 则该笔画为 C 弧 (Angle=3); 否则 , 该笔画为 D 弧(Angle=4)。
2.3 尾的识别算法 
　　人群速记符中,大部分速记符之间的区别仅在于第三笔 -- 尾。尾笔画的主要特点：笔画短小，种类较多且各类尾之间的差别很小，因此尾的识别的难点在于找出各类尾之间的微小区别。从起始点、终止点的连线 l 的方向来分，尾分为以下 4 大类。
　　利用隶属函数来区分 4 大类的尾。设笔画起始点（ Xb ，Yb ）、终止点 (Xb ,Yb ) 的连线 l 与 X 轴的夹角为 A ， 
A=arctg((Ye-Yb)/(Xe-Yb))
　　则上述除 D 弧外的 3 大类尾的隶属函数分别定义为： 
μ H(A)=1-min{ min[|A|,| π -A|,|2 π -A|]/ π /4,1 } 
μ P(A)=1-min{ min[| π /4-A|,|5 π /4-A|]/ π /4,1 } 
μ V(A)=1-min{ min[|3 π /4-A|,|7 π /4-A|]/ π /4,1 } 
　　给定一笔画的起始点、终止点的坐标值，则可以算出它的 μ H 、 μ P 、 μ V 的值，从而可判断出该笔画属于隶属程度最高的那个集合。 
　　在判断出一笔画所属的大类以后，再根据取样点处在起点、终点的连线 l 的不同位置 (P 、 N 类 ) 或笔画的长短 (H 、 D 弧类 ) 来细分该笔画具体属于哪一类。 
3 特征匹配处理 
　　速记符的特征匹配就是根据手写速记符的特征记录 ( 由该速记符的各笔画的特征产生 ), 从标准速记符库中找出与之相匹配的标准速记符。根据前面的分析，以速记符的交点或拐点为分界，把一个速记符划分成几个笔画段，每个速记符一般由两到 3 种笔画组成。按照笔画识别的原理可以得到各个笔画的长度、倾斜角、类型等特征，再将各笔画的有关特征按一定的对应规则即可生成该速记符的特征记录，用该特征记录与标准速记符库相匹配，即可得到标准的速记符。 
　　为了匹配的方便，将速记符的各种笔画都用一个字符编码来表示，每个标准速记符的特征就由各段笔画对应的字符编码组成。这样，速记符的特征匹配就仅需查阅速记符特征与速记符区位码的对照文件，找出与之相匹配的速记符特征记录，即得到相应的标准速记符的区位码。 
3.1 速记符特征记录的生成与匹配 
　　基本的速记符有近 400 个 , 为了匹配的方便和提高匹配的效率 , 我们根据速记符的起始笔画的不同 , 把基本的速记符分为： (1) 以线起笔的 ;(2) 以椭圆弧起笔的 ;(3) 以圆弧起笔的。这 3 种类型速记符分别存放在不同的文件中，这样，在特征匹配的时候，就可以根据速记符的起笔的特征查找对应的文件，大大缩小了查找的范围，提高了匹配的效率。 
　　3 种有规律的基本速记符的特征记录的数据结构如下： 
　　以线起笔的速记符的特征记录： 
struct line 
　{ char length ； // 起笔 ( 线 ) 的字符编码 
　　char circle ； // 第二笔 ( 圆弧 ) 的字符编码 
　　char tail ； // 第三笔 ( 尾 ) 的字符编码 
　　char code [4] ； // 速记符的区位码 
　　} 
　　以椭圆弧起笔的速记符的特征记录： 
struct arc 
　{ char curve ； // 起笔 ( 椭圆弧 ) 的字符编码 
　　char circle ； // 第二笔 ( 圆弧 ) 的字符编码 
　　char tail ； // 第三笔 ( 尾 ) 的字符编码 
　　char code [4] ； // 速记符的区位码 
　　} 
　　以圆弧起笔的速记符的特征记录： 
struct circles 
　{ char circle ； // 起笔 ( 圆弧 ) 的字符编码 
　　char length ； // 线的字符编码 
　　char curve ； // 椭圆弧的字符编码 
　　char tail ； // 尾的字符编码 
　　char code [4] ； // 速记符的区位码 
　　} 
　　将速记符各笔画的特征值存放在一个数组中，根据其各自字符编码表的对应关系就可以方便地生成该速记符的特征记录。 
　　根据各速记符的起笔不同，顺序查找相应的文件，若有前 3 个域完全匹配的记录，则返回该记录的区位码域 (code) ，否则，显示出错信息。 
4 结束语
　　语言文字的信息处理已是计算机应用的一个重要方向。速记是手写文字的简化和发展，是一种快速记录语言文字的符号系统，速记对中文具有特殊的意义。本文旨在就中文笔式人群速记电脑系统中速记符的笔画分类及其数据结构作了详细的介绍，并对笔画识别的主要算法以及特征匹配处理的方法进行了深入研究，具有实用价值，并为下一步信息翻译处理的研究奠定了可靠的基础。 
作者单位：华南师范大学计算机科学系
参考文献 
1 廖人群 . 人群速记 . 广州 : 科学普及出版社， 1985 
2 张忻中 . 汉字识别 . 北京 : 清华大学出版社， 1992 
3 胡家忠 . 计算机文字识别技术 . 北京 : 气象出版社， 1991 
4 杨泽红，夏莹 . 联机手写汉字识别系统接口的智能化 . 中文信息 . CIP,1996,2:38-41 
5 赵珀璋，徐力 . 计算机中文信息处理 . 北京 : 宇航出版社， 1989 
