《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 基于惯性传感器的手机手势识别
基于惯性传感器的手机手势识别
来源:电子技术应用2011年第12期
刘 煜, 杨 平, 段丙涛
(电子科技大学 机械电子工程学院,四川 成都611731)
摘要: 手势输入丰富了手机的实用性、便捷性与娱乐性,快速而精确地识别出手机当前的姿态是该种输入方式的核心内容。提出并比较了基于惯性传感器的手机姿态识别方法,并通过对一种手势动作的识别验证了其可行性。
中图分类号: TP23
文献标识码: A
文章编号: 0258-7998(2011)12-0076-04
Cell gesture recognition based on inertial sensors
Liu Yu, Yang Ping, Duan Bingtao
School of Mechatronics Engineering, University of Electronic Science and Technology of China, Chengdu 611731,China
Abstract: With gesture input, cell phones can be much more functional, convenience and funny. The core of this input way is recognizing the current gesture quickly and accurately. A method of recognize the gesture based on inertial sensors is tested in this paper, and it is proved useful.
Key words : inertial sensors; human-machine interaction; gesture recognition; fusion algorithm


    日常生活中人与人之间的交流除了语言、文字、图片等之外,手势等动作的交流也是一种必不可少的方式,甚至在某些特定的场合,手势交流会起着主导的作用。但是在人与手机等手持设备的人机交互方式上,往往只有传统的键盘与触屏方式,这两种交互方式都是通过文字为媒介实现的。为了提高手持设备的便捷性,其他形式的交互方式显得必不可少。而随着MEMS技术与工艺的进步,微型陀螺仪与加速度计的出现无疑为扩展人机交互方式提供了一种新思路。目前,对于基于惯性传感器的手持设备的姿态识别已经引起了越来越多的的公司与机构的关注。在目前,基于MEMS的惯性传感器已经在大量的工业产品中得到了应用,例如从2007年开始热销的iPhone手机与任天堂的Wii游戏机等产品中就应用到了微加速度计。由微加速度计所带来的前所未有的用户体验代表着一种新的人机交互方式的开始,而此种方式的核心内容之一就是快速而精确地识别出手机当前的姿态。对此,近年来已经有很多人进行了大量的工作,例如,Jang与 Park在2004年将手持设备测得的加速度信号分为静态的和动态的,并给出了相应的识别方法[1],Ferscha和Resmritas则将手势基于一定的规则分为了基本手势与组合手势,并以此建立相应的手势数据库[2-3]。目前的研究绝大部分都是基于在手持设备中集成微加速度计而来,因而设备的应用与姿态的检测就存在很大的局限性。微陀螺仪的加入在很大程度上解决了这个问题。在本文的研究中,就探讨了一种基于微加速度计与微陀螺仪的手机姿态识别方法。测试中采用了ST的三轴数字式加速度计LIS331DLH,量程为±2 g,16 bit,灵敏度为16 384 LSB/g;微陀螺仪采用Epson公司的XV-3500CB,为模拟传感器,16 bit,灵敏度为0.4 mV/deg/s,量程±600 deg/s。
1 手势动作识别的预处理
     一般来讲,刚体的运动可以分为随质心的平动以及绕质心的转动[4],换言之,知道刚体质心(或刚体上某一点)的加速度向量(a=ax+ay+az)与角速度向量(ω=ωx+ωy+ωz)后就可以计算出该刚体的运动状态。在日常应用中,手机等手持设备往往可以视为一个刚体,通过集成于手持设备中的三轴加速度计与三轴陀螺仪就可以准确地感知手机等的运动状态(在没有考虑传感器误差的情况下)。本文的工作正是基于三轴加速度计与三轴陀螺仪输出的六个自由度的数据。
     实际中,手机的动作根据传感器感知结果可分为敲击(Tap)、旋转甩动(Rotation Shake)、甩动(Shake)、直线运动(Linear Move)、非直线运动(Nonlinear  Move)等几个动作,动作区分如图1所示。为了准确识别这些动作,就需要提取出这些动作的特征,而且这些特征要在信号表现上具有明显的差异性。以加速度计为例,当加速度计信号产生剧烈突变时,可能的手机手势是Tap或Rotation Shake等,但进一步分析后可以得知Tap的加速度尖峰会比较短暂(大约在5 ms以内),与之相反,Rotation Shake的加速度尖峰就要长得多(大约在40 ms左右)。因此,可以把尖而短的加速度信号看作是Tap的特征信号。


    通过大量动作试验,可以获得到各种动作对应的传感器信号,通过分析可以设定出大致的各种动作所对应的信号特征,进而根据此特征对手持设备的当前状态进行判断。具体判断流程如图2所示。

 

 

    虽然惯性MEMS传感器可分为模拟式和数字式,但是通过A/D转换后都成为了一系列的时间序列,或者说是离散信号。而如何去除误差,首先需知道惯性传感器的误差模型,一般其误差是由角度随机游走误差、角速率随机游走、闪速噪声、马尔科夫误差等组成[5],从表现出来的统计特性可以将其分为平稳信号误差和非平稳信号误差。工程上,将惯性传感器的误差分为有规律的漂移、随机误差、抖动误差。其中有规律的漂移可以通过减去一个补偿值消除;随机误差用滤波的方法;抖动误差其实并不是误差的范畴,用清零校准可以消去。从实验数据发现,随着时间和采样点数的增加,随机误差很接近于一个平稳分布。而在图2 的流程图中,传感器信号预处理这一步主要就是进行误差的消除,其大致包括以下几个方面:
    (1) 对惯性传感器信号进行静态误差补偿;
    (2) 分别获得加速度能量信号与角速度能量信号;
    (3) 对传感器信号与加速度、角速度能量信号进行去噪(平滑)处理。
    其中第一步较为简单,可以对传感器信号(六轴)分别加上一个静态补偿值,这个补偿值可以由经验确定(即在算法中直接加上),也可以在使用中测试得到,即在每次开机后选取一小段静态信号计算获得。
   
    由式(5)可知,实际上增益系数Kk实时修正测量值和上一时刻估计值,这样的滤波是一种连续的迭代方法,且存储只需上一时刻的值,占有空间少,因此比较适合计算能力与存储空间都比较有限的移动手持设备。
    为了测试卡尔曼滤波的效果,这里取了一组绕着X轴旋转的微陀螺仪的数据。由图3可知,Q=0时,平滑效果最好,即方差最小,但是却存在一个问题:在降低高频噪声的同时,也降低了低频的有用信号。而研究的目的是在降低高频信号的同时却不影响低频的有用信号。因此,在这里设一个Q,使得Pk-=Pk-1+Q,Q的取值与R相差不大,这样就巧妙地实现了既降低了高频噪声又尽量保持了低频的有用信号的目的。这里的R是常数,因为微陀螺仪的随机误差随着时间增加,经实验非常接近平稳分布,故其二阶矩为常数。

 平滑要求噪声的幅值尽量地衰减,有用的信号尽量地保持原形,而对于线性平滑滤波只能满足最小均方误差的原则。也就是说窗口足够长可以使得曲线很平滑,但是不能保证低频信号的不变形。对于非线性的平滑,理论上是可以做到既保持低频原形又能衰减高频,可以取任何加权值,而且面对随机的有用低频有用信号,固定不改的加权值和窗口值就会显得捉襟见肘了。对于卡尔曼滤波,其增益矩阵(系数)如何取值才是一个最优的选择。
2 手势动作识别
    手势动作识别可以分作广义的识别与狭义的识别,以图2为例,广义的识别可以包括流程图中的起点识别、信号类型分类与动作识别三步。事实上,在很多工作中这三步都是紧密联系着的。
 在动作识别的方法上,可以采用建立隐式与马尔科夫模型进行判断[8],一种思路是波形匹配[9],即事先在手机中存储一系列的标准动作模板,当检测到手机有动作发生时便将该动作的传感器波形与标准动作模板库中的动作波形进行匹配处理,以此来判断动作类型。该方法主要是运用了动态时间归整DTW(Dynamic Time Warping)算法,DTW算法是一种时序匹配算法。它是通过计算两个序列之间的距离来做出相应的判断,该算法是基于动态规划(DP)的思想,可以用于在信号长短不一的情况下进行模板匹配,是语音识别中出现较早、较为经典的一种算法。其思路为,假设d(p,q)为两点p、q之间的距离,则时序P={p1,p2,…pm}与Q={q1,q2,…qn}之间的距离D(P,Q)计算方法如下:

     在实际工作中,针对此种思路也做出了测试,以Tap(敲击)为例,主要根据三轴加速度的能量来对敲击动作进行识别,因为相对于采用加速度及加速度能量信号而言,加速度能够很好地反映作用于手机的力的变化率,而敲击最主要的特征,即作用于手机的力的变化率很大。如图4、图5所示为3次敲击下三轴加速度信号与加速度能量信号。

    在此种思路下,对加速度能量信号进行模版匹配。通过对比发现,该信号波形与三次敲击的模版信号最为匹配,故而可以判定此时对手机进行了一次“三次敲击”的动作。经过大量的试验统计,发现这种方法的准确率可以达到95%以上。
     然而这种方法也存在一定的缺陷,即如果动作较多,则模版也比较多。依旧以Tap为例,在试验中准备了“单次敲击”、“双次敲击”与“三次敲击”三个模板。故而在试验中更倾向于另一种方法,即不进行特定的模版匹配,只是提取信号的特征点进行判断。以图4的敲击为例,依旧采用加速的能量信号进行判断,首先提取到“敲击发生”的特征信号,进而在接下来的一段时间里进行敲击次数的识别,并最终反馈回敲击的次数。该方法在测试中的准确率依旧可以达到95%以上。
    在这种方法中,其中一个关键的地方在于判断动作的类型及其起始点。考虑到数据的传递性以及判断效率,设置了动作的优先级,具体思路如图6所示。


    由传感器输出的原始信号为一组六维信号s1={ax,ay,az,ωy,ωz}T,经过预处理后得到一组四维信号s2={as,ωs,ass,ωss}T,其中as与?棕s分别表示加速度能量信号与角速度能量信号,ass与?棕ss是as与?棕s分别经由卡尔曼滤波得到。把s2送入流程进行判断,此处把滤波前的信号送入判断是因为有些动作的特征信号就是属于高频信号。判断完成后,则将加速度与角速度的相应信号截取送入相应的处理模块进行后期处理,在后期处理中,将反馈回动作的具体信息,如敲击的次数、旋转的角度与旋转轴等。这种方法与前一种相比其优点在于不需要太多的空间来存储模版信息,在匹配时的计算量也远小于前者。
     作为检验,以一种组合动作的检测为例,该动作要求:x轴向下运动一段距离,再旋转甩动,即模拟用手机当钥匙开门的动作。其部分关键数据如图7所示,其中第一行为x轴加速度数值,第二、第三行分别为滤波后的加速度与角速度能量信号。此时,如果用第一种方法则至少需要建立以下两个模版:x轴向下的线性运动模版、x轴向下的旋转甩动模版。并实时对惯性传感器信号进行模版匹配。而在第二种方法下,创造性地提出了一种简单的思路:先检测旋转甩动,检测到后再向前检测线性运动。如此就不需要建立太多额外的存储参数,整个系统的响应时间也得到了很好的控制,其流程如图8所示。

    动作的识别结果显示:采用第二种识别方式,可以迅速而准确地识别出该组合动作,从动作结束到显示出识别结果,手持设备所花费的时间可以控制在1 s以内,这也从一个侧面证实了该识别方法的可行性。
    本文通过对微加速度计与微陀螺仪信号的研究,结合实际提出了两种比较可靠的手机等手持设备的手势动作识别方法,综合考虑各种因素,得到了一种可以快速而准确地识别出手机手势动作的方法,以及一种简单而有效的信号预处理方法。如今,微加速度计已经成功集成到手机中,微陀螺仪的加入也是大势所趋,通过对两种MEMS惯性传感器的综合研究,快速准确地识别出手机的手势动作,可以极大地提高人机交互的效率,丰富手机的使用范围。
参考文献
[1] JANG I J, PARK W B. Signal processing of the acceler ometer for gesture awareness on handheld devices[C]. In Proceedings of the IEEE International Workshop on Robot  and Human Interactive Communication, 2003:139-144.
[2] FERSCJA A,RESMRITA S. Gestural interaction in the pervasive computing landscape[J].Elektrotechnik & Informationstechnik, 2007,124(l):17-25.
[3] CHEN Q, PETRIU E M, GEORGANAS N D. 3D hand tracking and motion analysis with a combination approach of statistical and syntactic analysis. HAVE 2007: Proc. IEEE Int. Workshop on Haptic, Audio and Visual Environments and Their Applications, 2007:56-61.
[4] 朗道,栗费席兹.理论物理学教程:第1卷,力学[M]. 5版.李俊峰,译.北京:高等教育出版社,2007:108-136.
[5] NASER E S,NASSAR S, NOURELDIN A.Wave denoising for IMU alignment[J].IEEE A&E System Magazine.2004,19(10):32-39.
[6] MADGWICK S O H.An efficient orientation filter for inertial and inertial/magnetic sensor arrays. April, 2010.
[7] LUTOVAC M D,TOSIC D V. Filter Design for signal Processing using MATLAB and Mathematica[M]. Prentice Hall, 2001.
[8] Kong Junqi, Wang Hui. Gesture recognition model based on 3D Accelerations[C]. Proceedings of 2009 4th International Conference on Computer Science & Education.2009.
[9] Min Junki, CHOE B W, CHO S B. A selective templatematching algorithm for short and intuitive gesture UI of  accelerometer-builtin mobile phones. Nature and Biologically Inspired Computing (NaBIC), 2010 Second World  Congress on. 2010:660-665.

此内容为AET网站原创,未经授权禁止转载。