CN106512391B - 一种双手手势识别方法及基于其的模拟驾驶系统、方法 - Google Patents
一种双手手势识别方法及基于其的模拟驾驶系统、方法 Download PDFInfo
- Publication number
- CN106512391B CN106512391B CN201610983297.7A CN201610983297A CN106512391B CN 106512391 B CN106512391 B CN 106512391B CN 201610983297 A CN201610983297 A CN 201610983297A CN 106512391 B CN106512391 B CN 106512391B
- Authority
- CN
- China
- Prior art keywords
- hand gesture
- hand
- axis
- motion sequence
- practical
- 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.)
- Active
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/212—Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Heart & Thoracic Surgery (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种双手手势识别方法及基于其的模拟驾驶系统、方法,包括左手手势识别手环、右手手势识别手环和终端,左手手势识别手环和右手手势识别手环通过通信网络与终端连接,通过三轴加速度传感器采集用户的左手三轴加速度序列和右手三轴加速度序列,再通过三维编码算法转化为实际左手手势运动序列和实际右手手势运动序列,并将其发送至终端进行分析匹配,从而识别出对应的左手手势和右手手势,识别过程精简,从而识别速度更快;可对手部空间位置进行识别跟踪,采用精简空间坐标序列进行对比分析,识别误差较小。通过双手模拟方向盘控制虚拟汽车的运行,与真实驾驶类似的操作能使用户产生亲切感和依赖感,大大提高用户体验度。
Description
技术领域
本发明涉及人机交互技术领域,尤其涉及一种双手手势识别方法及基于其的模拟驾驶系统、方法。
背景技术
随着体感交互技术的高速发展,以及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,和|Δzn|是否小于dZ;若是则执行步骤C4,若不是则返回步骤C2重新采集数据;
步骤C4,在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:
αn=ar cos(Δxn/g kx),βn=ar cos(Δyn/g ky),γn=ar cos(Δzn/g kz);
其中,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(αn-α0),Yn=cos(βn-β0),Zn=cos(γn-γ0);
步骤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,和|Δzn|是否小于dZ;若是则继续往下执行,若不是则重新采集数据;
用于在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:
αn=ar cos(Δxn/g kx),βn=ar cos(Δyn/g ky),γn=ar cos(Δzn/g kz);
其中,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(αn-α0),Yn=cos(βn-β0),Zn=cos(γn-γ0);
用于对生成的三轴偏转量数据组合集进行分段,
若-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,和|Δzn|是否小于dZ;若是则执行步骤C4,若不是则返回步骤C2重新采集数据;
步骤C4,在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:
αn=ar cos(Δxn/g kx),βn=ar cos(Δyn/g ky),γn=ar cos(Δzn/g kz);
其中,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(αn-α0),Yn=cos(βn-β0),Zn=cos(γn-γ0);
步骤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所示那样设置:
X<sub>n</sub> | Y<sub>n</sub> | Z<sub>n</sub> | 序号 |
1 | 1 | 1 | 1 |
1 | 1 | 2 | 2 |
1 | 1 | 3 | 3 |
1 | 1 | 4 | 5 |
1 | 2 | 1 | 6 |
1 | 2 | 2 | 7 |
1 | 2 | 3 | 8 |
1 | 2 | 4 | 9 |
1 | 3 | 1 | 10 |
… | … | … | … |
4 | 2 | 4 | 56 |
4 | 3 | 1 | 57 |
4 | 3 | 2 | 58 |
4 | 3 | 3 | 59 |
4 | 3 | 4 | 60 |
4 | 4 | 1 | 61 |
4 | 4 | 2 | 62 |
4 | 4 | 3 | 63 |
4 | 4 | 4 | 64 |
表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,和|Δzn|是否小于dZ;若是则继续往下执行,若不是则重新采集数据;
用于在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:
αn=ar cos(Δxn/g kx),βn=ar cos(Δyn/g ky),γn=ar cos(Δzn/g kz);
其中,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(αn-α0),Yn=cos(βn-β0),Zn=cos(γn-γ0);
用于对生成的三轴偏转量数据组合集进行分段,
若-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的耗电量。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
Claims (8)
1.一种双手手势识别方法,适用于配置有左手手势识别手环、右手手势识别手环和终端的人机交互系统,所述左手手势识别手环和右手手势识别手环通过通信网络与终端连接,其特征在于,包括以下步骤:
步骤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,和|Δzn|是否小于dZ;若是则执行步骤C4,若不是则返回步骤C2重新采集数据;
步骤C4,在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:
αn=ar cos(Δxn/g kx),βn=ar cos(Δyn/g ky),γn=ar cos(Δzn/g kz);
其中,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(αn-α0),Yn=cos(βn-β0),Zn=cos(γn-γ0);
步骤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的三轴偏转量数据组合序号表获取对应的序号列,并由所述序号列组成三轴运动数据序列。
2.基于权利要求1所述的双手手势识别方法的模拟驾驶系统,包括左手手势识别手环、右手手势识别手环和终端,所述左手手势识别手环和右手手势识别手环通过通信网络与终端连接,其特征在于,所述左手手势识别手环包括:
第一三轴加速度传感器,用于采集左手手势变化中各个时刻的左手三轴加速度序列;
第一微处理器,用于生成左手环配对地址码,和用于将所述左手三轴加速度序列,通过三维编码模块生成对应的实际左手手势运动序列;
第一数据收发器,用于将实际左手手势运动序列和左手环配对地址码打包成左手环运动数据包发送至终端;
所述右手手势识别手环包括:
第二三轴加速度传感器,用于采集右手手势变化中各个时刻的右手三轴加速度序列;
第二微处理器,用于生成右手环配对地址码,和用于将所述右手三轴加速度序列,通过三维编码模块生成对应的实际右手手势运动序列;
第二数据收发器,用于将实际右手手势运动序列和右手环配对地址码打包成右手环运动数据包发送至终端;
所述终端包括:
标准左手手势库,用于存储与各个左手手势对应的标准左手手势运动序列;
标准右手手势库,用于存储与各个右手手势对应的标准右手手势运动序列;
手环通讯器,用于接收左手手势识别手环的左手环运动数据包和右手手势识别手环的右手环运动数据包;
手环数据分类管理器,用于对接收的左手环运动数据包和右手环运动数据包进行分类存储;
左手手势匹配器,用于调取所述左手环运动数据包的实际左手手势运动序列,并和存储的标准左手手势运动序列进行匹配,从标准左手手势库获取对应的左手手势;
右手手势匹配器,用于调取所述右手环运动数据包的实际右手手势运动序列,并和存储的标准右手手势运动序列进行匹配,从标准右手手势库获取对应的右手手势。
3.根据权利要求2所述的模拟驾驶系统,其特征在于,所述终端还包括:
模拟驾驶管理器,用于预设包含多个模拟按键的模拟按键集,并且为每个模拟按键配置对应的模拟驾驶动作;
手势与模拟按键配置器,用于预设双手手势组合集,所述双手手势组合集包含左手手势和右手手势组合而成的多个双手手势组合;并且为每个双手手势组合和对应的模拟按键建立映射关系;
模拟按键控制器,用于将左手手势匹配器获取的左手手势和右手手势匹配器获取的右手手势进行组合,然后与双手手势组合集进行匹配,找出对应的双手手势组合,并映射为对应的模拟按键,最后执行与模拟按键对应的模拟驾驶动作。
4.根据权利要求2所述的模拟驾驶系统,其特征在于,所述三维编码模块包括三轴角度生成器和三轴运动数据编码器,所述三轴角度生成器包括:
用于预先设定X轴阈值dX,Y轴阈值dY和Z轴阈值dZ;
用于在Tn时刻下,采集X轴输出电压变化量Δxn、Y轴输出电压变化量Δyn和Z轴输出电压变化量Δzn,n=0,1,2,...,其中T0为初始时刻;
用于在Tn时刻下,判断|Δxn|是否小于dX,|Δyn|是否小于dY,和|Δzn|是否小于dZ;若是则继续往下执行,若不是则重新采集数据;
用于在Tn时刻下,根据三轴角度公式计算X轴与重力加速度的夹角αn,Y轴与重力加速度的夹角βn,和Z轴与重力加速度的夹角γn;所述三轴角度公式如下:
αn=ar cos(Δxn/g kx),βn=ar cos(Δyn/g ky),γn=ar cos(Δzn/g kz);
其中,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。
5.根据权利要求4所述的模拟驾驶系统,其特征在于,所述三轴运动数据编码器包括:
用于接收所述三轴角度生成器输出的αn、βn和γn,n=0,1,2,...;
用于根据三轴偏转量生成公式生成三轴偏转量数据组合集,所述三轴偏转量数据组合集为在Tn时刻下的X轴偏转量Xn,Y轴偏转量Yn和Z轴偏转量Zn,所述三轴偏转量生成公式如下:
Xn=cos(αn-α0),Yn=cos(βn-β0),Zn=cos(γn-γ0);
用于对生成的三轴偏转量数据组合集进行分段,
若-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;
用于建立三轴偏转量数据组合序号表,为每一种分段后的三轴偏转量数据组合编排序号;
用于对分段后的三轴偏转量数据组合集,根据三轴偏转量数据组合序号表获取对应的序号列,并由所述序号列组成三轴运动数据序列。
6.根据权利要求2所述的模拟驾驶系统,其特征在于,所述第一微处理器还包括:
第一数据有效性判断模块,用于对新生成的实际左手手势运动序列和缓存的实际左手手势运动序列进行比较:若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列相同,则不向所述第一数据收发器发送发送数据指令;若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列不相同,则向所述第一数据收发器发送所述发送数据指令;
所述第二微处理器还包括:
第二数据有效性判断模块,用于对新生成的实际右手手势运动序列和缓存的实际右手手势运动序列进行比较:若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列相同,则不向所述第二数据收发器发送发送数据指令;若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列不相同,则向所述第二数据收发器发送所述发送数据指令。
7.基于权利要求1所述的双手手势识别方法的模拟驾驶方法,其特征在于,包括终端建库过程和模拟按键操控过程:
终端建库过程:
步骤E1,所述终端建立标准左手手势库和标准右手手势库,标准左手手势库存储与各个左手手势对应的标准左手手势运动序列,标准右手手势库存储与各个右手手势对应的标准右手手势运动序列;
步骤E2,所述终端预设包含多个模拟按键的模拟按键集,并且为每个模拟按键配置对应的模拟驾驶动作;
步骤E3,所述终端预设双手手势组合集,所述双手手势组合集包含左手手势和右手手势组合而成的多个双手手势组合;并且为每个双手手势组合和对应的模拟按键建立映射关系;
步骤E4,所述左手手势识别手环设置左手环配对地址码,所述右手手势识别手环设置右手环配对地址码;
模拟按键操控过程:
步骤G1,所述左手手势识别手环采集左手手势变化中各个时刻的左手三轴加速度序列,并生成对应的实际左手手势运动序列;同时,所述右手手势识别手环采集右手手势变化中各个时刻的右手三轴加速度序列,并生成对应的实际右手手势运动序列;
步骤G2,所述左手手势识别手环将实际左手手势运动序列和左手环配对地址码打包成左手环运动数据包发送至终端;同时,所述右手手势识别手环将实际右手手势运动序列和右手环配对地址码打包成右手环运动数据包发送至终端;
步骤G3,所述终端接收左手手势识别手环的左手环运动数据包和右手手势识别手环的右手环运动数据包,并对接收的左手环运动数据包和右手环运动数据包进行分类存储;
步骤G4,所述终端调取所述左手环运动数据包的实际左手手势运动序列,并和存储的标准左手手势运动序列进行匹配,从标准左手手势库获取对应的左手手势;
步骤G5,所述终端调取所述右手环运动数据包的实际右手手势运动序列,并和存储的标准右手手势运动序列进行匹配,从标准右手手势库获取对应的右手手势;
步骤G6,所述终端将获取的左手手势和获取的右手手势进行组合,然后与双手手势组合集进行匹配,找出对应的双手手势组合,并映射为对应的模拟按键,最后执行与模拟按键对应的模拟驾驶动作。
8.根据权利要求7所述的模拟驾驶方法,其特征在于,所述步骤G2还包括数据有效性判断子步骤:
所述左手手势识别手环先对新生成的实际左手手势运动序列和缓存的实际左手手势运动序列进行比较:若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列相同,则不向所述终端发送左手环运动数据包;若新生成的实际左手手势运动序列和缓存的实际左手手势运动序列不相同,则向所述终端发送左手环运动数据包;
同时,所述右手手势识别手环先对新生成的实际右手手势运动序列和缓存的实际右手手势运动序列进行比较:若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列相同,则不向所述终端发送右手环运动数据包;若新生成的实际右手手势运动序列和缓存的实际右手手势运动序列不相同,则向所述终端发送右手环运动数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610983297.7A CN106512391B (zh) | 2016-11-09 | 2016-11-09 | 一种双手手势识别方法及基于其的模拟驾驶系统、方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610983297.7A CN106512391B (zh) | 2016-11-09 | 2016-11-09 | 一种双手手势识别方法及基于其的模拟驾驶系统、方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106512391A CN106512391A (zh) | 2017-03-22 |
CN106512391B true CN106512391B (zh) | 2019-07-12 |
Family
ID=58350126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610983297.7A Active CN106512391B (zh) | 2016-11-09 | 2016-11-09 | 一种双手手势识别方法及基于其的模拟驾驶系统、方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106512391B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108482276A (zh) * | 2018-02-02 | 2018-09-04 | 斑马网络技术有限公司 | 车辆屏幕信息显示方法及其系统 |
JP7312838B2 (ja) * | 2019-02-28 | 2023-07-21 | メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー | ジェスチャの分類および加えられた力の推定のための教師なし機械学習のための方法および装置 |
CN111580660B (zh) * | 2020-05-09 | 2022-03-18 | 清华大学 | 一种操作触发方法、装置、设备及可读存储介质 |
CN117519487B (zh) * | 2024-01-05 | 2024-03-22 | 安徽建筑大学 | 一种基于视觉动捕的掘进机操控教学辅助培训系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102810008A (zh) * | 2012-05-16 | 2012-12-05 | 北京捷通华声语音技术有限公司 | 一种空中输入系统、方法及空中输入采集设备 |
CN104679246A (zh) * | 2015-02-11 | 2015-06-03 | 华南理工大学 | 一种交互界面中人手漫游控制的穿戴式设备及控制方法 |
CN105582669A (zh) * | 2015-12-21 | 2016-05-18 | 上海交通大学 | 基于动作模板特征匹配的体感游戏手环系统 |
-
2016
- 2016-11-09 CN CN201610983297.7A patent/CN106512391B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102810008A (zh) * | 2012-05-16 | 2012-12-05 | 北京捷通华声语音技术有限公司 | 一种空中输入系统、方法及空中输入采集设备 |
CN104679246A (zh) * | 2015-02-11 | 2015-06-03 | 华南理工大学 | 一种交互界面中人手漫游控制的穿戴式设备及控制方法 |
CN105582669A (zh) * | 2015-12-21 | 2016-05-18 | 上海交通大学 | 基于动作模板特征匹配的体感游戏手环系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106512391A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106512391B (zh) | 一种双手手势识别方法及基于其的模拟驾驶系统、方法 | |
CN109597485B (zh) | 一种基于双指角域特征的手势交互系统及其工作方法 | |
CN104769522B (zh) | 具有3d 指向和手势识别功能的远程控制器 | |
CN105224069B (zh) | 一种增强现实虚拟键盘输入方法及使用该方法的装置 | |
CN106502416B (zh) | 一种智能识别双手手势的模拟驾驶系统及其控制方法 | |
CN108983636B (zh) | 人机智能共生平台系统 | |
CN107908288A (zh) | 一种面向人机交互的快速人体动作识别方法 | |
CN202150897U (zh) | 一种体感控制游戏电视机 | |
CN106909216A (zh) | 一种基于Kinect传感器的仿人机械手控制方法 | |
Jingqiu et al. | An ARM-based embedded gesture recognition system using a data glove | |
Wu et al. | A Visual-Based Gesture Prediction Framework Applied in Social Robots. | |
CN107139189A (zh) | 一种儿童娱教监护机器人及其人体目标跟踪算法 | |
CN112631173B (zh) | 脑控无人平台协同控制系统 | |
Stern et al. | Designing hand gesture vocabularies for natural interaction by combining psycho-physiological and recognition factors | |
CN107272908A (zh) | 一种手势识别装置、系统及手势识别方法 | |
CN105034006B (zh) | 一种基于LeapMotion设备的猜拳机器人及猜拳手势识别方法 | |
CN106249901B (zh) | 一种以Android原生游戏支持体感设备操控的适配方法 | |
Vyas et al. | Gesture recognition and control | |
Prasad et al. | A wireless dynamic gesture user interface for HCI using hand data glove | |
CN114255511A (zh) | 用于手势识别的控制器和方法以及手势识别设备 | |
WO2020195017A1 (ja) | 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体 | |
CN112230777A (zh) | 一种基于非接触式交互的认知训练系统 | |
Spanogianopoulos et al. | Human computer interaction using gestures for mobile devices and serious games: A review | |
CN108363984B (zh) | 一种虚拟装配中疲劳度监测方法 | |
D'Orazio et al. | A Neural Network Approach for Human Gesture Recognition with a Kinect Sensor. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |