一种适用于复杂手势的识别方法及装置与流程

文档序号:11773622阅读:247来源:国知局
一种适用于复杂手势的识别方法及装置与流程

本发明涉及人工智能领域,具体涉及一种复杂手势的识别装置及方法。



背景技术:

显示器等视频设备由于用户都是远距离观看,因此大都使用遥控器或者鼠标键盘操作,随着产品的智能化越来越高,使用遥控器的操作方式已经不能满足用户的需求。手势控制作为一种新型的控制方式,逐渐被应用于控制显示器等产品上。

现有的手势识别方法从使用的系统和设备来说,主要集中于视觉系统,其采集和用于识别的基本数据单元为图像,数据量大、处理复杂、抗干扰能力低;从手势识别的类型上看,主要有简单的手型识别,只关注到了手指和手掌的相对特征,无法识别一个复杂手势的方位特征和空间特征;有简单的轨迹识别,只关注到了手掌的空间位置变化,无法识别一个复杂手势中整个手臂的特征和手型特征;从识别的方法上看,有神经网络、模糊识别等,用于识别静态手势,无法识别手势时序特征。

因此,需要对现有技术进行改进。



技术实现要素:

本发明提供一种适用于复杂手势的识别方法及装置,能够识别非图像数据,满足时序识别的要求,适合3d场景下的复杂手势识别并且设备简易,使用方便。

为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现。

第一方面,提供一种适用于复杂手势的识别方法,包括:计算手背所在的空间位置;判断手背和所述手势识别空间区域的关系控制采集数据;根据采集数据进行预处理;对预处理后的数据进行识别;输出相似度最高的手势识别结果。

优选地,所述计算手背所在空间位置的方式包括:预设手势识别的空间区域,根据预设肩骨骼长度、上臂骨骼长度、前臂骨骼长度、手背到手腕距离以及单臂惯性动作捕捉设备捕捉到的四元数数据计算手背所在空间位置。

优选地,所述判断手背和所述手势识别空间区域的关系控制采集数据的方式包括:当手背进入预设的手势识别空间区域时,开始采集;当手背离开预设的手势识别空间区域时,结束采集。

优选地,所述根据采集数据进行预处理的方式包括:采用滑动滤波器进行降噪处理;将所述采集数据的每一帧数据整合成32维数据。

优选地,所述对预处理后的数据进行识别的方式包括:设置斜率;根据具体编程的数据结构和斜率限制,初始化距离图;动态规划求截图的最优路径距离;计算采集数据与模板手势的相似度。

优选地,所述输出相似度最高的手势识别结果的方式包括:取相似度最高的模板手势,作为本次识别结果;设置相似度的阈值,对于相似度低于阈值则拒绝识别,相似度不低于阈值则输出手势代表的标识。

优选地,所采集的数据可以为视觉系统设备获取得对应人体骨骼的旋转信息。

优选地,识别方法可以为隐马尔科夫算法、神经网络等算法进行识别。

第二方面,提供一种适用于复杂手势的识别装置,包括:触发检测模块,用于计算手背所在的空间位置;采集数据模块,用于判断手背和所述手势识别空间区域的关系控制采集数据;预处理模块,用于根据采集数据进行预处理;识别模块,用于对预处理后的数据进行识别;判断输出模块,用于输出相似度最高的手势识别结果。

优选地,所述触发检测模块包括:预设空间子模块,用于预设手势识别的空间区域;位置计算子模块,用于根据预设肩骨骼长度、上臂骨骼长度、前臂骨骼长度、手背到手腕距离以及单臂惯性动作捕捉设备捕捉到的四元数数据计算手背所在空间位置。

优选地,所述采集数据模块用于当手背进入预设的手势识别空间区域时,开始采集;当手背离开预设的手势识别空间区域时,结束采集。

优选地,所述预处理模块包括:滤波子模块,用于采用滑动滤波器进行降噪处理;数据整合子模块,用于将所述采集数据的每一帧数据整合成32维数据。

优选地,所述识别模块包括:预设斜率子模块,用于设置斜率;初始化子模块,用于根据具体编程的数据结构和斜率限制,初始化距离图;路径规划子模块,用于动态规划求解图的最优路径距离;相似度计算子模块,用于计算采集数据与模板手势的相似度。

优选地,所述判断输出模块包括:输出子模块,用于取相似度最高的模板手势,作为本次识别结果;判断子模块,用于设置相似度的阈值,对于相似度低于阈值则拒绝识别,相似度不低于阈值则输出手势代表的标识。

优选地,采集数据模块数据类型可以为视觉系统设备获取得对应人体骨骼的旋转信息。

优选地,识别模块的识别方法可以为隐马尔科夫算法、神经网络等算法进行识别。

如上所述,本发明的适用于复杂手势的识别方法及装置具有以下有益效果:手势识别设备简易,使用方便,只用上惯性传感单元,生产方便,组合成单臂动作捕捉设备,佩戴简易。手势识别数据简洁,处理迅速,满足实时识别的需求,使用惯性传感数据四元数作为识别对象,突出复杂的手势特征。预处理方法突出手型和手臂的空间特征,并且非常适合3d场景下的复杂手势识别;识别算法满足识别的要求,处理更加简单。

附图说明

为了更清楚地说明本发明实施例技术中的技术方案,下面将对实施例技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的单臂惯性动作捕捉设备示意图。

图2为本发明的复杂手势的识别方法流程图。

图3为本发明的手势识别的空间区域示意图。

图4为本发明的复杂手势的识别装置模块示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图2所示本发明的适用于复杂手势识别的方法包括:计算手背所在的空间位置;判断手背和所述手势识别空间区域的关系控制采集数据;根据采集数据进行预处理;对预处理后的数据进行识别;输出相似度最高的手势识别结果。

具体地,如图3所示,预设手势识别的空间区域,例如图3虚线框所示长方体区域,预设肩骨骼长度、上臂骨骼长度、前臂骨骼长度、手背到手腕距离,把长度和距离当做三维坐标的x轴偏移,y轴、z轴的偏移为0,并齐次化为四元数,根据单臂惯性动作捕捉设备捕捉到的四元数数据,计算手背所在的空间位置,通过设定的长度l(转成了四元数),和传感器四元数数据进行运算,可以得出三维空间位置为:

如图1所示,其中单臂惯性动作捕捉设备捕捉到的四元数数据包括五指惯性传导单元数据,手背惯性传导单元数据,前臂惯性传导数据,上臂惯性传导单元数据,胸口惯性传导单元数据。其主要布局方式为:节点01为胸口惯性传导单元,用于采集人体正面朝向的惯性数据q01=(w01,x01,y01,z01);节点11为上臂惯性传导单元,用于采集手上臂的惯性数据q11=(w11,x11,y11,z11);节点21为前臂惯性传导单元,用于采集手前臂的惯性数据q21=(w21,x21,y21,z21);节点31为手背惯性传导单元,用于采集手背的惯性数据q31=(w31,x31,y31,z31);节点41为拇指惯性传导单元,用于采集拇指的惯性数据q41=(w41,x41,y41,z41);节点42为食指惯性传导单元,用于采集食指的惯性数据q42=(w42,x42,y42,z42);节点43为中指惯性传导单元,用于采集中指的惯性数据q43=(w43,x43,y43,z43);节点44为无名指惯性传导单元,用于采集无名指的惯性数据q44=(w44,x44,y44,z44);节点45为小指惯性传导单元,用于采集小指的惯性数据q45=(w45,x45,y45,z45)。

当手背进入预设的手势识别空间区域时(px,py,pz)∈ω,开始202采集数据步骤;当手背离开预设的手势识别空间区域时结束采集数据。

当采集数据完成后,根据手势数据采用滑动滤波器进行降噪处理,降低由于手势过程中手的抖动和传感器本身精度不足引起的噪声误差。

此外,把每个时刻采集来的所有惯性传感器数据设定为一帧数据x,设从采集开始到采集结束共采集了r帧数据,这些数据构成一个有序的数据集合,从中等距提取m帧关键帧数据为:

若采集的数据量r小于m,则拒绝此次识别请求。

对每一关键帧数据进行坐标系的转化处理,使四元数以父节点的局部坐标系作为基础坐标系描述旋转,突出关键帧各骨骼的相对旋转特征和空间位置特征:

之后将上述公开根据四元数的乘法展开。

舍弃人体正面朝向信息q0,每一帧数据整合成32维数据:

x=[q1,…,q8](4)

优选地,对预处理后的手势数据进行识别。其计算方法如下:

对于手势模板y和手势数据x,每帧数据含8个四元数,设手势模板y的时序长度为m,手势数据x的时序长度为n,那么:

1.设置斜率,即设置循环变量i,j的最大差值k,|i-j|≤k

2.根据具体编程的数据结构和斜率限制,初始化距离图

3.动态规划求解图的最优路径距离:

d(0,0)=value(0,0)

d(i,j)=min{d(i-1,j-1)+value(i,j),

d(i-1,j)+value(i,j),(在斜率限制范围内)

d(i,j-1)+value(i,j)}

计算过程中存储已计算的值,以免重复计算;

4.求解d(m,n)即可以刻画手势数据x与模板手势y的相似度,d(m,n)越大相似度越低,d(m,n)越小相似度越高。

取相似度最高的模板手势,作为本次识别结果;设置相似度的阈值,对于相似度低于阈值则拒绝识别,相似度不低于阈值则输出手势代表的标识。

优选地,所采集的数据可以为视觉系统设备获取得对应人体骨骼的旋转信息。

优选地,识别方法可以为隐马尔科夫算法、神经网络等算法进行识别。

第二方面,如图4所示提供一种适用于复杂手势的识别装置,包括:触发检测模块,用于计算手背所在的空间位置;采集数据模块,用于判断手背和所述手势识别空间区域的关系控制采集数据;预处理模块,用于根据采集数据进行预处理;识别模块,用于对预处理后的数据进行识别;判断输出模块,用于输出相似度最高的手势识别结果。

具体地,如图3所示触摸检测模块用于预设手势识别的空间区域,例如图3虚线框所示长方体区域,预设肩骨骼长度、上臂骨骼长度、前臂骨骼长度、手背到手腕距离,把长度和距离当做三维坐标的x轴偏移,y轴、z轴的偏移为0,并齐次化为四元数,,根据单臂惯性动作捕捉设备捕捉到的四元数数据,计算手背所在的空间位置,通过设定的长度l(转成了四元数),和传感器四元数数据进行运算,可以得出三维空间位置:

如图1所示,其中单臂惯性动作捕捉设备包括五指惯性传导单元,手背惯性传导单元,前臂惯性传导单元,上臂惯性传导单元,胸口惯性传导单元。其主要布局方式为:节点01为胸口惯性传导单元,用于采集人体正面朝向的惯性数据q01=(w01,x01,y01,z01);节点11为上臂惯性传导单元,用于采集手上臂的惯性数据q11=(w11,x11,y11,z11);节点21为前臂惯性传导单元,用于采集手前臂的惯性数据q21=(w21,x21,y21,z21);节点31为手背惯性传导单元,用于采集手背的惯性数据q31=(w31,x31,y31,z31);节点41为拇指惯性传导单元,用于采集拇指的惯性数据q41=(w41,x41,y41,z41);节点42为食指惯性传导单元,用于采集食指的惯性数据q42=(w42,x42,y42,z42);节点43为中指惯性传导单元,用于采集中指的惯性数据q43=(w43,x43,y43,z43);节点44为无名指惯性传导单元,用于采集无名指的惯性数据q44=(w44,x44,y44,z44);节点45为小指惯性传导单元,用于采集小指的惯性数据q45=(w45,x45,y45,z45)。

采集数据单元用于当手背进入预设的手势识别空间区域时(px,py,pz)∈ω,开始采集数据步骤;当手背离开预设的手势识别空间区域时结束采集数据。

预处理模块用于当采集数据完成后,根据手势数据采用滑动滤波器进行降噪处理,降低由于手势过程中手的抖动和传感器本身精度不足引起的噪声误差。

此外,把每个时刻采集来的所有惯性传感器数据设定为一帧数据x,设从采集开始到采集结束共采集了r帧数据,这些数据构成一个有序的数据集合,从中等距提取m帧关键帧数据。

若采集的数据量r小于m,则拒绝此次识别请求。

对每一关键帧数据进行坐标系的转化处理,使四元数以父节点的局部坐标系作为基础坐标系描述旋转,突出关键帧各骨骼的相对旋转特征和空间位置特征:

将上述公式根据四元数的乘法展开。

舍弃人体正面朝向信息q0,每一帧数据整合成32维数据:

x=[q1,…,q8](4)

识别模块的识别方式为:

对与手势模板y和手势数据x,每帧数据含8个四元数,设手势模板y的时序长度为m,手势数据x的时序长度为n,那么:

1、设置斜率,即设置循环变量i,j的最大差值k,|i-j|≤k

2、根据具体编程的数据结构和斜率限制,初始化距离图

3、动态规划求解图的最优路径距离:

d(0,0)=value(0,0)

d(i,j)=min{d(i-1,j-1)+value(i,j),

d(i-1,j)+value(i,j),(在斜率限制范围内)

d(i,j-1)+value(i,j)}

计算过程中存储已计算的值,以免重复计算;

4、求解d(m,n)即可以刻画手势数据x与模板手势y的相似度,

d(m,n)越大相似度越低,d(m,n)越小相似度越高。

取相似度最高的模板手势,作为本次识别结果;设置相似度的阈值,对于相似度低于阈值则拒绝识别,相似度不低于阈值则输出手势代表的标识。

优选地,采集数据模块可以为视觉系统设备获取得对应人体骨骼的旋转信息。

优选地,识别模块的识别方法可以为隐马尔科夫算法、神经网络等算法进行识别。

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