发明内容
本发明提供一种实现键盘输入的方法及系统,能够实现非接触式的键盘输入,方便失去双手的残疾人士进行人机交互。
本发明提供了如下方案:
一种实现键盘输入的方法,包括:
预先对键盘位置及各个键位进行建模;
跟踪带有残指或相关接长手指部位的双手的运动;
当根据所述跟踪结果判断出通过所述残指或相关接长手指部位做出按下键位的示意动作时,确定做出所述示意动作时所在的位置;
根据所述示意动作所在位置,以及所述键盘位置、各个键位的建模结果,确定所述示意动作所在位置对应的键位;
模拟按下该键位的操作,以便操作系统接收到按下该键位的事件,并通过显示设备显示相应的操作结果。
优选的,所述跟踪残指或相关接长手指部位的运动包括:利用至少三个跟踪装置记录所述残指或相关接长手指部位在各个维度上的位置信息;
所述确定做出所述示意动作时所在的位置包括:根据各个维度上的位置信息,计算得到所述残指或相关接长手指部位在空间中的绝对位置。
优选的,所述主动跟踪装置包括摄像头。
优选的,所述残指或相关接长手指部位带有信号发出装置,所述跟踪残指或相关接长手指部位的运动包括:
利用至少三个跟踪装置接收所述信号发出装置发出的信号,记录所述残指或相关接长手指部位在各个维度上的位置信息;
所述确定做出所述示意动作时所在的位置包括:根据各个维度上的位置信息,计算得到所述残指或相关接长手指部位在空间中的绝对位置。
优选的,所述信号发出装置包括点光源。
优选的,所述记录所述残指或相关接长手指部位在各个维度上的位置信息包括:
记录各个跟踪装置与所述残指或相关接长手指部位之间分别形成的夹角;
所述根据各个维度上的位置信息,计算得到所述残指或相关接长手指部位在空间中的绝对位置包括:根据所述夹角,利用立体几何中的公式计算得出所述残指或相关接长手指部位在空间中的绝对位置。
优选的,通过以下方式判断是否做出按下键位的示意动作:
当所述带有残指或相关接长手指部位的双手运动的加速度及位移都达到预置条件时,确定所述残指或相关接长手指部位做出按下键位的示意动作。
一种实现键盘输入的系统,包括:
建模单元,用于预先对键盘位置及各个键位进行建模;
跟踪单元,用于跟踪带有残指或相关接长手指部位的双手的运动;
定位单元,用于当根据所述跟踪结果判断出通过所述残指或相关接长手指部位做出按下键位的示意动作时,确定做出所述示意动作时所在的位置;
键位确定单元,用于根据所述示意动作所在位置,以及所述键盘位置、各个键位的建模结果,确定所述示意动作所在位置对应的键位;
操作模拟单元,用于模拟按下该键位的操作,以便操作系统接收到按下该键位的事件,并通过显示设备显示相应的操作结果。
优选的,所述跟踪单元包括:
主动跟踪单元,用于利用至少三个跟踪装置记录所述残指或相关接长手指部位在各个维度上的位置信息;
所述定位单元具体用于根据各个维度上的位置信息,计算得到所述残指或相关接长手指部位在空间中的绝对位置。
优选的,所述主动跟踪装置包括摄像头。
优选的,还包括:
信号发出装置,位于所述残指或相关接长手指部位上,用于发出信号;
所述跟踪单元包括:被动跟踪单元,用于利用至少三个跟踪装置接收所述信号发出装置发出的信号,记录所述残指或相关接长手指部位在各个维度上的位置信息;
所述定位单元具体用于,根据各个维度上的位置信息,计算得到所述残指或相关接长手指部位在空间中的绝对位置。
优选的,所述信号发出装置包括点光源。
优选的,所述跟踪单元包括:记录子单元,用于记录各个跟踪装置与所述残指或相关接长手指部位之间分别形成的夹角;
所述定位单元包括:计算子单元,用于根据所述夹角,利用立体几何中的公式计算得出所述残指或相关接长手指部位在空间中的绝对位置。
优选的,所述定位单元包括:
动作确定子单元,用于当所述带有残指或相关接长手指部位的双手运动的加速度及位移都达到预置条件时,确定所述残指或相关接长手指部位做出按下键位的示意动作。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明能够跟踪残指或相关接长手指部位的运动,当所述残指或相关接长手指部位做出敲击键盘的示意动作时,确定所述示意动作所在位置对应的键位,然后模拟按下该键位的操作,以便操作系统接收到按下该键位的事件,并通过显示设备显示相应的操作结果。通过本发明,在实现人机交互的过程中不需要接触键盘,便能够完成键盘输入,因此,即使失去双手的残疾人士,只要具有部分残指,或者带有相关接长手指,就可以像健全人一样方便地进行人机交互。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供的实现键盘输入的方法包括以下步骤:
S101:预先对键盘位置及各个键位进行建模;
该步骤是一个预先学习与分析的步骤,可以在用户进行具体的键盘输入之前进行,在完成该建模的步骤之后,用户就可以进行具体的键盘输入。当然,在完成建模之后,可以保存该模型信息,下次用户再进行键盘输入时,只要键盘的位置没有改变,就可以直接使用上次建立的模型,否则,如果键盘的位置发生了改变,则需要重新进行建模的步骤,关于具体如何进行建模,后文中有详细的介绍。
S102:跟踪带有残指或相关接长手指部位的双手的运动;
S103:当根据所述跟踪结果判断出通过所述残指或相关接长手指部位做出按下键位的示意动作时,确定做出所述示意动作时所在的位置;
本发明实施例提供的方法,适用于手部残疾的人士,如果手上具有残指,则可以利用该残指完成键盘输入,如果完全没有手指,则可以在手上安装相关接长手指部位。该残指或相关接长手指部位并不需要直接接触键盘,只要在键盘上方移动,在需要的按键上方做出按下键位的示意动作即可。
具体实现时,该示意动作可以有多种表现形式,例如,正常的移动时,残指或相关接长手指部位的运动轨迹可以保持基本水平,当需要按下某个按键时,向下做一个点击的示意动作;或者,还可以让用户移动到自己需要敲击的键位上之后,停留一段时间,对于系统而言,当用户的残指或相关接长手指部位在某处停留超过预置时间之后,就可以认为该用户需要按下该处的按键。
当判断出用户做出按下键位的示意动作之后,就可以确定做出所述示意动作时所在的位置信息。具体实现时,具体的确定示意动作所在位置信息的方法,可以与跟踪的方法相关,即取决于跟踪的方法,关于具体的实现可以有多种,后文中会有详细地介绍。
S104:根据所述示意动作所在位置,以及所述键盘位置、各个键位的建模结果,确定所述示意动作所在位置对应的键位;
所述的“示意动作所在位置”可能是一个坐标值等信息,该信息是在步骤S103中获得的,该步骤S104的目的就是根据该坐标值,确定出示意动作所在位置对应的键位,只有知道具体是哪个键位,才可以辅助用户完成键盘输入。
S105:模拟按下该键位的操作,以便操作系统接收到按下该键位的事件,并通过显示设备显示相应的操作结果。
由于确定了用户按下键位的示意动作对应的键位,因此,就可以模拟按下该键位的操作,这样,系统就会显示出相应的操作结果,例如,将用户按下的键位对应的字母或符号等显示在当前的应用程序中,等等。
如前文所述,步骤S102的具体实现方式可以有多种,下面介绍具有代表性的两种。
具体实施方式一
在该具体实施方式一中,可以采用主动轨迹跟踪的方式,即从人手的至少三个维度由外向内跟踪,例如,可以使用至少三个相机对人手的位置进行跟踪。下面以三个相机为例,对本发明实施例的具体实现进行详细地介绍。
参见图2,为了实现本发明实施例提供的方法,系统中需要具有以下设备:计算机显示装置201、主动跟踪装置202、203、204(例如,如图2中所示,可以是三个摄像头)、手指操作计算分析装置205(该手指操作计算分析装置205可以承载在一种有计算能力的装置上)、计算机键盘206,以上这些装置可以通过有线或无线等方式连接在一起,互相传递信息,共同配合辅助用户使用残指或相关接长手指部位完成键盘输入。
其中,当使用图2所描述的系统辅助进行键盘输入时,在假设已经完成建模的前提下,可以采用以下步骤实现:
步骤1:当带有残指或相关接长手指部位的双手以计算机键盘206为参照物运动时,主动跟踪装置202、203、204对带有残指或相关接长手指部位的双手进行跟踪(例如可以通过摄像头取得图像数据),当通过所述残指或相关接长手指部位做出按下键位的示意动作时,获得双手的绝对位置信息;
步骤2:所获得的绝对位置信息被送到手指操作计算分析装置205,通过分析计算人手上的残指可以被定位;具体的,手指操作计算分析装置205通过对比前次位置以及预先建立的模型就可以确定出残指或相关接长手指部位敲击的是计算机键盘206上哪个键位;
步骤3:确定所敲击的计算机键盘206的键位后,手指操作计算分析装置205就可以模拟按下该键位的操作,然后,应用的操作结果就可以在计算机显示装置201上显示。
其中,在步骤2中进行定位的方法可以包括以下步骤:
1)假设图2中的207和208分别为用户的带有残指或相关接长手指部位的两只手:Hand1、Hand2,主动跟踪装置202、203、204对带有残指或相关接长手指部位的Hand1207进行跟踪时,主动跟踪装置202、203、204与Hand1207的A节点之间可以形成相应的夹角(如图2所示);
2)手指操作计算分析装置205在获得所述夹角信息之后,可以根据立体几何中的公式进行计算,最后得出Hand1207的A节点在三维空间中的绝对位置;
其中,为了进行三维空间定位,可以在建模时建立一个三维直角坐标系,然后由三个维度的追踪装置分别获取各自维度的数据,由于所有的追踪装置都指向一个点(手),所以获取的数据必然在坐标系中相交于一个点(可以想象房屋的四个角,每个角都相当于是这样一个点),由此确定出手上的A点在三维空间的绝对位置。当然,如果只考虑手的起始、终止位置,则可以计算出手移动的距离,如果再计算上时间因素(手指静止到运动再到停止所经过的时间),可以计算出速度,加速度等信息,由于考虑到每次移动的速度可能不一样,在人机交互的过程中统计速度与加速度,分别得出相应的概率。
3)手指操作计算分析装置205根据Hand1207的A节点在三维空间里的绝对位置以及预先对计算机键盘206上的键位进行的建模结果,就可以得出Hand1207的A节点是在哪个键位的上方。
具体实施方式二
在该具体实施方式二中,可以采用被动轨迹跟踪的方式,即从人手的至少三个维度由内向外跟踪,例如,在人的残指上涂有发射物质,计算机的键盘和屏幕通过接收所发射的射线进行位置跟踪,等等。下面以三个维度为例,对本发明实施例的具体实现进行详细地介绍。
参见图3,为了实现本发明实施例提供的方法,系统中需要具有以下设备:计算机显示装置301、被动跟踪装置302、303、304(例如,可以是三个光线接收器等)、手指操作计算分析装置305(该手指操作计算分析装置305可以承载在一种有计算能力的装置上)、计算机键盘306,同样,以上这些装置可以通过有线或无线等方式连接在一起,互相传递信息,共同配合辅助用户使用残指或相关接长手指部位完成键盘输入。
当使用图3所描述的系统辅助进行键盘输入时,在假设已经完成建模的前提下,可以采用以下步骤实现:
步骤1:当带有残指或相关接长手指部位的双手以计算机键盘306为参照物运动时,带有信号发出装置的残指或相关接长手指部位可以发出信号,被动跟踪装置302、303、304对带有残指或相关接长手指部位的双手进行跟踪(例如,信号发出装置可以是点光源,使得残指或相关接长手指部位可以发出的光线),当通过所述残指或相关接长手指部位做出按下键位的示意动作时,获得双手的绝对位置信息;
步骤2:所获得的绝对位置信息被送到手指操作计算分析装置305,通过分析计算人手上的残指或相关接长手指部位可以被定位;具体的,手指操作计算分析装置305通过对比前次位置以及预先建立的模型就可以确定出残指或相关接长手指部位敲击的是计算机键盘306上哪个键位;
步骤3:确定所敲击的计算机键盘306的键位后,手指操作计算分析装置305就可以模拟按下该键位的操作,然后,应用的操作结果就可以在计算机显示装置301上显示。
从以上描述可以看出,被动跟踪与主动跟踪的不同之处仅在于跟踪装置获取双手位置的方式不同,即主动、被动只是获取坐标的方式不同,获取到双手的位置信息之后,手指操作计算分析装置305进行的操作与手指操作计算分析装置305进行的操作是相同的,在步骤2中进行定位的方法,也与主动跟踪方式中的相同,这里不再赘述。
当然,无论是采用主动跟踪还是被动跟踪的实现方式,准确地确定出用户的击键动作都是非常重要的。具体实现时,为了提高判断的准确度,可以采用如下方式:
步骤1:当带有残指或相关接长手指部位的双手运动时,根据跟踪装置反馈的相关信息,手指操作计算分析装置可以对运动的速度和加速进行计算;
步骤2:如果加速度大于某预置的阈值a时,进入步骤3;其中,该预置的阈值a为通过机器学习获得的参数。例如:a=S*a’*X,其中S是判断为击键动作基本加速度,X是上次成功判断的概率;
其中a是经过此次计算后新的a值,a’是上个阈值,即阈值不是固定的,而是根据每次输入变化的。阈值的初始值可以是人机交互建模时得到的。S是判断基本加速度,X是成功判断的概率。X=c/d,其中,c是判断成功的次数,d是总共判断次数。
步骤3:如果残指或相关接长手指部位运动时,判断移动的位移是否大于或等于b倍历史击键动作的位移时,如果是,进入步骤4;其中,b是通过机器学习获得的参数。例如:b=D*b’*(1+Y),其中D是判断为击键动作基本移动距离,Y是上次成功判断的概率;
其中,b是经过此次计算后新的阈值,b’是上个阈值,同样,阈值的初始值可以是由人机交互建模时得到的,D是判断为击键动作的基本位移,Y是成功判断的概率。其中,Y=e/f,e是判断成功的次数,f是总的判断次数。
步骤4:将当前操作判断为击键动作,即通过所述残指或相关接长手指部位做出按下键位的示意动作。
以上对具体的键盘输入实现方法进行了介绍,但是在假设已经完成建模的前提下介绍的,下面对具体的建模方法进行简单地介绍。
如前文所述,在本发明实施例中,由于需要依靠用户的残指或相关接长手指部位的移动距离,来确定用户需要按下哪个按键,因此,需要预先进行学习与分析,对键盘位置及各个键位进行建模,即建立各个键位所在位置的相对关系。
建立该相对关系的方法可以有多种,例如,可以确定一个基准键位,然后分别确定其他键位与该基准键位之间的位置关系,该位置关系包括各键位到基准键位的方向及距离,由于所有按键都在键盘所在的同一平面上,因此,最终可以以基准键位为原点,建立起二维坐标系,并且可以得到各个键位在该坐标系中的坐标;当然,由于每个按键并不是一个点,而是占有一定的面积,并且可以预先获知各个键位所占的面积,因此,每个按键在该坐标系中的坐标可以是一个范围,当获得的按键所在位置落入某按键的坐标范围时,就认为用户是要按下该按键。
具体对键盘位置及各个键位进行建模时,也需要用户使用带有残指或相关接长手指部位的双手做出按下键位的示意动作,并且需要对双手的运动进行跟踪,确定出各个示意动作对应的位置信息(具体的方法与前文所述的相同,可以分为主动跟踪或被动跟踪的方式)。其中,可以使用人机对话的方式引导用户按键,由用户进行按下相应键位的示意动作,直至输入完键盘上的所有键位。如有输入错误则重新进行上次输入。例如,可以首先引导用户按下基准键位,然后引导用户按下键盘上的下一键位,并跟踪残指或相关接长手指部位的运动,当所述残指或相关接长手指部位做出按下键位的示意动作时,确定做出所述示意动作时所在的位置,根据从基准键位到该下一键位的方向、距离,以及案件所占的面积,确定出该下一键位在该坐标系中的坐标范围,其他各个键位也都可以利用相同的方法确定出各自的坐标范围,所有按键全部确定完坐标范围之后,就完成了建模的步骤。
以上所述对本发明实施例提供的实现键盘输入的方法进行了详细地描述,可以看出,本发明实施例通过建模、跟踪、定位、模拟操作等几个步骤辅助用户实现了键盘输入,换而言之,相当于利用跟踪装置、定位装置等相关装置实现了一种“虚拟手指”,利用该“虚拟手指”,即使用户的双手残疾,也可以方便地进行键盘输入,使得残疾人士能够像双手健全的人一样使用计算机。
与本发明实施例提供的实现键盘输入的方法相对应,本发明实施例还提供了一种实现键盘输入的系统,参见图4,该系统包括以下单元:
建模单元401,用于预先对键盘位置及各个键位进行建模;
跟踪单元402,用于跟踪带有残指或相关接长手指部位的双手的运动;
定位单元403,用于当根据所述跟踪结果判断出通过所述残指或相关接长手指部位做出按下键位的示意动作时,确定做出所述示意动作时所在的位置;
键位确定单元404,用于根据所述示意动作所在位置,以及所述键盘位置、各个键位的建模结果,确定所述示意动作所在位置对应的键位;
操作模拟单元405,用于模拟按下该键位的操作,以便操作系统接收到按下该键位的事件,并通过显示设备显示相应的操作结果。
其中,可以采用主动跟踪的方式实现,此时,跟踪单元402可以包括:
主动跟踪单元,用于利用至少三个跟踪装置记录所述残指或相关接长手指部位在各个维度上的位置信息;
相应的,定位单元403具体用于根据各个维度上的位置信息,计算得到所述残指或相关接长手指部位在空间中的绝对位置。
具体实现时,所述主动跟踪装置包括摄像头。
或者,也可以采用被动跟踪的方式实现,此时,该系统还包括:
信号发出装置,位于所述残指或相关接长手指部位上,用于发出信号;
此时,跟踪单元402可以包括:被动跟踪单元,用于利用至少三个跟踪装置接收所述信号发出装置发出的信号,记录所述残指或相关接长手指部位在各个维度上的位置信息;
相应的,定位单元403具体用于,根据各个维度上的位置信息,计算得到所述残指或相关接长手指部位在空间中的绝对位置。
具体实现时,所述信号发出装置可以为点光源。
无论是采用主动跟踪还是被动跟踪的方式,具体在进行跟踪时,跟踪单元402可以包括:记录子单元,用于记录各个跟踪装置与所述残指或相关接长手指部位之间分别形成的夹角;
相应的,定位单元403可以包括:计算子单元,用于根据所述夹角,利用立体几何中的公式计算得出所述残指或相关接长手指部位在空间中的绝对位置。
为了准确地判断出击键动作,减小误判的可能,定位单元403可以包括:
动作确定子单元,用于当所述带有残指或相关接长手指部位的双手运动的加速度及位移都达到预置条件时,确定所述残指或相关接长手指部位做出按下键位的示意动作。
以上对本发明所提供的一种实现键盘输入的方法及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。