著录项信息
专利名称 | 应用于毛笔书写的行笔路线识别方法和装置 |
申请号 | CN201510401749.1 | 申请日期 | 2015-07-09 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-09-30 | 公开/公告号 | CN104951811A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K9/68 | IPC分类号 | G;0;6;K;9;/;6;8;;;G;0;6;K;9;/;7;0查看分类表>
|
申请人 | 北京盛世宣合信息科技有限公司 | 申请人地址 | 北京市朝阳区吉庆里14号楼807号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京盛世宣合信息科技有限公司 | 当前权利人 | 北京盛世宣合信息科技有限公司 |
发明人 | 赵乃庸;谭韩成;刘炎 |
代理机构 | 北京超凡志成知识产权代理事务所(普通合伙) | 代理人 | 王术兰 |
摘要
本发明提供了一种应用于毛笔书写的行笔路线识别方法和装置。其中,该方法包括:采集手写输入设备按下书写至抬起停止书写过程中的书写轨迹数据;对书写轨迹数据进行平滑处理和插值处理;检测处理后的书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点;将相邻的特征点连接得到多个笔画段,根据笔画段的长度将上述多个笔画段划分为主笔画段和辅笔画段;根据主笔画段和辅笔画段间的连接关系确定对应的笔画段的特征;根据预先设定的笔画段八方向规则确定主笔画段的方向;将主笔画段的方向和笔画段的特征与预先建立的笔画样本库比对识别书写轨迹数据对应的笔画。通过本发明,提高了书写轨迹的准确性。
1.一种应用于毛笔书写的行笔路线识别方法,其特征在于,包括:
采集手写输入设备按下书写至抬起停止书写过程中的书写轨迹数据;其中,所述书写轨迹数据包括各个书写点的坐标和时间;
按照各个书写点的时间先后顺序对所述书写轨迹数据进行平滑处理和插值处理;
检测处理后的所述书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点;
将相邻的所述特征点连接得到所述书写轨迹数据的多个笔画段,根据笔画段的长度将所述多个笔画段划分为主笔画段和辅笔画段;
根据所述主笔画段和所述辅笔画段间的连接关系确定对应的笔画段的特征,所述笔画段的特征包括:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖和收笔转向;
根据预先设定的笔画段八方向规则确定所述主笔画段的方向;
将确定的所述主笔画段的方向和所述笔画段的特征与预先建立的笔画样本库比对,根据比对的结果识别所述书写轨迹数据对应的笔画;
检测处理后的所述书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点包括:
遍历处理后的所述书写轨迹数据中的每一个点,计算当前数据点与前一数据点组成的直线和所述当前数据点与后一数据点组成直线之间的夹角;
如果所述当前数据点的夹角小于预设的进入角阈值,标记第一段转折检测开始,记录后续遍历的数据点的夹角,直至记录的数据点的夹角大于预设的离开角阈值时,结束所述第一段转折检测;将记录的数据点的夹角中最小夹角对应的数据点确定为所述第一段转折检测出的特征点;继续遍历后续的数据点进行下一段转折点检测,直至所述书写轨迹数据中的每一个点遍历完毕。
2.根据权利要求1所述的方法,其特征在于,按照各个书写点的时间先后顺序对所述书写轨迹数据进行平滑处理和插值处理包括:
按照各个书写点的时间先后顺序对所述书写轨迹数据排序;
对排序后的所述书写轨迹数据进行道格拉斯-普克平滑处理;
在平滑处理后的所述书写轨迹数据中等间隔插入数据点。
3.根据权利要求1所述的方法,其特征在于,根据笔画段的长度将所述多个笔画段划分为主笔画段和辅笔画段包括:
检测当前笔画段的长度;
判断所述当前笔画段的长度是否小于设定的长度阈值;其中,所述长度阈值是笔宽与设定系数相乘的值;
如果小于,确定所述当前笔画段是辅笔画段;
如果不小于,确定所述当前笔画段是主笔画段。
4.根据权利要求1所述的方法,其特征在于,根据所述主笔画段和所述辅笔画段间的连接关系确定对应的笔画段的特征包括:
判断第一个主笔画段之前是否至少有两个辅笔画段,且与所述第一个主笔画段不相邻的辅笔画段中至少有一个与所述第一个主笔画段的方向反向,如果是,确定所述第一个主笔画段所在的笔画段为起笔藏锋;如果否,且第一个主笔画段前面有至少一个辅笔画段,确定所述第一个主笔画段所在的笔画段为起笔顿笔;
计算第一个主笔画段与前一个辅笔画段之间的角度差,根据所述角度差确定所述第一个主笔画段所在的笔画段为顺时转向或逆时转向;当第一个主笔画段之前没有辅笔画段时,确定所述第一个主笔画段所在的笔画段为直向;
判断最后一个主笔画段后面不相邻的辅笔画段的方向与所述最后一个主笔画段的方向是否反向,如果是,确定所述最后一个主笔画段所在笔画段为收笔回锋;如果否,且所述最后一个主笔画段后面有至少一个辅笔画段,确定所述最后一个主笔画段所在的笔画段为收笔顿笔;
计算最后一个主笔画段与后一个辅笔画段之间的角度差,根据所述角度差确定所述最后一个主笔画段所在的笔画段为顺时转向或逆时转向;当最后一个主笔画段之后没有辅笔画段,确定所述最后一个主笔画段所在的笔画段为收笔出尖。
5.一种应用于毛笔书写的行笔路线识别装置,其特征在于,包括:
数据采集模块,用于采集手写输入设备按下书写至抬起停止书写过程中的书写轨迹数据;其中,所述书写轨迹数据包括各个书写点的坐标和时间;
数据平滑与插值处理模块,用于按照各个书写点的时间先后顺序对所述书写轨迹数据进行平滑处理和插值处理;
特征点检测模块,用于检测处理后的所述书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点;
笔画段划分模块,用于将相邻的所述特征点连接得到所述书写轨迹数据的多个笔画段,根据笔画段的长度将所述多个笔画段划分为主笔画段和辅笔画段;
笔画段特征确定模块,用于根据所述主笔画段和所述辅笔画段间的连接关系确定对应的笔画段的特征,所述笔画段的特征包括:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖和收笔转向;
笔画段方向确定模块,用于根据预先设定的笔画段八方向规则确定所述主笔画段的方向;
笔画识别模块,用于将确定的所述主笔画段的方向和所述笔画段的特征与预先建立的笔画样本库比对,根据比对的结果识别所述书写轨迹数据对应的笔画;
所述特征点检测模块包括:
夹角计算单元,用于遍历处理后的所述书写轨迹数据中的每一个点,计算当前数据点与前一数据点组成的直线和所述当前数据点与后一数据点组成直线之间的夹角;
特征点确定单元,用于当所述当前数据点的夹角小于预设的进入角阈值时,标记第一段转折检测开始,记录后续遍历的数据点的夹角,直至记录的数据点的夹角大于预设的离开角阈值时,结束所述第一段转折检测;将记录的数据点的夹角中最小夹角对应的数据点确定为所述第一段转折检测出的特征点;继续遍历后续的数据点进行下一段转折点检测,直至所述书写轨迹数据中的每一个点遍历完毕。
6.根据权利要求5所述的装置,其特征在于,所述数据平滑与插值处理模块包括:
数据排序单元,用于按照各个书写点的时间先后顺序对所述书写轨迹数据排序;
平滑处理单元,用于对排序后的所述书写轨迹数据进行道格拉斯-普克平滑处理;
插值处理单元,用于在平滑处理后的所述书写轨迹数据中等间隔插入数据点。
7.根据权利要求5所述的装置,其特征在于,所述笔画段划分模块包括:
长度检测单元,用于检测当前笔画段的长度;
长度判断单元,用于判断所述当前笔画段的长度是否小于设定的长度阈值;其中,所述长度阈值是笔宽与设定系数相乘的值;
第一确定单元,用于当所述长度判断单元的判断结果为所述当前笔画段的长度小于所述设定的长度阈值时,确定所述当前笔画段是辅笔画段;
第二确定单元,用于当所述长度判断单元的判断结果为所述当前笔画段的长度不小于所述设定的长度阈值时,确定所述当前笔画段是主笔画段。
8.根据权利要求5所述的装置,其特征在于,所述笔画段特征确定模块包括:
起笔藏锋确定单元,用于判断第一个主笔画段之前是否至少有两个辅笔画段,且与所述第一个主笔画段不相邻的辅笔画段中至少有一个与所述第一个主笔画段的方向反向,如果是,确定所述第一个主笔画段所在的笔画段为起笔藏锋;
起笔顿笔确定单元,用于当所述第一个主笔画段所在的笔画段不是起笔藏锋,且第一个主笔画段前面有至少一个辅笔画段时,确定所述第一个主笔画段所在的笔画段为起笔顿笔;
起笔转向确定单元,用于计算第一个主笔画段与前一个辅笔画段之间的角度差,根据所述角度差确定所述第一个主笔画段所在的笔画段为顺时转向或逆时转向;当第一个主笔画段之前没有辅笔画段时,确定所述第一个主笔画段所在的笔画段为直向;
收笔回峰确定单元,用于判断最后一个主笔画段后面不相邻的辅笔画段的方向与所述最后一个主笔画段的方向是否反向,如果是,确定所述最后一个主笔画段所在笔画段为收笔回锋;
收笔顿笔确定单元,用于当所述最后一个主笔画段所在笔画段不是收笔回锋,且所述最后一个主笔画段后面有至少一个辅笔画段时,确定所述最后一个主笔画段所在的笔画段为收笔顿笔;
收笔转向确定单元,用于计算最后一个主笔画段与后一个辅笔画段之间的角度差,根据所述角度差确定所述最后一个主笔画段所在的笔画段为顺时转向或逆时转向;当最后一个主笔画段之后没有辅笔画段,确定所述最后一个主笔画段所在的笔画段为收笔出尖。
应用于毛笔书写的行笔路线识别方法和装置\n技术领域\n[0001] 本发明涉及图像处理领域,具体而言,涉及一种应用于毛笔书写的行笔路线识别方法和装置。\n背景技术\n[0002] 中国书法作为汉字的书写艺术,是一种古老和具有丰富内涵的艺术形式。它随着中华文明的发展而发展,以其独特的艺术形式和艺术语言展现了中国传统文化的内涵,在中国传统文化史上占有重要的地位。汉字一经产生,便呈现出了书法艺术的萌芽。从甲骨文、金文演变而为大篆、小篆、隶书,至定型于东汉、魏、晋的草书、楷书、行书诸体,书法一直散发着艺术的魅力。中国的书法艺术历史悠久,源远流长,影响深远。今天,在几乎所有的名胜古迹,我们都能看到从古至今无数文人墨客留下的书法作品。这些书法作品或是写于纸上、或是制成匾额、或是雕于石碑、或是刻于山崖,都是中华传统艺术文化的瑰宝。\n[0003] 随着现代科技的进步,计算机的普及和相关技术的飞速发展,人们拥有了新的书法创作方式。传统的笔、墨、纸、砚,也已不再是书写文字的必要工具。在多数情况下,人们是借助键盘和鼠标进行文字输入工作。因此,在汲取传统书法艺术的基础上,为了继承、弘扬和发展书法艺术,对其进行科学的仿真就成为当前艺术及科技领域最具挑战的课题之一。\n[0004] 同时,书法初学者要对很多优秀的书法作品进行大量的临摹训练以学习书法的用笔、结构、章法和意境等知识和技巧。对书法临摹与创作过程进行计算机模拟有利于人们更快速、简便、干净的练习书法,而且减少了笔墨纸砚的浪费,也激发了人们学习书法的热情。\n[0005] 因为不同的人书写的笔迹有所区别,形成了书写轨迹的多样性,现有毛笔模拟设备还不能有效准确的识别出书写轨迹。\n发明内容\n[0006] 有鉴于此,本发明实施例的目的在于提供一种应用于毛笔书写的行笔路线识别方法和装置,以提高识别书写轨迹的准确性。\n[0007] 第一方面,本发明实施例提供了一种应用于毛笔书写的行笔路线识别方法,包括:\n采集手写输入设备按下书写至抬起停止书写过程中的书写轨迹数据;其中,该书写轨迹数据包括各个书写点的坐标和时间;按照各个书写点的时间先后顺序对书写轨迹数据进行平滑处理和插值处理;检测处理后的书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点;将相邻的特征点连接得到书写轨迹数据的多个笔画段,根据笔画段的长度将上述多个笔画段划分为主笔画段和辅笔画段;根据主笔画段和辅笔画段间的连接关系确定对应的笔画段的特征,该笔画段的特征包括:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖和收笔转向;根据预先设定的笔画段八方向规则确定上述主笔画段的方向;将确定的上述主笔画段的方向和上述笔画段的特征与预先建立的笔画样本库比对,根据比对的结果识别书写轨迹数据对应的笔画。\n[0008] 结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,按照各个书写点的时间先后顺序对书写轨迹数据进行平滑处理和插值处理包括:按照各个书写点的时间先后顺序对书写轨迹数据排序;对排序后的书写轨迹数据进行道格拉斯-普克平滑处理;在平滑处理后的书写轨迹数据中等间隔插入数据点。\n[0009] 结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,检测处理后的书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点包括:遍历处理后的书写轨迹数据中的每一个点,计算当前数据点与前一数据点组成的直线和当前数据点与后一数据点组成直线之间的夹角;如果当前数据点的夹角小于预设的进入角阈值,标记第一段转折检测开始,记录后续遍历的数据点的夹角,直至记录的数据点的夹角大于预设的离开角阈值时,结束第一段转折检测;将记录的数据点的夹角中最小夹角对应的数据点确定为第一段转折检测出的特征点;继续遍历后续的数据点进行下一段转折点检测,直至书写轨迹数据中的每一个点遍历完毕。\n[0010] 结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,根据笔画段的长度将多个笔画段划分为主笔画段和辅笔画段包括:检测当前笔画段的长度;判断当前笔画段的长度是否小于设定的长度阈值;其中,长度阈值是笔宽与设定系数相乘的值;\n如果小于,确定当前笔画段是辅助笔画段;如果不小于,确定当前笔画段是主笔画段。\n[0011] 结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,根据主笔画段和辅笔画段间的连接关系确定对应的笔画段的特征包括:判断第一个主笔画段之前是否至少有两个辅笔画段,且与第一个主笔画段不相邻的辅笔画段中至少有一个与第一个主笔画段的方向反向,如果是,确定第一个主笔画段所在的笔画段为起笔藏锋;如果否,且第一个主笔画段前面有至少一个辅笔画段,确定第一个主笔画段所在的笔画段为起笔顿笔;计算第一个主笔画段与前一个辅笔画段之间的角度差,根据角度差确定第一个主笔画段所在的笔画段为顺时转向或逆时转向;当第一个主笔画段之前没有辅笔画段时,确定第一个主笔画段所在的笔画段为直向;判断最后一个主笔画段后面不相邻的辅笔画段的方向与最后一个主笔画段的方向是否反向,如果是,确定最后一个主笔画段所在笔画段为收笔回锋;如果否,且最后一个主笔画段后面有至少一个辅笔画段,确定最后一个主笔画段所在的笔画段为收笔顿笔;计算最后一个主笔画段与后一个辅笔画段之间的角度差,根据角度差确定最后一个主笔画段所在的笔画段为顺时转向或逆时转向;当最后一个主笔画段之后没有辅笔画段,确定最后一个主笔画段所在的笔画段为收笔出尖。\n[0012] 第二方面,本发明实施例还提供了一种应用于毛笔书写的行笔路线识别装置,包括:数据采集模块,用于采集手写输入设备按下书写至抬起停止书写过程中的书写轨迹数据;其中,书写轨迹数据包括各个书写点的坐标和时间;数据平滑与插值处理模块,用于按照各个书写点的时间先后顺序对书写轨迹数据进行平滑处理和插值处理;特征点检测模块,用于检测处理后的书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点;笔画段划分模块,用于将相邻的特征点连接得到书写轨迹数据的多个笔画段,根据笔画段的长度将多个笔画段划分为主笔画段和辅笔画段;笔画段特征确定模块,用于根据主笔画段和辅笔画段间的连接关系确定对应的笔画段的特征,该笔画段的特征包括:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖和收笔转向;\n笔画段方向确定模块,用于根据预先设定的笔画段八方向规则确定所述主笔画段的方向;\n笔画识别模块,用于将确定的上述主笔画段的方向和上述笔画段的特征与预先建立的笔画样本库比对,根据比对的结果识别书写轨迹数据对应的笔画。\n[0013] 结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,上述数据平滑与插值处理模块包括:数据排序单元,用于按照各个书写点的时间先后顺序对书写轨迹数据排序;平滑处理单元,用于对排序后的书写轨迹数据进行道格拉斯-普克平滑处理;插值处理单元,用于在平滑处理后的书写轨迹数据中等间隔插入数据点。\n[0014] 结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,上述特征点检测模块包括:夹角计算单元,用于遍历处理后的书写轨迹数据中的每一个点,计算当前数据点与前一数据点组成的直线和当前数据点与后一数据点组成直线之间的夹角;特征点确定单元,用于当当前数据点的夹角小于预设的进入角阈值时,标记第一段转折检测开始,记录后续遍历的数据点的夹角,直至记录的数据点的夹角大于预设的离开角阈值时,结束第一段转折检测;将记录的数据点的夹角中最小夹角对应的数据点确定为第一段转折检测出的特征点;继续遍历后续的数据点进行下一段转折点检测,直至书写轨迹数据中的每一个点遍历完毕。\n[0015] 结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,上述笔画段划分模块包括:长度检测单元,用于检测当前笔画段的长度;长度判断单元,用于判断当前笔画段的长度是否小于设定的长度阈值;其中,长度阈值是笔宽与设定系数相乘的值;\n第一确定单元,用于当长度判断单元的判断结果为当前笔画段的长度小于设定的长度阈值时,确定当前笔画段是辅助笔画段;第二确定单元,用于当长度判断单元的判断结果为当前笔画段的长度不小于设定的长度阈值时,确定当前笔画段是主笔画段。\n[0016] 结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,上述笔画段特征确定模块包括:起笔藏锋确定单元,用于判断第一个主笔画段之前是否至少有两个辅笔画段,且与第一个主笔画段不相邻的辅笔画段中至少有一个与第一个主笔画段的方向反向,如果是,确定第一个主笔画段所在的笔画段为起笔藏锋;起笔顿笔确定单元,用于当第一个主笔画段所在的笔画段不是起笔藏锋,且第一个主笔画段前面有至少一个辅笔画段时,确定第一个主笔画段所在的笔画段为起笔顿笔;起笔转向确定单元,用于计算第一个主笔画段与前一个辅笔画段之间的角度差,根据角度差确定第一个主笔画段所在的笔画段为顺时转向或逆时转向;当第一个主笔画段之前没有辅笔画段时,确定第一个主笔画段所在的笔画段为直向;收笔回峰确定单元,用于判断最后一个主笔画段后面不相邻的辅笔画段的方向与最后一个主笔画段的方向是否反向,如果是,确定最后一个主笔画段所在笔画段为收笔回锋;收笔顿笔确定单元,用于当最后一个主笔画段所在笔画段不是收笔回锋,且最后一个主笔画段后面有至少一个辅笔画段时,确定最后一个主笔画段所在的笔画段为收笔顿笔;收笔转向确定单元,用于计算最后一个主笔画段与后一个辅笔画段之间的角度差,根据角度差确定最后一个主笔画段所在的笔画段为顺时转向或逆时转向;当最后一个主笔画段之后没有辅笔画段,确定最后一个主笔画段所在的笔画段为收笔出尖。\n[0017] 本发明实施例提供的方法和装置,对采集的书写轨迹数据进行处理,如:对笔画特征进行分析,标记出每个笔画的特征点、划分出笔段、计算出需要的参数数据(笔画段长度,笔画段之间的角度),分辨出关键路径笔段(相当于上述主笔画段和辅笔画段),并判断出笔画特征等信息,然后根据关键路径笔段从笔画库中识别出该笔画,该识别方式能够比较准确快速的识别出用户的书写轨迹,且对设备的要求较低,降低了用户的使用成本。\n[0018] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。\n附图说明\n[0019] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。\n[0020] 图1示出了本发明实施例所提供的应用于毛笔书写的行笔路线识别方法的流程图;\n[0021] 图2示出了本发明实施例所提供的笔画段角度示意图;\n[0022] 图3示出了本发明实施例所提供的应用于毛笔书写的行笔路线识别装置的结构框图;\n[0023] 图4示出了本发明实施例所提供的笔画段划分模块的具体结构框图。\n具体实施方式\n[0024] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0025] 毛笔模拟技术通常采用在无压感的手写设备上书写,只能获取到某一时刻的平面坐标信息,为了根据这些二维点坐标信息确定用户想要书写的笔画,并产生毛笔书写效果,本发明实施例提供了一种应用于毛笔书写的行笔路线识别方法和装置,下面通过实施例进行描述。\n[0026] 参见图1所示的应用于毛笔书写的行笔路线识别方法的流程图,该方法包括以下步骤:\n[0027] 步骤S102,采集手写输入设备按下书写至抬起停止书写过程中的书写轨迹数据;\n其中,该书写轨迹数据包括各个书写点的坐标和时间。\n[0028] 通常,汉字的笔画包括31种左右笔画,每一种笔画根据行笔路线的不同分为多种具体形式,用户在手写设备(相当于上述手写输入设备)上书写时,当手写笔落下时开始记录书写轨迹数据(也可以称为笔画数据),当手写笔抬起时,笔画记录结束,并开始对笔画数据进行处理。\n[0029] 步骤S104,按照各个书写点的时间先后顺序对书写轨迹数据进行平滑处理和插值处理。\n[0030] 如果将当前获取到的笔画路径点信息的X、Y坐标按照时间顺序连接起来就是这个笔画的行笔路线轨迹(或称为书写轨迹),但是由于用户手写时会产生抖动,这条轨迹会有很多锯齿,在数据处理时会产生误差,因此首先要对这条轨迹进行平滑处理,例如采用道格拉斯-普克数据减除算法进行平滑,通过去掉偏移量比较大的点来平滑曲线,这种算法简单、速度快、对原轨迹曲线失真较小,比较适合手写轨迹的处理。由于采用数据减除算法进行平滑,平滑后书写轨迹的点坐标会减少,并且间隔距离长短不一,这不利于后期的数据处理,因此本实施例在平滑后沿轨迹等间隔插入数据点,使得轨迹上的点分布均匀。基于此,上述步骤S104具体包括:(1)按照各个书写点的时间先后顺序对书写轨迹数据排序;(2)对排序后的书写轨迹数据进行道格拉斯-普克平滑处理;(3)在平滑处理后的书写轨迹数据中等间隔插入数据点。\n[0031] 上述采用道格拉斯-普克数据减除算法进行平滑的方法只是一个优选的实施方式,在实际应用中,可以根据计算速度与精度要求选取其它平滑算法,本实施例上述具体方式并不限制本发明的范围。\n[0032] 步骤S106,检测处理后的书写轨迹数据中的书写点对应的角度变化值,将角度变化值超过设定阈值的点确定为特征点。\n[0033] 本实施例通过判断角度变化比较大的点确定为特征点,也就是笔段(或笔画段)之间的转折点。检测的过程是:遍历笔画轨迹上的每一个点,计算此点与前一点组成的直线和与后一点组成直线之间的夹角,轨迹的第一个点和最后一个点的角度设为180度。可以设置两个角度阈值:进入角阈值、离开角阈值,假设这两个值均设置为160度。再次遍历轨迹上的所有点,判断当前点的角度,如果小于进入角阈值,则标记转折检测开始,并比较和记录最小夹角的点,当点的夹角大于离开角阈值时当前转折检测结束,最小夹角点即为特征点。基于此,上述步骤S106具体包括如下步骤(1)-(3):\n[0034] (1)遍历处理后的书写轨迹数据中的每一个点,计算当前数据点与前一数据点组成的直线和当前数据点与后一数据点组成直线之间的夹角;\n[0035] (2)如果当前数据点的夹角小于预设的进入角阈值,标记第一段转折检测开始,记录后续遍历的数据点的夹角,直至记录的数据点的夹角大于预设的离开角阈值时,结束第一段转折检测;将记录的数据点的夹角中最小夹角对应的数据点确定为第一段转折检测出的特征点;\n[0036] (3)继续遍历后续的数据点进行下一段转折点检测,直至书写轨迹数据中的每一个点遍历完毕。\n[0037] 这种特征点的检测方式可以比较准确的查找到书写轨迹中每个转折点,可靠性较强。\n[0038] 上述特征点检测方式仅是举例,在实际应用中,可以根据计算速度与精度要求对其进行变换或者选取其它检测方式,本实施例上述具体方式并不限制本发明的范围。\n[0039] 步骤S108,将相邻的特征点连接得到书写轨迹数据的多个笔画段,根据笔画段的长度将上述多个笔画段划分为主笔画段和辅笔画段。\n[0040] 一个笔画有多个笔画段组成,比如横折包括横和竖两个笔画,另外,如前所述,毛笔在书写时需要藏锋、顿笔等动作,这也会产生笔画段。将相邻的特征点连接就形成了笔画段。获得笔画段以后,可以对笔画段的参数进行计算,比如笔画段的角度(笔画段两个端点形成的直线的角度)和笔画段的长度;为了简化计算和逻辑复杂性,本实施例按照笔画段的角度将笔画段划分为8个方向,分为:右、右下、下、左下、左、左上、上、右上8个方向,为简便起见,参见图2所示的笔画段角度示意图,本实施例将上述8个方向依次编号为0、1、2、3、4、\n5、6、7。这8个方向之间的角度并不完全相同,根据经验把上、下、左、右的夹角范围定为30°,而左上、左下、右上、右下的夹角范围是60°。根据笔画段的方向角将其分类为如上的8个方向。\n[0041] 在特征点识别时,有时由于行笔路线的起伏或者弯曲,可能会识别出多余的特征点,又由于方向简化为8个方向,这样就会出现相邻的方向一致的笔画段,为了后面的笔画识别的简便,实际应用中可以将这种相同方向的笔画段合并。\n[0042] 上述笔画段既包括标识笔画类型的主笔画段(也可以称为主要笔画段),也包括为了写出美观的字体而进行藏锋、顿笔等运笔的辅笔画段(也可以称为辅助笔画段)。可以通过笔画段长度来区分辅助笔画段与主要笔画段,本实施例设定笔宽与一个系数相乘作为识别主要笔画段和辅助笔画段的界限,如果长度小于这个界限则认为是辅助笔画段,否则认为是主要笔画段,这个系数可以取值为1.2。基于此,上述步骤S110具体包括:检测当前笔画段的长度;判断当前笔画段的长度是否小于设定的长度阈值;其中,该长度阈值是笔宽与设定系数相乘的值;如果小于,确定当前笔画段是辅助笔画段;如果不小于,确定当前笔画段是主笔画段。这种笔画段的区分方式符合实际行笔风格,为后续笔画的识别提供了可靠的数据。\n[0043] 步骤S110,根据主笔画段和辅笔画段间的连接关系确定对应的笔画段的特征,该笔画段的特征包括:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖和收笔转向。\n[0044] 根据“中国书法的运笔特点”,可以得知通过检测笔画头部和笔画尾部的运笔细节可以判断此笔画的形态特点,比如藏锋起笔或者露峰起笔等。本实施例将笔画段的特征分为:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖、收笔转向这7种特征。\n[0045] 一、起笔藏锋:这是一个布尔型参数,值为真表示藏锋起笔,藏锋起笔需要在起笔时先反方向运笔,然后顿笔,再正向前进。在判断这个标志时,首先找到一个主要笔段,如果这个主要笔段前面有至少两个辅助笔段,且与主要笔段不相邻的辅助笔段中至少有一个与主要笔段的方向接近相反,则认为这个笔画是起笔藏锋。\n[0046] 二、起笔顿笔:这是一个布尔型参数,值为真表示顿笔,这里所称的顿笔是在书写时沿笔画前进路径纵向的一个很小的笔画。判读这个标志的方法是:如果不是起笔藏锋,且第一个主要笔段前面有至少一个辅助笔段,则认为是起笔顿笔。\n[0047] 三、起笔转向:这里的转向为旋转方向,既顺时针、逆时针和直向,由于毛笔在书写笔画时,藏锋或者顿笔并不一定沿固定方向转向,逆峰起笔的横中,起笔是按照逆时针转向的,而回峰收笔的竖中起笔是按照顺时针走向的。本实施例可以通过计算第一个主要笔段与前一个辅助笔段之间的角度差判断出是顺时针还是逆时针,对于起笔只有第一个主要笔段前没有辅助笔段这种情况,才会标记为直向。\n[0048] 四、收笔回锋:同起笔藏锋类似,收笔回峰是收笔时向反方向运笔的方法。判断这个标志时是根据最后一个主要笔段后面不相邻的笔段方向与最后主要笔段是否反向。\n[0049] 五、收笔顿笔:同起笔顿笔类似,所不同的是判断最后一个主要笔段与其后面的辅助笔段。\n[0050] 六、收笔出尖:这种情况发生在撇、钩等出尖的结尾笔画,实际上收笔如果既没有回峰也没有顿笔则表示出尖,单独增加此标志是为了简化判断逻辑。\n[0051] 七、收笔转向:同起笔转向,只不过记录的是收笔的旋转方向。\n[0052] 基于上述各种笔锋的特点,上述步骤S110具体包括以下步骤(1)-(4):\n[0053] (1)判断第一个主笔画段之前是否至少有两个辅笔画段,且与第一个主笔画段不相邻的辅笔画段中至少有一个与第一个主笔画段的方向反向,如果是,确定第一个主笔画段所在的笔画段为起笔藏锋;如果否,且第一个主笔画段前面有至少一个辅笔画段,确定第一个主笔画段所在的笔画段为起笔顿笔;\n[0054] (2)计算第一个主笔画段与前一个辅笔画段之间的角度差,根据角度差确定第一个主笔画段所在的笔画段为顺时转向或逆时转向;当第一个主笔画段之前没有辅笔画段时,确定第一个主笔画段所在的笔画段为直向;\n[0055] (3)判断最后一个主笔画段后面不相邻的辅笔画段的方向与最后一个主笔画段的方向是否反向,如果是,确定最后一个主笔画段所在笔画段为收笔回锋;如果否,且最后一个主笔画段后面有至少一个辅笔画段,确定最后一个主笔画段所在的笔画段为收笔顿笔;\n[0056] (4)计算最后一个主笔画段与后一个辅笔画段之间的角度差,根据角度差确定最后一个主笔画段所在的笔画段为顺时转向或逆时转向;当最后一个主笔画段之后没有辅笔画段,确定最后一个主笔画段所在的笔画段为收笔出尖。\n[0057] 步骤S112,根据预先设定的笔画段八方向规则确定上述主笔画段的方向。\n[0058] 这里的预先设定的笔画段八方向规则可以是图2所示的方向设置规则,通过该规则,可以确定出上述各个主笔画段的方向,而各个主笔画段的方向决定了用户当前书写的笔画具体为哪种笔画,进而为后续笔画的识别提供了可靠的数据。\n[0059] 步骤S114,将确定的上述主笔画段的方向和上述笔画段(该笔画段包括主笔画段和辅笔画段)的特征与预先建立的笔画样本库比对,根据比对的结果识别书写轨迹数据对应的笔画。\n[0060] 由于中国书法有多种风格笔体,比如欧体、颜体、柳体、赵体等,不同的风格笔画会有不同,因此可以预先建立多个笔画样本库,先根据上述笔画段的特征选取对应的样本库,再根据当前笔画段对应的贝塞尔曲线从该样本库中确定对应的笔画,进而与预先建立的笔画样本库比对,将比对成功的笔画作为上述书写轨迹数据对应的笔画。\n[0061] 本实施例通过对采集的书写轨迹数据进行处理,如:对笔画特征进行分析,标记出每个笔画的特征点、划分出笔段、计算出需要的参数数据,如笔段长度,笔段之间的角度,分辨出关键路径笔段,并判断出笔画特征,如起笔藏锋、露峰,收笔回峰、出尖等信息,然后根据关键路径笔段从笔画库中识别出该笔画,该识别方式能够比较准确快速的识别出用户的书写轨迹,且对设备的要求较低,降低了用户的使用成本。\n[0062] 当用户书写完一个笔画后,首先进行上述笔画的分析计算过程,然后和笔画库中样本进行比对,具体比对过程可以包括:先确定笔画的类型,如横、竖、撇、横折钩等,然后再根据笔画的特征,比如藏锋、露峰等从笔画样本库中选择适合的笔画样本,对于无法识别出笔画的使用默认样本,对于识别出笔画,但是不能确定笔画样本的也选择该笔画的默认样本。具体的,笔画的类型识别可以采用下述方式实现:主要是根据笔画段的8方向顺序,在前面描述了笔画段的8方向计算,识别时将主要笔画段的方向码按先后顺序排列,与笔画库中的笔画类型逐一对比,如果相互匹配则判断为此笔画类型。如果笔画库中找不到适合的笔画类型,则按默认笔画处理。\n[0063] 笔画的样本选择可以包括:当识别出笔画类型后,选择该笔画类型的具体样本,这主要是依据前面计算的笔画特征:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖、收笔转向来确定的,如果这些特征与笔画样本库中的某个样本一致则使用此样本,否则使用此笔画类型的默认样本。\n[0064] 识别出上述笔画后,可以将其绘制到对应的屏幕上,使得近似于真实毛笔笔画的笔迹呈现在用户眼前。通过对采集的书写轨迹数据分析用户的行笔路线识别用户想要书写的笔画,能够比较准确的从笔画库中选择适合的笔画显示到屏幕上,使得用户能够写出与书法名家一致的书法。\n[0065] 对应于上述方法,本发明实施例还提供了一种应用于毛笔书写的行笔路线识别装置,该装置可以设置在与用户手写输入设备相连的终端(计算机、平板电脑或手机等)上。参见图3所示的应用于毛笔书写的行笔路线识别装置的结构框图,该装置包括:\n[0066] 数据采集模块31,用于采集手写输入设备按下书写至抬起停止书写过程中的书写轨迹数据;其中,该书写轨迹数据包括各个书写点的坐标和时间;\n[0067] 数据平滑与插值处理模块32,用于按照各个书写点的时间先后顺序对书写轨迹数据进行平滑处理和插值处理;\n[0068] 特征点检测模块33,用于检测处理后的书写轨迹数据中的书写点对应的角度变化值,将该角度变化值超过设定阈值的点确定为特征点;\n[0069] 笔画段划分模块34,用于将相邻的特征点连接得到书写轨迹数据的多个笔画段,根据笔画段的长度将多个笔画段划分为主笔画段和辅笔画段;\n[0070] 笔画段特征确定模块35,用于根据主笔画段和辅笔画段间的连接关系确定对应的笔画段的特征,该笔画段的特征包括:起笔藏锋、起笔顿笔、起笔转向、收笔回锋、收笔顿笔、收笔出尖和收笔转向;\n[0071] 笔画段方向确定模块36,用于根据预先设定的笔画段八方向规则确定上述主笔画段的方向;\n[0072] 笔画识别模块37,用于将确定的上述主笔画段的方向和上述笔画段的特征与预先建立的笔画样本库比对,根据比对的结果识别书写轨迹数据对应的笔画。\n[0073] 本实施例的上述装置,通过对采集的书写轨迹数据进行处理,如:对笔画特征进行分析,标记出每个笔画的特征点、划分出笔段、计算出需要的参数数据,如笔段长度,笔段之间的角度,分辨出关键路径笔段,并判断出笔画特征,如起笔藏锋、露峰,收笔回峰、出尖等信息,然后根据关键路径笔段从笔画库中识别出该笔画,该识别方式能够比较准确快速的识别出用户的书写轨迹,且对设备的要求较低,降低了用户的使用成本。\n[0074] 上述数据平滑与插值处理模块32包括:数据排序单元,用于按照各个书写点的时间先后顺序对书写轨迹数据排序;平滑处理单元,用于对排序后的书写轨迹数据进行道格拉斯-普克平滑处理;插值处理单元,用于在平滑处理后的书写轨迹数据中等间隔插入数据点。\n[0075] 进一步地,上述特征点检测模块33包括:夹角计算单元,用于遍历处理后的书写轨迹数据中的每一个点,计算当前数据点与前一数据点组成的直线和当前数据点与后一数据点组成直线之间的夹角;特征点确定单元,用于当当前数据点的夹角小于预设的进入角阈值时,标记第一段转折检测开始,记录后续遍历的数据点的夹角,直至记录的数据点的夹角大于预设的离开角阈值时,结束第一段转折检测;将记录的数据点的夹角中最小夹角对应的数据点确定为第一段转折检测出的特征点;继续遍历后续的数据点进行下一段转折点检测,直至书写轨迹数据中的每一个点遍历完毕。\n[0076] 参见图4所示的上述笔画段划分模块的具体结构框图,上述笔画段划分模块34包括:长度检测单元342,用于检测当前笔画段的长度;长度判断单元344,用于判断当前笔画段的长度是否小于设定的长度阈值;其中,该长度阈值是笔宽与设定系数相乘的值;第一确定单元346,用于当长度判断单元344的判断结果为当前笔画段的长度小于设定的长度阈值时,确定当前笔画段是辅助笔画段;第二确定单元348,用于当长度判断单元344的判断结果为当前笔画段的长度不小于设定的长度阈值时,确定当前笔画段是主笔画段。\n[0077] 上述笔画段特征确定模块35包括以下单元:\n[0078] (1)起笔藏锋确定单元,用于判断第一个主笔画段之前是否至少有两个辅笔画段,且与第一个主笔画段不相邻的辅笔画段中至少有一个与第一个主笔画段的方向反向,如果是,确定第一个主笔画段所在的笔画段为起笔藏锋;\n[0079] (2)起笔顿笔确定单元,用于当第一个主笔画段所在的笔画段不是起笔藏锋,且第一个主笔画段前面有至少一个辅笔画段时,确定第一个主笔画段所在的笔画段为起笔顿笔;\n[0080] (3)起笔转向确定单元,用于计算第一个主笔画段与前一个辅笔画段之间的角度差,根据角度差确定第一个主笔画段所在的笔画段为顺时转向或逆时转向;当第一个主笔画段之前没有辅笔画段时,确定第一个主笔画段所在的笔画段为直向;\n[0081] (4)收笔回峰确定单元,用于判断最后一个主笔画段后面不相邻的辅笔画段的方向与最后一个主笔画段的方向是否反向,如果是,确定最后一个主笔画段所在笔画段为收笔回锋;\n[0082] (5)收笔顿笔确定单元,用于当最后一个主笔画段所在笔画段不是收笔回锋,且最后一个主笔画段后面有至少一个辅笔画段时,确定最后一个主笔画段所在的笔画段为收笔顿笔;\n[0083] (6)收笔转向确定单元,用于计算最后一个主笔画段与后一个辅笔画段之间的角度差,根据角度差确定最后一个主笔画段所在的笔画段为顺时转向或逆时转向;当最后一个主笔画段之后没有辅笔画段,确定最后一个主笔画段所在的笔画段为收笔出尖。\n[0084] 本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。\n[0085] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。\n[0086] 本发明实施例还提供了一种应用于毛笔书写的行笔路线识别的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。\n[0087] 在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。\n[0088] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。\n[0089] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。\n[0090] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。\n而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。\n[0091] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
法律信息
- 2018-05-29
- 2015-11-04
实质审查的生效
IPC(主分类): G06K 9/68
专利申请号: 201510401749.1
申请日: 2015.07.09
- 2015-09-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-11-10
|
2010-06-30
| | |
2
| |
1998-07-08
|
1996-04-26
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |