一种基于运动传感器的可穿戴式鼠标控制方法与流程

文档序号:13281543阅读:325来源:国知局
一种基于运动传感器的可穿戴式鼠标控制方法与流程

本发明属于移动感知计算领域,具体涉及一种基于运动传感器的可穿戴式鼠标控制方法。相较于市面上已经出现的眼控类、脚控类和呼气控制类鼠标,本发明操作更简便,识别更精准。另外,本发明应用广泛,不仅可以方便无臂人士使用,也可以帮助一些正常人解放双手。本发明具有普遍的适用性,不仅可以用于控制电脑,还可以控制其他任何电子设备。



背景技术:

随着互联网技术的发展,在人们的生活中电脑、智能手机等设备越来越普及,鼠标也成为最常见的人机交互系统。但是,无臂人士和一些手臂残疾人士在生活中却无法使用鼠标、触摸屏来操纵设备。与此同时,可穿戴式设备在当今也越来越普及,例如智能手表、智能手环等。传感器如今也越来越多样化并具有相当高的可用性:加速计、陀螺仪等设备可以提供设备精准的运动信息。市场上已经出现了一些使用穿戴式设备,如通过眼球的移动来控制鼠标的眼控类,通过脚趾代替手指来对鼠标进行控制的脚控类,和通过吸气呼气的时间长短和强弱的不同组合来实现上下左右和点击等鼠标功能的呼气控制类,但它们都存在有操作不便、控制困难的不足之处。而使用头部动作来进行控制能做到操作简便、识别准确,可以解决上述问题。

本发明致力于利用从可穿戴式设备中的传感器传送来的头部动作运动数据,研究和探索一种基于运动传感器的可穿戴式鼠标控制方法。

动作识别的准确度与传感器数据的采样率有关,若采样率过高,会导致传输成本太大,且容易造成拥塞,使数据传输造成相当大的延迟,且容易丢包。若采样率过低,则会造成动作特征不明显、识别不精确的结果。因此,为了保证数据正常传输且动作识别可以足够精确,需要对其采样率进行选择。

传感器数据的传输通过蓝牙或者wifi进行。在使用过程中,会出现头部不自然抖动、网络情况不理想等情况。所以需要对数据的处理和传输的方式进行精细的设计。在实际应用中,噪声波干扰、数据传输的缺失、附加信号的不可感知性与信息传递的鲁棒性之间的权衡等因素,都需要加以考量。



技术实现要素:

为了解决上述技术问题,本发明提供了一种基于运动传感器的可穿戴式鼠标控制方法。

本发明所采用的技术方案是:

一种基于运动传感器的可穿戴式鼠标控制方法,其特征在于,包括以下步骤:

步骤1:进行数据采集,具体包括:

步骤1.1:选择蓝牙或wifi热点连接嵌入式穿戴式设备和被控制的电脑,建立socket连接来传递数据。端口设置为8088。

步骤1.2:将从加速计和陀螺仪得到的三个方向的运动数据分别依次存储。当接收到的数据数大于窗口长度时则去除最先的数据。采样率设置为每秒40次。

步骤2:动作定义,具体包括以下子步骤:

步骤2.1:定义使用者一开始正对着屏幕,将初始的头部所在位置成为中间区域。

步骤2.2:定义单击操作。将头部快速向下,然后快速返回到中间区域的动作定义为单击操作。

步骤2.3:定义方向动作。将头部从中间区域转向左,保持一段时间至光标达到期望位置后转回中间区域定义为左移动作。将头部从中间区域转向右,保持一段时间至光标达到期望位置后转回中间区域定义为右移动作。将头部从中间区域转向上,保持一段时间至光标达到期望位置后转回中间区域定义为上移动作。

将头部从中间区域转向下,保持一段时间至光标达到期望位置后转回中间区域定义为下移动作。

步骤3:消除噪声的去除齿波的数据预处理;

步骤4:特征提取,具体包括以下子步骤:

步骤4.1:因在加速计的x轴方向,单击操作比另外四个方向的动作特征更为显著,所以可以使用加速计x轴方向的值来将单击动作和方向动作区分开来。

步骤4.2:因在陀螺仪的x轴方向,左右移动比上下移动动作特征更为显著,所以可以使用陀螺仪x轴方向的值来将左右动作和上下动作区分开来。又因左右动作特征正好相反,故也可将左右动作区分开来。

步骤4.3:因在陀螺仪的z轴方向,上下移动比左右移动动作特征更为显著,所以可以使用陀螺仪z轴方向的值来将上下动作和左右动作区分开来。又因左右动作特征正好相反,故也可将上下动作区分开来。

步骤5:动作分类,具体实现包括以下子步骤:

步骤5.1:定义atnx,gtnx,gtxx,gtnz,gtxz分别为加速计x轴方向的下阈值、陀螺仪x、z轴方向的上下阈值。阈值的值由预训练步骤决定,作为决策树的判定数据。定义aix,gix,giz为当前时间i的加速计x轴方向、陀螺仪x轴方向、陀螺仪z轴方向的值。

检查当前时间加速计x轴方向的值,如果aix<atnx,则头部开始点击动作,否则,进入步骤5.2。

步骤5.2:检查当前时间陀螺仪x轴方向的值,如果gix<gtnx或者gix>gtxx,头部则开始左或右动作,进入步骤5.3。否则,进入步骤5.4。

步骤5.3:如果gix<gtnx,则头部开始向左移动,屏幕上的光标向左移动。否则,头部向右移动,屏幕上的光标也向右移。

步骤5.4:检查当前时间陀螺仪z轴方向的值,如果giz<gtnz或者giz>gtxz,头部则开始上或下动作,进入步骤5.5。否则,在当前时间没有动作发生。

步骤5.5:如果giz<gtnz,则头部开始向上移动,屏幕上的光标向上移动。否则,头部开始向下移动,屏幕上的光标也向右移。

步骤5.6:一旦动作被识别了,光标便会在屏幕上执行相应动作直至动作的终止,

步骤6:动作分割,得到的原始数据是时间连续数据,动作分割将这些时间连续的数据分割成块,每一块包含的数据代表一个动作。依据动作的定义,每一个动作都包含两个相反的部分。例如,向左动作首先将头部从中间区域转向左,随后再由左转回中间区域。结果是,在同一方向上有相反的两个波形。定义在一个方向上有两个阈值tn,tp来决定动作的开始和结束。其中,tn是下阈值,tp是上阈值。

步骤7:数据预训练,具体实现包括以下子步骤:

步骤7.1:用户在使用之前依次做5个定义的动作5次。

步骤7.2:提取得到的数据的5对极值,将得到的最低波峰和最高波谷乘以某一系数k作为训练出的个性化阈值。

步骤8:错误矫正,当用户使用时,用户可以看见屏幕上光标的实时移动。当错误发生时,用户可以知道发生了一个错误,并可以立即开始矫正。如果光标向错误的方向移动,用户可以执行同样的动作,然后进行接触。例如,当用户向左时,发现光标向右移动,用户可以也执行一次向右动作来矫正这个错误。用这个方法,当前一个动作结束了,后续动作不会受之前的错误影响。

在上述的基于运动传感器的可穿戴式鼠标控制方法,步骤3的具体实现包括以下子步骤:

步骤3.1:使用阈值去噪的方式消除噪声。定义一个噪声阈值eth,当接收到的数据大于该阈值时才向设备传输数据,否则置为0。

步骤3.2:使用最大值滤波的方式去除齿波。最大值滤波即把窗口内所有值的最大值作为当前滤波后的值。定义滤波窗口为τ,则当前时间滤波后的值rt可表示为:

rt=max{rt-τ/2,...,rt-1,rt,rt+1,...,rt+τ/2}

在上述的基于运动传感器的可穿戴式鼠标控制方法,步骤5.6中动作的终止定义如下:

对于左动作,当实时数据gix≥gtxx,光标停止移动,随后识别到实时数据gix≤gtnx,左动作终止。

对于右动作,当实时数据aix≤atnx,光标停止移动,随后识别到实时数据aix≥atnx,右动作终止。

对于上动作,当实时数据giz≥gtxx,光标停止移动,随后识别到实时数据giz≤gtxz,上动作终止。

对于下动作,当实时数据giz≤gtnx,光标停止移动,随后识别到实时数据giz≥gtnz,下动作终止。

对于单击动作,其动作与下动作在一个方向上,当实时数据giz≤gtnx,光标停止移动,随后识别到实时数据giz≥gtnz,单击动作终止。

在上述的基于运动传感器的可穿戴式鼠标控制方法,步骤6中,使用如下规则来分割数据:

定义头部最初在中间区域正对屏幕,当陀螺仪的数据被识别到第一次到达某一阈值时,该点被标志为动作开始的点,记为ps。当陀螺仪数据在相反方向第二次到达某阈值时,该点被标志为动作结束的点,记为pe。则ps和pe中间的一段被分割出来作为一个动作。

在上述的基于运动传感器的可穿戴式鼠标控制方法,步骤7的具体实现包括以下子步骤:

步骤7.1:用户在使用之前依次做5个定义的动作5次。

步骤7.2:提取得到的数据的5对极值,将得到的最低波峰和最高波谷乘以某一系数k作为训练出的个性化阈值。

相对于现有技术,本发明的有益成果是:控制更精确,操作简单,不影响正常事物,具有可扩展性,而且具有普遍的适用性。

附图说明

图1为本发明的系统框架图。

图2a为提取的波形信号示例图。

图2b为提取的波形信号预处理后结果图。

图3a为用户在普适阈值下测试结果的准确率。

图3b为用户在普适阈值下测试结果的召回率。

图4a为各动作识别准确率随k值变化曲线。

图4b为各动作识别召回率随k值变化曲线。

图5为个性化阈值的判断精度。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

本发明主要基于穿戴式设备和传感器技术,考虑到头部动作的运动特征,提出了一种基于运动传感器的可穿戴式鼠标控制方法。本方法充分利用头部动作的运动数据,在不影响正常视物的同时,实现了易于操作且高精度的鼠标控制。本发明可用于为无臂人士使用,让无臂或者手臂残疾人士也可以使用鼠标,同时,正常人也可以使用本发明来解放双手。

本发明提供的方法能够用计算机软件技术实现流程。参见图1,本发明提供的一种基于运动传感器的可穿戴式鼠标控制方法,包括以下步骤:

步骤1:从传感器采集动作数据,具体实现过程是:

步骤1.1:选择蓝牙或wifi热点的方式连接嵌入式穿戴式设备和被控制的电脑,建立socket连接来传递数据。端口设置为8088。

步骤1.2:将从加速计和陀螺仪得到的三个方向的运动数据分别依次存储。当接收到的数据数大于窗口长度时则去除最先的数据。采样率设置为每秒40次。

实施例具体的实施过程说明如下:

首先将穿戴式设备与控制设备(如电脑)通过蓝牙或wifi热点进行连接,建立socket连接后传送传感器数据,端口设置为8088.

然后,将从加速计和陀螺仪得到的三个方向的运动数据分别依次存储。当接收到的数据数大于定义的窗口数时则去除最先的数据,然后将剩下的数据放在窗口内交与电脑端程序处理。采样率设置为每秒40次。当采样率过大时,成本过大,且可能会造成拥塞。当采样率过小时,动作特征会不够明显。

步骤2:定义动作。对鼠标的每一个操作,都定义一个头部动作与之对应。

步骤2.1:假定使用者一开始正对着屏幕,将初始的头部所在位置成为中间区域。

步骤2.2:定义单击操作。将头部快速向下,然后快速返回到中间区域的动作定义为单击操作。

步骤2.3:定义方向动作。将头部从中间区域转向左,保持一段时间至光标达到期望位置后转回中间区域定义为左移动作。将头部从中间区域转向右,保持一段时间至光标达到期望位置后转回中间区域定义为右移动作。将头部从中间区域转向上,保持一段时间至光标达到期望位置后转回中间区域定义为上移动作。将头部从中间区域转向下,保持一段时间至光标达到期望位置后转回中间区域定义为下移动作。

具体实现过程是:

以左动作为例。左动作的定义为屏幕上的光标向左移动。一旦头部从中间区域向左移动,光标也开始向左移动。头部会在左区域保持一段距离,此时光标会保持向左移动。一旦头部摆回中间区域,光标即停止移动。

步骤3:对数据进行预处理。在不影响动作特征提取的前提下对原始数据进行去噪操作。

步骤3.1:使用阈值去噪的方式消除噪声。定义一个噪声阈值eth,当接收到的数据大于该阈值时才向设备传输数据,否则置为0。

步骤3.2:使用最大值滤波的方式去除齿波。最大值滤波即把窗口内所有值的最大值作为当前滤波后的值。定义滤波窗口为τ,则当前时间滤波后的值rt可表示为:

rt=max{rt-τ/2,...,rt-1,rt,rt+1,...,rt+τ/2}

具体实现过程是:

定义一个噪声阈值eth,原始数据中小于该阈值的值将会被置为0,只有接收到的数据大于该阈值时才会向设备传输数据。将经过阈值去噪后的数据再使用最大值滤波的方法来去除齿波。最大值滤波将当前位置的左右值放在一起考虑,将其中的最大值最为该位置滤波后的值。

步骤4:特征提取。

具体实现过程是:

因在加速计的x轴方向,单击操作比另外四个方向的动作特征更为显著,而上下左右四个动作在加速计上没有明显的区别,所以可以使用加速计x轴方向的值来将单击动作和方向动作区分开来。

因在陀螺仪的x轴方向,左右移动比上下移动动作特征更为显著,所以可以使用陀螺仪x轴方向的值来将左右动作和上下动作区分开来。又因左右动作特征正好相反,故也可将左右动作区分开来。

因在陀螺仪的z轴方向,上下移动比左右移动动作特征更为显著,所以可以使用陀螺仪z轴方向的值来将上下动作和左右动作区分开来。又因左右动作特征正好相反,故也可将上下动作区分开来。

步骤5:动作分类。

具体实现过程是:

步骤5.1:定义atnx,gtnx,gtxx,gtnz,gtxz分别为加速计x轴方向的下阈值、陀螺仪x、z轴方向的上下阈值。阈值的值由预训练步骤决定,作为决策树的判定数据。定义aix,gix,giz为当前时间i的加速计x轴方向、陀螺仪x轴方向、陀螺仪z轴方向的值。

检查当前时间加速计x轴方向的值,如果aix<atnx,则头部开始点击动作,否则,进入步骤5.2。

步骤5.2:检查当前时间陀螺仪x轴方向的值,如果gix<gtnx或者gix>gtxx,头部则开始左或右动作,进入步骤5.3。否则,进入步骤5.4。

步骤5.3:如果gix<gtnx,则头部开始向左移动,屏幕上的光标向左移动。否则,头部向右移动,屏幕上的光标也向右移。

步骤5.4:检查当前时间陀螺仪z轴方向的值,如果giz<gtnz或者giz>gtxz,头部则开始上或下动作,进入步骤5.5。否则,在当前时间没有动作发生。

步骤5.5:如果giz<gtnz,则头部开始向上移动,屏幕上的光标向上移动。否则,头部开始向下移动,屏幕上的光标也向右移。

步骤5.6:一旦动作被识别了,光标便会在屏幕上执行相应动作直至动作的终止,动作的终止定义如下:

对于左动作,当实时数据gix≥gtxx,光标停止移动,随后识别到实时数据gix≤gtnx,左动作终止。

对于右动作,当实时数据aix≤atnx,光标停止移动,随后识别到实时数据aix≥atnx,右动作终止。

对于上动作,当实时数据giz≥gtxx,光标停止移动,随后识别到实时数据giz≤gtxz,上动作终止。

对于下动作,当实时数据giz≤gtnx,光标停止移动,随后识别到实时数据giz≥gtnz,下动作终止。

对于单击动作,其动作与下动作在一个方向上,当实时数据giz≤gtnx,光标停止移动,随后识别到实时数据giz≥gtnz,单击动作终止。

步骤6:动作分割

具体实现过程是:

我们得到的原始数据是时间连续数据,动作分割将这些时间连续的数据分割成块,每一块包含的数据代表一个动作。依据动作的定义,每一个动作都包含两个相反的部分。例如,向左动作首先将头部从中间区域转向左,随后再由左转回中间区域。结果是,在同一方向上有相反的两个波形。定义在一个方向上有两个阈值tn,tp来决定动作的开始和结束。其中,tn是下阈值,tp是上阈值。使用如下规则来分割数据:

假设头部最初在中间区域正对屏幕,当陀螺仪的数据被识别到第一次到达某一阈值时,该点被标志为动作开始的点,记为ps。当陀螺仪数据在相反方向第二次到达某阈值时,该点被标志为动作结束的点,记为pe。则ps和pe中间的一段被分割出来作为一个动作。

步骤7:数据预训练

具体实现过程是:

因不同的人的动作习惯不同,产生的动作特征波形也不同。所以上步骤定义的分类器非普适,需要为不同的用户训练个性化分类器。

步骤7.1:用户在使用之前依次做5个定义的动作5次。

步骤7.2:提取得到的数据的5对极值,将得到的最低波峰和最高波谷乘以某一系数k作为训练出的个性化阈值。将该个性化阈值作为分类器的阈值将分类器个性化。

步骤8:错误矫正

具体实现过程是:

当用户使用时,用户可以看见屏幕上光标的实时移动。当错误发生时,用户可以知道发生了一个错误,并可以立即开始矫正。如果光标向错误的方向移动,用户可以执行同样的动作,然后进行接触。例如,当用户向左时,发现光标向右移动,用户可以也执行一次向右动作来矫正这个错误。用这个方法,当前一个动作结束了,后续动作不会受之前的错误影响。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1