首页> 中国专利> 一种双手手势识别方法及基于其的模拟驾驶系统、方法

一种双手手势识别方法及基于其的模拟驾驶系统、方法

摘要

本发明公开了一种双手手势识别方法及基于其的模拟驾驶系统、方法,包括左手手势识别手环、右手手势识别手环和终端,左手手势识别手环和右手手势识别手环通过通信网络与终端连接,通过三轴加速度传感器采集用户的左手三轴加速度序列和右手三轴加速度序列,再通过三维编码算法转化为实际左手手势运动序列和实际右手手势运动序列,并将其发送至终端进行分析匹配,从而识别出对应的左手手势和右手手势,识别过程精简,从而识别速度更快;可对手部空间位置进行识别跟踪,采用精简空间坐标序列进行对比分析,识别误差较小。通过双手模拟方向盘控制虚拟汽车的运行,与真实驾驶类似的操作能使用户产生亲切感和依赖感,大大提高用户体验度。

著录项

  • 公开/公告号CN106512391A

    专利类型发明专利

  • 公开/公告日2017-03-22

    原文格式PDF

  • 申请/专利权人 华南理工大学广州学院;

    申请/专利号CN201610983297.7

  • 发明设计人 缪文南;林耿;林能;

    申请日2016-11-09

  • 分类号A63F13/211(20140101);A63F13/212(20140101);A63F13/803(20140101);

  • 代理机构佛山市禾才知识产权代理有限公司;

  • 代理人刘羽波

  • 地址 510800 广东省广州市花都区学府路1号

  • 入库时间 2023-06-19 01:52:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-12

    授权

    授权

  • 2017-04-19

    实质审查的生效 IPC(主分类):A63F13/211 申请日:20161109

    实质审查的生效

  • 2017-03-22

    公开

    公开

说明书

技术领域

本发明涉及人机交互技术领域,尤其涉及一种双手手势识别方法及基于其的模拟驾驶系统、方法。

背景技术

随着体感交互技术的高速发展,以及3D传感器的广泛采用,体感交互的应用越来越普及,尤其是手势识别技术,在人机交互智能系统中得到广泛应用。近年来,手势识别技术也应用到模拟驾驶学习系统或虚拟赛车系统中,使用户通过双手做出各种组合手势来操控系统,在体力运动和创意想象力之间让用户获得无穷乐趣。但现有的手势识别式模拟驾驶学习系统或虚拟赛车系统,均采用视频识别双手手势方法,通过摄像头对手部进行拍照,然后对图像进行归一分析,并将归一化得到的图像进行空间投影,并将所得的投影坐标与预先存储的图像的投影坐标进行比较,从而识别出对应双手手势。这种视频识别双手手势方法虽比较直观,但需要经过复杂的数学计算过程,识别速度慢,且无法对手部空间位置进行识别跟踪,识别误差较大;而且,用户须在摄像头的摄像范围内从而活动空间受约束,或者用户头部佩戴载有摄像头但这样较为累赘不方便。

发明内容

本发明的目的在于提出一种手势识别快速高效,识别精度高,使用户活动不受约束的双手手势识别方法及基于其的模拟驾驶系统、方法。

为达此目的,本发明采用以下技术方案:

一种双手手势识别方法,适用于配置有左手手势识别手环、右手手势识别手环和终端的人机交互系统,所述左手手势识别手环和右手手势识别手环通过通信网络与终端连接,包括以下步骤:

步骤A,所述终端建立标准左手手势库和标准右手手势库,标准左手手势库存储与各个左手手势对应的标准左手手势运动序列,标准右手手势库存储与各个右手手势对应的标准右手手势运动序列;

步骤B,左手手势识别手环采集用户的左手手势变化中各个时刻的左手三轴加速度序列;同时,右手手势识别手环采集用户的右手手势变化中各个时刻的右手三轴加速度序列;

步骤C,左手手势识别手环根据步骤B采集的左手三轴加速度序列,通过三维编码算法生成对应的实际左手手势运动序列,并发送至终端;同时,右手手势识别手环根据步骤B采集的右手三轴加速度序列,通过三维编码算法生成对应的实际右手手势运动序列,并发送至终端;

步骤D,所述终端将步骤C接收到的实际左手手势运动序列和步骤A存储的标准左手手势运动序列进行匹配,从标准左手手势库获取对应的左手手势;同时,所述终端将步骤C接收到的实际右手手势运动序列和步骤A存储的标准右手手势运动序列进行匹配,从标准右手手势库获取对应的右手手势。

优选地,所述三维编码算法包括三轴角度生成过程和三轴运动数据编码过程,所述三轴角度生成过程包括以下步骤:

步骤C1,预先设定X轴阈值dX,Y轴阈值dY和Z轴阈值dZ

步骤C2,在Tn时刻下,采集X轴输出电压变化量Δxn、Y轴输出电压变化量Δyn和Z轴输出电压变化量Δzn,n=0,1,2,...,其中T0为初始时刻;

步骤C3,在Tn时刻下,判断|Δxn|是否小于dX,|Δyn|是否小于dY,和|Δyn|是否小于dZ;若是则执行步骤C4,若不是则返回步骤C2重新采集数据;

步骤C4,在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αx,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:

αn=ar>n/g>x),βn=ar>n/g>y),γn=ar>n/g>z);

其中,g为重力加速度,kx为X轴灵敏度,ky为Y轴灵敏度,kz为Z轴灵敏度,g、kx、ky和kz均为常量;

步骤C5,根据滤波公式对步骤C4计算出来的αn、βn和γn进行过滤,若αn、βn和γn符合滤波公式,则输出至所述三轴运动数据编码过程,并且更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;若αn、βn和γn不符合滤波公式,则直接更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;

所述滤波公式如下:

cos(2αn)+cos(2βn)+cos(2γn)=1。

优选地,所述三轴运动数据编码过程包括以下步骤:

步骤C6,接收所述三轴角度生成过程输出的αn、βn和γn,n=0,1,2,...;

步骤C7,根据三轴偏转量生成公式生成三轴偏转量数据组合集,所述三轴偏转量数据组合集为在Tn时刻下的X轴偏转量Xn,Y轴偏转量Yn和Z轴偏转量Zn,所述三轴偏转量生成公式如下:

Xn=cos(αn0),Yn=cos(βn0),Zn=cos(γn0);

步骤C8,对步骤C7生成的三轴偏转量数据组合集进行分段,

若-1≤Xn<-0.5,则更新Xn=1;若-0.5≤Xn<0,则更新Xn=2;若0≤Xn<0.5,则更新Xn=3;若0.5≤Xn≤1,则更新Xn=4;

若-1≤Yn<-0.5,则更新Yn=1;若-0.5≤Yn<0,则更新Yn=2;若0≤Yn<0.5,则更新Yn=3;若0.5≤Yn≤1,则更新Yn=4;

若-1≤Zn<-0.5,则更新Zn=1;若-0.5≤Zn<0,则更新Zn=2;若0≤Zn<0.5,则更新Zn=3;若0.5≤Zn≤1,则更新Zn=4;

步骤C9,建立三轴偏转量数据组合序号表,为每一种分段后的三轴偏转量数据组合编排序号;

步骤C10,对步骤C8分段后的三轴偏转量数据组合集,根据步骤C9的三轴偏转量数据组合序号表获取对应的序号列,并由所述序号列组成三轴运动数据序列。

一种基于所述双手手势识别方法的模拟驾驶系统,包括左手手势识别手环、右手手势识别手环和终端,所述左手手势识别手环和右手手势识别手环通过通信网络与终端连接,所述左手手势识别手环包括:

第一三轴加速度传感器,用于采集左手手势变化中各个时刻的左手三轴加速度序列;

第一微处理器,用于生成左手环配对地址码,和用于将所述左手三轴加速度序列,通过三维编码模块生成对应的实际左手手势运动序列;

第一数据收发器,用于将实际左手手势运动序列和左手环配对地址码打包成左手环运动数据包发送至终端;

所述右手手势识别手环包括:

第二三轴加速度传感器,用于采集右手手势变化中各个时刻的右手三轴加速度序列;

第二微处理器,用于生成右手环配对地址码,和用于将所述右手三轴加速度序列,通过三维编码模块生成对应的实际右手手势运动序列;

第二数据收发器,用于将实际右手手势运动序列和右手环配对地址码打包成右手环运动数据包发送至终端;

所述终端包括:

标准左手手势库,用于存储与各个左手手势对应的标准左手手势运动序列;

标准右手手势库,用于存储与各个右手手势对应的标准右手手势运动序列;

手环通讯器,用于接收左手手势识别手环的左手环运动数据包和右手手势识别手环的右手环运动数据包;

手环数据分类管理器,用于对接收的左手环运动数据包和右手环运动数据包进行分类存储;

左手手势匹配器,用于调取所述左手环运动数据包的实际左手手势运动序列,并和存储的标准左手手势运动序列进行匹配,从标准左手手势库获取对应的左手手势;

右手手势匹配器,用于调取所述右手环运动数据包的实际右手手势运动序列,并和存储的标准右手手势运动序列进行匹配,从标准右手手势库获取对应的右手手势。

优选地,所述终端还包括:

模拟驾驶管理器,用于预设包含多个模拟按键的模拟按键集,并且为每个模拟按键配置对应的模拟驾驶动作;

手势与模拟按键配置器,用于预设双手手势组合集,所述双手手势组合集包含左手手势和右手手势组合而成的多个双手手势组合;并且为每个双手手势组合和对应的模拟按键建立映射关系;

模拟按键控制器,用于将左手手势匹配器获取的左手手势和右手势匹配器获取的右手手势进行组合,然后与双手手势组合集进行匹配,找出对应的双手手势组合,并映射为对应的模拟按键,最后执行与模拟按键对应的模拟驾驶动作。

优选地,所述三维编码模块包括三轴角度生成器和三轴运动数据编码器,所述三轴角度生成器包括:

用于预先设定X轴阈值dX,Y轴阈值dY和Z轴阈值dZ

用于在Tn时刻下,采集X轴输出电压变化量Δxn、Y轴输出电压变化量Δyn和Z轴输出电压变化量Δzn,n=0,1,2,...,其中T0为初始时刻;

用于在Tn时刻下,判断|Δxn|是否小于dX,|Δyn|是否小于dY,和|Δyn|是否小于dZ;若是则继续往下执行,若不是则重新采集数据;

用于在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:

αn=ar>n/g>x),βn=ar>n/g>y),γn=ar>n/g>z);

其中,g为重力加速度,kx为X轴灵敏度,ky为Y轴灵敏度,kz为Z轴灵敏度,g、kx、ky和kz均为常量;

用于根据滤波公式计算出来的αn、βn和γn进行过滤,若αn、βn和γn符合滤波公式,则输出至所述三轴运动数据编码器,并且更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;若αn、βn和γn不符合滤波公式,则直接更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;

所述滤波公式如下:

cos(2αn)+cos(2βn)+cos(2γn)=1。

优选地,所述三轴运动数据编码器包括:

用于接收所述三轴角度生成器输出的αn、βn和γn,n=0,1,2,...;

用于根据三轴偏转量生成公式生成三轴偏转量数据组合集,所述三轴偏转量数据组合集为在Tn时刻下的X轴偏转量Xn,Y轴偏转量Yn和Z轴偏转量Zn,所述三轴偏转量生成公式如下:

Xn=cos(αn0),Yn=cos(βn0),Zn=cos(γn0);

用于对生成的三轴偏转量数据组合集进行分段,

若-1≤Xn<-0.5,则更新Xn=1;若-0.5≤Xn<0,则更新Xn=2;若0≤Xn<0.5,则更新Xn=3;若0.5≤Xn≤1,则更新Xn=4;

若-1≤Yn<-0.5,则更新Yn=1;若-0.5≤Yn<0,则更新Yn=2;若0≤Yn<0.5,则更新Yn=3;若0.5≤Yn≤1,则更新Yn=4;

若-1≤Zn<-0.5,则更新Zn=1;若-0.5≤Zn<0,则更新Zn=2;若0≤Zn<0.5,则更新Zn=3;若0.5≤Zn≤1,则更新Zn=4;

用于建立三轴偏转量数据组合序号表,为每一种分段后的三轴偏转量数据组合编排序号;

用于对分段后的三轴偏转量数据组合集,根据三轴偏转量数据组合序号表获取对应的序号列,并由所述序号列组成三轴运动数据序列。

优选地,所述第一微处理器还包括:

第一数据有效性判断模块,用于对新生成的实际左手手势运动序列和缓存的实际左手手势运动序列进行比较:若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列相同,则不向所述第一数据收发器发送发送数据指令;若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列不相同,则向所述第一数据收发器发送所述发送数据指令;

所述第二微处理器还包括:

第二数据有效性判断模块,用于对新生成的实际右手手势运动序列和缓存的实际右手手势运动序列进行比较:若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列相同,则不向所述第二数据收发器发送发送数据指令;若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列不相同,则向所述第二数据收发器发送所述发送数据指令。

优选地,基于所述双手手势识别方法的模拟驾驶方法,包括终端建库过程和模拟按键操控过程:

终端建库过程:

步骤E1,所述终端建立标准左手手势库和标准右手手势库,标准左手手势库存储与各个左手手势对应的标准左手手势运动序列,标准右手手势库存储与各个右手手势对应的标准右手手势运动序列;

步骤E2,所述终端预设包含多个模拟按键的模拟按键集,并且为每个模拟按键配置对应的模拟驾驶动作;

步骤E3,所述终端预设双手手势组合集,所述双手手势组合集包含左手手势和右手手势组合而成的多个双手手势组合;并且为每个双手手势组合和对应的模拟按键建立映射关系;

步骤E4,所述左手手势识别手环设置左手环配对地址码,所述右手手势识别手环设置右手环配对地址码;

模拟按键操控过程:

步骤G1,所述左手手势识别手环采集左手手势变化中各个时刻的左手三轴加速度序列,并生成对应的实际左手手势运动序列;同时,所述右手手势识别手环采集右手手势变化中各个时刻的右手三轴加速度序列,并生成对应的实际右手手势运动序列;

步骤G2,所述左手手势识别手环将实际左手手势运动序列和左手环配对地址码打包成左手环运动数据包发送至终端;同时,所述右手手势识别手环将实际右手手势运动序列和右手环配对地址码打包成右手环运动数据包发送至终端;

步骤G3,所述终端接收左手手势识别手环的左手环运动数据包和右手手势识别手环的右手环运动数据包,并对接收的左手环运动数据包和右手环运动数据包进行分类存储;

步骤G4,所述终端调取所述左手环运动数据包的实际左手手势运动序列,并和存储的标准左手手势运动序列进行匹配,从标准左手手势库获取对应的左手手势;

步骤G5,所述终端调取所述右手环运动数据包的实际右手手势运动序列,并和存储的标准右手手势运动序列进行匹配,从标准右手手势库获取对应的右手手势;

步骤G6,所述终端将获取的左手手势和获取的右手手势进行组合,然后与双手手势组合集进行匹配,找出对应的双手手势组合,并映射为对应的模拟按键,最后执行与模拟按键对应的模拟驾驶动作。

优选地,所述步骤G2还包括数据有效性判断子步骤:

所述左手手势识别手环先对新生成的实际左手手势运动序列和缓存的实际左手手势运动序列进行比较:若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列相同,则不向所述终端发送左手环运动数据包;若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列不相同,则向所述终端发送左手环运动数据包;

同时,所述右手手势识别手环先对新生成的实际右手手势运动序列和缓存的实际右手手势运动序列进行比较:若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列相同,则不向所述终端发送右手环运动数据包;若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列不相同,则向所述终端发送右手环运动数据包。

所述双手手势识别方法通过三轴加速度传感器采集用户的左手三轴加速度序列和右手三轴加速度序列,再通过三维编码算法转化为实际左手手势运动序列和实际右手手势运动序列,并将其发送至终端进行分析匹配,从而识别出对应的左手手势和右手手势,数学计算过程更为精简,从而识别速度更快;可对手部空间位置进行识别跟踪,采用精简空间坐标序列进行对比分析,识别误差较小。

所述基于双手手势识别方法的模拟驾驶系统通过将用户的双手手势映射成模拟按键,从而用户可通过各种双手手势组合执行对应的模拟驾驶动作,所述模拟驾驶系统可设置相应的赛车游戏程序或驾驶学习程序,突破现有以真实手柄或按键的操作方式,而是通过双手手势变化来进行操作,使用户通过双手模拟方向盘控制虚拟汽车的运行,与真实驾驶类似的操作能使用户产生亲切感和依赖感,大大提高用户体验度。左手手势识别手环和右手手势识别手环只需置于用户手腕处,活动空间不受约束,较为轻松方便。

附图说明

附图对本发明做进一步说明,但附图中的内容不构成对本发明的任何限制。

图1是本发明其中一个实施例的通信连接示意图;

图2是本发明其中一个实施例的双手手势识别方法流程图;

图3是本发明其中一个实施例的三轴角度生成过程流程图;

图4是本发明其中一个实施例的三轴运动数据编码过程流程图;

图5是本发明其中一个实施例的左手手势识别手环模块连接图;

图6是本发明其中一个实施例的右手手势识别手环模块连接图;

图7是本发明其中一个实施例的终端模块连接图;

图8是本发明其中一个实施例的模拟驾驶方法流程图;

图9是本发明其中一个实施例的左手手势识别手环数据有效性判断流程图;

图10是本发明其中一个实施例的右手手势识别手环数据有效性判断流程图。

其中:左手手势识别手环1;右手手势识别手环2;终端3;标准左手手势库31;标准右手手势库32;第一三轴加速度传感器11;第一微处理器12;第一数据收发器13;第二三轴加速度传感器21;第二微处理器22;第二数据收发器23;手环通讯器33;手环数据分类管理器34;左手手势匹配器35;右手手势匹配器36;模拟驾驶管理器37;手势与模拟按键配置器38;模拟按键控制器39;第一数据有效性判断模块121;第二数据有效性判断模块221。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

本实施例的一种双手手势识别方法,适用于配置有左手手势识别手环1、右手手势识别手环2和终端3的人机交互系统,如图1所示,所述左手手势识别手环1和右手手势识别手环2通过通信网络与终端3连接,包括以下步骤,如图2所示:

步骤A,所述终端3建立标准左手手势库31和标准右手手势库32,标准左手手势库31存储与各个左手手势对应的标准左手手势运动序列,标准右手手势库32存储与各个右手手势对应的标准右手手势运动序列;

步骤B,左手手势识别手环1采集用户的左手手势变化中各个时刻的左手三轴加速度序列;同时,右手手势识别手环2采集用户的右手手势变化中各个时刻的右手三轴加速度序列;

步骤C,左手手势识别手环1根据步骤B采集的左手三轴加速度序列,通过三维编码算法生成对应的实际左手手势运动序列,并发送至终端3;同时,右手手势识别手环2根据步骤B采集的右手三轴加速度序列,通过三维编码算法生成对应的实际右手手势运动序列,并发送至终端3;

步骤D,所述终端3将步骤C接收到的实际左手手势运动序列和步骤A存储的标准左手手势运动序列进行匹配,从标准左手手势库31获取对应的左手手势;同时,所述终端3将步骤C接收到的实际右手手势运动序列和步骤A存储的标准右手手势运动序列进行匹配,从标准右手手势库32获取对应的右手手势。

所述双手手势识别方法通过三轴加速度传感器采集用户的左手三轴加速度序列和右手三轴加速度序列,再通过三维编码算法转化为实际左手手势运动序列和实际右手手势运动序列,并将其发送至终端3进行分析匹配,从而识别出对应的左手手势和右手手势。现有的视频识别双手手势方法,通过摄像头对手部进行拍照,然后对图像进行归一分析,并将归一化得到的图像进行空间投影,并将所得的投影坐标与预先存储的图像的投影坐标进行比较,从而识别出对应双手手势。这种视频识别双手手势方法虽比较直观,但需要经过复杂的数学计算过程,识别速度慢,且无法对手部空间位置进行识别跟踪,识别误差较大;而且,用户须在摄像头的摄像范围内从而活动空间受约束,或者用户头部佩戴载有摄像头但这样较为累赘不方便。而所述双手手势识别方法仅需用户双手分别佩戴载有三轴加速度传感器的左手手势识别手环1和右手手势识别手环2,通过三轴加速度传感器进行手势识别,相比现有的视频识别双手手势方法,数学计算过程更为精简,从而识别速度更快;可对手部空间位置进行识别跟踪,采用精简空间坐标序列进行对比分析,识别误差较小;而且,左手手势识别手环1和右手手势识别手环2只需置于用户手腕处,活动空间不受约束,较为轻松方便。

优选地,所述三维编码算法包括三轴角度生成过程和三轴运动数据编码过程,所述三轴角度生成过程包括以下步骤,如图3所示:

步骤C1,预先设定X轴阈值dX,Y轴阈值dY和Z轴阈值dZ

步骤C2,在Tn时刻下,采集X轴输出电压变化量Δxn、Y轴输出电压变化量Δyn和Z轴输出电压变化量Δzn,n=0,1,2,...,其中T0为初始时刻;

步骤C3,在Tn时刻下,判断|Δxn|是否小于dX,|Δyn|是否小于dY,和|Δyn|是否小于dZ;若是则执行步骤C4,若不是则返回步骤C2重新采集数据;

步骤C4,在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:

αn=ar>n/g>x),βn=ar>n/g>y),γn=ar>n/g>z);

其中,g为重力加速度,kx为X轴灵敏度,ky为Y轴灵敏度,kz为Z轴灵敏度,g、kx、ky和kz均为常量;

步骤C5,根据滤波公式对步骤C4计算出来的αn、βn和γn进行过滤,若αn、βn和γn符合滤波公式,则输出至所述三轴运动数据编码过程,并且更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;若αn、βn和γn不符合滤波公式,则直接更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;

所述滤波公式如下:

cos(2αn)+cos(2βn)+cos(2γn)=1。

所述三维编码算法先通过三轴角度生成过程计算出三轴加速度传感器的X、Y和Z轴在手势变化中各个时刻的重力加速度的夹角αn、βn和γn;然后再通过三轴运动数据编码过程计算X、Y和Z轴在手势变化中各个时刻与初始位置间的偏转量Xn、Yn和Zn,所述初始位置即为在初始时刻T0下的α0、β0和γ0;最后根据三轴偏转量数据组合序号表获取和X、Y和Z轴在手势变化中各个时刻偏转量Xn、Yn和Zn对应的序号列,并由所述序号列组成三轴运动数据序列。所述左手手势识别手环1和右手手势识别手环2均采用所述三维编码算法对检测数据进行处理:所述左手手势识别手环1采集的左手三轴加速度序列,和右手手势识别手环2采集的右手三轴加速度序列,其实质均为三维编码算法中的X、Y和Z轴在手势变化中各个时刻的Δxn、Δyn和Δzn;左手手势识别手环1生成的实际左手手势运动序列,右手手势识别手环2生成的实际右手手势运动序列,以及终端3存储的标准左手手势运动序列和标准右手手势运动序列,其实质均为三维编码算法中的三轴运动数据编码过程生成的三轴运动数据序列。

区别于现有的通过对加速度连续积分两次求得位移进而获取双手手势的方法,所述三维编码算法通过计算在手势变化中各个时刻每一轴与初始位置的相对角度,进而通过相对角度就能获取双手手势,这样避免了多次积分计算中存在的初始位置标点误差和误差累积放大等问题,精简运算量,提高运算速度。所述三轴角度生成过程预先设定X轴阈值dX,Y轴阈值dY和Z轴阈值dZ,可消除人体的抖动对三轴加速度传感器采集到的数据带来的影响;而且设置步骤C5对αn、βn和γn进行过滤,将一些不符合滤波公式的数据过滤掉,提高数据准确性,进而提高手势识别精度。

优选地,所述三轴运动数据编码过程包括以下步骤,如图4所示:

步骤C6,接收所述三轴角度生成过程输出的αn、βn和γn,n=0,1,2,...;

步骤C7,根据三轴偏转量生成公式生成三轴偏转量数据组合集,所述三轴偏转量数据组合集为在Tn时刻下的X轴偏转量Xn,Y轴偏转量Yn和Z轴偏转量Zn,所述三轴偏转量生成公式如下:

Xn=cos(αn0),Yn=cos(βn0),Zn=cos(γn0);

步骤C8,对步骤C7生成的三轴偏转量数据组合集进行分段,

若-1≤Xn<-0.5,则更新Xn=1;若-0.5≤Xn<0,则更新Xn=2;若0≤Xn<0.5,则更新Xn=3;若0.5≤Xn≤1,则更新Xn=4;

若-1≤Yn<-0.5,则更新Yn=1;若-0.5≤Yn<0,则更新Yn=2;若0≤Yn<0.5,则更新Yn=3;若0.5≤Yn≤1,则更新Yn=4;

若-1≤Zn<-0.5,则更新Zn=1;若-0.5≤Zn<0,则更新Zn=2;若0≤Zn<0.5,则更新Zn=3;若0.5≤Zn≤1,则更新Zn=4;

步骤C9,建立三轴偏转量数据组合序号表,为每一种分段后的三轴偏转量数据组合编排序号;

步骤C10,对步骤C8分段后的三轴偏转量数据组合集,根据步骤C9的三轴偏转量数据组合序号表获取对应的序号列,并由所述序号列组成三轴运动数据序列。

所述三轴运动数据编码过程中将三轴偏转量数据组合集分段建立坐标系,进行坐标编码,每轴均分成四段,这样既保证了数据处理和数据传输的速度,同时也取得较高的精度。而且,若直接发送分段后的三轴偏转量数据组合集将提高终端3的数据处理难度和容易发生因数据交叉提取等误处理造成的手势识别错误,因此所述三轴运动数据编码过程建立三轴偏转量数据组合序号表,向终端3发送序号列组成三轴运动数据序列,从而降低数据处理难度,提高手势识别的效率和精度。所述三轴偏转量数据组合序号表可如表1所示那样设置:

XnYnZn序号1111112211331145121612271238124913110424564315743258433594346044161442624436344464

表1

根据表1可知,所述三轴运动数据序列的数据范围为1~64,所述三轴运动数据序列为在所述数据范围内,多个序号依照时间顺序排列的任意组合,比如所述三轴运动数据序列可为{1,4,3,23,54,1,43,6,4,63}。

优选地,基于所述双手手势识别方法的模拟驾驶系统,包括左手手势识别手环1、右手手势识别手环2和终端3,所述左手手势识别手环1和右手手势识别手环2通过通信网络与终端3连接,如图5所示,所述左手手势识别手环1包括:

第一三轴加速度传感器11,用于采集左手手势变化中各个时刻的左手三轴加速度序列;

第一微处理器12,用于生成左手环配对地址码,和用于将所述左手三轴加速度序列,通过三维编码模块生成对应的实际左手手势运动序列;

第一数据收发器13,用于将实际左手手势运动序列和左手环配对地址码打包成左手环运动数据包发送至终端3;

如图6所示,所述右手手势识别手环2包括:

第二三轴加速度传感器21,用于采集右手手势变化中各个时刻的右手三轴加速度序列;

第二微处理器22,用于生成右手环配对地址码,和用于将所述右手三轴加速度序列,通过三维编码模块生成对应的实际右手手势运动序列;

第二数据收发器23,用于将实际右手手势运动序列和右手环配对地址码打包成右手环运动数据包发送至终端3;

如图7所示,所述终端3包括:

标准左手手势库31,用于存储与各个左手手势对应的标准左手手势运动序列;

标准右手手势库32,用于存储与各个右手手势对应的标准右手手势运动序列;

手环通讯器33,用于接收左手手势识别手环1的左手环运动数据包和右手手势识别手环2的右手环运动数据包;

手环数据分类管理器34,用于对接收的左手环运动数据包和右手环运动数据包进行分类存储;

左手手势匹配器35,用于调取所述左手环运动数据包的实际左手手势运动序列,并和存储的标准左手手势运动序列进行匹配,从标准左手手势库31获取对应的左手手势;

右手手势匹配器36,用于调取所述右手环运动数据包的实际右手手势运动序列,并和存储的标准右手手势运动序列进行匹配,从标准右手手势库32获取对应的右手手势。

所述基于双手手势识别方法的模拟驾驶系统通过第一三轴加速度传感器11采集用户的左手三轴加速度序列和通过第二三轴加速度传感器21采集用户的右手三轴加速度序列,再通过三维编码模块转化为实际左手手势运动序列和实际右手手势运动序列,并将其发送至终端3进行分析匹配,从而识别出对应的左手手势和右手手势。所述左手手势识别手环1和右手手势识别手环2通过WIFI、蓝牙等无线通讯方式与终端3连接,向终端3发送左手环运动数据包和右手环运动数据包,所述终端3为PC机、手机、平板电脑等。所述基于双手手势识别方法的模拟驾驶系统识别速度快,可对手部空间位置进行识别跟踪,采用精简空间坐标序列进行对比分析,识别误差较小;而且,左手手势识别手环1和右手手势识别手环2只需置于用户手腕处,活动空间不受约束,较为轻松方便。

所述终端3是通过调取左手环运动数据包的左手环配对地址码与左手手势识别手环1配对,和调取右手环运动数据包的右手环配对地址码与右手手势识别手环2配对,并且设置手环数据分类管理器34对接收的左手环运动数据包和右手环运动数据包进行分类存储;从而实现对左手手势识别手环1和右手手势识别手环2的区分,保证对左手环运动数据包和右手环运动数据包的分道独立处理,避免将左手手势误识别成右手手势,或将右手手势误识别成左手手势这种因数据调换引起的识别错误,提高双手手势识别可靠性。

优选地,如图7所示,所述终端3还包括:

模拟驾驶管理器37,用于预设包含多个模拟按键的模拟按键集,并且为每个模拟按键配置对应的模拟驾驶动作;

手势与模拟按键配置器38,用于预设双手手势组合集,所述双手手势组合集包含左手手势和右手手势组合而成的多个双手手势组合;并且为每个双手手势组合和对应的模拟按键建立映射关系;

模拟按键控制器39,用于将左手手势匹配器35获取的左手手势和右手势匹配器36获取的右手手势进行组合,然后与双手手势组合集进行匹配,找出对应的双手手势组合,并映射为对应的模拟按键,最后执行与模拟按键对应的模拟驾驶动作。

所述基于双手手势识别方法的模拟驾驶系统通过将用户的双手手势映射成模拟按键,从而用户可通过各种双手手势组合执行对应的模拟驾驶动作,所述模拟驾驶系统可设置相应的赛车游戏程序或驾驶学习程序,突破现有以真实手柄或按键的操作方式,而是通过双手手势变化来进行操作,使用户通过双手模拟方向盘控制虚拟汽车的运行,与真实驾驶类似的操作能使用户产生亲切感和依赖感,大大提高用户体验度。

所述模拟驾驶管理器37设置多个模拟按键,并为每个模拟按键配置对应的模拟驾驶动作,模拟按键还和对应的双手手势组合建立映射关系,所述映射关系如下表2所示:

表2

由表2可知,所述基于双手手势识别方法的模拟驾驶系统使用户通过双手模拟方向盘控制虚拟汽车的运行,与真实驾驶类似的操作使用户更易上手操控,不同于机械键盘、触摸按键和其他的游戏手柄,基于双手手势识别方法的体感技术使用户感觉手中就是握着一个方向盘,有很真实的现场感。

优选地,所述三维编码模块包括三轴角度生成器和三轴运动数据编码器,所述三轴角度生成器包括:

用于预先设定X轴阈值dX,Y轴阈值dY和Z轴阈值dZ

用于在Tn时刻下,采集X轴输出电压变化量Δxn、Y轴输出电压变化量Δyn和Z轴输出电压变化量Δzn,n=0,1,2,...,其中T0为初始时刻;

用于在Tn时刻下,判断|Δxn|是否小于dX,|Δyn|是否小于dY,和|Δyn|是否小于dZ;若是则继续往下执行,若不是则重新采集数据;

用于在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:

αn=ar>n/g>x),βn=ar>n/g>y),γn=ar>n/g>z);

其中,g为重力加速度,kx为X轴灵敏度,ky为Y轴灵敏度,kz为Z轴灵敏度,g、kx、ky和kz均为常量;

用于根据滤波公式计算出来的αn、βn和γn进行过滤,若αn、βn和γn符合滤波公式,则输出至所述三轴运动数据编码器,并且更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;若αn、βn和γn不符合滤波公式,则直接更新时刻Tn=Tn+1,进入下一个三轴角度生成过程;

所述滤波公式如下:

cos(2αn)+cos(2βn)+cos(2γn)=1。

所述三维编码模块先通过三轴角度生成器计算出三轴加速度传感器的X、Y和Z轴在手势变化中各个时刻的重力加速度的夹角αn、βn和γn;然后再通过三轴运动数据编码器计算X、Y和Z轴在手势变化中各个时刻与初始位置间的偏转量Xn、Yn和Zn,所述初始位置即为在初始时刻T0下的α0、β0和γ0;最后根据三轴偏转量数据组合序号表获取和X、Y和Z轴在手势变化中各个时刻偏转量Xn、Yn和Zn对应的序号列,并由所述序号列组成三轴运动数据序列。所述左手手势识别手环1和右手手势识别手环2均采用所述三维编码模块对检测数据进行处理:所述左手手势识别手环1采集的左手三轴加速度序列,和右手手势识别手环2采集的右手三轴加速度序列,其实质均为三维编码模块中的X、Y和Z轴在手势变化中各个时刻的Δxn、Δyn和Δzn;左手手势识别手环1生成的实际左手手势运动序列,右手手势识别手环2生成的实际右手手势运动序列,以及终端3存储的标准左手手势运动序列和标准右手手势运动序列,其实质均为三维编码模块中的三轴运动数据编码过程生成的三轴运动数据序列。

区别于现有的通过对加速度连续积分两次求得位移进而获取双手手势的处理模块,所述三维编码模块通过计算在手势变化中各个时刻每一轴与初始位置的相对角度,进而通过相对角度就能获取双手手势,这样避免了多次积分计算中存在的初始位置标点误差和误差累积放大等问题,精简运算量,提高运算速度。所述三轴角度生成器预先设定X轴阈值dX,Y轴阈值dY和Z轴阈值dZ,可消除人体的抖动对三轴加速度传感器采集到的数据带来的影响;而且所述三轴角度生成器还对αn、βn和γn进行过滤,将一些不符合滤波公式的数据过滤掉,提高数据准确性,进而提高手势识别精度。

优选地,所述三轴运动数据编码器包括:

用于接收所述三轴角度生成器输出的αn、βn和γn,n=0,1,2,...;

用于根据三轴偏转量生成公式生成三轴偏转量数据组合集,所述三轴偏转量数据组合集为在Tn时刻下的X轴偏转量Xn,Y轴偏转量Yn和Z轴偏转量Zn,所述三轴偏转量生成公式如下:

Xn=cos(αn0),Yn=cos(βn0),Zn=cos(γn0);

用于对生成的三轴偏转量数据组合集进行分段,

若-1≤Xn<-0.5,则更新Xn=1;若-0.5≤Xn<0,则更新Xn=2;若0≤Xn<0.5,则更新Xn=3;若0.5≤Xn≤1,则更新Xn=4;

若-1≤Yn<-0.5,则更新Yn=1;若-0.5≤Yn<0,则更新Yn=2;若0≤Yn<0.5,则更新Yn=3;若0.5≤Yn≤1,则更新Yn=4;

若-1≤Zn<-0.5,则更新Zn=1;若-0.5≤Zn<0,则更新Zn=2;若0≤Zn<0.5,则更新Zn=3;若0.5≤Zn≤1,则更新Zn=4;

用于建立三轴偏转量数据组合序号表,为每一种分段后的三轴偏转量数据组合编排序号;

用于对分段后的三轴偏转量数据组合集,根据三轴偏转量数据组合序号表获取对应的序号列,并由所述序号列组成三轴运动数据序列。

所述三轴运动数据编码器中将三轴偏转量数据组合集分段建立坐标系,进行坐标编码,每轴均分成四段,这样既保证了数据处理和数据传输的速度,同时也取得较高的精度。而且,若直接发送分段后的三轴偏转量数据组合集将提高终端3的数据处理难度和容易发生因数据交叉提取等误处理造成的手势识别错误,因此所述三轴运动数据编码器建立三轴偏转量数据组合序号表,向终端3发送序号列组成三轴运动数据序列,从而降低数据处理难度,提高手势识别的效率和精度。所述三轴偏转量数据组合序号表如表1所示,所述三轴运动数据序列的数据范围为1~64,所述三轴运动数据序列为在所述数据范围内,多个序号依照时间顺序排列的任意组合,比如所述三轴运动数据序列可为{1,4,3,23,54,1,43,6,4,63}。

优选地,如图5所示,所述第一微处理器12还包括:

第一数据有效性判断模块121,用于对新生成的实际左手手势运动序列和缓存的实际左手手势运动序列进行比较:若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列相同,则不向所述第一数据收发器13发送发送数据指令;若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列不相同,则向所述第一数据收发器13发送所述发送数据指令;

如图6所示,所述第二微处理器22还包括:

第二数据有效性判断模块221,用于对新生成的实际右手手势运动序列和缓存的实际右手手势运动序列进行比较:若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列相同,则不向所述第二数据收发器23发送发送数据指令;若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列不相同,则向所述第二数据收发器23发送所述发送数据指令。

当实际左手手势运动序列或实际右手手势运动序列产生变化时,发送的左手环运动数据包或右手环运动数据包才为有效数据;而实际左手手势运动序列或实际右手手势运动序列不产生变化时,发送的左手环运动数据包或右手环运动数据包为无效数据,这不仅影响处理数据的速度,而且极大地增加了耗电量。因此,所述左手手势识别手环1设置第一数据有效性判断模块121,所述右手手势识别手环2设置第二数据有效性判断模块221,当实际左手手势运动序列或实际右手手势运动序列不产生变化时,不向终端3发送左手环运动数据包或右手环运动数据包,从而有效减少无用的数据传输,大大地降低左手手势识别手环1和右手手势识别手环2的耗电量。

优选地,基于所述双手手势识别方法的模拟驾驶方法,如图8所示,包括终端建库过程和模拟按键操控过程:

终端建库过程:

步骤E1,所述终端3建立标准左手手势库31和标准右手手势库32,标准左手手势库31存储与各个左手手势对应的标准左手手势运动序列,标准右手手势库32存储与各个右手手势对应的标准右手手势运动序列;

步骤E2,所述终端3预设包含多个模拟按键的模拟按键集,并且为每个模拟按键配置对应的模拟驾驶动作;

步骤E3,所述终端3预设双手手势组合集,所述双手手势组合集包含左手手势和右手手势组合而成的多个双手手势组合;并且为每个双手手势组合和对应的模拟按键建立映射关系;

步骤E4,所述左手手势识别手环1设置左手环配对地址码,所述右手手势识别手环2设置右手环配对地址码;

模拟按键操控过程:

步骤G1,所述左手手势识别手环1采集左手手势变化中各个时刻的左手三轴加速度序列,并生成对应的实际左手手势运动序列;同时,所述右手手势识别手环2采集右手手势变化中各个时刻的右手三轴加速度序列,并生成对应的实际右手手势运动序列;

步骤G2,所述左手手势识别手环1将实际左手手势运动序列和左手环配对地址码打包成左手环运动数据包发送至终端3;同时,所述右手手势识别手环2将实际右手手势运动序列和右手环配对地址码打包成右手环运动数据包发送至终端3;

步骤G3,所述终端3接收左手手势识别手环1的左手环运动数据包和右手手势识别手环2的右手环运动数据包,并对接收的左手环运动数据包和右手环运动数据包进行分类存储;

步骤G4,所述终端3调取所述左手环运动数据包的实际左手手势运动序列,并和存储的标准左手手势运动序列进行匹配,从标准左手手势库31获取对应的左手手势;

步骤G5,所述终端3调取所述右手环运动数据包的实际右手手势运动序列,并和存储的标准右手手势运动序列进行匹配,从标准右手手势库32获取对应的右手手势;

步骤G6,所述终端3将获取的左手手势和获取的右手手势进行组合,然后与双手手势组合集进行匹配,找出对应的双手手势组合,并映射为对应的模拟按键,最后执行与模拟按键对应的模拟驾驶动作。

所述基于双手手势识别方法的模拟驾驶方法通过采集用户的左手三轴加速度序列和右手三轴加速度序列,再通过三维编码模块转化为实际左手手势运动序列和实际右手手势运动序列,并将其发送至终端3进行分析匹配,从而识别出对应的左手手势和右手手势。所述基于双手手势识别方法的模拟驾驶方法识别速度快,可对手部空间位置进行识别跟踪,采用精简空间坐标序列进行对比分析,识别误差较小;并且,对接收的左手环运动数据包和右手环运动数据包进行分类存储;从而实现对左手手势识别手环1和右手手势识别手环2的区分,保证对左手环运动数据包和右手环运动数据包的分道独立处理,避免将左手手势误识别成右手手势,或将右手手势误识别成左手手势这种因数据调换引起的识别错误,提高双手手势识别可靠性。

所述基于双手手势识别方法的模拟驾驶方法通过将用户的双手手势映射成模拟按键,从而用户可通过各种双手手势组合执行对应的模拟驾驶动作,所述模拟驾驶方法可设置相应的赛车游戏程序或驾驶学习程序,突破现有以真实手柄或按键的操作方式,而是通过双手手势变化来进行操作,使用户通过双手模拟方向盘控制虚拟汽车的运行,与真实驾驶类似的操作能使用户产生亲切感和依赖感,大大提高用户体验度。

优选地,所述步骤G2还包括数据有效性判断子步骤:

如图9所示,所述左手手势识别手环1先对新生成的实际左手手势运动序列和缓存的实际左手手势运动序列进行比较:若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列相同,则不向所述终端3发送左手环运动数据包;若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列不相同,则向所述终端3发送左手环运动数据包;

同时,如图10所示,所述右手手势识别手环2先对新生成的实际右手手势运动序列和缓存的实际右手手势运动序列进行比较:若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列相同,则不向所述终端3发送右手环运动数据包;若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列不相同,则向所述终端3发送右手环运动数据包。

当实际左手手势运动序列或实际右手手势运动序列产生变化时,发送的左手环运动数据包或右手环运动数据包才为有效数据;而实际左手手势运动序列或实际右手手势运动序列不产生变化时,发送的左手环运动数据包或右手环运动数据包为无效数据,这不仅影响处理数据的速度,而且极大地增加了耗电量。因此,所述步骤G2还包括数据有效性判断子步骤,当实际左手手势运动序列或实际右手手势运动序列不产生变化时,不向终端3发送左手环运动数据包或右手环运动数据包,从而有效减少无用的数据传输,大大地降低左手手势识别手环1和右手手势识别手环2的耗电量。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号