基于机器学习的手势识别系统及其在移动终端上的应用

2017-09-09 00:15李养群周梅
软件导刊 2017年8期
关键词:手势识别移动终端支持向量机

李养群+周梅

摘 要:手势识别技术可有效提高移动终端操作效率。通过移动终端加速度传感器捕获手势执行过程中的三维加速度信号,经过预处理、特征提取之后,采用机器学习方法SVM,建立相应的SVM分类模型,并利用该识别模型实现手势动作。实验结果表明,该方法具有较高的识别率并在移动终端上得到应用。

关键词:手势识别;机器学习;支持向量机(SVM);移动终端

DOIDOI:10.11907/rjdk.171234

中图分类号:TP319

文献标识码:A 文章编号文章编号:1672-7800(2017)008-0153-03

0 引言

移动终端技术已经得到广泛使用,人们用其进行娱乐、浏览新闻、办公等活動,但是在使用过程中仍然存在着一些不便,比如,对移动终端的使用大部分仍然依靠手指滑动调出菜单的方式进行操作。但是,目前部分手机尺寸较大,在单手操作时,手指滑动调出菜单较为不便,而通过手的晃动可以非常方便地实现某种操作。例如,当手机有电话来时,可通过不同方向的晃动实现电话的接听或者不接听。例如,往左晃动,拒接电话,往右晃动,接听电话。

目前,大部分移动终端都配置了各种传感器,例如加速度传感器。可充分利用加速度传感器的数据判断手势的移动方向从而为手机的操作提供帮助,可极大方便人们的操作。

本文首先针对常见的几种手势操作进行分析,在此基础上,采用机器学习方法SVM对三维加速度传感器数据进行分类识别,并将识别结果应用于移动终端上。

1 相关技术

文献[1]针对手势的各种运动姿态进行了识别,包括左右移动、上下移动、写阿拉伯数字的各种手势,并采用HMM模型进行了分类识别,具有一定的成功率。但是该方法是在嵌入式系统上实现的,无法直接应用于移动终端之上。文献[2]主要识别了8种手势,分别是左右移动、上下移动以及画圆和画正方形的手势并采用DTW算法对其进行识别。文献[3]针对与设备的交互过程,主要识别8种手势,包括缩放、推拉、双击等动作,借助于RFID技术捕捉信号并根据这些信号的值建立一些简单的规则识别手势。文献[4]采用3D形状上下文对手势进行识别,该方法可减少背景和颜色对手势识别的影响。文献[5]对5种手势进行了识别并将手势识别结果应用于计算机游戏交互中。文献[6]采用机器学习算法SVM对加速度传感器信号进行分类以实现手势识别,该方法主要基于图像处理机制实现分类。

2 基于SVM的手势识别框架

2.1 SVM技术

SVM是一种基于统计理论的学习方法,采用结构风险最小化归纳原则。SVM的实现机制为:当实际问题是拥有正负类别信息的训练样本集时,算法通过寻找不同类别样本之间的最大间隔(Margin)训练出分类器,从而使不同类别的样本能够被分类器分开。

SVM的训练过程就是对最佳分离超平面的求解过程,其训练仅仅与样本中对分类面起支持作用的部分样本集有关,因此模型训练的复杂度与其它非支持样本及样本维数无关,从而可以有效避免维数灾难。基于SVM的上述特性,使得它在处理小样本、非线性及高维数据时要优于其它模式识别方法。

2.2 手势识别

本文主要针对现实生活中最常用的几种手势进行识别,主要包括左右移动、上下翻动等几种情况,如图1所示。

图1中的(a)表示手机的左右甩动或者翻动,(b)表示手机的上下移动,而(c)和(d)表示手机以手腕为轴点的左右甩动,(e)表示手机的上翻动作,而(f)表示手机的下翻动作。

2.3 基于SVM的手势识别框架

图2给出了基于SVM算法的手势识别框架,该框架主要包括如下功能:①加速度传感器:是指移动终端内部的三维重力加速度传感器,本系统根据其产生的数据对手势进行识别;③数据采集功能:采集移动终端开始和停止移动期间的传感器数据并保存;③数据处理:去除数据中的噪声,从数据中提取相应的特征;④SVM识别模型:将处理后的样本数据训练SVM算法并得到识别模型;⑤SVM识别结果:将识别模型应用到数据中并识别出手势移动的结果;⑥应用系统:移动终端中使用手势识别结果的各种应用;⑦配置系统:将手势识别结果与移动终端的应用功能建立关联。例如,将往左移动设置为拒接电话,往右移动设置为接听电话,向上翻动设置为弹出通知栏等。

3 实验数据与分析

3.1 实验准备

采集数据所用的手机HTC t328,CPU为高通晓龙Snapdragon MSM8255,最低速度为22MHz,最高速度可达1.4GHz;RAM容量为512M;ROM为8G。手机的操作系统为Android OS 4.0.3,电池容量为1650mAh,自带有方向传感器、加速度传感器和距离传感器等,该机硬件配置基本上是目前普遍的智能机硬件配置。

3.2 实验过程

这里共识别6种手势:左翻、右翻、上翻、下翻、向左甩、向右甩,并对每种手势进行数据采集,采集到大量数据,表1展示了各手势采集数据的次数。

3.3 数据预处理

(1)数据平滑去噪。导致噪声干扰有两个原因:手机加速度传感器本身的精度原因,当手机静止放置时由于细微的震动,仍然能够采集到细微变化的数据;另外手本身的抖动也能产生噪声。因此,需要尽量去除噪声对数据的干扰。这里使用简单移动平均线的方法(SMA)进行处理。计算方法如式(1)所示。

aSMAnow=(ai+ai-1+...+ai-m+1)/m=aSMAprevious+(ai-ai-m)/m(1)

其中,m表示数据段的窗口大小,使用当前帧i及它之前m-1帧的加速度之和的平均值aSMAnow表示当前帧的加速度ai。

处理后的数据如图3所示。endprint

(2)数据的边界检测。

边界检测主要指数据采集何时开始,何时结束。采用一种门限值方法对手势轨迹的边界进行判定,

基于大量的实验分析,窗口大小设置为7,门限值大小为0.5(m/s2)。经过边界检测后的数据如图4所示。

(3)数据的长度归一化。

每次采集手势移动轨迹时所用的时间不一定一致,为了更好地实现特征提取,需对结果进行采集时间长度上的统一,也即时间长度的归一化处理。此处,将长度归一化的阂值设置为200帧。

3.4 特征提取

(1)手势能量。手势能量体现了各类手势动作过程中的剧烈程度,其计算方法如式(2)所示[7]:

GE=∑Bi=A(|anxi|+|anyi|+|anzi-g|)(2)

其中,A、B分别为手势的起点和终点; anxi、anyi、anzi分别为手势在用户坐标系中x、y、z轴的加速度。

(2)均值。手势动作的加速度信号持续时间通常在1s左右,本文选用均值作为每帧加速度信号的关键特征。均值即一帧加速度信号样本点幅度的平均值:

mean=∑ia(i)/w(3)

其中,a(i)为第i时刻加速度的采样值;w为窗口长度。综合考虑三轴加速度信号,每轴提取一维特征,共得到三维特征,对于一条含60帧的手势加速度数据,可得到60×3维特征。

3.5 基于SVM的训练与识别

本文采用台湾大学Lin Chih-Jen等开发的Libsvm作为SVM算法包。该算法包功能完善,易于使用。经过实验发现,选RBF为核函数,其参数=32时效果最好。

3.6 识别结果

实验邀请10位不同专业背景的被試者参与本文方法的可用性评估,他们的年龄范围在20~30岁,都具有一定的智能手机使用经验。经过试验,本系统的翻动手势识别率在98%左右,甩动手势识别率在85%左右,具体结果如图5所示。

由于翻动的速度较为缓慢,特征向量提取比较完整,因而识别率较高,而甩动的完成速度较快,特征值提取不太完整,因此,在模型训练时机器学习的效果不如翻动的手势。

3.7 应用

手势识别系统开发平台采用Eclipse+ADT插件,为了体现识别效果,对于每种手势识别,都能触发相应的应用,系统界面如图6-图11所示。

3.8 分析与改善

实验发现甩动的手势识别率较低,经过反复实验与思考,发现可能是用户左右手使用手机习惯导致了误差,于是对系统进行改善,对于晃动手势识别增加了左、右手模式的选择。经过改善,甩动的识别率得到改善,可达到90%左右。

4 结语

本文从基于机器学习的手势识别方法着手,利用手机自带的加速度传感器,实现基于手机端特性的手势识别,实验测试结果证明,该方法具有很好的性能。但由于未进行初始姿态识别,因而要求用户必须以相同的初始姿态手持移动终端采集手势移动数据,这是需进一步改进之处。未来,将通过引入其它运动传感器(如陀螺仪、地磁感应计等)获得朝向信息,从而校正不同用户手持移动设备的方向差异。另外,本文特征提取使用的是时域特征,虽然计算量小但识别不精确,造成左右手的分类模式,给用户带来不佳体验。未来可采取时域与频域相结合的特征,增强特征分类效果。

参考文献:

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

[2] 陈文.基于加速度传感器的智能终端手势识别关键技术研究[D].长沙:国防科技大学,2011.

[3] BRYCE KELLOGG,VAMSI TALLA,SHYAMNATH GOLLAKOTA.Bringing gesture recognition to all devices[C].Proceedings of the 11th USENIX Symposium on Networked Systems Design and Implementation,2014.

[4] GUANG CHENG,GUIJIN WANG,XINGGANG LIN.Hand gesture recognition using 3d shape context feature on depth images[J].Journal of Computational Information Systems,2015(11):9-16.

[5] KAI ZHANG.An interaction educational computer game framework using hand gesture recognition[J].Journal of Computational Information Systems,2014,15(10):6339-6346.

[6] 张秋余,王道东,张墨逸,等.基于特征包支持向量机的手势识别[J].计算机应用,2012(12):3392-3396.

[7] NOURA FARRA,GIUSEPPE RAFFA,LAMA NACHMAN,et al. Energy-efficient mobile gesture recognition with computation offloading[C].International Conference on Energy Aware Computing(ICEAC),2011:1-6.endprint

猜你喜欢
手势识别移动终端支持向量机
基于手势识别的工业机器人操作控制方法
手机APP在学生信息化管理中的应用探索
基于支持向量机的金融数据分析研究