CN110109551A - 手势识别方法、装置、设备及存储介质 - Google Patents
手势识别方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110109551A CN110109551A CN201910415577.1A CN201910415577A CN110109551A CN 110109551 A CN110109551 A CN 110109551A CN 201910415577 A CN201910415577 A CN 201910415577A CN 110109551 A CN110109551 A CN 110109551A
- Authority
- CN
- China
- Prior art keywords
- axis
- gesture
- vector
- preangle
- curangle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
Abstract
一种手势识别的方法,应用于可穿戴设备技术领域,包括:S1,初始化惯性传感器的姿态四元数、惯性传感器在地理坐标系下的三轴加速度矢量、惯性传感器在机体坐标系下的三轴陀螺仪矢量及手势特征码,S2,获取三轴加速度矢量和三轴陀螺仪矢量,S3,基于三轴加速度矢量和三轴陀螺仪矢量,判断惯性传感器的状态是否为非静止状态,S4,基于三轴加速度矢量,计算并记录运动矢量角,S5,基于运动矢量角,判定手势识别码,S6,基于手势识别码,更新手势特征码,S7,在预置的手势特征码库中,查找手势特征码,以识别用户的手势。本公开还提供了一种手势识别的装置、设备及存储介质。本公开有效解决了现有技术对手势动作要求较高导致的识别精度不高的问题。
Description
技术领域
本公开涉及可穿戴设备技术领域,尤其涉及一种手势识别方法、装置及存储介质。
背景技术
智能穿戴设备是目前消费电子领域的热点方向之一。利用可穿戴设备上的惯性传感器,如加速度计、陀螺仪等,可以对佩戴者的手势进行检测和识别。与基于视觉的手势识别方法相比,基于惯性传感器的手势识别方法具有不受环境光线影响、识别速度快、成本低等优点。
现阶段基于惯性传感器的手势识别方法会建立手势动作库,手势动作库包含大量手势动作特征,通过将惯性传感器感应到的动作特征与手势动作库中的手势动作特征对比来识别手势。这种方法对用户的手势动作要求相对较高,若用户的手势动作与标准动作有差异,很容易会导致无法识别该用户的手势动作,因此识别精度不高。
发明内容
本公开提出了一种手势识别方法、装置及存储介质,以至少解决上述技术问题。
本公开的一个方面提供了一种手势识别的方法,包括:S1,初始化惯性传感器的姿态四元数、所述惯性传感器在地理坐标系下的三轴加速度矢量、所述惯性传感器在机体坐标系下的三轴陀螺仪矢量及手势特征码,所述惯性传感器用于感知用户的手势;S2,获取所述三轴加速度矢量和三轴陀螺仪矢量;S3,基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态,若所述惯性传感器为静止状态,则再次执行S2,若所述惯性传感器为非静止状态,则执行S4;S4,基于所述三轴加速度矢量,计算并记录运动矢量角;S5,基于所述运动矢量角,判定手势识别码;S6,基于所述手势识别码,更新所述手势特征码;S7,在预置的手势特征码库中,查找所述手势特征码,以识别所述用户的手势。
可选的,所述基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态包括:基于所述三轴加速度矢量和所述三轴陀螺仪矢量,更新所述姿态四元数;基于所述姿态四元数,计算三轴加速度运动矢量;计算所述三轴加速度运动矢量的模,包括:令所述三轴加速度运动矢量为[EarthAccX,EarthAccY,EarthAccZ],所述三轴加速度运动矢量的模为normAcc,则:
判断所述三轴运动矢量的模是否大于预设的阈值,当所述三轴运动矢量的模大于预设的阈值时,则所述惯性传感器为非静止状态。
可选的,所述基于所述三轴加速度矢量和所述三轴陀螺仪矢量,更新所述姿态四元数包括:令所述三轴加速度矢量为[ax,ay,az],所述三轴陀螺仪矢量为[gx,gy,gz],所述姿态四元数为[q0,q1,q2,q3],则:
q0=q0+(-q1*gx-q2*gy-q3*gz)*DeltaTime/2;
q1=q1+(q0*gx+q2*gz-q3*gy)*DeltaTime/2;
q2=q2+(q0*gy-q1*gz+q3*gx)*DeltaTime/2;
q3=q3+(q0*gz+q1*gy-q2*gx)*DeltaTime/2;
其中,DeltaTime为更新所述姿态四元数的时间差。
可选的,所述基于所述姿态四元数,计算三轴加速度运动矢量包括:令所述姿态四元数为[q0,q1,q2,q3],所述三轴加速度矢量为[ax,ay,az],所述三轴加速度运动矢量为[EarthAccX,EarthAccY,,EarthAccZ],则:
EarthAccX=2*ax*(0.5-q2*q2-q3*q3)+2*ay*(q1*q2-q0*q3)+2*az*(q1*q3+q0*q2);
EarthAccY=2*ax*(q1*q2+q0*q3)+2*ay*(0.5-q1*q1-q3*q3)+2*az*(q2*q3-q0*q1);
EarthAccZ=2*ax*(q1*q3-q0*q2)+2*ay*(q2*q3+q0*q1)+2*az*(0.5-q1*q1-q2*q2)-1。
可选的,所述基于所述三轴加速度矢量,计算并记录运动矢量角包括:基于所述三轴加速度矢量分别在所述地理坐标系的三个轴上的分量的时域图,选取所述分量的峰值较大的两个轴,令所述两个轴组成的平面为运动主平面;计算所述惯性传感器在所述运动主平面中的运动矢量角。
可选的,所述基于所述运动矢量角,判定手势识别码包括:定义一个四象限图,所述四象限图第一象限与第二象限之间的轴为1轴,第二象限与第三象限之间的轴为2轴,第三象限与第四象限之间的轴为3轴,第一象限与第四象限之间的轴为4轴;令所述运动矢量角为CurAngle,所述惯性传感器中记录的上一次执行步骤S2~S4得到的所述运动矢量角为PreAngle,在所述四象限图中分别表示出CurAngle和PreAngle,则:若PreAngle<90°,且CurAngle>90°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了1轴,记手势识别码为-1;若PreAngle<180°,且CurAngle>180°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了2轴,记手势识别码为-2;若PreAngle<270°,且CurAngle>270°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了坐标轴3,记手势识别码为-3;若PreAngle<0°,且CurAngle>0°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了坐标轴4,记手势识别码为-4;若PreAngle>90°,且CurAngle<90°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了1轴,记手势识别码为1;若PreAngle>180°,且CurAngle<180°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了2轴,记手势识别码为2;若PreAngle>270°,且CurAngle<270°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了3轴,记手势识别码为3;若PreAngle>0°,且CurAngle<0°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了4轴,记手势识别码为4。
可选的,所述基于所述手势识别码,更新所述手势特征码包括:令所述手势特征码为GesCode,所述手势识别码为code,更新得到所述手势特征码为newGesCode,则:
newGesCode=GesCode*10+code。
本公开的另一个方面提供了一种手势识别的装置,包括:第一处理模块,初始化惯性传感器的姿态四元数、所述惯性传感器在地理坐标系下的三轴加速度矢量、所述惯性传感器在机体坐标系下的三轴陀螺仪矢量及手势特征码;第二处理模块,用于获取所述三轴加速度矢量和三轴陀螺仪矢量;第三处理模块,用于基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态;第四处理模块,用于基于所述三轴加速度矢量,计算并记录运动矢量角;第五处理模块,用于基于所述运动矢量角,判定手势识别码;第六处理模块,用于基于所述手势识别码,更新所述手势特征码;第七处理模块,用于在预置的手势特征码库中,查找所述手势特征码,以识别所述用户的手势。
本公开的另一个方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面中的任一项所述的手势识别的方法中的各个步骤。
本公开的另一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面中的任一项所述的手势识别的方法中的各个步骤。
在本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
(1)本公开的实施例采用手势特征码的方式,仅需采用简单的四则运算就可以完成手势的识别,占用计算资源极低。
(2)本公开的实施例的识别率高,而且对用户动作要求相对较低,适用性高。
(3)本公开的实施例提出的手势特征码方法可对顺时针、逆时针转圈、向上、向下4种手势进行识别,并且容易扩展到其他手势,算法扩展性强,无需进行大量样品采集和训练,实施起来简单。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了本公开实施例提供的一种手势识别的方法的流程图;
图2示意性示出了本公开实施例提供的加速度时域图;
图3示意性示出了本公开实施例提供的四象限图;
图4示意性示出了本公开实施例提供的一种手势识别装置的结构框图;
图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说=3明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
图1示意性示出了本公开实施例提供的一种手势识别的方法的流程图。
具体的,如图1所示,本公开实施例的一种手势识别的方法包括以下操作:
S1,初始化惯性传感器的姿态四元数、所述惯性传感器在地理坐标系下的三轴加速度矢量、所述惯性传感器在机体坐标系下的三轴陀螺仪矢量及手势特征码,所述惯性传感器用于感知用户的手势。
所述地理坐标系是指以所述惯性传感器的质心为原点的直角坐标系,该坐标系的X轴指向正东,Y轴指正北,Z轴指向天。
所述机体坐标系是指以所述惯性传感器的质心为原点,所述惯性传感器三个敏感轴为坐标轴的坐标系。一般来说,所述惯性传感器的加速度计和陀螺仪的坐标轴是重合的。
初始化所述惯性传感器,使所述姿态四元数为[1,0,0,0],所述三轴加速度矢量为[0,0,0],所述三轴陀螺仪矢量为[0,0,0],所述手势特征码为0。
S2,获取所述三轴加速度矢量和三轴陀螺仪矢量。
每隔一定的时间差获取一次当前所述惯性传感器的所述三轴加速度矢量和三轴陀螺仪矢量,该时间差一般为0.01至0.001秒之间。
S3,基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态,若所述惯性传感器为静止状态,则再次执行S2,若所述惯性传感器为非静止状态,则执行S4。
基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态,包括:基于所述三轴加速度矢量和所述三轴陀螺仪矢量,更新所述姿态四元数;基于所述姿态四元数,计算三轴加速度运动矢量;计算所述三轴加速度运动矢量的模,判断所述三轴运动矢量的模是否大于预设的阈值,当所述三轴运动矢量的模大于预设的阈值时,则所述惯性传感器为非静止状态。
进一步的,基于所述三轴加速度矢量和所述三轴陀螺仪矢量,更新所述姿态四元数,包括:
令所述三轴加速度矢量为[ax,ay,az],所述三轴陀螺仪矢量为[gx,gy,gz],所述姿态四元数为[q0,q1,q2,q3],则:
q0=q0+(-q1*gx-q2*gy-q3*gz)*DeltaTime/2;
q1=q1+(q0*gx+q2*gz-q3*gy)*DeltaTime/2;
q2=q2+(q0*gy-q1*gz+q3*gx)*DeltaTime/2;
q3=q3+(q0*gz+q1*gy-q2*gx)*DeltaTime/2;
其中,DeltaTime为更新所述姿态四元数的时间差,该时间差一般为0.01至0.001秒之间。
进一步的,基于所述姿态四元数,计算三轴加速度运动矢量,包括:
令所述姿态四元数为[q0,q1,q2,q3],所述三轴加速度矢量为[ax,ay,az],所述三轴加速度运动矢量为[EarthAccX,EarthAccY,EarthAccZ],则:
EarthAccX=2*ax*(0.5-q2*q2-q3*q3)+2*ay*(q1*q2-q0*q3)+2*az*(q1*q3+q0*q2);
EarthAccY=2*ax*(q1*q2+q0*q3)+2*ay*(0.5-q1*q1-q3*q3)+2*az*(q2*q3-q0*q1);
EarthAccZ=2*ax*(q1*q3-q0*q2)+2*ay*(q2*q3+q0*q1)+2*az*(0.5-q1*q1-q2*q2)-1。
进一步的,计算所述三轴加速度运动矢量的模,包括:
令所述三轴加速度运动矢量为[EarthAccX,EarthAccY,EarthAccZ],所述三轴加速度运动矢量的模为normAcc,则:
判断所述三轴运动矢量的模是否大于预设的阈值,例如,假设阈值为0.1,当所述三轴运动矢量的模大于预设的阈值时,则所述惯性传感器为非静止状态,执行S4,当所述三轴运动矢量的模小于预设的阈值时,则所述惯性传感器为静止状态,返回步骤S2。
S4,基于所述三轴加速度矢量,计算并记录运动矢量角。
基于所述三轴加速度矢量分别在所述地理坐标系的三个轴上的分量的时域图,选取所述分量的峰值较大的两个轴,令所述两个轴组成的平面为运动主平面。
图2示意性示出了本公开实施例提供的加速度时域图。图2表示了做一个顺时针手势时所述三轴加速度矢量分别在地理坐标系的三个轴上的分量的时域图。
如图2所示,图中分别示出了所述三轴加速度矢量在地理坐标系中X轴、Y轴、Z轴的分量在一段时间内的变化。从图中可知,所述三轴加速度矢量在X轴和Z轴上的分量的峰值最大,因此选取X轴和Z轴组成的平面作为运动主平面。
计算所述惯性传感器在所述运动主平面中的运动矢量角。
令所述三轴加速度运动矢量为[EarthAccX,EarthAccY,EarthAccZ],在选取运动主平面后,计算运动矢量角,计算方法如下:
如果运动主平面为X轴、Y轴组成的平面,则运动矢量角定义为:
AngleXY=atan2(EarthAccX,EarthAccY);
如果运动主平面为Y轴、Z轴组成的平面,则运动矢量角定义为:
AngleYZ=atan2(EarthAccZ,EarthAccY);
如果运动主平面为X轴、Z轴组成的平面,则运动矢量角定义为:
AngleXZ=atan2(EarthAccZ,EarthAccX)。
S5,基于所述运动矢量角,判定手势识别码。
定义一个四象限图,所述四象限图第一象限与第二象限之间的轴为1轴,第二象限与第三象限之间的轴为2轴,第三象限与第四象限之间的轴为3轴,第一象限与第四象限之间的轴为4轴;
令所述运动矢量角为CurAngle,所述惯性传感器中记录的上一次执行步骤S2~S4得到的所述运动矢量角为PreAngle,在所述四象限图中分别表示出CurAngle和PreAngle,则:
若PreAngle<90°,且CurAngle>90°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了1轴,记手势识别码为-1;
若PreAngle<180°,且CurAngle>180°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了2轴,记手势识别码为-2;
若PreAngle<270°,且CurAngle>270°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了坐标轴3,记手势识别码为-3;
若PreAngle<0°,且CurAngle>0°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了坐标轴4,记手势识别码为-4;
若PreAngle>90°,且CurAngle<90°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了1轴,记手势识别码为1;
若PreAngle>180°,且CurAngle<180°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了2轴,记手势识别码为2;
若PreAngle>270°,且CurAngle<270°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了3轴,记手势识别码为3;
若PreAngle>0°,且CurAngle<0°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了4轴,记手势识别码为4。
图3示意性示出了本公开实施例提供的四象限图。
例如,当PreAngle=179°,CurAngle=45°时,参考图3可知,角度从PreAngle变为CurAngle最快的方式是顺时针越过1轴,则记手势识别码为1;当PreAngle=45°,CurAngle=300°时,参考图3可知,角度从PreAngle变为CurAngle最快的方式是顺时针越过4轴,则记手势识别码为4。
S6,基于所述手势识别码,更新所述手势特征码;
基于所述手势识别码,更新所述手势特征码包括:
令所述手势特征码为GesCode,所述手势识别码为code,更新得到所述手势特征码为newGesCode,则:
newGesCode=GesCode*10+code。
例如,初始化所述惯性传感器后,所述手势特征码为0,获得手势识别码1后,所述手势特征码变为0*10+1=1,当再次执行S2~S5后,获得手势识别码4,所述手势特征码变为1*10+4=14,以此类推,若依次获得手势识别码1、4、3、2,则手势识别码更新为1432,若依次获得手势识别码为-4、-1、1,则手势识别码更新为-409。
S7,在预置的手势特征码库中,查找所述手势特征码,以识别所述用户的手势。
本发明实施例提供了顺时针旋转、逆时针旋转、向上、向下四种手势的手势特征码库,如下:
如果手势特征码为1432,4321,3214,2143之一,则判定发生了顺时针转圈手势;
如果手势特征码为-1432,-4321,-3214,-2143之一,则判定发生了逆时针转圈手势;
如果手势特征码为-2336,2136,3588,-3568,1359,1427,4266,2659,-3409,-857,-2338,-3357之一,说明发生了一个向上的手势;
如果手势特征码为-409,427,3177,1766,-1179,4318,-4118,-1179,-1786之一,说明发生了一个向下的手势。
将S6更新的手势特征码与手势特征码库中的手势特征码做对比,如果手势特征码库中存在相应的手势特征码,则根据手势特征码库中的手势特征码表示的手势识别用户的手势,然后将当前手势特征码重新初始化,即使手势特征码记为0。如果手势特征码库中不存在相应的手势特征码,当手势特征码的位数小于4时,不对手势特征码进行处理,等再次执行S6后更新手势识别码再次将所述手势特征码与手势特征码库中的手势特征码做对比以识别手势;当手势特征码的位数大于4时,说明该手势不在上述的手势特征码库中,将当前手势特征码重新初始化。
可以理解的是,基于本公开提供的手势识别的方法,可将手势特征码库扩充到包含挥手、拍掌、摇晃等手势,用以识别更多的手势。
在本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
(1)本公开的实施例采用手势特征码的方式,仅需采用简单的四则运算就可以完成手势的识别,占用计算资源极低。
(2)本公开的实施例的识别率高,而且对用户动作要求相对较低,适用性高。
(3)本公开的实施例提出的手势特征码方法可对顺时针、逆时针转圈、向上、向下4种手势进行识别,并且容易扩展到其他手势,算法扩展性强,无需进行大量样品采集和训练,实施起来简单。图4本公开实施例提供的一种手势识别装置的结构框图。
如图4所示,手势识别装置400包括:第一处理模块410、第二处理模块420、第三处理模块430、第四处理模块440、第五处理模块450、第六处理模块460、第七处理模块470。
具体地,第一处理模块410,用于初始化惯性传感器的姿态四元数、所述惯性传感器在地理坐标系下的三轴加速度矢量、所述惯性传感器在机体坐标系下的三轴陀螺仪矢量及手势特征码;
第二处理模块420,用于获取所述三轴加速度矢量和三轴陀螺仪矢量;
第三处理模块430,用于基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态;
第四处理模块440,用于基于所述三轴加速度矢量,计算并记录运动矢量角;
第五处理模块450,用于基于所述运动矢量角,判定手势识别码;
第六处理模块460,用于基于所述手势识别码,更新所述手势特征码;
第七处理模块470,用于在预置的手势特征码库中,查找所述手势特征码,以识别所述用户的手势。
可以理解的是,第一处理模块410、第二处理模块420、第三处理模块430、第四处理模块440、第五处理模块450、第六处理模块460及第七处理模块470可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,第一处理模块410、第二处理模块420、第三处理模块430、第四处理模块440、第五处理模块450、第六处理模块460及第七处理模块470中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,第一处理模块410、第二处理模块420、第三处理模块430、第四处理模块440、第五处理模块450、第六处理模块460及第七处理模块470中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
请参见图5,图5示出了一种电子设备的硬件结构图。
如图5所示,电子设备500包括处理器510、计算机可读存储介质520。该电子设备500可以执行上面参考图1描述的方法,以实现对特定操作的检测。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行参考图1描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质520,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行例如上面结合图1所描述的方法流程及其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行例如上面结合图1所描述的方法流程及其任何变形。
根据本发明的实施例,第一处理模块410、第二处理模块420、第三处理模块430、第四处理模块440、第五处理模块450、第六处理模块460及第七处理模块470中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种手势识别的方法,其特征在于,包括:
S1,初始化惯性传感器的姿态四元数、所述惯性传感器在地理坐标系下的三轴加速度矢量、所述惯性传感器在机体坐标系下的三轴陀螺仪矢量及手势特征码,所述惯性传感器用于感知用户的手势;
S2,获取所述三轴加速度矢量和三轴陀螺仪矢量;
S3,基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态,若所述惯性传感器为静止状态,则再次执行S2,若所述惯性传感器为非静止状态,则执行S4;
S4,基于所述三轴加速度矢量,计算并记录运动矢量角;
S5,基于所述运动矢量角,判定手势识别码;
S6,基于所述手势识别码,更新所述手势特征码;
S7,在预置的手势特征码库中,查找所述手势特征码,以识别所述用户的手势。
2.根据权利要求1中所述的方法,其特征在于,所述基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态包括:
基于所述三轴加速度矢量和所述三轴陀螺仪矢量,更新所述姿态四元数;
基于所述姿态四元数,计算三轴加速度运动矢量;
计算所述三轴加速度运动矢量的模,包括:
令所述三轴加速度运动矢量为[EarthAccX,EarthAccY,EarthAccZ],所述三轴加速度运动矢量的模为normAcc,则:
判断所述三轴运动矢量的模是否大于预设的阈值,当所述三轴运动矢量的模大于预设的阈值时,则所述惯性传感器为非静止状态。
3.根据权利要求2所述的方法,其特征在于,所述基于所述三轴加速度矢量和所述三轴陀螺仪矢量,更新所述姿态四元数包括:
令所述三轴加速度矢量为[ax,ay,az],所述三轴陀螺仪矢量为[gx,gy,gz],所述姿态四元数为[q0,q1,q2,q3],则:
q0=q0+(-q1*gx-q2*gy-q3*gz)*DeltaTime/2;
q1=q1+(q0*gx+q2*gz-q3*gy)*DeltaTime/2;
q2=q2+(q0*gy-q1*gz+q3*gx)*DeltaTime/2;
q3=q3+(q0*gz+q1*gy-q2*gx)*DeltaTime/2;
其中,DeltaTime为更新所述姿态四元数的时间差。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述姿态四元数,计算三轴加速度运动矢量包括:
令所述姿态四元数为[q0,q1,q2,q3],所述三轴加速度矢量为[ax,ay,az],所述三轴加速度运动矢量为[EarthAccX,EarthAccY,,EarthAccZ],则:
EarthAccX=2*ax*(0.5-q2*q2-q3*q3)+2*ay*(q1*q2-q0*q3)+2*az*(q1*q3+q0*q2);
EarthAccY=2*ax*(q1*q2+q0*q3)+2*ay*(0.5-q1*q1-q3*q3)+2*az*(q2*q3-q0*q1);
EarthAccZ=2*ax*(q1*q3-q0*q2)+2*ay*(q2*q3+q0*q1)+2*az*(0.5-q1*q1-q2*q2)-1。
5.根据权利要求1所述的方法,其特征在于,所述基于所述三轴加速度矢量,计算并记录运动矢量角包括:
基于所述三轴加速度矢量分别在所述地理坐标系的三个轴上的分量的时域图,选取所述分量的峰值较大的两个轴,令所述两个轴组成的平面为运动主平面;
计算所述惯性传感器在所述运动主平面中的运动矢量角。
6.根据权利要求1或5中任意一项所述的方法,其特征在于,所述基于所述运动矢量角,判定手势识别码包括:
定义一个四象限图,所述四象限图第一象限与第二象限之间的轴为1轴,第二象限与第三象限之间的轴为2轴,第三象限与第四象限之间的轴为3轴,第一象限与第四象限之间的轴为4轴;
令所述运动矢量角为CurAngle,所述惯性传感器中记录的上一次执行步骤S2~S4得到的所述运动矢量角为PreAngle,在所述四象限图中分别表示出CurAngle和PreAngle,则:
若PreAngle<90°,且CurAngle>90°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了1轴,记手势识别码为-1;
若PreAngle<180°,且CurAngle>180°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了2轴,记手势识别码为-2;
若PreAngle<270°,且CurAngle>270°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了坐标轴3,记手势识别码为-3;
若PreAngle<0°,且CurAngle>0°,则说明角度从PreAngle变为CurAngle在所述四象限图中逆时针跨越了坐标轴4,记手势识别码为-4;
若PreAngle>90°,且CurAngle<90°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了1轴,记手势识别码为1;
若PreAngle>180°,且CurAngle<180°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了2轴,记手势识别码为2;
若PreAngle>270°,且CurAngle<270°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了3轴,记手势识别码为3;
若PreAngle>0°,且CurAngle<0°,则说明角度从PreAngle变为CurAngle在所述四象限图中顺时针跨越了4轴,记手势识别码为4。
7.根据权利要求1所述的方法,其特征在于,所述基于所述手势识别码,更新所述手势特征码包括:
令所述手势特征码为GesCode,所述手势识别码为code,更新得到所述手势特征码为newGesCode,则:
newGesCode=GesCode*10+code。
8.一种手势识别的装置,其特征在于,包括:
第一处理模块,用于初始化惯性传感器的姿态四元数、所述惯性传感器在地理坐标系下的三轴加速度矢量、所述惯性传感器在机体坐标系下的三轴陀螺仪矢量及手势特征码;
第二处理模块,用于获取所述三轴加速度矢量和三轴陀螺仪矢量;
第三处理模块,用于基于所述三轴加速度矢量和所述三轴陀螺仪矢量,判断所述惯性传感器的状态是否为非静止状态;
第四处理模块,用于基于所述三轴加速度矢量,计算并记录运动矢量角;
第五处理模块,用于基于所述运动矢量角,判定手势识别码;
第六处理模块,用于基于所述手势识别码,更新所述手势特征码;
第七处理模块,用于在预置的手势特征码库中,查找所述手势特征码,以识别所述用户的手势。
9.一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1至7中的任一项所述的手势识别的方法中的各个步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任一项所述的基于惯性传感器的手势识别的方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910415577.1A CN110109551B (zh) | 2019-05-17 | 2019-05-17 | 手势识别方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910415577.1A CN110109551B (zh) | 2019-05-17 | 2019-05-17 | 手势识别方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109551A true CN110109551A (zh) | 2019-08-09 |
CN110109551B CN110109551B (zh) | 2021-02-23 |
Family
ID=67490964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910415577.1A Active CN110109551B (zh) | 2019-05-17 | 2019-05-17 | 手势识别方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109551B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947771A (zh) * | 2021-01-11 | 2021-06-11 | 上海龙旗科技股份有限公司 | 一种实现空间轨迹输入的方法、装置及设备 |
CN113268136A (zh) * | 2020-02-14 | 2021-08-17 | 北京海益同展信息科技有限公司 | 拇指与手掌间自由度解算方法、装置及数据手套 |
CN113467599A (zh) * | 2020-03-31 | 2021-10-01 | 北京海益同展信息科技有限公司 | 手指与手掌间屈伸自由度解算方法、装置及数据手套 |
CN113496165A (zh) * | 2020-04-01 | 2021-10-12 | 北京海益同展信息科技有限公司 | 用户手势识别方法、装置、手部智能穿戴设备及存储介质 |
CN113467599B (zh) * | 2020-03-31 | 2024-05-17 | 京东科技信息技术有限公司 | 手指与手掌间屈伸自由度解算方法、装置及数据手套 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853380A (zh) * | 2010-06-18 | 2010-10-06 | 华南理工大学 | 一种基于加速度传感器的手势识别的旋转特征提取方法 |
CN101882000A (zh) * | 2010-06-18 | 2010-11-10 | 华南理工大学 | 一种基于加速度传感器的手势识别方法 |
CN102402329A (zh) * | 2010-09-07 | 2012-04-04 | 意法半导体亚太私人有限公司 | 用于参数化和识别触摸敏感表面上圆周手势的方法 |
CN103677642A (zh) * | 2013-12-19 | 2014-03-26 | 深圳市汇顶科技股份有限公司 | 一种触摸屏终端及其手势识别方法、系统 |
CN104154915A (zh) * | 2014-07-04 | 2014-11-19 | 北京搜狗科技发展有限公司 | 一种基于智能穿戴设备的音频操作方法和智能穿戴设备 |
KR20190027726A (ko) * | 2017-09-07 | 2019-03-15 | 한양대학교 산학협력단 | 제스쳐를 이용하는 단말 제어 방법 |
-
2019
- 2019-05-17 CN CN201910415577.1A patent/CN110109551B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853380A (zh) * | 2010-06-18 | 2010-10-06 | 华南理工大学 | 一种基于加速度传感器的手势识别的旋转特征提取方法 |
CN101882000A (zh) * | 2010-06-18 | 2010-11-10 | 华南理工大学 | 一种基于加速度传感器的手势识别方法 |
CN102402329A (zh) * | 2010-09-07 | 2012-04-04 | 意法半导体亚太私人有限公司 | 用于参数化和识别触摸敏感表面上圆周手势的方法 |
CN103677642A (zh) * | 2013-12-19 | 2014-03-26 | 深圳市汇顶科技股份有限公司 | 一种触摸屏终端及其手势识别方法、系统 |
CN104154915A (zh) * | 2014-07-04 | 2014-11-19 | 北京搜狗科技发展有限公司 | 一种基于智能穿戴设备的音频操作方法和智能穿戴设备 |
KR20190027726A (ko) * | 2017-09-07 | 2019-03-15 | 한양대학교 산학협력단 | 제스쳐를 이용하는 단말 제어 방법 |
Non-Patent Citations (1)
Title |
---|
薛洋等: "一种基于加速度传感器的虚拟手写数字特征提取及识别方法", 《模式识别与人工智能》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268136A (zh) * | 2020-02-14 | 2021-08-17 | 北京海益同展信息科技有限公司 | 拇指与手掌间自由度解算方法、装置及数据手套 |
CN113268136B (zh) * | 2020-02-14 | 2024-05-17 | 京东科技信息技术有限公司 | 拇指与手掌间自由度解算方法、装置及数据手套 |
CN113467599A (zh) * | 2020-03-31 | 2021-10-01 | 北京海益同展信息科技有限公司 | 手指与手掌间屈伸自由度解算方法、装置及数据手套 |
CN113467599B (zh) * | 2020-03-31 | 2024-05-17 | 京东科技信息技术有限公司 | 手指与手掌间屈伸自由度解算方法、装置及数据手套 |
CN113496165A (zh) * | 2020-04-01 | 2021-10-12 | 北京海益同展信息科技有限公司 | 用户手势识别方法、装置、手部智能穿戴设备及存储介质 |
CN113496165B (zh) * | 2020-04-01 | 2024-04-16 | 京东科技信息技术有限公司 | 用户手势识别方法、装置、手部智能穿戴设备及存储介质 |
CN112947771A (zh) * | 2021-01-11 | 2021-06-11 | 上海龙旗科技股份有限公司 | 一种实现空间轨迹输入的方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110109551B (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2777026B1 (en) | Information processing device, information processing method, and program | |
CN109030867B (zh) | 使用加速度传感器和地磁传感器计算角速度的方法和设备 | |
EP3528489A1 (en) | Method and system for panoramic video stabilization, and portable terminal | |
CN106814753B (zh) | 一种目标位置矫正方法、装置及系统 | |
US20140222369A1 (en) | Simplified method for estimating the orientation of an object, and attitude sensor implementing such a method | |
JP2009002934A (ja) | 実質的に不変な回転軸を検出するための方法および装置 | |
CN109671105A (zh) | 一种视觉导航系统的跟踪恢复方法和装置 | |
CN107543546A (zh) | 一种六轴运动传感器的姿态解算方法及装置 | |
US20190120627A1 (en) | Offset correction apparatus for gyro sensor, recording medium storing offset correction program, and pedestrian dead-reckoning apparatus | |
CN110109551A (zh) | 手势识别方法、装置、设备及存储介质 | |
CN112304330A (zh) | 展示车辆的行驶状态的方法以及电子设备 | |
CN111680462B (zh) | 基于空间目标在光学相平面位置变化的制导方法和系统 | |
CN104034334B (zh) | 一种小视场星敏感器的单星及双星定姿方法 | |
CN108235809A (zh) | 端云结合定位方法、装置及电子设备、计算机程序产品 | |
CN106293103A (zh) | 基于惯性传感器的四轴飞行器手势控制装置和控制方法 | |
CN109211231A (zh) | 一种基于牛顿迭代法的炮弹姿态估计方法 | |
US8797262B2 (en) | Method of sensing motion in three-dimensional space | |
CN110345936A (zh) | 运动装置的轨迹数据处理方法及其处理系统 | |
TW201118662A (en) | Trace-generating systems and methods thereof | |
CN113350771B (zh) | 一种运动员动态姿态识别方法、装置、系统及存储介质 | |
CN113008244B (zh) | 导航信息的处理方法、装置、电子设备及存储介质 | |
CN104765476B (zh) | 手写轨迹生成方法和装置 | |
Hsu et al. | Drift modeling and compensation for MEMS-based gyroscope using a Wiener-type recurrent neural network | |
CN112363196B (zh) | 车辆属性确定方法、装置、存储介质和电子设备 | |
Wang et al. | Effective inertial hand gesture recognition using particle filtering based trajectory matching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |