面向移动增强现实的手势交互方法

2018-05-24 06:44梁欢陈一民李德旭黄晨
微型电脑应用 2018年5期
关键词:手势灰度卷积

梁欢, 陈一民, 李德旭, 黄晨

(上海大学 计算机工程与科学学院,上海 200444)

0 引言

增强现实(Augmented Reality,AR)技术是在虚拟现实(Virtual Reality,VR)基础上发展起来的,是将计算机生成的虚拟场景融合到真实世界场景中,强化用户对现实的感观和认知,实现对现实世界的增强。随着移动设备硬件的提升和移动通信技术的发展,手持设备已经逐步成为了移动增强现实的理想平台,移动增强现实(Mobile Augmented Reality,MAR)也应运而生。

手势是日常生活中人与人之间相互交流的一部分。以“手势”作为输入图像信息,完成人与计算机的智能交互功能,成为感知用户界面的重要组成部分。这也使得手势识别成为人机交互领域中的一项关键技术。而近年来3D摄像头的产生使手势识别的应用更加普及与便捷。

手势识别的方法有隐马尔科夫模型(HMM)[1]、动态时间规整(DTW)[2]、支持向量机(SVM)[3]、3D卷积神经网络(3DCNN)[4]、等。这些算法在手势识别方面都有其各自的优点,但这些算法或因其算法复杂度较大,实时性比较低;或因训练样本比较复杂及样本集较大,训练非常耗时;或因计算量大、计算速度较低,手势识别速度与识别率均比较低等问题,在移动端都不太适用。

针对以上问题,本文提出了一种面向MAR的基于深度学习和隐马尔科夫模型的手势交互方法。首先通过leap motion采集手势视频序列,提取人手的骨骼数据、灰度深度图像数据,以弥补移动终端缺乏深度摄像头的缺点;随后采用DBN和3DCNN对提取到手势数据进行训练,得到高维的特征数据;最后,将高维数据特征融合为概率,并作为隐马尔可夫模型的观测概率对手势进行训练和识别,以提高手势识别的效率。该方法利用高性能工作站处理手势信息,然后通过无线局域网将数据发送给移动端,以降低移动端的负荷量,解决了移动端的计算能力较低的问题。

1 基于深度学习和隐马尔可夫模型的手势交互方法

1.1 相关理论

深度置信网络(Deep Belief Network,DBN),是一种生成模型,通过训练其神经元间的权重,可以让整个神经网络按照最大概率来生成训练数据[5]。在本文中,不仅可以使用DBN识别特征、分类数据,还可以用它来生成数据。

3D卷积神经网络(3D Convolutional Neural Networks,3DCNN),是一种深度神经网络模型,可应用于目标识别等应用环境中,对图像序列的目标识别和人的行为识别或动作识别进行检测[6]。3D卷积是在2D卷积的基础上加上时间的维度,对每一帧加入时间维度的图像进行CNN处理,以此来获取手势的运动信息[7]。

隐马尔可夫模型(Hidden Markov Model,HMM),是在Markov链的基础上发展起来的[8],通过一组概率分布相联系,是一个双重随机过程,其中一个随机过程是描述了状态和观察值之间的统计对应关系;另一个则Markov链,描述状态的转移[5]。在连续的情况下,该过程的一种状态序列会根据当前状态的随机函数产生一个观察值。每一个转移都有一个转移概率和一个输出概率。

1.2 手势特征

本文定义的动态手势和静态手势,每个手势都会带有骨骼特征与灰度深度图像特征,因此,为了保持动态手势的空间和时间不变性,以更完整地表达手势定义。本文基于手势一般具有对称性的特点,对数据进行如下预处理:只关注位置较高的手,如果是双手做动作,做一个镜像再进行特征处理,为了方便图像处理,本文使用右手视角。经过数据处理后,可以有效地减少实验数据量,降低实验的复杂度,此外,将深度图像通过掩模去掉背景可以有效地减少噪声。为方便实验,我们将数据进行归一化处理,对于深度图像使用Z轴归一化即将深度信息去除平均值,而对于灰度图像则采用标准图像倒数进行归一化。

在骨骼特征的提取中,只考虑手的关节活动变化。为了捕捉到手势的动态性,本文对骨骼的移动距离在时间上进行求导处理,如式(1)。

(1)

1.3 手势建模

本文的模型是基于数据驱动学习的,如图1所示。

图1 手势模型

1.3.1 模型建立

首先,将骨骼特征信息作为DBN的输入, DBN整个训练过程分为两步:第一步,使用贪心的逐层无监督学习对堆叠的限制玻耳兹曼机(Restricted Boltzmann Machine,RBM)层进行训练[9];第二步,在DBN的顶层使用softmax分类器层作为输出层,转化成概率作为HMM的输入。对于给出的特征向量f,DBN模型将会产生相应的高维的数据特征。

RBM由隐藏单元和可见单元构成。其中隐藏单元和可见单元都是二元变量。在一个RBM中,v表示所有的可见单元,h表示所有隐藏单元,给定模型参数θ的情况下,可见单元和隐单元的联合概率分布用能量函数Ev,h;θ定义为式(2)。

(2)

(3)

其中wij表示可见单元vi和隐单元hj之间的对称连接权值,bi和aj表示偏置项,I和J是可见单元和隐单元的数目。

其次,采用3DCNN对图像的灰度深度特征进行训练,最终得出相应的高维特征数据。

3DCNN的结构包含卷积层、池化层和全连接层,3D卷积层是由3D卷积核对连续帧进行卷积实现的,具体实现结构,如图2所示。

图2 3DCNN结构图

将4种上下文相关的帧图像堆积成大小为64*64*4的输入,第一层是由5*5的卷积核生成的32幅卷积图像组成,卷积层之后跟着的是宽度为(2,2,2)的3D池化层,所有卷积层的输出会作为大小为1024的全连接层的输入,最后输出层会输出概率序列作为HMM的输入。本文中使用右手视角,仅对图像的灰度信息进行处理,这样可以有效地减少实验数据量。

pH1:T,X1:T=pH1p(X1H1)

(4)

其中pH1是初始隐藏状态下的先验条件,p(XtHt-1)是对允许状态转换及其概率建模的过渡转换,p(XtHt)是观测概率。

最后,HMM框架用于手势分割和识别,对每个给定的手势a∈A,引入一组状态Ha来定义该手势的马尔可夫模型。由于本文的目标是捕获所执行手势的速度变化,所以p(XtHt-1)设置转换矩阵:当在时间t处于特定节点n时,转换到时间t+1,可以维持在同一个节点(较慢),转换到节点n+1,或转换到节点n+2(较快)。因为HMM的图是有向树,所以使用维特比算法,可以精确有效地搜索路径空间,找到最可能的路径。

2.3.2 模型求解

首先,从获取到的骨骼数据中提取出骨骼特征,对于给定的特征向量f,使用DBN模型预测观测概率,步骤如2.3.1。DBN随后以监督的方式进行微调,以预测观测概率。DBN的每个层的节点数是[Nf,2 000,2 000,1 000,NH]。

RBM是无向图模型,涉及可见和隐藏变量,相邻层的隐藏单元和可见单元之间对称连接,但在同一层内的单元之间没有连接。在大多数情况下,RBM模型中的单位是二进制随机变量。然而,在本文的情况下,第一层中的可见单元包含骨架特征f∈RNf的向量,其值是连续的。为了能够处理这些数据,采用高斯伯努利RBM(GRBM)[10]。标准RBM第一层f对隐藏二进制随机单元h∈{0,1}F的能量项由公式(5)给出式(5)。

(5)

其中θ=W,b,a是自由参数,Wij为可见单元i和隐藏单元j之间的对称关系,变量bi和aj分别为可见单元和隐藏单位的偏差项。推理和生成建模所需的条件分布由二进制隐藏单元的传统逻辑函数g和连续单位的正态分布N给出,如式(6)和式(7)。

(6)

(7)

本文采用随机最大似然的方法对DBN进行逐层训练。DBN初始化时使用的是提前预训练的结果。初始化的原因是为了防止陷入局部最小的问题中,与此同时,初始化也可以有效提升生成模型的能力。

然后,我们根据leapmotion提取到的灰度图像数据提取相应的灰度特征。3DCNN通过预处理产生四个分辨率为64×64的视频样本(身体和手的灰度和深度图像)。此外,通过使用随数据提供的自动生成的分割掩模去除背景并应用中值滤波,减少了深度图中的噪点。

最后,我们将前两个过程生成的数据结合起来融合成观测概率作为HMM的输入。采用中期融合的方法,利用每个模块(相应网络的倒数第二层的Vs和Vr节点,即顶层输出之前的层表示)的高级表示。通过在2 024个隐藏单元的一层中连接这两个层,以平均的方式进行融合。然后,直接从所得到的网络中获得交叉模式的观测概率。整个融合过程如图1图所示。

2 实验结果

2.1 实验环境

实验软件开发平台包括VS2016、Vuforia for Unity工具包、Leapmotion_Core_Assets以及相关的Unity开发包;手势训练在工作站完成,配置为INTEL_XEON E5 2623 V4*1颗 4cores,2.6GHz,内存64G;移动AR环境为DELL Venue8 784001平板,其操作系统为Android5.1,后置摄像头像素为800万;手势交互使用leapmotion,放置在平板摄像头的正下方。

2.2 手势识别实验

2.2.1 手势定义

1) 命令手势定义

根据手势的自然性特征,我们定义9个命令手势,仅涉及单手的动作,包含手掌的运动和手形的变化。定义的命令手势分为静态和动态手势,其中静态手势的掌心位置和手形不发生变化;动态手势的掌心位置发生变化。具体定义,如表1所示。

表1中,(G1)5指伸展静止不动表示某一状态开启;手指朝前画圆(G2)表示启动模型walk动作;手指朝前画三角形(G3)表示启动模型run动作;手指朝前画矩形(G4)表示启动模型jump动作;手掌朝下向上挥动(G5)表示启动模型winpose动作;手指朝下画“b”(G6)表示启动模型KO动作;手指朝左画“m”(G7)表示启动模型damage动作;手掌朝左向右挥动(G8)表示启动模型hit动作;握拳(G9)静止不动表示某一状态关闭。

表1 命令手势定义表

2) 交互动作定义

为了提供一种直观、自然、便利的手势交互方式与虚拟模型进行交互,我们针对命令手势特定义7种交互动作,如表2所示。

表2 交互动作定义表

2.2.2 手势识别

本文共涉及到9个手势,共两种:静态手势和动态手势,每种手势分别采集200个测试样本进行测试,结果如表3所示。

表3 不同算法下动态手势识别率

表3中显示单独使用HMM方法识别手势的识别率明显低于本文所提出的方法,由此可表明通过隐马尔可夫与深度学习相结合的方法有效地提高了手势识别率。

实验过程中,采用留一交叉验证法对手势进行正确率的验证,从表2中可以看出,DL-HMM各手势识别率均高于传统的HMM方法,其中静态手势高出2%,动态手势高出1.93%;对于SVM,静态手势高出1.5%,动态手势高出1.15%;对于3DCNN,其中静态手势高出0.75%,动态手势高出0.86%;对于RNN,其中静态手势高出1.25%,动态手势高出1.14%。因此,DL-HMM有效地提高了手势识别率。

2.2.3 手势交互实验

该实验的目的是检验手势交互的效果与准确性,并且将基于传感器的手势交互方法应用到移动端,实现对模型的操作。实验开始后,打开实现本文算法的应用,并将标识置于摄像头的范围内。手机获取到注册到标记上的模型,通过本算法,利用leapmotion对手势的获取,注册到标识位置的模型会产生相应的动作,实验结果,如图3所示。

(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)

图3 手势交互效果图

图3显示了部分手势与模型的交互过程,从中可以看出,当右手五指自然伸展,手掌朝下静止不动,模型状态启动,模型呈初始状态如图3(a)所示;当右手手指朝前画三角形,启动模型run动作,如图3(b)和(c)所示;当右手手指朝前画圆,启动模型walk动作,如图3(d)、(e)和(f)所示;当右手手掌朝下向上挥动,模型启动模型jump动作,如图3(g)、(h)和(i)所示;当右手手指朝画“m”,启动模型damage动作,如图3(j)和(k)所示;当右手握拳静止不动,模型状态关闭,模型停止动作,如图3(l)所示。

4 总结

本文在移动AR环境下提出了基于深度学习和隐马尔可夫相结合的手势识别算法实现了移动端的动态手势识别和交互。实验表明,本文所提出的方法可有效地提高了手势识别率,同时,在交互实验中,通过采用leapmotion弥补了移动终端缺少深度信息的弱点,提升了交互的准确性。通过引入手势识别可有提升系统的执行效率,提升了交互的体验感。由于移动终端处理能力的限制,因此,为了保证手势交互的执行效率,我们采用工作站处理手势信息,通过无线局域网交换手势信息,降低移动终端的负荷。

参考文献

[1] 严焰, 刘蓉, 黄璐,等. 基于HMM的手势识别研究[J]. 华中师范大学学报(自科版), 2012, 46(5):555-559.

[2] 李凯, 王永雄, 孙一品. 一种改进的DTW动态手势识别方法[J]. 小型微型计算机系统, 2016, 37(7):1600-1603.

[3] 石曼银. 一种基于SVM向量机的手势识别算法[J]. 电子测试, 2013(16):24-25.

[4] 苗启广, 李宇楠, 徐昕. 基于3DCNN的大规模视频手势识别研究[J]. 中兴通讯技术, 2017, 23(4):9-13.

[5] Bengio Y, Guyon G, Dror V, et al. Deep learning of representations for unsupervised and transfer learning[J] Workshop on Unsupervised & Transfer Learning, 2012(7):1-20.

[6] Zhou N, Du J. Recognition of Social Touch Gestures Using 3D Convolutional Neural Networks[C]// Chinese Conference on Pattern Recognition. Springer Singapore, 2016:164-173.

[7] 易生, 梁华刚, 茹锋. 基于多列深度3D卷积神经网络的手势识别[J]. 计算机工程, 2017, 43(8):243-248.

[8] Rabiner L R. A tutorial on hidden Markov models and selected applications in speech recognition[J]. Readings in Speech Recognition, 1990, 77(2):267-296.

[9] Hinton G E, Osindero S, and Teh Y-W, “A fast learning algorithm for deep belief nets,”[J]. Neural computation, 2006,

[10] Torres-Valencia C A, García H F, Holguín G A, et al. Dynamic Hand Gesture Recognition Using Generalized Time Warping and Deep Belief Networks[C]// International Symposium on Visual Computing. Springer, Cham, 2015:682-691.

猜你喜欢
手势灰度卷积
采用改进导重法的拓扑结构灰度单元过滤技术
基于3D-Winograd的快速卷积算法设计及FPGA实现
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
卷积神经网络的分析与设计
挑战!神秘手势
从滤波器理解卷积
V字手势的由来
基于傅里叶域卷积表示的目标跟踪算法
胜利的手势
基于最大加权投影求解的彩色图像灰度化对比度保留算法