基于惯性传感器MPU6050的手势识别方法*

2018-01-24 07:59刘祚时
传感器与微系统 2018年1期
关键词:欧拉角波谷波峰

张 平, 刘祚时

(江西理工大学 机电工程学院,江西 赣州 341000)

0 引 言

基于惯性传感器手势识别一直以来是人机交互领域的重要研究方向[1]。目前,手势识别的方案有很多种,主要包括:基于笔的手势识别、数据手套的手势识别、基于微机电系统(micro-electro-mechanical system,MEMS)惯性传感器的手势模式识别、基于视觉的手势识别和基于图像的手势识别[2~4]。基于视觉的手势识别技术比较成熟[5],但依赖于对图像的处理,要求设备有很强的图像处理能力和对设备的使用环境有严格要求,比如光线的影响,限制了该方法的应用。基于加速度传感器的手势识别方法[6],比如荆雷、马文君等人[7]提出的动态时间规整(dynamic time warping,DTW),方法计算量大,对于连续性手势识别实时性不好。隐马尔可夫模型(hidden Markov model,HMM)[8],由于同一种手势在不同用户间存在差异很难建立起手势模板和隐马尔可夫模型。陈意、杨平等人提出了基于加速度规律特征提取的手势识别方法[9]。随着微电子技术的飞速发展,32位微控制器的均自带浮点运算单元(floating point unit,FPU),大幅提高了运算能力,同时惯性传感器自带数字运动处理器(digital motion processors,DMP)可以将姿态解算[10]应用于手势识别算法中。

本文基于MPU6050传感器提出了结合加速度和姿态角手势特征提取的手势识别优化算法。针对个体手势动作的差异性具有较强的鲁棒性,通过提取各种手势的运动学特征以及设备的姿态变化规律完成手势识别。对手势的方向识别运用了姿态角的特征量来实现,简化了算法的复杂度。在敲击手势和晃动类手势识别中也运用了姿态角的变化规律,姿态角的信号特征为手势的方向识别提供了便利。

1 MPU6050数据预处理和手势模式识别定义

1.1 MPU6050姿态解算

在敲击手势和晃动类手势的分类中应用了四元数转换到欧拉角的信号波形来分析。手势设备在空间的姿态变化可以用四元数不断更新来表征,亦即用转换后的欧拉角表示。对手势的方向识别运用姿态角的特征量进行判断。

1)四元数定义:空间中任何一个旋转均可以用四元数来表示成q=ω+xi+yj+zk形式,其中,ω表示旋转角度,写成矩阵形式为

q=[ω,x,y,z]T

(1)

2)四元数归一化处理:表征旋转的四元数必须是规范化四元数,需要进行归一化处理[11]

|q|2=ω2+x2+y2+z2=1

(2)

3)四元数/欧拉角转换:任何一个设备在三维空间中的姿态可以用欧拉角表示

(3)

式中φ为横滚(roll)角;θ为俯仰(pitch)角;φ为偏航(yaw)角。

1.2 MPU6050手势模式识别

1.2.1基本手势定义和分类

手势定义基本原则:设备易于识别手势;使用者容易学习和使用手势。定义了如表1所示的手势集分类。

表1 手势集划分

1.2.2 实验平台

基于STM32F427处理器,通过MPU6050惯性传感器进行手势数据信息采集,通过外设串口并按照自定义帧协议将数据上传至上位机软件,本文借助匿名飞控的上位机软件实现了手势数据的实时显示和图形绘制,方便对信息进行分析处理,最后通过算法将手势信息提取为指令,从而通过无线收发器NRF24L01 2.4 GHz通信协议在LCD显示手势识别结果。图1为实验系统整体结构。

图1 实验系统整体结构

1.2.3 手势识别模式算法

研究的惯性传感器手势识别算法应用于移动设备,要求实时性高,方便在嵌入式系统移植。故采用了手势原始数据统计分析的方法。手势识别算法框图如图2所示。

图2 手势识别算法框图

1.2.4 手势信号数据截取

在进行有效手势信号截取前,必须要准确检测手势起点和终点。图3为利用加速度信号进行手势起点,终点检测。

图3 手势起点和终点判断

由图3可见,加速度计在一般状态下变化较平缓,但当有手势动作发生时加速度计数据波形会发生剧烈变化。利用加速计的数据特性表征手势动作具有很高的可靠性[12]。本文对三轴加速计数据作差分,再以差分绝对值之和作为表征手势起点、终点的特征量。如式(4)所示,以Δak作为判断起点和终点的依据

Δak=|axk-axk-1|+|ayk-ayk-1|+|azk-azk-1|

(4)

图4 手势识别模式算法起点流程

2 手势识别

2.1 信号特征提取

1)手势信号阶段平均能量

为了简化算法,减少计算量,用手势平均能量代替手势总能量

(5)

式中L为手势长度;axi,ayi,azi分别为x轴、y轴和z轴第i个采样点加速度;ax0,ay0,az0为对应轴加速度零偏。

2)手势长度

从手势起点开始到手势结束的时间差值,本文以采样点[12]的序号表示采样节点对应的时刻值。手势长度即为采样序号的差值

L=Kend-Kstart

(6)

对于不同的手势动作手势长度不同,对于翻转类手势动作较短小于50 ms,其他手势较长,采样频率200 Hz。

3)手势信号段欧拉角波峰波谷数目计算

在手势信号阶段,以手势起点阈值为0°,遍历与横轴的交点,B1~B7,计算每个区间中最大和最小值,当最小值小于下限阈值,波谷数目加1;当最大值大于上限,阈值波峰数目加1。利用上限和下限阈值的滤波的方法能够减小干扰,具体计算方法如图5所示。

图5 波峰波谷数目计算方法

4)手势信号段欧拉角信号平均幅值

(7)

式中Pi为波峰或波谷值;N为波峰波谷总数。

5)手势信号段欧拉角差分绝对值之和

(8)

(9)

(10)

式中Eφ,Eθ,Eφ分别为横滚角、俯仰角和偏航角差分绝对值之和;L为手势长度。

2.2 分类器设计

设计的手势分类器充分利用了姿态角的信号进行方向判断以及敲击手势和晃动手势的分离,设计了3层决策树分类器,达到了简化算法的目的。如图6所示。

图6 分类器

第一层:在预定义手势中只有翻转类手势长度最短且加速度信号变化量最小,所以若手势能量最小,小于阈值,分类为翻转类。

第二层:MPU6050自带数字运动处理器,通过姿态解算后得到欧拉角,清晰反映预定义手势波峰数,甩动手势在姿态角上表现的运动学特征为无峰值,利用该条件可分离出甩动类手势。甩动手势加速度和欧拉角波形如图7所示。

图7 甩动手势加速度和欧拉角波形

第三层:预定义敲击手势为连续敲击3次和晃动手势在欧拉角信号上形状相似,如图8所示。

图8 敲击和晃动手势波形

在姿态角特征上的区别表现为手势长度L和手势平均幅值Em的不同,考虑到设备姿态以及操作者的差异性,为了提高识别率,选取出敲击手势和晃动手势的样本,利用这两个特征进行训练,得到Fisher分类函数f=61L+5Em-4 610,当f<0,为敲击类手势;当f>0为晃动类手势。

2.3 手势识别的实现

2.3.1 翻转类手势识别

翻转类手势动作均绕特定坐标轴翻转,运动变化主要体现在陀螺仪上,加速度计变化很小。在预定义手势集中表现为手势平均能量最小,经过统计分析翻转类手势平均能量最大不超过4 000,而手势能量最低的甩动手势均大于4 500。利用最小平均能量阈值分离出翻转类手势。再利用手势段欧拉角差分绝对值之和最大特征量(即选Eφ,Eθ,Eφ最大者)筛选出翻转轴(Eφ,Eθ,Eφ分别对应X,Y,Z轴)。对于方向的识别根据手势段欧拉角波峰值或者波谷值有无确定,仅有波峰值为顺时针翻转,仅有波谷值为逆时针翻转。

2.3.2 甩动类手势识别

由分类器第一层利用手势能量分离出翻转类手势后,在预定义的剩下3类手势中,利用姿态角波形能够清晰反映手势峰值特征,晃动手势和连续敲击3次手势波峰和波谷数目均大于等于3,而甩动手势在欧拉角信号上表现为波峰数目等于0,利用波峰数目能够分离出甩动手势。

1)甩动手势方向的预识别:甩动分为左右甩动和上下甩动,当欧拉角差分绝对值之和最大值发生在俯仰角信号上,(即Eθ值最大)则为上下甩动如图9(a);当发生在在偏航角信号上,(即Eφ值最大)则为左右甩动如图9(b)。

图9 甩动手势信号波形

2.3.3 敲击类和晃动类手势识别

预定义敲击手势为连续敲击3次,而晃动类手势为连续晃动3次及以上,当晃动3次以上,手势信号明显特征表现在晃动手势长度大于敲击手势,平均幅值Em也大于前者。但是当晃动次数为3次时,两类手势信号很相似,为了提高识别准确度,对两类手势样本进行训练得到Fisher判别函数f=61L+5Em-4 610:当f<0,为敲击类手势;当f>0为晃动类手势。

晃动手势方向识别:晃动分为左右晃动和上下晃动,表现在姿态角上的特征是当手势信号段欧拉角差分绝对值之和最大值(即Eθ值最大)出现在俯仰角信号上为上下晃动,信号波形如图10(a)所示;当出现在偏航角信号上(即Eφ值最大)为左右晃动,信号波形如图10(b)所示。

图10 晃动手势信号波形

3 实验结果

基于MPU6050惯性传感器的实验测试,选择10位试验对象各进行100次测试,平均识别率96.4 %,测试识别结果如表2所示。G1~G9分别表示顺时针翻转、逆时针翻转、向上甩动、向下甩动、向左甩动、向右甩动、敲击、上下晃动、左右晃动,R1~R9为实验结果。

表2 手势识别结果

从结果可以看出,大多数的识别错误出现在方向识别,与操作不规范性因素有关,比如抖动因素。

4 结 论

针对MPU6050传感器提出了结合加速度规律和特征量以及设备姿态角变化规律的手势识别方法。能够减少因用户操作差异性因素造成误识别的影响。同时利用姿态角的变化规律和特征量能够方便对手势的方向进行判别。相较于仅使用加速度变化规律的手势识别算法,利用姿态角对方向识别简化了算法,缩短了手势识别时间,提高了实时性。姿态角能直观地表征设备的位姿变化,同时能够在一定范围内兼容手势动作包含的基础运动。算法已成功移植在STM32F427微处理器上。

[1] 雷 蕾,赵涓涓,史曜华.人车交互技术中的手势检测及识别方法[J].太原理工大学学报,2016,47(6):793-798.

[2] 肖 茜,杨 平,徐立波.一种基于MEMS惯性传感器的手势识别方法[J].传感技术学报,2013,26(5):611-615.

[3] 武 霞,张 崎,许艳旭.手势识别研究发展现状综述[J].电子科技,2013,26(6):171-174.

[4] Panwar M.Hand gesture recognition based on shape parame-ters[C]∥International Conference on Computing,Communication and Applications,IEEE,2012:1-6.

[5] 孔俊其,王 辉,张广泉.基于传感器的手势交互研究[C]∥江苏计算机大会,2008.

[6] 孔俊其.基于三维加速度传感器的手势识别及交互模型研究[D].苏州:苏州大学,2009.

[7] 荆 雷,马文君,常丹华.基于动态时间规整的手势加速度信号识别[J].传感技术学报,2012,25(1):72-76.

[8] 刘珠峰,周 良,丁秋林.基于隐性马尔可夫模型的手势识别设计和优化[J].计算机应用研究,2011,28(6):2386-2388.

[9] 陈 意.基于MEMS惯性传感器的移动电子设备手势识别技术研究[D].成都:电子科技大学,2013.

[10] 彭孝东,陈 瑜,李继宇,等.MEMS三轴数字陀螺仪标定方法研究[J].传感器与微系统,2013,32(6):63-65.

[11] 曹 飞.嵌入式航向姿态参考系统的设计与实现[D].南京:南京理工大学,2012.

[12] 赵吕晨,吴 薇,曾宪奕,等.基于多加速度传感器的胎动信号检测方法[J].传感器与微系统,2016,35(12):20-23.

猜你喜欢
欧拉角波谷波峰
板厚与波高对波纹钢管涵受力性能影响分析
梅缘稻
作用于直立堤墙与桩柱的波峰高度分析计算
从CATIA位置矩阵求解欧拉角的计算方法分析
一种基于EGI和标准人脸模板的三维人脸点云拼合算法
儿童标准12导联T波峰末间期的分析
基于音节时间长度高斯拟合的汉语音节切分方法
Dynamic Loads and Wake Prediction for Large Wind Turbines Based on Free Wake Method
大姿态角入水时的鱼雷半实物仿真方法研究
四元数与欧拉角刚体动力学数值积分算法及其比较