具体实施方式
为了使本发明基于动态轨迹的视觉字符输入方法及系统的目的、技术方案及优点更加清楚明白,以下结合具体附图及具体实施例,对本发明基于动态轨迹的视觉字符输入方法及系统生成方法进行进一步详细说明,但应当说明的是,本具体实施方式内容仅仅是为了详细描述本发明,使本领域技术人员能够理解本发明,而不是对本发明权利要求的限制。
本发明实施例的基于动态轨迹的视觉字符输入方法及系统,其基于动态轨迹进行视觉字符输入,包括书写调整、字符书写、字符识别、分类识别,采用图形化的进度条显示书写调整进度,从而提供一种高效、简捷的视觉字符输入方法和系统。
图1为本发明实施例的基于动态轨迹的视觉字符输入方法的流程图,如图1所示,本实施例的基于动态轨迹的视觉字符输入方法,包括以下步骤:
步骤S100,从字符模板库中选定所要输入字符所述的类,调整视觉字符输入的状态;
较佳地,作为一种可实施方式,所述步骤S100包括如下步骤:
步骤S110,在用户开启本发明实施例的基于动态轨迹的视觉字符输入方法,进行视觉字符输入时,首先从字符的分类模板库中选定所要输入字符所述的类;
字符模板库是如下的一种模板库:字符按类存储在模板库中,每个类包括一个或多个成员模板,在字符输入时首先要选定所要输入字符所属的类,这样,一方面可以有效地防止由于字符相近似而导致的误识别,例如大写S和小写s的输入可能是一样的,若不指明分类将无法确认当前书写的S是大写还是小写;另一方面是可以通过分类扩大字符的识别范围。图2a是分类模板库的组织形式;图2b是分类模板库组织形式举例。其中,Ci为第i个类别的类名,可以看到C1类为小写字母类,C2类为大写字母类,Cn类为阿拉伯数字类。
步骤S120,通过裸手手势跟踪、手持发光体跟踪或者以位置传感器等方式,获得预设设备或者部位的动态运动轨迹(动态轨迹)的状态,并将得到的动态轨迹与视觉系统中的轨迹进行比较,生成并显示进度条,确定所述预设设备或者部位是否调整到预设的书写调整状态。
通过不断获得用户预设设备(如投影仪的轨迹笔等)或者部位(如手部)的动态轨迹,在每个字符输入前将预设设备或者部位调整达到预设的书写调整状态,此状态保证所要书写的每个字符都在场景中合适位置。
作为一种可实施方式,在调整视觉字符输入的状态达到预设的书写调整状态过程中,同时生成一进度条并显示在视觉系统中,根据动态轨迹与视觉系统中的轨迹比较的结果确定所显示进度条进度,并在调整到预设的书写调整状态后,将进度条设置有准备输入状态并显示。
为了保证所要书写每个字符都在场景中的合适位置,以防字符书写出界,在每个字符输入前系统都要经过书写调整。本发明实施例中,输入调整过程的调整进度在视觉输入系统中以图形化的进度条来显示。
例如,在调整过程中,根据轨迹比较的符合的结果将进度条显示为不同比例的红色条,在调整到预设的输入状态后,进度条显示为绿色条,表示已经调整好输入,用户可以进行输入。
步骤S200,进入字符输入状态,获取字符输入的动态轨迹;
在调整视觉字符输入的状态后,则视觉输入系统进入字符输入状态,则进度条显示为可输入状态,获取字符输入的动态轨迹。
作为一种可实施方式,通过裸手手势跟踪、手持发光体跟踪或以位置传感器等方式得到的动态手势运动轨迹均可作为本实施例字符输入方法的输入轨迹的信号来源。
作为一种可实施方式,如图3所示,所述步骤S200包括如下步骤:
步骤S210,在调整视觉字符输入的状态后,则控制视觉输入系统进入字符输入状态,控制进度条显示为可输入状态,并控制计时器开始计时,显示书写式样,获取根据显示书写式样输入的字符输入的动态轨迹;
如图4a、图4b、图4c所示,作为一种可实施方式,为26个大小写字母以及10个阿拉伯数字的字写样例。用户根据显示书写式样输入字符,视觉输入系统获取用户输入的字符输入的动态轨迹。
步骤S220,根据计时器计时时间进行输入调整,当输入结束时,获取字符输入的动态轨迹后进入字符识别步骤S300。
所述步骤S220包括如下步骤:
步骤S221,根据视觉输入的动态轨迹判断一个字符输入是否结束,如果是,进入字符识别步骤;或者当计时器计时时间达到输入计时阈值时,进入字符识别步骤;
较佳地,所述计时阈值为1秒~10秒。
作为一种可实施方式,本发明实施例中,对于字符输入,预设其动态轨迹为连续的,即用户输入的字符轨迹为一笔写完,则对于用户输入的动态轨迹,根据视觉输入的动态轨迹是否连接,判断一个字符输入是否结束,如果是,进入字符识别步骤;
为了便于书写和识别,在书写输入的过程中,作为一种可实施方式,本发明实施例在进入字符输入状态后,视觉输入系统中的计时器开始计时,当计时器计时时间达到输入计时阈值时,进入字符识别步骤;
步骤S222,判断动态轨迹的运动轨迹是否处于暂停,如果运动轨迹的速度持续(连续几秒,如1秒到10秒内)低于预设阈值(0像素/秒到100像素/秒内或0cm/秒到10cm/秒内),则判断动态轨迹处于暂停状态。
步骤300:对获取的字符的动态轨迹数据进行调整,与所述分类模板库中的字符样式进行匹配,识别所输入的字符,得到识别结果;
作为一种可实施方式,如图5所示,所述对获取的字符的动态轨迹数据进行调整,包括如下步骤:
步骤S310,对获取的字符的动态轨迹数据进行B样条重取样;
步骤S320,将重取样后的动态轨迹数据旋转,使其动态轨迹指向角达到预设角度;
重取样后的动态轨迹数据是一系列离散的点。首先由动态轨迹点的质心点向动态轨迹点的开始点做一个向量,那么这个向量与水平方向的夹角就称之为指向角。将每一个离散的轨迹点绕着质心点旋转过指定的角度,这样就使得动态轨迹的指向角达到预设角度。
较佳地,所述预设角度为0度。
所述指向角,指由动态轨迹点的质心点指向动态轨迹开始点所形成的向量与水平X方向组成的夹角。本步骤中旋转指向角到0度,可将输入者输入的字符调整至统一的方向,便于字符的识别。即无论输入者输入的字符是向左偏还是向右偏,当指向角旋转到0度是,该字符的朝向总是统一固定的。
步骤S330,将旋转后的动态轨迹缩放到预设的尺度,并平移至字符样式预设的坐标原点;
由于不同的输入者输入的字符位置有偏差,字符的大小有不同,但经过本步骤将轨迹缩放至统一的大小,并且平移至坐标原点位置,便于字符的识别。
旋转后的动态轨迹数据仍然是二维数据,将每个轨迹点坐标的X,Y乘以预设的缩放尺度比即完成了对动态轨迹的缩放操作。此时的动态轨迹通常情况下是偏离原点的,然后再计算出轨迹质心点坐标的X,Y即为整个动态轨迹在X,Y轴上到原点的距离分量。然后将每个轨迹点坐标的X,Y减去它们各自方向上的距离分量就完成了动态轨迹的平移操作。
较佳地,所述步骤S300中,将经过转向缩放平移的动态轨迹与模板库中的字符进行匹配,识别出所输入的字符,包括如下步骤:
步骤S340,将所述动态轨迹与模板库的相应类中的字符样式一一对比,判断动态轨迹与字符样式的相似度;
步骤S350,如果动态轨迹与一字符样式的相似度达到相似阈值,则识别输入的动态轨迹为该字符,输出该字符;否则,判断是否还有未对比的字符,如果有则返回步骤S340对比新的字符样式;如果没有,则识别失败,返回步骤S200重新输入;
步骤S400,返回步骤S100,重新调整视觉字符输入的状态,输入新的字符,直至输入结束。
图6为本发明实施例的基于动态轨迹的视觉字符输入系统的结构图,如图6所示,本实施例的基于动态轨迹的视觉字符输入系统,用于在视觉系统中根据动态轨迹获取设备进行动态轨迹获取后进行字符输入识别,其包括字符模板库100,调整模块200,轨迹获取模块300,字符识别模块400;
所述字符模板库100,用于存储可输入到系统中的字符的样式,即字符样式;
字符模板库100是如下的一种模板库:字符按类存储在模板库中,每个类包括一个或多个成员模板,在字符输入时首先要选定所要输入字符所属的类。
所述调整模块200,用于从所述字符模板库100中选定所要输入字符所述的类,调整视觉字符输入的状态;
所述轨迹获取模块300,用于在调整模块200调整好字符输入的状态后,进入字符输入状态,获取字符输入的动态轨迹,并将获取的动态轨迹数据传输至字符识别模块400;
字符识别模块400,用于对获取的字符的动态轨迹数据进行调整,与所述分类模板库100中的字符样式进行匹配,识别所输入的字符,得到识别结果。
较佳地,所述动态轨迹获取设备为裸手手势跟踪、手持发光体跟踪设备或者位置传感器等中的一种,其用于获得预设设备或者部位的动态运动轨迹(动态轨迹)的状态。
本发明实施例的基于动态轨迹的视觉字符输入系统,还包括计时器600和显示模块500,其中:
所述计时器600,用于在所述轨迹获取模块300进行视觉输入时,进行计时;
所述显示模块500,用于显示视觉输入的状态,包括但不限于显示输入的字符样式,显示输入调整状态的进度条,以及显示识别字符的识别结果等。
较佳地,所述调整模块200,包括类选择子模块210和状态调整子模块220,其中:
所述类选择子模块210,用于从字符的分类模板库100中选定所要输入字符所述的类;
所述状态调整子模块220,用于通过动态轨迹获取设备获得预设设备或者部位的动态轨迹的状态,并将得到的动态轨迹与视觉系统中的轨迹进行比较,生成并通过显示模块500显示进度条,确定所述预设设备或者部位是否调整到预设的书写调整状态。
所述轨迹获取模块300包括输入子模块310,判断子模块320,其中:
所述输入子模块310,用于在调整视觉字符输入的状态后,控制视觉输入系统进入字符输入状态,并控制计时器600开始计时,控制显示模块500显示书写式样,获取根据显示书写式样输入的字符输入的动态轨迹;
判断子模块320,用于根据计时器600计时时间进行输入调整,当输入结束时,获取字符输入的动态轨迹后进入字符识别;
所述判断子模块320,包括第一判断子单元321,和第二判断子单元322;
所述第一判断子单元321,用于根据视觉输入的动态轨迹判断一个字符输入是否结束,如果是,进入字符识别步骤;或者当计时器计时时间达到输入计时阈值(1秒到10秒内)时,进入字符识别;
所述第二判断子单元322,用于判断动态轨迹的运动轨迹是否处于暂停,如果运动轨迹的速度持续(连续几秒,如1秒到10秒内)低于预设阈值(0像素/秒到100像素/秒内或0cm/秒到10cm/秒内),则判断动态轨迹处于暂停状态。
所述字符识别模块400,包括重取样子模块410,旋转调整子模块420,缩放平移子模块430和匹配子模块440,其中:
所述重取样子模块410,用于对获取的字符的动态轨迹数据进行重取样;
所述旋转调整子模块420,用于将重取样后的动态轨迹数据旋转,使其动态轨迹指向角达到预设角度;
所述缩放平移子模块430,用于将旋转后的动态轨迹缩放到预设的尺度,并平移至字符样式预设的坐标原点。
所述匹配子模块440,用于将所述动态轨迹与模板库的相应类中的字符样式一一对比,判断动态轨迹与字符样式的相似度;如果动态轨迹与一字符样式的相似度达到相似阈值,则识别输入的动态轨迹为该字符,输出该字符;否则,判断是否还有未对比的字符,如果有则返回对比新的字符样式;如果没有,则识别失败,返回重新输入。
本发明实施例的基于动态轨迹的视觉字符输入方法及系统,其提供一种有效的视觉字符书写策略,以图形化的方式展现书写进度和书写调整进度,便于用户进行视觉输入,使得通过动态手势输入简单流畅,字符的识别与显示实时性高,识别准确性高。进一步地,其通过将字符统一为一划完成单个字符输入,这样可以使得书写更加简单流畅;同时,其针对字符识别量大的问题,对字符库进行分类,通过输入字符的切换功能对不同类的字符进行识别,例如26个大小写字符和10个阿拉伯数字的识别库就可以分为三个类,可分别标为A类、B类和C类,当输入类切换到A时只取A类中的26个大写字符进行匹配识别,这样可以大大减少匹配时间,增加字符识别效率;更进一步地,其通过一个或多个模板学习的具有高鲁棒性字符识别,完全可达到高实时性,其基于多个模板学习可以体现出不同人书写的差异性,使得整个系统的字符识别率更高。
以上所述仅为本发明的优选事例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进,均应包含在本发明的保护范围以内。