一种字体书写笔顺生成方法、系统及其应用方法与流程

文档序号:27427912发布日期:2021-11-17 21:03阅读:631来源:国知局
一种字体书写笔顺生成方法、系统及其应用方法与流程

1.本技术涉及智能教学的技术领域,尤其是涉及一种字体书写笔顺生成方法、系统及其应用方法。


背景技术:

2.随着互联网技术的快速发展,敲键盘太多导致提起笔忘记如何写字的情况越发严重,这样对于小朋友从小学习汉字来说是尤为不利的。因此,将汉字书写与智能设备进行结合并向小朋友展示正确的书写动画尤为重要。
3.目前,以汉字为例,一种较为普遍的汉字笔画顺序生成方向都是采用flash或者gif等动画制作软件制作的。在采用这类动画制作软件的时候,需要人工一个一个将汉字以图片的形式进行笔画拆分,进而按照预定的书写顺序将各笔画图片进行动画效果呈现。
4.这种人工手动利用动画制作软件进行文字笔画顺序生成的方式,制作效率比较低,对此有待进一步改善。


技术实现要素:

5.为了提高字体书写笔顺生成的效率,本技术提供了一种字体书写笔顺生成方法、系统及其应用方法。
6.第一方面,本技术提供一种字体书写笔顺生成方法,采用如下的技术方案:一种字体书写笔顺生成方法,包括:获取字体轮廓点,所述轮廓点之间连成有路径信息,结合轮廓点以及路径信息提取拐点;根据预设提取规则对拐点进行识别提取,选取出锚点,所述锚点之间相互连接形成交界线段;根据交界线段对字体进行笔画拆分;根据预设简化规则以及笔画对字体轮廓点进行字体关键点提取;根据预设运行轨迹规则结合字体关键点确定笔画顺序数据,并将笔顺数据生成为统一格式文件并存储在文字库上。
7.通过采用上述技术方案,自动识别获取字体轮廓点后,对轮廓点进行进一步的提取,生成拐点,并进一步形成锚点使得笔画之间形成有交界线段,再根据交界线段对字体进行笔画拆分,随后再根据预设简化规则以及笔画对字体轮廓点进行字体关键点提取,最后根据预设运行轨迹规则结合字体关键点确定笔画顺序数据,并将笔顺数据生成为统一格式文件并存储在文字库上,该过程实现了字体笔画顺序自动生成的过程,有效提高了字体制作效率。
8.可选的,所述结合轮廓点以及路径信息提取拐点的步骤,包括:比较经过同一轮廓点的两条路径信息位于该轮廓点的切线之间的角度差;当角度差大于预设角度时,则判断此轮廓点为拐点。
9.通过采用上述技术方案,对经过同一轮廓点的两条路径信息位于于该轮廓点的切线之间的角度差进行比较,当角度差大于预设角度时,则判断此轮廓点为拐点,能够有效提取字体具有较大曲折度的轮廓点,进而减少后续需要数据处理的量,提高处理效率。
10.可选的,所述根据预设提取规则对拐点进行识别提取,选取出锚点,所述锚点之间相互连接形成交界线段的步骤,包括:获取拐点之间的特征信息,所述特征信息包括两点之间斜率的弧度以及两点之间的距离;通过深度学习拐点训练模型训练拐点之间的特征信息,得到对应的匹配分数,并根据匹配分数设置带有权重的二分图;利用匈牙利算法计算二分图,得到最大权重匹配关系,其中,当拐点最大匹配对象不为本身时,将拐点进行连线形成交界线段,交界线段两端的拐点为锚点。
11.通过采用上述技术方案,设置的二分图以及匈牙利算法可在拐点的基础上识别出锚点,从而形成交界线段,进而为笔画拆分设定基础。
12.可选的,所述根据交界线段对字体进行笔画拆分的步骤,包括:按照原始轮廓顺序信息确定终始拐点,并按照原始轮廓顺序信息识别下一拐点判断是否有多个交界线段;若拐点只有单一交界线段或者无交界线段,则将该拐点加入至笔画路径中;若拐点有多个交界线段时,选择交界线段的斜率角度与当前拐点路径前进方向的切线斜率角度差最小的交界线段上的锚点加入至笔画路径中;当重新识别到终始拐点时,则完成对笔画的拆分。
13.通过采用上述技术方案,连接字体拐点,并开始识别拐点上的交界线段的数量,从而判断是否将其加入笔画路径中,实现对笔画的拆分。
14.可选的,所述根据预设简化规则以及笔画对字体轮廓点进行字体关键点提取的步骤,包括:利用二次贝赛尔曲线公式增加每一笔笔画上的采样点,所述采样点用于泰森多边形计算的输入量;结合采样点利用泰森多边形计算公式获得中位点,连接中位点形成中位线;通过判断中位点两侧的中位线之间斜率的角度差是否大于预设角度阀值,从而确定是否选择中位点为关键点。
15.通过采用上述技术方案,在对笔画进行拆分之后,存在的笔画数据最简单位为拐点,数量还是较为庞大,因此,进一步利用二次贝赛尔曲线公式以及泰森多边形对字体轮廓点进行提取,使得笔画能够用若干关键点进行表示,有效减少后续数据处理的数量,提高处理效率。
16.可选的,所述根据预设运行轨迹规则结合字体关键点确定笔画顺序数据,并将笔画顺序数据生成为统一格式文件并存储在文字库上的步骤,包括:结合字体轮廓点以及汉字结构表获得该字体的结构拆分,并构成结构树;将所有结构树上子结构的预设关键点按照结构的拆解顺序添加到一个集合内,通过深度学习关键点训练模型训练预设关键点与当前字体生成的关键点之间的特征信息,得到对应的匹配分数,并根据匹配分数设置带有权重的二分图;
利用匈牙利算法计算该二分图,得到最大权重匹配关系,从而获得该字形体相对子字体结构的笔画顺序数据;将笔画顺序数据生成为统一格式文件并存储在文字库上。
17.通过采用上述技术方案,最后对笔画结合预设好的汉字结构表有效确定了相应的笔画顺序数据,并将其存储到文字库上,以便之后能够随时获取该笔画顺序数据,有效实现了字体笔画顺序自动生成的过程。
18.第二方面,本技术提供一种字体书写笔顺生成系统,采用如下的技术方案:一种字体书写笔顺生成系统,包括:获取模块,用于获取字体轮廓点,所述轮廓点之间连成有路径信息,结合轮廓点以及路径信息提取拐点点位信息;提取模块,用于根据预设提取规则对拐点点位信息进行识别提取,选取处锚点点位信息,所述锚点位信息之间相互连接形成交界线段;拆分模块,用于根据交界线段对字体进行笔画拆分;简化模块,用于根据预设简化规则以及笔画对字体轮廓点进行字体关键点提取;确定模块,用于根据预设运行轨迹规则结合字体关键点确定笔画顺序数据,并将笔画顺序数据生成为统一格式文件并存储在文字库上。
19.第三方面,本技术提供一种电子设备,采用如下技术方案:一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的基于mes系统的物料防错管理方法的步骤。
20.第四方面,本技术提供一种计算机存储介质,采用如下技术方案:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于mes系统的物料防错管理方法的步骤。
21.第五方面,本技术提供一种字体书写笔顺应用方法,采用如下的技术方案:一种字体书写笔顺应用方法,包括:接收用户端文字练习请求信息,所述文字练习请求信息中包括练习字体;根据所述练习字体从文字库中获取对应字体的笔画描述信息,所述笔画描述信息包括笔画顺序数据以及关键点,并根据笔画顺序数据对字体各笔画的书写顺序进行初始动画呈现;接收并识别用户端点触位置,判断点触位置是否与关键点位置相匹配;若点触位置与关键点位置相匹配,则根据笔画顺序数据获取下一关键点信息,并以当前关键点为出发点以下一个关键点为终点进行笔画动画呈现,并通过当前关键字位置触发相应的笔画提示音;若点触位置与关键点位置不匹配,则进行警报预警。
22.通过采用上述技术方案,边写边提示相应的笔画动画效果能够让用户更加有真实临摹感,同时,设置的笔画提示音,该方式利用了用户的多个感官去练习字体,提高对字体认识的熟悉程度,加深印象,此外,在写错笔画时还设置有警报预警,能够及时调整用户的书写笔顺,从而达到一个更好的汉字教育效果。
附图说明
23.图1是本技术其中一实施例中一种字体书写笔顺生成方法的流程示意图。
24.图2是本技术另一实施例中步骤s1的具体步骤流程示意图。
25.图3是本技术另一实施例中步骤s2的具体步骤流程示意图。
26.图4是本技术另一实施例中步骤s3的具体步骤流程示意图。
27.图5是本技术另一实施例中步骤s4的具体步骤流程示意图。
28.图6是本技术另一实施例中步骤s5的具体步骤流程示意图。
29.图7是本技术其中一实施例中字体书写笔顺应用方法的流程示意图。
30.图8是本技术其中一实施例的一种字体书写笔顺生成系统的结构图。
31.图9是本技术其中一实施例中电子设备的原理框图。
32.图中,1、获取模块,2、提取模块,3、拆分模块,4、简化模块,5、确定模块。
具体实施方式
33.以下结合附图1

9对本技术作进一步详细说明。
34.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图1

9及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
35.下面对本技术实施例提供的一种字体书写笔顺生成方法进行描述,参照图1,本技术实施例中的字体书写笔顺生成方法,具体包括:s1、获取字体轮廓点,轮廓点之间连成有路径信息,结合轮廓点以及路径信息提取拐点。
36.具体的,在获取字体轮廓点前,需要选定统一的字形文本规范,比如ttf、otf或者woff文本等,在本实施例中,以ttf文本为例,利用开源工具opentype.js解析ttf字体文件,从而获取到字体的坐标系信息,进而识别出字体边缘的轮廓点,字体所有轮廓的点位信息之间的相连关系为路径信息,以每个轮廓点为提取拐点的来源点,结合经过每个轮廓点上的各个路径信息判断是否为拐点。
37.以下本技术公开中步骤s1中“结合轮廓点以及路径信息提取拐点”的一种可选实现方式流程图,参照图2,步骤s1具体包括以下步骤:s10、比较经过同一轮廓点的两条路径信息位于该轮廓点的切线之间的角度差;s11、当角度差大于预设角度时,则判断此轮廓点为拐点。
38.具体的,每个轮廓点上至少有两条路径信息,若轮廓点存在有两条以上路径信息,则对路径信息进行排列组合选取出两条路径信息,再通过分别计算出两条路径信息位于该轮廓点处的切线,比较两条切线的角度差,当角度差大于预设角度时,则判断此轮廓点为拐点,在本实施例中,预设角度优选范围为18
°‑
20
°

39.s2、根据预设提取规则对拐点进行识别提取,选取出锚点,锚点之间相互连接形成交界线段。
40.具体的,由于轮廓点以及路径信息并未能够区分笔画,为了实现笔画的区分,需要在笔画交界处让路径横穿过去,识别笔画公共交界处为笔画拆解出来的关键。通过预设提取规则识别提取拐点,从而选取出锚点,锚点位于笔画公共交界处,锚点的点位信息之间的
相连关系为交接线段。
41.以下本公开中步骤s2的一种可选实现方式流程图,参照图3,步骤s2具体包括以下步骤:s20、获取拐点之间的特征信息,特征信息包括两个拐点之间斜率的弧度以及两拐点之间的距离。
42.具体的,根据拐点坐标信息计算两个拐点之间斜率所对应的弧度以及两拐点之间的距离。
43.s21、通过深度学习拐点训练模型训练拐点之间的特征信息,得到对应的匹配分数,并根据匹配分数设置带有权重的二分图。
44.具体的,在本实施例中,采用的训练模型为convnetjs,通过输入两个拐点之间斜率所对应的弧度以及两点之间的距离,经过模型计算得到对应的匹配分数,根据匹配分数设置两个拐点之间的权重,设置带有权重的二分图,二分图两组变量皆为拐点。
45.s22、利用匈牙利算法计算二分图,得到最大权重匹配关系,其中,当拐点最大匹配对象不为本身时,将拐点进行连线形成交界线段,交界线段两端的拐点为锚点。
46.具体的,利用匈牙利算法计算二分图,得到一个最大权重匹配关系,其中,在根据权重进行匹配时,当拐点最大匹配的对象不是本身时,将两个拐点连接起来便形成交界线段。
47.s3、根据交界线段对字体进行笔画拆分。
48.具体的,设置的交界线段能够在笔画交界处实现笔画的横穿,从而将笔画拆解出来。
49.以下本公开中步骤s3的一种可选实现方式流程图,参照图4,步骤s3具体包括以下步骤:s30、按照原始轮廓顺序信息确定终始拐点,并按照原始轮廓顺序信息识别下一拐点判断是否有多个交界线段。
50.具体的,原始轮廓顺序信息是ttf文本保证的一个特有指令,对于不是处于交界线段的拐点都易知下个轮廓点或者拐点的坐标。通过原始轮廓顺序信息识别出下一拐点是否为多个交界线段。
51.s31、若拐点只有单一交界线段或者无交界线段,则将该拐点加入至笔画路径中。
52.s32、若拐点有多个交界线段时,选择交界线段的斜率角度与当前拐点路径前进方向的切线斜率角度差最小的交界线段上的锚点加入至笔画路径中。
53.s33、当重新识别到终始拐点时,则完成对笔画的拆分。
54.具体的,当识别到拐点上有一个以上的交界线段,则分别计算每个交界线段的斜率角度,并与拐点路径前进方向的切线斜率角度进行对比,角度差最小的交界线段上的锚点加入笔画路径中,直至重新识别到终始拐点,则完成对一笔画的拆分,进而循环式重新识别不同的终始拐点,根据以上规则,对每一笔画进行拆分。
55.进一步的,在步骤s3之后,由于交界线段都是通过直线连接的,使得笔锋位置十分的崎岖突兀线条不光滑,因此,需要对笔画进行修复,让笔画更加自然。具体的,通过将交界线段换用三次贝塞尔曲线替代,其中,以位于笔锋位置的相邻两个拐点为起点以及终点进行三次贝尔曲线计算。
56.s4、根据预设简化规则以及笔画对字体轮廓点进行字体关键点提取。
57.具体的,通过对字体轮廓点进一步进行关键字的提取,能够有效缩减字体生成后的存储大小,增加数据的运行速度,也有利于简化控制笔画的步骤。
58.以下本公开中步骤s4的一种可选实现方式流程图,参照图5,步骤s4具体包括以下步骤:s40、利用二次贝赛尔曲线公式增加每一笔笔画上的采样点,采样点用于泰森多边形计算的输入量。
59.s41、结合采样点利用泰森多边形计算公式获得中位点,连接中位点形成中位线。
60.s42、通过判断中位点两侧的中位线之间斜率的角度差是否大于预设角度阀值,从而确定是否选择中位点为关键点。
61.具体的,以相邻三个轮廓点作为二次贝塞尔曲线的输入值,增加第一笔笔画上的采样点,设置的采样点则能够作为泰森多边形计算的输入量,从而获得中位点,中位点位于笔画内中部处,连接所有中位点形成中位线,继而,通过判断中位点两侧的中位线之间的斜率的角度差是否大于预设角度阀值,在本实施例中,设置的预设角度阀值为15
°
,若大于预设角度阀值则选择该中位点为关键点。
62.s5、根据预设运行轨迹规则结合字体关键点确定笔画顺序数据,并将笔顺数据生成为统一格式文件并存储在文字库上。
63.具体的,当获得所有笔画对应的中位线后,结合字体关键字确定笔画的先后顺序。
64.以下本公开中步骤s5的一种可选实现方式流程图,参照图6,步骤s5具体包括以下步骤:s50、结合字体轮廓点以及汉字结构表获得该字体的结构拆分,并构成结构树。
65.具体的,根据汉子字体轮廓点的每个部件的环闭性,并对应汉字结构表对该字体进行结构拆分,例如:“相”可拆分为左右结构的“木”和“目”等,设置的汉字结构表预设在文字数据库内的一个功能表。
66.s51、将所有结构树上子结构的预设关键点按照结构的拆解顺序添加到一个集合内,通过深度学习关键点训练模型训练预设关键点与当前字体生成的关键点之间的特征信息,得到对应的匹配分数,并根据匹配分数设置带有权重的二分图。
67.s52、利用匈牙利算法计算该二分图,得到最大权重匹配关系,从而获得该形相对结构的笔画顺序数据。
68.具体的,所有的预设关键点预设在一个功能表上,将所有结构树上的子结构所对应的预设关键点添加到一个集合,预设关键点按照结构的拆解顺序加入,方便和当前字体生成的关键点做对比。对比过程采用的是convnetjs训练模型,算法与步骤s21、s22类似,对比完后得到相应的匹配分数,转换成带权重的二分图匹配问题。利用匈牙利算法计算二分图,得到一个最大权重匹配关系,从而获得该字体相对子字体结构的笔画顺序数据。
69.s53、将笔画顺序数据生成为统一格式文件并存储在文字库上。
70.具体的,通过上述算法过后,可以将笔画顺序数据生成为 json 格式的文件并存储在文字库上,文件的平均大小在 4 kb 左右。
71.当需要进行字体练习时,可通过输入字体从而从文字库中获取到该字体的笔画顺序数据,并按照笔画顺序数据展示描述了该字体的各笔画的表现形式。
72.基于上述原理和上述应用场景,需要说明的是,本技术提供了字体书写笔顺生成方法,即从处理器的视角来描述该方法,可以通过编程将字体书写笔顺生成方法实现为计算机程序在智能设备上实现,其包括但不限于计算机、网络主机、智能终端等。
73.本技术实施例还公开一种字体书写笔顺应用方法,参照图7,本技术实施例中的字体书写笔顺应用方法,具体包括:包括:s6、接收用户端文字练习请求信息,文字练习请求信息中包括练习字体;具体的,用户采用常规的电子采集设备输入文字练习请求信息,例如:学习机屏幕或者键盘、手机的屏幕或者键盘、计算机的键盘或者鼠标等,在此不作限定。其中,文字练习请求信息包括练习字体以及练习请求指令,练习请求指令可来自用户端浏览界面任意一处,便于用户能够随时对不认识的汉字进行实时练习,后台接收到练习请求指令后切换至字体练习模式。
74.s60、练习字体从文字库中获取对应字体的笔画描述信息,笔画描述信息包括笔画顺序数据以及关键点信息,并根据笔画顺序数据对字体各笔画的书写顺序进行初始动画呈现;具体的,切换至字体练习模式时,根据练习字体从文字库内获取对应字体的笔画描述信息,笔画描述信息包括笔画顺序数据以及关键点信息,在获得笔画顺序数据后,根据笔画顺序数据对字体各笔画的书写顺序进行初始动画呈现,让用户对该字体的笔画顺序进行初步的认识。
75.s61、接收并识别用户端点触位置,判断点触位置是否与关键点位置相匹配;具体的,在展示完初始动画后,进入书写模式,后台实时接收并识别用户端点触位置,并判断点触位置是否跟字体内的预设初始的关键点位置相匹配。
76.s62、若点触位置与关键点位置相匹配,则根据笔画顺序数据获取下一关键点,并以当前关键点为出发点以下一个关键点为终点进行笔画动画呈现,并通过当前关键字位置触发相应的笔画提示音。
77.具体的,若点触位置与关键点位置相匹配,则根据笔画顺序数据获取下一关键点,同时,以当前关键点位置为出发点以及以下一个关键点为终点进行笔画动画呈现,并以一个笔画初始的关键点为触发指令,触发相应的笔画提示音,该方式利用了用户的多个感官去练习字体,提高对字体认识的熟悉程度,加深印象。
78.当后台无法检测出点触位置或者点触位置在同一位置停留时间超过3秒时,则根据历史的关键点位置对下一步笔画进行闪烁或者标红等动画警告展示,以便提醒用户,若无历史关键点位置则以初始关键点位置为准。
79.s63、若点触位置与关键点位置不匹配,则进行警报预警。
80.具体的,若点触位置与关键点位置不匹配,则对初始关键点位置所对应的笔画进行闪烁或者标红等动画警报展示。
81.此外,在书写过程中,若点触位置与关键点位置不匹配,也可对当前关键点位置所对应的笔画进行闪烁或者标红等动画警报展示。
82.基于上述原理和上述应用场景,需要说明的是,本技术提供了字体书写笔顺应用方法,即从处理器的视角来描述该方法,可以通过编程将字体书写笔顺应用方法实现为计算机程序在智能设备上实现,其包括但不限于计算机、网络主机、智能终端等。
83.本技术实施例还提供一种字体书写笔顺生成系统,该字体书写笔顺生成系统与实施例中字体书写笔顺生成方法一一对应。参照图8,该字体书写笔顺生成系统包括:获取模块1、提取模块2、拆分模块3、简化模块4以及确定模块5。各功能模块详细说明如下:获取模块1:用于获取字体轮廓点,轮廓点之间连成有路径信息,结合轮廓点以及路径信息提取拐点点位信息;提取模块2:用于根据预设提取规则对拐点点位信息进行识别提取,选取处锚点点位信息,锚点位信息之间相互连接形成交界线段;拆分模块3:用于根据交界线段对字体进行笔画拆分;简化模块4:用于根据预设简化规则以及笔画对字体轮廓点进行字体关键点提取;确定模块5:用于根据预设运行轨迹规则结合字体关键点确定笔画顺序数据,并将笔画顺序数据生成为统一格式文件并存储在文字库上。
84.其中,后台通过获取模块1获取字体轮廓点,轮廓点之间连成有路径信息,结合轮廓点以及路径信息提取拐点点位信息,再通过提取模块2根据预设提取规则对拐点点位信息进行识别提取,选取处锚点点位信息,锚点位信息之间相互连接形成交界线段,继而通过拆分模块3根据交界线段对字体进行笔画拆分,进而利用简化模块4根据预设简化规则以及笔画对字体轮廓点进行字体关键点提取,而后通过确定模块5根据预设运行轨迹规则结合字体关键点确定笔画顺序数据,并将笔画顺序数据生成为统一格式文件并存储在文字库上。
85.关于字体书写笔顺生成系统的具体限定可参见上下文中对字体书写笔顺生成方法的限定,在此不再赘述。上述字体书写笔顺生成系统中的各模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备的存储器中,以便于处理器调用执行以上各模块对应的操作。
86.本实施例中,提供了一种电子设备,该电子设备是计算机。参照图9,该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储检测数据表。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种字体书写笔顺生成方法。
87.本技术实施例还公开一种计算机可读存储介质,存储有能够被处理器加载并执行的计算机程序,该计算机程序被处理器执行时实现上述任一种字体书写笔顺生成方法的步骤,且能达到相同的效果。
88.其中,计算机可读存储介质例如包括:u盘、移动硬盘、只读存储器(read

onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
89.以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1