一种基于三轴加速度传感器的手势识别方法

文档序号:9750406阅读:715来源:国知局
一种基于三轴加速度传感器的手势识别方法
【技术领域】
[0001] 本发明涉及手势识别技术,尤其是涉及一种基于三轴加速度传感器的手势识别方 法。
【背景技术】
[0002] 手势是一种自然、直观、易于学习的人机交互手段,手势输入是实现自然、直接人 机交互不可缺少的关键技术。目前的手势识别技术主要分为基于数据手套和基于视觉两 种。这两种方法各有自己的长处,也都取得了一些研究成果,但都还不成熟。手势输入作为 一种自然、丰富、直接的交互手段在人机交互技术中占有重要的地位。
[0003] 手势识别利用各类传感器对手部/手持工具的形态、位移等进行持续采集,每隔 一段时间完成一次建模,形成一个模型信息的序列帧,再将这些信息序列转换为对应的指 令,用来控制实现某些操作。
[0004] 目前市面上已经存在的手势识别算法大都比较复杂,对硬件平台的要求较高,无 法在一些运算性能较低的平台(比如AVR 8位单片机)上实现,为了适应Arduino平台的 应用,有必要研发一种对硬盘件平台要求低的手势识别算法。

【发明内容】

[0005] 为了克服现有基于三轴加速度传感器的手势识别方法的不足,本发明提供一种新 型的基于三轴加速度传感器的手势识别方法,该基于三轴加速度传感器的手势识别方法, 该识别方法对于硬件平台的要求极低,只需占用512字节的内存空间就可以正常运行。
[0006] 为实现上述发明目的,本发明采用如下技术方案:
[0007] -种基于三轴加速度传感器的手势识别方法,适用于装载有三轴加速度传感器的 Arduino平台,包括如下步骤:
[0008] 建立标准手势库,以及相应的标准库权重值;
[0009] 通过三轴加速度传感器获取用户手势变化中各个时刻的三轴的加速度序列,对该 加速度序列依次进行归一化处理、冗余数据过滤获得中间序列,对该中间序列进行加速路 径规划;通过对每组中间序列进行约束获取手势主要的速度变化的方向;接着对该约束后 的中间序列进行冗余数据二次过滤以及平滑滤波去除误差,通过加速度序列积分处理得到 速度序列并对其进行归一化处理;
[0010] 然后对速度序列进行分析得到速度方向序列,对速度方向序列进行方向冗余序列 过滤得到最简化的手势运动序列,然后按照顺序从序列中找出符合条件的手势状态值,乘 以其权值,然后再寻找下一个状态值,再乘以其权值,直到结束,最后这些值相加即可得到 运动的权重值;
[0011] 将新的权重值与标准库权重值进行一一相比得出多组匹配值,选取最大的匹配值 的相对应的标准库权重值,并根据标准库权重值从标准手势库中获取相应的手势,并输出 至Arduino平台。
[0012] 进一步的,在采集加速度序列之间还需进行唤醒检测,包括如下:
[0013] 对所述三轴加速度传感器进行震动或晃动,三轴加速度传感器获取十次满足强度 阈值的唤醒加速度值,当有五组以上的唤醒加速度值超过强度阈值,完成唤醒。
[0014] 进一步的,还包括手势识别开始检测以及手势识别结束检测,包括如下:
[0015] 手势识别开始检测包括:预先建立加速度检测值,获取手势开始时的当前加速度, 获得当前加速度与加速度检测值的绝对差值,确定绝对差值大于所述阈值时,手势开始;
[0016] 手势结束检测包括:获取当前加速度值,获得该当前加速度值与上一个加速度值 的绝对差值,判断该绝对差值是否满足强度阈值,如果连续若干次满足强度阈值,则手势结 束,。
[0017] 进一步的,归一化处理的区间范围为[-100,100]。
[0018] 进一步的,冗余数据过滤的过程为:获得每组归一化处理后的两轴加速度的绝对 值,确定绝对值小于15时,直接过滤去除。
[0019] 进一步的,加速度序列积分处理的公式为
实中 a (k)表示加速度序列中的第K个采样点的加速度值,Λ t为质点A呈一维运动,从某点移动 到另一点的运动时间,v(〇)表示初始速度。
[0020] 进一步的,所述权重值的提取的过程为:根据上述步骤中获得的手势主要的速度 变化的方向,在标准手势库中选择相同方向的标准手势以及标准手势的标准库权重值。
[0021] 本发明的有益效果在于:本发明提供的提供一种基于三轴加速度传感器的手势识 别方法,具有计算量小、误判率低、配置要求低的特点,本发明对于硬件平台的要求极低,只 需占用512字节的内存空间就可以正常运行,因而特别适合Arduino平台实现对电脑的接 触式指令输出。
【附图说明】
[0022] 图1为本发明的手势动作示意图。
[0023] 图2为本发明基于三轴加速度传感器的手势识别方法的流程示意图。
[0024] 图3为本发明的唤醒流程示意图。
[0025] 图4为本发明的手势开始检测流程示意图。
[0026] 图5为本发明的手势结束检测流程示意图。
[0027] 图6为手势识别处理流程示意图。
【具体实施方式】
[0028] 为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中 给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所 描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻 全面。
[0029] 请参阅图1至图6,上述的基于三轴加速度传感器的手势识别方法,适用于装载有 三轴加速度传感器的Arduino平台,包括如下步骤:
[0030] 建立标准手势库,以及对应的标准库权重值,如图1所示,在本实施例中,共采用 15种不同的手势,那么可定义如下值,相应的标准库权重值:
[0031]
[0032] 相应的权重值表为:
[0033]
[0034] 进行唤醒检测,包括如下:对所述三轴加速度传感器进行震动或晃动,三轴加速度 传感器获取十次满足强度阈值的唤醒加速度值,当有五组以上的唤醒加速度值超过强度阈 值,完成唤醒;
[0035] 完成唤醒后,用户开始执行手势,需要对手势识别开始检测:预先建立加速度检测 值,获取手势开始时的当前加速度,获得当前加速度与加速度检测值的绝对差值,确定绝对 差值大于所述阈值时,手势开始;
[0036] 手势检测成功后通过三轴加速度传感器检测用户手势变化中各个时刻的X轴、Y 轴以及Z轴的加速度序列,完成手势加速度序列的采集后,执行手势结束检测,包括:获取 当前加速度值,获得该当前加速度值与上一个加速度值的绝对差值,判断该绝对差值是否 满足强度阈值,如果连续若干次满足强度阈值,则手势结束。
[0037] 然后对采集到的多组加速度序列依次进行归一化处理,即系将采样得到的加速度 序列归一化到[-100, 100]的区间内,归一化处理后,两个轴上的加速度值的绝对值若均小 于15,则认是冗余数据,直接过滤掉获得中间序列,对该中间序列进行加速路径规划:通过 对每组中间序列进行约束获取手势主要的速度变化的方向,具体的是对比两个轴上的加 速度值,根据比值来调整优化加速度序列,如果比值Ratio xz > 3,则accez = 0 ;若Ratioxz < 0· 33,则 accex = Ο ;若 0· 6 < = Ratioxz < 1· 7,则 accez = accex = (accex+accez) /2,下 面结合一实例加以说明,某时刻3:( = 80, ay = 10,因为ax :ay = 8,则落于区间[-100,100] 内,则使其比值标准化,那么约束后,ax = 80,ay = 0,如果比值不落于上述区间的士和\均 保持不变;
[0038] 接着对该约束后的中间序列进行冗余数据二次过滤以及平滑滤波去除误
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1