一种自由手写拉丁字母识别方法

文档序号:6466973阅读:328来源:国知局
专利名称:一种自由手写拉丁字母识别方法
技术领域
本发明涉及一种手写识别方法,尤其是涉及一种自由手写拉丁字母识别方法。
背景技术
随着信息技术的迅猛发展,各种手写文字识别技术不断深入,各种商用化识别系统投 入市场。目前,研究热点集中在研制各种自由手写体字母识别系统,其中自由手写拉丁字 母识别系统也是研制热点之一。尽管拉丁字母识别字符集很小,但有些拉丁字母结构、形 状差别很小,彼此容易混淆,如在自由手写a、 b、 q、 p、 n、 h等拉丁字母时,它们之间 的差别很小,给自由手写拉丁字母识别系统的识别率带来了极大的影响。目前, 一些自由 手写拉丁字母识别系统,利用笔划顺序方向码和相邻两笔划位置关系码作为一级特征来分 类,其中,笔划顺序方向码有4方向码和8方向码,相邻两笔划位置关系包括相连、相接、 交叉、平行和分离;再利用同一笔划中的点特征如笔划中点坐标、笔划起点坐标等作为二 级特征来细分类,如笔划起点坐标、笔划中点坐标、笔划末点坐标、横笔划最高点、横笔 划最低点、竖笔划最左点、竖笔划最右点等特征点。该识别系统的识别过程,不管是一级 特征还是二级特征,都依赖于笔划的提取和划分,但很多自由手写拉丁字母如a、 b、 q、 p、 n、 h等,笔划特征比较模糊,而出现的圆弧部分比较多,所以选择笔划特征来识别拉丁字 母,大大降低了识别率。

发明内容
本发明所要解决的技术问题是提供一种基于拉丁字母局部特征进行多层分类,以减 小输入的手写拉丁字母匹配识别的搜索范围,提高识别匹配速度,提高识别率的自由手 写拉丁字母识别方法。
本发明解决上述技术问题所采用的技术方案为 一种自由手写拉丁字母识别方法, 包括以下步骤
① 对输入终端设备的手写拉丁字母的笔迹坐标进行釆集,并将采集到的笔迹坐标实 时存储到预先定义的结构体数组中;
② 对存储在结构体数组中的笔迹坐标及由笔迹坐标转换成矩阵形式存放构成的笔 迹坐标点阵进行预处理,得到新笔迹坐标点阵;
10③根据每个标准拉丁字母在手写时存在的局部特征,对所有标准拉丁字母进行多层 分类,得到多个输入的手写拉丁字母匹配结果的粗分类候选字母集合,具体过程为③ -1、第一层分类根据标准拉丁字母手写时是否为上下结构,直接将所有标准拉丁字母 分成上下结构粗分类候选字母集合和非上下结构粗分类候选字母集合,上下结构粗分类 候选字母集合中包括手写时本身具有上下结构的标准拉丁字母和在书写时引起的具有 上下结构的标准拉丁字母,非上下结构粗分类候选字母集合中包括除手写时本身具有上 下结构的标准拉丁字母以外的所有标准拉丁字母;③-2、第二层分类对于上下结构粗 分类候选字母集合,再根据标准拉丁字母手写时的最后笔划是否为横笔划将其分成横笔 划粗分类候选字母集合和非横笔划粗分类候选字母集合,并将这两个粗分类候选字母集 合作为输入的手写拉丁字母匹配结果的粗分类候选字母集合,横笔划粗分类候选字母集 合中包括手写时本身最后笔划为横笔划的标准拉丁字母和在书写时引起的最后笔划为 横笔划的标准拉丁字母,非横笔划粗分类候选字母集合中包括手写时除本身最后笔划为 横笔划的标准拉丁字母以外的所有标准拉丁字母;对于非上下结构粗分类候选字母集 合,再根据标准拉丁字母手写时的横向穿越数H将其分成H-1、 H=2、 H-3和H-4粗 分类候选字母集合;③-3、第三层分类对于H-1粗分类候选字母集合,再根据标准拉 丁字母手写时的竖向穿越数S将其分成S4、 S=2、 S=3和S=4粗分类候选字母集合, 并将这四个粗分类候选字母集合作为输入的手写拉丁字母匹配结果的粗分类候选字母 集合;对于H-2粗分类候选字母集合,再根据标准拉丁字母手写时上1/3部分的横向穿 越数up将其分成up=l 、 up=2和up=3粗分类候选字母集合,并将up=2粗分类候选字母 集合和up=3粗分类候选字母集合作为输入的手写拉丁字母匹配结果的粗分类候选字母 集合;对于H=3粗分类候选字母集合,再根据标准拉丁字母手写时的最优竖向穿越数 Maxs将其分成Maxs=l、 Maxs=2和Maxs=3粗分类候选字母集合,并将Maxs=2粗分类 候选字母集合和Maxs=3粗分类候选字母集合作为输入的手写拉丁字母匹配结果的粗分 类候选字母集合;对于11=4粗分类候选字母集合,再根据标准拉丁字母手写时下1/3部 分的横向穿越数down将其分成down-l、 down=2和down=3粗分类候选字母集合,并 将down=2粗分类候选字母集合和down=3粗分类候选字母集合作为输入的手写拉丁字 母匹配结果的粗分类候选字母集合;③-4、第四层分类对于up=l粗分类候选字母集 合,再根据标准拉丁字母手写时的竖向穿越数S1将其分成S14、 S^2和S^3粗分类 候选字母集合;对于Maxs-l粗分类候选字母集合,再根据标准拉丁字母手写时的新笔 迹坐标点阵中的最后一个新笔迹坐标点在该标准拉丁字母中的位置信息将其分成第一 左上位置、第一左下位置、第一右上位置和第一右下位置粗分类候选字母集合;对于 down=l粗分类候选字母集合,再根据标准拉丁字母手写时的竖向穿越数S2将其分成 S2=l、 S2=l和S2=3粗分类候选字母集合;③-5、第五层分类对于SK粗分类候选 字母集合,再根据标准拉丁字母手写时的新笔迹坐标点阵中的最后一个新笔迹坐标点在该标准拉丁字母中的位置信息将其分成第二左上位置、第二左下位置、第二右上位置和 第二右下位置粗分类候选字母集合;采用Sl-l粗分类候选字母集合相同的分法,将S^2 粗分类候选字母集合分成第三左上位置、第三左下位置、第三右上位置和第三右下位置 粗分类候选字母集合;采用Shl粗分类候选字母集合相同的分法,将Sl-3粗分类候选 字母集合分成第四左上位置、第四左下位置、第四右上位置和第四右下位置粗分类候选 字母集合;对于第一左上位置粗分类候选字母集合,再根据标准拉丁字母手写时是否存 在左向开口圆弧将其分成第一左向开口圆弧粗分类候选字母集合和第一非左向开口圆 弧粗分类候选字母集合,并将这两个粗分类候选字母集合作为输入的手写拉丁字母匹配 结果的粗分类候选字母集合;采用第一左上位置粗分类候选字母集合相同的分法,将第 一左下、第一右上、第一右下位置粗分类候选字母集合分别分成第二左向开口圆弧和第 二非左向开口圆弧粗分类候选字母集合、第三左向开口圆弧和第三非左向开口圆弧粗分 类候选字母集合、第四左向开口圆弧和第四非左向开口圆弧粗分类候选字母集合;对于 S2=l粗分类候选字母集合,再根据标准拉丁字母手写时的新笔迹坐标点阵中的最后一 个新笔迹坐标点在该标准拉丁字母中的位置信息将其分成第五左上位置、第五左下位 置、第五右上位置和第五右下位置粗分类候选字母集合;采用S2=l粗分类候选字母集 合相同的分法,将S2=2粗分类候选字母集合分成第六左上位置、第六左下位置、第六 右上位置和第六右下位置粗分类候选字母集合;采用Sl=l粗分类候选字母集合相同的 分法,将S2=3粗分类候选字母集合分成第七左上位置、第七左下位置、第七右上位置 和第四右下位置粗分类候选字母集合;③-6、第六层分类对于第二左上位置粗分类候 选字母集合,再根据标准拉丁字母手写时是否存在左向开口圆弧将其分成第五左向开口 圆弧粗分类候选字母集合和第五非左向开口圆弧粗分类候选字母集合,并将这两个粗分 类候选字母集合作为输入的手写拉丁字母匹配结果的粗分类候选字母集合;采用第二左 上位置粗分类候选字母集合相同的分法,将第二左下、第二右上、第二右下位置粗分类 候选字母集合分别分成第六左向开口圆弧和第六非左向开口圆弧粗分类候选字母集合、 第七左向开口圆弧和第七非左向开口圆弧粗分类候选字母集合、第八左向开口圆弧和第 八非左向开口圆弧粗分类候选字母集合;对于第三左上位置粗分类候选字母集合,再根 据标准拉丁字母手写时是否存在左向开口圆弧将其分成第九左向开口圆弧粗分类候选 字母集合和第九非左向开口圆弧粗分类候选字母集合,并将这两个粗分类候选字母集合
作为输入的手写拉丁字母匹配结果的粗分类候选字母集合;采用第三左上位置粗分类候 选字母集合相同的分法,将第三左下、第三右上、第三右下位置粗分类候选字母集合分 别分成第十左向开口圆弧和第十非左向开口圆弧粗分类候选字母集合、第十一左向开口 圆弧和第十一非左向开口圆弧粗分类候选字母集合、第十二左向开口圆弧和第十二非左 向开口圆弧粗分类候选字母集合;对于第四左上位置粗分类候选字母集合,再根据标准 拉丁字母手写时是否存在左向开口圆弧将其分成第十三左向开口圆弧粗分类候选字母集合和第十三非左向开口圆弧粗分类候选字母集合,并将这两个粗分类候选字母集合作 为输入的手写拉丁字母匹配结果的粗分类候选字母集合;釆用第四左上位置粗分类候选 字母集合相同的分法,将第四左下、第四右上、第四右下位置粗分类候选字母集合分别 分成第十四左向开口圆弧和第十四非左向开口圆弧粗分类候选字母集合、第十五左向开 口圆弧和第十五非左向开口圆弧粗分类候选字母集合、第十六左向开口圆弧和第十六非 左向开口圆弧粗分类候选字母集合;对于第五左上位置粗分类候选字母集合,再根据标 准拉丁字母手写时是否存在左向开口圆弧将其分成第十七左向开口圆弧粗分类候选字 母集合和第十七非左向幵口圆弧粗分类候选字母集合,并将这两个粗分类候选字母集合 作为输入的手写拉丁字母匹配结果的粗分类候选字母集合;采用第五左上位置粗分类候 选字母集合相同的分法,将第五左下、第五右上、第五右下位置粗分类候选字母集合分
别分成第十八左向开口圆弧和第十八非左向开口圆弧粗分类候选字母集合、第十九左向 开口圆弧和第十九非左向开口圆弧粗分类候选字母集合、第二十左向开口圆弧和第二十 非左向开口圆弧粗分类候选字母集合;对于第六左上位置粗分类候选字母集合,再根据 标准拉丁字母手写时是否存在左向开口圆弧将其分成第二十一左向开口圆弧粗分类候 选字母集合和第二十一非左向开口圆弧粗分类候选字母集合,并将这两个粗分类候选字 母集合作为输入的手写拉丁字母匹配结果的粗分类候选字母集合;采用第六左上位置粗 分类候选字母集合相同的分法,将第六左下、第六右上、第六右下位置粗分类候选字母 集合分别分成第二十二左向开口圆弧和第二十二非左向开口圆弧粗分类候选字母集合、 第二十三左向开口圆弧和第二十三非左向开口圆弧粗分类候选字母集合、第二十四左向 开口圆弧和第二十四非左向开口圆弧粗分类候选字母集合;对于第七左上位置粗分类候 选字母集合,再根据标准拉丁字母手写时是否存在左向开口圆弧将其分成第二十五左向 开口圆弧粗分类候选字母集合和第二十五非左向开口圆弧粗分类候选字母集合,并将这 两个粗分类候选字母集合作为输入的手写拉丁字母匹配结果的粗分类候选字母集合;采 用第七左上位置粗分类候选字母集合相同的分法,将第七左下、第七右上、第七右下位 置粗分类候选字母集合分别分成第二十六左向开口圆弧和第二十六非左向开口圆弧粗 分类候选字母集合、第二十七左向开口圆弧和第二十七非左向开口圆弧粗分类候选字母 集合、第二十八左向开口圆弧和第二十八非左向开口圆弧粗分类候选字母集合;
④ 根据输入的手写拉丁字母的局部特征,将输入的手写拉丁字母与步骤③得到的粗 分类候选字母集合进行逐层匹配,得到与该输入的手写拉丁字母匹配的粗分类候选字母鱼A.
采口 ;
⑤ 提取输入的手写拉丁字母的freeman链码,计算该输入的手写拉丁字母的freeman 链码和预先设定的字库中与该输入的手写拉丁字母匹配的粗分类候选字母集合中每个 字母相应的各个标准字母的最优隐马可夫模型的匹配概率,再从各个匹配概率中获取最 大匹配概率,将预先设定的字库中与最大匹配概率对应的标准字母确定为输入的手写拉丁字母的最终识别结果。
所述的步骤②包括以下具体步骤②-l、对存储在结构体数组中的笔迹坐标进行平 滑滤波、去除硬件噪声及手写时产生的毛刺和断笔;②-2、利用联机单点宽度手写体的 线性规一化和非线性规一化算法对由经过步骤②-l处理后的笔迹坐标转换成矩阵形式 存放构成的笔迹坐标点阵进行线性规一化和非线性规一化处理,得到新笔迹坐标点阵; ②-3、对经过步骤②-2处理后得到的新笔迹坐标点阵中丢失的有效特征点进行补点操作。
所述的步骤②-2中的联机单点宽度手写体的线性规一化和非线性规一化算法为a1. 采用公知的坐标框图比例縮放和直接投影的方法,将由经过步骤②-l处理后的笔迹坐标 转换成矩阵形式存放构成的笔迹坐标点阵线性规一化到标准坐标点阵;a2.将标准坐标
点阵中的标准坐标点表示为(x,力,并将标准坐标点(x,少)划分成非笔迹坐标点和笔迹坐 标点;a3.计算标准坐标点(;c,;;)的密度函数t/(x,力,
"卜力-lr""^,力");£:§^^,其中,"为当前所取标准坐标点的位置上的
横向密度,Ay为当前所取标准坐标点的位置上的竖向密度,^表示标准坐标点阵的长 度,其值为64; a4.根据标准坐标点(x,"的密度函数d(x,;;)计算标准坐标点(x,力的水
平密度投影函数/fW和垂直密度投影函数r(力,Z/(:c) = ^^(x,>0 + ],
roo=i^["o^)+^],其中,"",力为标准坐标点",力的密度函数,/xj表示标准
坐标点阵的大小,其值为64x64, 和A为矫正系数,其值均为0.1; a5.利用水平密 度投影函数i/(x)和垂直密度投影函数r(力进行非线性规一化,求取新笔迹坐标点阵,
附-X,x / ' w = SkO0x^^~,其中,/xJ表示标准坐标点阵的大小,
" t,严1 &(力
其值为64x64; MxiV表示非线性规一化处理后得到的新笔迹坐标点阵的大小,其值预 先设定为64x64; (m,")为新笔迹坐标点阵中的坐标点;!、1,2,…,/, _/ = 1,2,.. , /。
所述的步骤④包括以下具体步骤 -1、判断输入的手写拉丁字母是否为上下结构, 如果输入的手写拉丁字母是上下结构,则再判断输入的手写拉丁字母的最后笔划是否为 横笔划,如果是横笔划,则直接确定该输入的手写拉丁字母匹配的粗分类字母集合为横
14笔划粗分类候选字母集合,如果不是横笔划,则直接确定该输入的手写拉丁字母匹配的 粗分类字母集合为非横笔划粗分类候选字母集合;如果输入的手写拉丁字母不是上下结 构,则继续执行; -2、计算输入的手写拉丁字母的横向穿越数,当横向穿越数为1时, 计算输入的手写拉丁字母的竖向穿越数,根据不同的竖向穿越数直接确定该输入的手写 拉丁字母匹配的粗分类字母集合为S=l、 S=2、 S=3或S=4粗分类候选字母集合;当横 向穿越数为2时,计算输入的手写拉丁字母上l/3部分的横向穿越数,当字母上l/3部 分的横向穿越数为2或3时,直接确定该输入的手写拉丁字母匹配的粗分类字母集合为 up=2粗分类候选字母集合或up=3粗分类候选字母集合,当字母上1/3部分的横向穿越 数为1时,计算输入的手写拉丁字母的竖向穿越数,利用竖向穿越数再根据新笔迹坐标 点阵中的最后一个新笔迹坐标点在输入的手写拉丁字母中所处的位置及输入的手写拉 丁字母是否存在左向开口圆弧,确定该输入的手写拉丁字母匹配的粗分类字母集合;当 11=3时,计算输入的手写拉丁字母的最优竖向穿越数,当最优竖向穿越数为2或3时, 直接确定该输入的手写拉丁字母匹配的粗分类字母集合为Maxs=2粗分类候选字母集合 或Max^3粗分类候选字母集合,当最优竖向穿越数为l时,根据新笔迹坐标点阵中的 最后一个新笔迹坐标点在输入的手写拉丁字母中所处的位置及输入的手写拉丁字母是 否存在左向开口圆弧,确定该输入的手写拉丁字母匹配的粗分类字母集合;当11=4时, 计算输入的手写拉丁字母下1/3部分的横向穿越数,当字母下1/3部分的横向穿越数为 2或3时,直接确定该输入的手写拉丁字母匹配的粗分类字母集合为down=2粗分类候 选字母集合或down=3粗分类候选字母集合,当字母下1/3部分的横向穿越数为1时, 计算输入的手写拉丁字母的竖向穿越数,利用竖向穿越数再根据新笔迹坐标点阵中的最
后一个新笔迹坐标点在输入的手写拉丁字母中所处的位置及输入的手写拉丁字母是否 存在左向开口圆弧,确定该输入的手写拉丁字母匹配的粗分类字母集合。
所述的步骤 -1中判断输入的手写拉丁字母是否为上下结构的方法为第一步,首 先自上而下一行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将行值定位 为正在扫描的当前行,并将该行值定义为字符上界;再自下而上一行一行扫描新笔迹坐 标点阵,当遇到第一个新笔迹坐标点时,将行值定位为正在扫描的当前行,并将该行值 定义为字符下界;第二步,从字符上界开始扫描至字符下界,记录扫描过程中不存在新 笔迹坐标点的空白行行数,当连续空白行行数大于等于3且连续空白行的最后一空白行 的下一行为非空白行时,确定该输入的手写拉丁字母为上下结构。
所述步骤④-2中输入的手写拉丁字母的横向穿越数的计算过程为第一步,横向扫 描新笔迹坐标点阵中的每一行,记录每一行扫描过程中每次由非新笔迹坐标点转变为新 笔迹坐标点的次数,并将每一行各自转变的次数确定为各自的初始横向穿越数;第二步, 比较新笔迹坐标点阵中每一行的初始横向穿越数,找出各个初始横向穿越数重复3次或 3次以上的所有初始横向穿越数,然后从这些初始横向穿越数中找出最大的初始横向穿越数作为该字母最终的横向穿越数;所述的步骤 -2中输入的手写拉丁字母的竖向穿越 数的计算过程为第一步,竖向扫描新笔迹坐标点阵中的每一列,记录扫描过程中每次 由非新笔迹坐标点转变为新笔迹坐标点的次数,并将每一列各自转变的次数确定为各自 的初始竖向穿越数;第二步,比较新笔迹坐标点阵中每一列的初始竖向穿越数,找出各 个初始竖向穿越数重复3次或3次以上的所有初始竖向穿越数,然后从这些初始竖向穿 越数中找出最大的初始竖向穿越数作为该字母最终的竖向穿越数;所述的步骤 -2中输 入的手写拉丁字母上1/3部分的横向穿越数和字母下1/3部分的横向穿越数的计算过程 为第一步,首先自上而下一行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点 时,将行值定位为正在扫描的当前行,并将该行值定义为字符上界,记为ih再自下而 上一行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将行值定位为正在扫 描的当前行,并将该行值定义为字符下界,记为i2;第二步,计算字母上l/3部分的上 分界行,记为i3, i3=il+l/3 (i2-il),将字符上界il到上分界行i3之间的行作为该输入 的手写拉丁字母上1/3部分;计算字母下1/3部分的下分界行,记为i4, i4=il+2/3(i2-il), 将下分界行i4到字符下界i2之间的行作为该输入的手写拉丁字母下1/3部分;第三步, 根据输入的整个手写拉丁字母的横向穿越数的计算过程,得到字符上界il到上分界行 i3每一行的初始横向穿越数,找出各个初始横向穿越数重复3次或3次以上的初始横向 穿越数,然后从这些初始横向穿越数中找出最大的初始横向穿越数作为该输入的手写拉 丁字母上1/3部分的横向穿越数;采用计算字母上1/3部分的横向穿越数相同的方法, 得到字母下1/3部分的横向穿越数;所述的步骤 -2中输入的手写拉丁字母的最优竖向
穿越数的计算过程为在计算新笔迹坐标点阵中每一列的初始竖向穿越数的过程中,统
计各个初始竖向穿越数出现的次数,将出现次数最多的初始竖向穿越数作为最优竖向穿越数。
所述的步骤④-2中新笔迹坐标点阵中的最后一个新笔迹坐标点在输入的手写拉丁
字母中所处位置的判断过程为第一步,自上而下一行一行扫描新笔迹坐标点阵,当遇
到第一个新笔迹坐标点时,将行值定位为正在扫描的当前行,并将该行值定义为字符上
界,记为ih自下而上一行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时, 将行值定位为正在扫描的当前行,并将该行值定义为字符下界,记为i2;自左而右一列
一列扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将列值定位为正在扫描的当 前列,并将该列值定义为字符左界,记为jh自右而左一列一列扫描新笔迹坐标点阵, 当遇到第一个新笔迹坐标点时,将列值定位为正在扫描的当前列,并将该列值定义为字
符右界,记为j2;由字符上界il、字符下界i2、字符左界jl和字符右界j2构成输入的
手写拉丁字母的最小矩形外接框;第二步,将最小矩形外接框平均划分成左上小矩形框、
左下小矩形框、右上小矩形框和右下小矩形框四个小矩形框;第三步,判断新笔迹坐标 点阵中的最后一个新笔迹坐标点位于左上小矩形框、左下小矩形框、右上小矩形框还是右下小矩形框,当最后一个新笔迹坐标点们于左上小矩形框时,确定最后一个新笔迹坐 标点处于该输入的手写拉丁字母的左上位置,当最后一个新笔迹坐标点们于左下小矩形 框时,确定最后一个新笔迹坐标点处于该输入的手写拉丁字母的左下位置,当最后一个 新笔迹坐标点们于右上小矩形框时,确定最后一个新笔迹坐标点处于该输入的手写拉丁 字母的右上位置,当最后一个新笔迹坐标点们于右下小矩形框时,确定最后一个新笔迹 坐标点处于该输入的手写拉丁字母的右下位置。
所述的步骤 -2中输入的手写拉丁字母是否存在左向开口圆弧的判断过程为a.计 算新笔迹坐标点阵中每一列的初始竖向穿越数;b.从最右侧列开始向左检测,找到初始 竖向穿越数不为O的第一列,将该列记为k; c.当k-l列的初始竖向穿越数大于k列的 初始竖向穿越数时,将k列定义为基准列;当k-l列的初始竖向穿越数小于k列的初始 竖向穿越数时,终止检测,确定该字母不存在左向开口圆弧;当k-l列的初始竖向穿越 数等于k列的初始竖向穿越数时,继续向左检测,直到检测到的列的初始竖向穿越数不 等于k列的初始竖向穿越数时,将检测到的列定义为基准列;d.确定基准列后,记录下 基准列的扫描线上的第m个穿入点的纵坐标和第m个穿出点的纵坐标,同时记录下基 准列的左一列的扫描线上的第n个穿入点的纵坐标和第n个穿出点的纵坐标, n^l,2,…,M, n^,2,…,N, M的值为基准列的扫描线上的穿入点或穿出点的总个数,N 的值为基准列的左一列的扫描线上的穿入点或穿出点的总个数;e.找出基准列的扫描线 上的每一对穿入点和穿出点之间的中间点;f.计算每一个中间点与第n个穿入点之间的 第一直线距离,并找出基准列的左一列的扫描线上所有满足第一直线距离小于等于2的 穿入点,计算每一个中间点与第n个穿出点之间的第二直线距离,并找出基准列的左一 列的扫描线上所有满足第二直线距离小于等于2的穿出点,!^1,2,…,N, N为基准列的 左一列的扫描线上的穿入点或穿出点的总个数;g.计算基准列的左一列的扫描线上满足 第一直线距离小于等于2的第p个穿入点与基准列的左一列的扫描线上满足第二直线距 离小于等于2的第p个穿出点的中间位置点,并判断基准列的扫描线上与计算得到的各 个中间位置点处于同一行的点是否为非O点,当基准列的扫描线上与计算得到的其中一 个中间位置点处于同一行的点为非O点时,确定输入的手写拉丁字母存在左向开口圆弧, 当基准列的扫描线上与计算得到的各个中间位置点处于同一行的点均为0点时,确定输 入的手写拉丁字母不存在左向开口圆弧,p^,2,…,P,当基准列的左一列的扫描线上所 有满足第一直线距离小于等于2的穿入点的总个数小于等于基准列的左一列的扫描线上 所有满足第二直线距离小于等于2的穿出点的总个数时,P的值为基准列的左一列的扫 描线上所有满足第一直线距离小于等于2的穿入点的总个数,当基准列的左一列的扫描 线上所有满足第一直线距离小于等于2的穿入点的总个数大于基准列的左一列的扫描线 上所有满足第二直线距离小于等于2的穿出点的总个数时,P的值为基准列的左一列的 扫描线上所有满足第二直线距离小于等于2的穿出点的总个数。
17所述的步骤⑤包括以下具体步骤⑤-l、提取输入的手写拉丁字母的freeman链码; ⑤-2、利用公知的Viterbi算法计算该输入的手写拉丁字母的freeman链码和预先设定的字
库中与该输入的手写拉丁字母匹配的粗分类候选字母集合中每个字母相应的各个标准 字母的最优隐马可夫模型的匹配概率;⑤-3、利用公知的冒泡排序法对计算得到的各个 匹配概率进行排序,获取最大匹配概率;⑤-4、将预先设定的字库中与最大匹配概率对 应的标准字母确定为输入的手写拉丁字母的最终识别结果。
与现有技术相比,本发明的优点在考虑拉丁字母的多种写法,提取不同写法下拉丁 字母多种稳定特征,利用一种特征对拉丁字母集合进行一次分类,这样可以将整个标准 拉丁字母集合分类成多个互有交集的小拉丁字母集合,作为识别时粗分类候选字母集 合,当识别输入的手写拉丁字母时,提取该输入的手写拉丁字母分类特征进行层层特征 匹配,直到得到该字母匹配的粗分类候选字母集合,多种稳定特征的提取保证了识别率, 字母集合层层分类和识别时的层层特征匹配到最后的粗分类候选字母集合,使得在输入 的手写拉丁字母识别时,找到层层有规律搜索路径,大大提高了识别速度。


图l为本发明的流程示意图2a为字母本身为上下结构的手写拉丁字母的示意图; 图2b为因自由手写引起的上下结构的手写拉丁字母的示意图一; 图2c为因自由手写引起的上下结构的手写拉丁字母的示意图二; 图2d为因自由手写引起的上下结构的手写拉丁字母的示意图三; 图2e为因自由手写引起的上下结构的手写拉丁字母的示意图四; 图3为判断新笔迹坐标点阵中的最后一个新笔迹坐标点在输入的手写拉丁字母中所 处位置的判断示意图4为计算手写拉丁字母Lx, Ly的着眼方向示意图5a为横向密度Zx的第一种取值的判定示意图5b为横向密度丄;c的第二种取值的判定示意图5c为横向密度ZJC的第三种取值的判定示意图5d为横向密度丄;c的第四种取值的判定示意图5e为横向密度Zx的第五种取值的判定示意图6为左向开口圆弧的手写字母示意图7为一个手写拉丁字母的笔迹示意图8为图7画圈部分Freeman码求取示意图9为八方向Freeman码定义图10a为利用本发明的识别方法对其中一个输入的手写字母进行识别后输出的结果图10b为利用本发明的识别方法对另一个输入的手写字母进行识别后输出的结果图。
具体实施例方式
以下结合附图实施例对本发明作进一步详细描述。
首先对预先设定在终端设备中的标准拉丁字母字库进行描述。
字库包括52个标准拉丁字母,以及每个标准拉丁字母对应的最优隐马可夫模型。
最优隐马可夫模型的获取过程为
1) 、自然手写52个拉丁字母100次,每手写一个拉丁字母一次按照手写的笔迹顺 序,根据图9所示的八方向freeman链码定义示意图求取该拉丁字母的所有笔迹经过的 坐标点的八方位方向码,即freeman链码,freeman链码具有0、 1、 2、 3、 4、 5、 6和7 八个方向码。这样每个拉丁字母的一次手写就可得到一串freeman链码,手写100次, 即可得到一个拉丁字母对应的100串freeman链码,将每个拉丁字母得到的100串 freeman链码作为该拉丁字母的100个样本。
2) 、将样本输入到初始隐马可夫模型中进行样本训练,得到最优隐马可夫模型。具 体包括以下步骤第一步,确定状态数L,观察值个数G,并对初始隐马可夫模型中的 模型参数进行等概率初始化,由于freeman链码具有O、 1、 2、 3、 4、 5、 6、 7八种值,故 在本实施例中取0=8,同时取L40, L一般取0 20之间的值,从理论上来说L的值越大, 得到的最优隐马可夫模型越准确,但L的值过大,不仅会增加计算复杂度,而且对终端 设备的CPU的要求将更高。第二步,将步骤l)得到的样本作为初始隐马可夫模型的观 察值序列,采用公知的Baum-Welch迭代重估算法来优化初始隐马可夫模型中的模型参
数,最终得到最优隐马可夫模型。
步骤2)中的Baum-Welch迭代重估算法是基于最陡梯度下降的局部优化算法,参 数估计时极易陷入局部最优解,该Baum-Welch迭代重估算法不能保证找到全局最大点, 其收敛的点可能是局部极大点,为达到全局最优,可采用基于随机松弛的离散隐马可夫 参数全局优化算法对初始隐马可夫模型中的模型参数进行全局优化训练,最终得到最优 隐马可夫模型。
在标准拉丁字母字库的基础上,本发明的一种自由手写拉丁字母识别方法,如图l 所示,包括以下步骤
步骤①,对输入终端设备的手写拉丁字母(即待识对象)的笔迹坐标进行采集,并将采集到的笔迹坐标实时存储到预先定义的结构体数组中;在此具体实施例中,终端设 备可以为手机、PDA (Personal Digital Assistant,个人数码助理)等数字终端产品,终 端设备的输入框设定为192x192点阵坐标输入框。
步骤②,对存储在结构体数组中的笔迹坐标转换成矩阵形式存放构成的笔迹坐标点 阵进行预处理,预处理过程主要包括以下具体步骤
②-l、对存储在结构体数组中的笔迹坐标进行平滑滤波、去除存在的硬件噪声及去 除手写时产生的毛剌和断笔。在此具体实施例中,平滑滤波、去除存在的硬件噪声及去 除手写时产生的毛剌和断笔均采用现有的成熟技术进行处理。
②-2、由于在手写拉丁字母时,手写字母在形体结构上与标准字母相比有较多不规 整的地方,使手写字母的一些局部笔划存在各种各样的形变,这种形变会给后续的处理 带来极大的影响,因此本发明提出了联机单点宽度手写体的线性规一化和非线性规一化 算法以矫正手写字母的局部形变。
该算法对由经过步骤②-l处理后的笔迹坐标转换成矩阵形式存放构成的笔迹坐标 点阵进行线性规一化和非线性规一化处理,得到新笔迹坐标点阵,达到对手写字母的局 部形变矫正的目的。该算法的具体步骤如下
al.采用公知的坐标框图比例縮放和直接投影的方法,将由经过步骤②-l处理后的 笔迹坐标转换成矩阵形式存放构成的笔迹坐标点阵线性规一化到64x64标准坐标点阵, 线性规一化处理可以减少后续非线性规一化处理的运算量,同时可增强非线性规一化处 理的可行性。
a2.将标准坐标点阵中的标准坐标点表示为(x,少),并将标准坐标点(x,少)划分成非
笔迹坐标点和笔迹坐标点。非笔迹坐标点为笔迹没有划过的地方,非笔迹坐标点的左右 笔划存在情况,包括左右均无笔划、左边有笔划而右边无笔划及左右均有笔划;笔迹坐 标点为笔迹划过的点,笔迹坐标点的左右笔划存在情况也同样有多种,包括左右均无笔
划、左边有笔划而右边无笔划及左边无笔划而右边有笔划;笔划可定义为从落笔到提笔
为1笔划。
a3.计算标准坐标点(:c,力的密度函数d(;c,力,
小,力-jr"(M"^) ; S^g^,其中,"为当前所取标准坐标点的位置上的
横向密度,丄y为当前所取标准坐标点的位置上的竖向密度,Z表示标准坐标点阵的长 度,其值为64。
a4.根据标准坐标点(x,力的密度函数计算标准坐标点(x,"的水平密度投
20影函数//00和垂直密度投影函数7(力,//(x)-t[^c,力+ ^], rCy) = ^["Oc,y)+"v],
少=1 x=l
其中,d(x,力为标准坐标点(x,》的密度函数,/xJ表示标准坐标点阵的大小,其值为 64x64; 和^为矫正系数,其值均为O.l。矫正系数&和^的值从理论上来说介于
,F(力t[d(x,力+ "J,其中,J(x,力为标准坐标点(x,力的密度函数,/xJ表示标准坐标点阵的大小,其值为64x64, 和A为矫正系数,其值均为0.1; a5.利用水平密度投影函数Z/0c)和垂直密度投影函数rO;)进行非线性规一 化,求取新笔迹坐标点阵,<formula>formula see original document page 6</formula>表示标准坐标点阵的大小,其值为64x64; Mx7V表示非线性规一化处理后得到的新笔 迹坐标点阵的大小,其值预先设定为64x64; O,n)为新笔迹坐标点阵中的坐标点;/ = 1,2,...,/, 乂 = 1,2广-乂。
4、根据权利要求1所述的一种自由手写拉丁字母识别方法,其特征在于所述的步 骤④包括以下具体步骤④-l、判断输入的手写拉丁字母是否为上下结构,如果输入的手写拉丁字母是上下结构,则再判断输入的手写拉丁字母的最后笔划是否为横笔划,如 果是横笔划,则直接确定该输入的手写拉丁字母匹配的粗分类字母集合为横笔划粗分类 候选字母集合,如果不是横笔划,则直接确定该输入的手写拉丁字母匹配的粗分类字母集合为非横笔划粗分类候选字母集合;如果输入的手写拉丁字母不是上下结构,则继续 执行; -2、计算输入的手写拉丁字母的横向穿越数,当横向穿越数为l时,计算输入 的手写拉丁字母的竖向穿越数,根据不同的竖向穿越数直接确定该输入的手写拉丁字母 匹配的粗分类字母集合为S=l、 S=2、 S=3或S=4粗分类候选字母集合;当横向穿越数 为2时,计算输入的手写拉丁字母上1/3部分的横向穿越数,当字母上l/3部分的横向 穿越数为2或3时,直接确定该输入的手写拉丁字母匹配的粗分类字母集合为up=2粗 分类候选字母集合或up=3粗分类候选字母集合,当字母上1/3部分的横向穿越数为1 时,计算输入的手写拉丁字母的竖向穿越数,利用竖向穿越数再根据新笔迹坐标点阵中 的最后一个新笔迹坐标点在输入的手写拉丁字母中所处的位置及输入的手写拉丁字母 是否存在左向开口圆弧,确定该输入的手写拉丁字母匹配的粗分类字母集合;当H=3 时,计算输入的手写拉丁字母的最优竖向穿越数,当最优竖向穿越数为2或3时,直接 确定该输入的手写拉丁字母匹配的粗分类字母集合为Maxs=2粗分类候选字母集合或 Maxs=3粗分类候选字母集合,当最优竖向穿越数为1时,根据新笔迹坐标点阵中的最 后一个新笔迹坐标点在输入的手写拉丁字母中所处的位置及输入的手写拉丁字母是否 存在左向开口圆弧,确定该输入的手写拉丁字母匹配的粗分类字母集合;当11=4时,计 算输入的手写拉丁字母下1/3部分的横向穿越数,当字母下1/3部分的横向穿越数为2 或3时,直接确定该输入的手写拉丁字母匹配的粗分类字母集合为down=2粗分类候选 字母集合或down-3粗分类候选字母集合,当字母下1/3部分的横向穿越数为1时,计 算输入的手写拉丁字母的竖向穿越数,利用竖向穿越数再根据新笔迹坐标点阵中的最后一个新笔迹坐标点在输入的手写拉丁字母中所处的位置及输入的手写拉丁字母是否存 在左向开口圆弧,确定该输入的手写拉丁字母匹配的粗分类字母集合。
5、 根据权利要求4所述的一种自由手写拉丁字母识别方法,其特征在于所述的步 骤 -1中判断输入的手写拉丁字母是否为上下结构的方法为第一步,首先自上而下一 行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将行值定位为正在扫描的 当前行,并将该行值定义为字符上界;再自下而上一行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将行值定位为正在扫描的当前行,并将该行值定义为字符下 界;第二步,从字符上界开始扫描至字符下界,记录扫描过程中不存在新笔迹坐标点的空白行行数,当连续空白行行数大于等于3且连续空白行的最后一空白行的下一行为非空白行时,确定该输入的手写拉丁字母为上下结构。
6、 根据权利要求4所述的一种自由手写拉丁字母识别方法,其特征在于所述步骤 -2中输入的手写拉丁字母的横向穿越数的计算过程为第一步,横向扫描新笔迹坐标 点阵中的每一行,记录每一行扫描过程中每次由非新笔迹坐标点转变为新笔迹坐标点的 次数,并将每一行各自转变的次数确定为各自的初始横向穿越数;第二步,比较新笔迹 坐标点阵中每一行的初始横向穿越数,找出各个初始横向穿越数重复3次或3次以上的 所有初始横向穿越数,然后从这些初始横向穿越数中找出最大的初始横向穿越数作为该 字母最终的横向穿越数;所述的步骤 -2中输入的手写拉丁字母的竖向穿越数的计算过 程为第一步,竖向扫描新笔迹坐标点阵中的每一列,记录扫描过程中每次由非新笔迹 坐标点转变为新笔迹坐标点的次数,并将每一列各自转变的次数确定为各自的初始竖向 穿越数;第二步,比较新笔迹坐标点阵中每一列的初始竖向穿越数,找出各个初始竖向 穿越数重复3次或3次以上的所有初始竖向穿越数,然后从这些初始竖向穿越数中找出 最大的初始竖向穿越数作为该字母最终的竖向穿越数;所述的步骤 -2中输入的手写拉 丁字母上1/3部分的横向穿越数和字母下1/3部分的横向穿越数的计算过程为第一步, 首先自上而下一行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将行值定 位为正在扫描的当前行,并将该行值定义为字符上界,记为il;再自下而上一行一行扫 描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将行值定位为正在扫描的当前行, 并将该行值定义为字符下界,记为i2;第二步,计算字母上1/3部分的上分界行,记为 i3, i3=il+l/3 (i2-il),将字符上界il到上分界行i3之间的行作为该输入的手写拉丁字 母上l/3部分;计算字母下1/3部分的下分界行,记为i4, i4=il+2/3 (i2-n),将下分界 行i4到字符下界i2之间的行作为该输入的手写拉丁字母下1/3部分;第三步,根据输 入的整个手写拉丁字母的横向穿越数的计算过程,得到字符上界il到上分界行i3每一 行的初始横向穿越数,找出各个初始横向穿越数重复3次或3次以上的初始横向穿越数, 然后从这些初始横向穿越数中找出最大的初始横向穿越数作为该输入的手写拉丁字母上1/3部分的横向穿越数;采用计算字母上1/3部分的横向穿越数相同的方法,得到字 母下1/3部分的横向穿越数;所述的步骤④-2中输入的手写拉丁字母的最优竖向穿越数 的计算过程为在计算新笔迹坐标点阵中每一列的初始竖向穿越数的过程中,统计各个 初始竖向穿越数出现的次数,将出现次数最多的初始竖向穿越数作为最优竖向穿越数。
7、 根据权利要求4所述的一种自由手写拉丁字母识别方法,其特征在于所述的步 骤④-2中新笔迹坐标点阵中的最后一个新笔迹坐标点在输入的手写拉丁字母中所处位 置的判断过程为第一步,自上而下一行一行扫描新笔迹坐标点阵,当遇到第一个新笔 迹坐标点时,将行值定位为正在扫描的当前行,并将该行值定义为字符上界,记为il; 自下而上一行一行扫描新笔迹坐标点阵,当遇到第一个新笔迹坐标点时,将行值定位为 正在扫描的当前行,并将该行值定义为字符下界,记为i2;自左而右一列一列扫描新笔 迹坐标点阵,当遇到第一个新笔迹坐标点时,将列值定位为正在扫描的当前列,并将该 列值定义为字符左界,记为jl;自右而左一列一列扫描新笔迹坐标点阵,当遇到第一个 新笔迹坐标点时,将列值定位为正在扫描的当前列,并将该列值定义为字符右界,记为 j2;由字符上界il、字符下界i2、字符左界jl和字符右界j2构成输入的手写拉丁字母 的最小矩形外接框;第二步,将最小矩形外接框平均划分成左上小矩形框、左下小矩形 框、右上小矩形框和右下小矩形框四个小矩形框;第三步,判断新笔迹坐标点阵中的最 后一个新笔迹坐标点位于左上小矩形框、左下小矩形框、右上小矩形框还是右下小矩形 框,当最后一个新笔迹坐标点们于左上小矩形框时,确定最后一个新笔迹坐标点处于该 输入的手写拉丁字母的左上位置,当最后一个新笔迹坐标点们于左下小矩形框时,确定 最后一个新笔迹坐标点处于该输入的手写拉丁字母的左下位置,当最后一个新笔迹坐标 点们于右上小矩形框时,确定最后一个新笔迹坐标点处于该输入的手写拉丁字母的右上 位置,当最后一个新笔迹坐标点们于右下小矩形框时,确定最后一个新笔迹坐标点处于 该输入的手写拉丁字母的右下位置。
8、 根据权利要求6所述的一种自由手写拉丁字母识别方法,其特征在于所述的步 骤④-2中输入的手写拉丁字母是否存在左向开口圆弧的判断过程为a.计算新笔迹坐标 点阵中每一列的初始竖向穿越数;b.从最右侧列开始向左检测,找到初始竖向穿越数不为0的第一列,将该列记为k; C.当k-l列的初始竖向穿越数大于k列的初始竖向穿越 数时,将k列定义为基准列;当k-l列的初始竖向穿越数小于k列的初始竖向穿越数时, 终止检测,确定该字母不存在左向开口圆弧;当k-l列的初始竖向穿越数等于k列的初 始竖向穿越数时,继续向左检测,直到检测到的列的初始竖向穿越数不等于k列的初始 竖向穿越数时,将检测到的列定义为基准列;d.确定基准列后,记录下基准列的扫描线 上的第m个穿入点的纵坐标和第m个穿出点的纵坐标,同时记录下基准列的左一列的 扫描线上的第n个穿入点的纵坐标和第n个穿出点的纵坐标,m-l,2,…,M, n=l,2/**,N,M的值为基准列的扫描线上的穿入点或穿出点的总个数,N的值为基准列的左一列的扫 描线上的穿入点或穿出点的总个数;e.找出基准列的扫描线上的每一对穿入点和穿出点 之间的中间点;f.计算每一个中间点与第n个穿入点之间的第一直线距离,并找出基准 列的左一列的扫描线上所有满足第一直线距离小于等于2的穿入点,计算每一个中间点 与第n个穿出点之间的第二直线距离,并找出基准列的左一列的扫描线上所有满足第二 直线距离小于等于2的穿出点,ip4,2,…,N, N为基准列的左一列的扫描线上的穿入点 或穿出点的总个数;g.计算基准列的左一列的扫描线上满足第一直线距离小于等于2 的第p个穿入点与基准列的左一列的扫描线上满足第二直线距离小于等于2的第p个穿 出点的中间位置点,并判断基准列的扫描线上与计算得到的各个中间位置点处于同一行 的点是否为非0点,当基准列的扫描线上与计算得到的其中一个中间位置点处于同一行 的点为非0点时,确定输入的手写拉丁字母存在左向开口圆弧,当基准列的扫描线上与 计算得到的各个中间位置点处于同一行的点均为0点时,确定输入的手写拉丁字母不存 在左向开口圆弧,p-l,2,…,P,当基准列的左一列的扫描线上所有满足第一直线距离小 于等于2的穿入点的总个数小于等于基准列的左一列的扫描线上所有满足第二直线距离 小于等于2的穿出点的总个数时,P的值为基准列的左一列的扫描线上所有满足第一直 线距离小于等于2的穿入点的总个数,当基准列的左一列的扫描线上所有满足第一直线 距离小于等于2的穿入点的总个数大于基准列的左一列的扫描线上所有满足第二直线距 离小于等于2的穿出点的总个数时,P的值为基准列的左一列的扫描线上所有满足第二 直线距离小于等于2的穿出点的总个数。
9、根据权利要求1所述的一种自由手写拉丁字母识别方法,其特征在于所述的步 骤(D包括以下具体步骤(D-l、提取输入的手写拉丁字母的freeman链码;⑤-2、利用 公知的Viterbi算法计算该输入的手写拉丁字母的freeman链码和预先设定的字库中与该 输入的手写拉丁字母匹配的粗分类候选字母集合中每个字母相应的各个标准字母的最 优隐马可夫模型的匹配概率;⑤-3、利用公知的冒泡排序法对计算得到的各个匹配概率 进行排序,获取最大匹配概率;⑤-4、将预先设定的字库中与最大匹配概率对应的标准 字母确定为输入的手写拉丁字母的最终识别结果。
全文摘要
本发明公开了一种自由手写拉丁字母识别方法,优点在考虑拉丁字母的多种写法,提取不同写法下拉丁字母多种稳定特征,利用一种特征对拉丁字母集合进行一次分类,这样可以将整个标准拉丁字母集合分类成多个互有交集的小拉丁字母集合,作为识别时粗分类候选字母集合,当识别输入的手写拉丁字母时,提取该输入的手写拉丁字母分类特征进行层层特征匹配,直到得到该字母匹配的粗分类候选字母集合,多种稳定特征的提取保证了识别率,字母集合层层分类和识别时的层层特征匹配到最后的粗分类候选字母集合,使得在输入的手写拉丁字母识别时,找到层层有规律搜索路径,大大提高了识别速度。
文档编号G06K9/62GK101452531SQ20081016277
公开日2009年6月10日 申请日期2008年12月1日 优先权日2008年12月1日
发明者丁洪珍, 何加铭, 史智慧, 史爱军, 张青波, 樊玲慧, 范周镒, 贾德祥, 闻建芬, 平 陈, 静 陈, 马成臣 申请人:宁波新然电子信息科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1