基于Leap Motion的三维动态手势识别研究

2020-01-13 07:48严雨灵陈闵叶吕亚辉
智能计算机与应用 2020年1期
关键词:识别率手势准确率

严雨灵, 陈闵叶, 吕亚辉

(上海工程技术大学 航空运输学院, 上海 201620)

0 引 言

随着计算机技术的不断发展,三维手势作为最近兴起的人机交互手段,已然受到学界的广泛关注。三维手势需要的输入包含深度的信息,目前主要分为基于数据手套的手势识别方法与基于视觉的手势识别方法[1]。基于数据手套的主要有Wiseglove、5DT Glove、Cybertouch等。该方法可以获得精确的手部动作,但其设备价格较高且会产生束缚感,影响使用者的沉浸感[2]。麻省理工学院著名科学家Dertouzos指出“未来的技术应该适应人的需求,而不是与之相反”[3],手势识别技术也应当主动适应客户的需求,而不是要求用户做出太多的变化去适应设备。

1 Leap Motion设备

2010年,微软推出了Kinect for Windows,能够捕捉人体形状、动作,识别和完成面部的跟踪,首次引起了手势识别技术的研究热潮,但其识别精度有限[4]。2013年,Leap Motion 公司发布了Leap Motion Controller小型体感器设备,能够捕捉150°范围视场以及约8平方英尺的交互式空间内的多个物体,其针对手部区域进行识别,感应区间精确到0.01 mm[5],远远超过Kinect的4 mm。本文研究的虚拟维修过程针对手部动作,因此采用Leap motion设备进行数据的采集[6]。

2 手势数据采集

本次研究中,实验过程设计采集5个人的4组动态手势,分别为握拳转动、手指张开的转动、抓取以及推压,用以保证算法的可靠性。Leap Motion采集到的数据主要包括掌心数据handdirection、handpalmposition(用C表示),手指数据fingerposition(用Fi表示,根据设备设定i=0,1,2,3,4)。

由于每个人的手型各不相同,因此本文采用指尖至掌心的距离作为特征值,并进行归一化处理以增强适应性和鲁棒性。研究拟采用指标简述如下。

(1)归一化因子。其数学公式为:

(1)

(2)距离D。其数学公式为:

(2)

组合各个特征值,得到特征值向量集V=[D1,D2,D3,D4,D5,F1,F2,F3,F4,F5]。单个手势将每一帧采集到数据的特征向量集合并,得到新的特征向量集进行后续操作。采集过程如图1所示。

图1 动态手势识别试验

3 手势识别方法

3.1 支持向量机

1995年,Vapnik利用统计学习理论作为基础,提出了支持向量机。最初该理论的提出是针对模式识别中一对一的分类问题,在此基础上发展成多分类问题[7]。

设样本集为(Xi,Yi),i=1,…,n,x∈R,y∈{+1,-1}。

对于线性可分情况,样本集由一个超平面区分开,把这个超平面记为wx+b=0。而最优的超平面要求不但要将两类数据正确地分开,还要使这两类的间隔达到最大。构造最优超平面的问题可以转变为在式(4)的约束下求式(3)的最小值的问题。此时用到的公式为:

(3)

s.t.yi(w·xi+b)≥1,i=1,2,…,N.

(4)

由于一部分样本点会偏离较远,导致线性不可分。因此,引入了松弛变量(非负)来允许部分样本点在一定范围内的偏离。惩罚系数C用来控制松弛变量大小,从而得到更准确的分类平面[8]。

针对非线性分类问题,SVM将问题转化为高维特征空间的线性问题,从而求取最优线性分类平面。由核函数代替最优分类超平面的点积,从而免去了复杂的高维空间运算。常用的核函数主要有线性核函数、多项式核函数、径向基核函数等。

本文采用台湾大学林志仁教授开发设计的一个快速有效的SVM软件包进行手势数据的分类识别。其中提供了编译好的执行文件,通过Mex编译器即可在Matlab平台中使用,代码开源,而且也提供了针对具体问题优化的空间。

3.2 概率神经网络

概率神经网络由Specht首先提出,并以径向基函数网络发展而来,就是一种前馈型神经网络(Probabilistic Neural Networks,PNN)。通过采用多变量Parzen窗估计不同类的概率密度函数。特点有训练时间短、结构固定,能产生贝叶斯后验概率输出,具有强大的非线性识别能力[9]。

径向基网络和竞争神经网络共同组成的概率神经网络总共有3层,分别是:输入层、径向基层和竞争层(输出层)。竞争层的输出结果就是整个网络的最终分类结果,输入的样本向量的个数与径向基层中神经元的个数相同,训练样本数据的分类数等于输出层的神经元个数,径向基层的神经元具有阈值。利用输入向量以及对应的期望类别,构建PNN网络对输入向量进行正确分类。数据以及相应的类别通过向量设计网络,再将数据回代得到结果。

4 动态手势识别实验

4.1 实验准备

本文采用支持向量机和概率神经网络两种算法对动态手势进行识别,在Matlab平台中,采用分类算法进行手势识别的具体流程如图2所示。

图2 手势识别流程图

在进行训练前,须归一化处理数据,从而为后续处理做好准备并保证程序运行时收敛更快。在过程中需用到如下公式:

(5)

其中,Xi表示特征X的某个值;max(x)表示该特征的最大特征值;min(x)表示该特征中的最小特征值。

4.2 结果分析

采用Libsvm和PNN进行分类试验,两两区分,标签设为1和2。单个手势样本总量为1 000组,按8:2的比例确定训练集和测试集样本,即每一种手势中的800组用作训练集样本,200组用作测试集样本。

本文采取隔50 ms取一次数据的形式记录手势数据,再合并成为样本特征,从而提高数据的有效性并使运算量可控。一对一手势分类结果见表1,一对多手势分类结果见表2。

表1 一对一手势识别效果

一对一的实验结果表明,线性核函数可达到89.5%的识别率,而多项式核函数在达到89.0%的优良识别率下运行时间最短。同时分析指出,PNN神经网络经过高斯参数的优化后最高可达到95.0%的识别率,明显优于支持向量机算法。

表2 一对多手势识别效果

一对多的实验结果表明,多分类的识别率和两类分类相比较低,但总体规律不变。SVM算法中采用多项式核函数识别率较高,而PNN神经网络经过高斯参数的优化后识别率仍明显高于支持向量机算法。

4.3 PCA算法处理

为了进一步提高识别效果与降低PNN神经网络的运行时间,采用了主成分分析(PCA)对特征值进行降维操作,旨在排除噪声数据的干扰从而提高准确率。实验结果表明,SVM算法的准确率有所提高,PNN算法在保证准确率的情况下由于PCA的降维作用使运行时间大幅减少。一对一使用后结果对比如图3所示。一对多使用后结果对比如图4所示。

(a)准确率

(b)运行时间

(a)准确率

(b)运行时间

5 结束语

本文基于Leap Motion传感器采集了不同人的4组三维动态手势,采用SVM模型和经过优化的PNN神经网络模型进行识别。本文得到的研究结论可分述如下:

(1)对于三维动态手势,PNN神经网络可以达到更高的准确率。

(2)多类手势分类的识别率与两类手势分类相比较低,但总体规律不变。

(3)动态手势识别前期采用PCA处理数据对SVM准确率有所提高,且可以大幅减少PNN的运行时间。

未来的工作可以研究新的分类算法,进一步提高其识别率,并探索在各个领域的应用等。

猜你喜欢
识别率手势准确率
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
挑战!神秘手势
胜利的手势
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展