张炜宁,王春东*
(天津理工大学a.天津市智能计算及软件新技术重点实验室,b.计算机视觉与系统教育部重点实验室,c.计算机科学与工程学院,天津 300384)
随着移动计算的迅猛发展和逐渐普及,手势识别技术也正日益发展[1]。传统的可穿戴设备交互需要借助外围设备等,给日常生活和工作带来诸多不便,越来越多的用户希望以非接触的方式与智能设备进行交互[2]。非接触式手势识别以一种更方便的方式来实现交互,例如用户可以在不触碰电脑的情况下通过滑动手势来实现网页的翻转以及点击链接。
传统的非接触手势识别分为两类:1)基于专业的硬件设备,例如智能手环。由于可穿戴设备的功率有限,给老年人带来了一些不便。很多场景应用摄像头来进行手势识别,但只能在视线范围内工作[3-7]。2)基于射频设备。基于射频设备的手势识别虽然不需要用户佩戴传感器,并且可以在非视线条件下工作。但前期需要进行大量的数据收集和训练,另外对环境的要求也很高[8-12]。
在本文中,提出了一种智能的基于WiFi信号的非接触手势识别算法(non contact ges,NCGes)。它是一种与室内位置无关的手势识别的菲涅尔区域模型[13]。利用菲涅尔区域模型原理来识别简单手势,再结合隐马尔科夫模型识别复杂手势。在3种不同的环境中进行实验测试。实验结果表明NCGes系统能达到很好的性能。它不需要用户佩戴传感器设备,并且可以在视线范围外工作,能达到十分可观的精确度。
基于视觉的手势识别是指对视频采集设备拍摄到的包含手势的图像序列,通过计算机视觉技术进行处理,进而对手势加以识别。手的检测和相应图像区域的分割是基于视觉的手势识别的关键。所识别的特征可以是手的肤色、形状和运动等。
随着人工智能技术的迅速发展,也有很多学者使用机器学习来实现手势识别。虽然机器学习方法不使用昂贵的专业设备,但是初步的训练和学习非常复杂,工作量很大,对环境也有很高的要求。
随着WiFi设备的发展,很多研究者利用信道状态信息(chanael status information,CSI)来实现手势识别。文献[12]是一个利用CSI来识别WiFi设备下的人类活动的活动识别系统。基于WiFi-CSI的细纹理手势识别系统被提出。
本文通过与现有方法比较,提出了一种基于菲涅尔区域模型的手势识别方法,根据用户在菲涅尔区域模型中的位置变化来实现识别。
本章进行原理分析,首先对隐马尔可夫模型和菲涅尔区域理论进行介绍,并分析人的手势对菲涅尔区域的影响以及隐马尔可夫模型如何应用到手势识别当中。
隐马尔可夫模型(hidden Markov model,HMM)是一种结构最简单的动态贝叶斯网的生成模型,它也是一种著名的有向图模型。隐藏的马尔可夫链随机生成的状态序列,隐马尔可夫模型如图1所示,称为状态序列。每个状态生成一个观测,而由此产生的观测随机序列,称为观测序列。
图1 隐马尔可夫模型Fig.1 Hidden Markov model
隐马尔可夫模型是由马尔可夫链生成随机不可观测的随机状态序列,再由各个状态生成可观测的随机序列。隐马尔可夫模型由初始的概率分布、状态转移概率分布以及观测概率分布确定。假设I是状态序列,O是对应观测序列公式(1)为:
在隐马尔可夫模型中,有几个矩阵变量,分别是状态转移概率矩阵A,观测概率矩阵B,以及初始状态概率向量C,其中状态转移概率矩阵A公式(2)为:
式中,aij=p(it+1=qj|it=qi)是在时刻t处于状态qi的条件下生成状态qj的概率。
初始状态概率向量公式(3)为:
式中,Ci为t=1时刻处于状态qi的概率。
隐马尔可夫模型由初始状态概率向量C,状态转移概率矩阵A和观测概率矩阵B决定,C和A决定状态序列,B决定观测序列,因此隐马尔可夫模型可以用三元符号表示公式为:
状态转移概率矩阵A与初始状态概率向量C确定了隐藏的马尔可夫模型,生成不可观测的状态序列,观测概率矩阵B确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列。
复杂手势的识别正是利用的隐马尔可夫模型的观测性能。本文系统是利用菲涅尔区域模型与隐马尔可夫模型相结合的方法来进行人体复杂手势的识别。
菲涅尔区域是利用WiFi信号的CSI进行室内人体感知的理论基础,是指无线电磁波在传输的过程中,在收发设备之间由电波的直线路径与折线路径的行程差为nλ/2的折点(反射点)形成的,以收发设备为焦点的椭圆区域。
当物体移动时,它将通过一系列菲涅尔区域,然后接收信号功率显示一个连续的正弦波形,其峰值和波谷是通过穿过菲涅尔区域边界产生的。假设相位差φ(λ,d′),是静态矢量Hs(λ)和动态矢量Hd(d′,λ)之间的相位差,可以表示为:
式中,d0是视线长度。当d0和λ为常数时,菲涅尔相位随反射路径长度的变化而变化。
用户在菲涅尔区域中行走时,每经过一个菲涅尔区域的边界时,接收到的信号会以波峰或波谷的形式出现。而当用户沿某一菲涅尔区域的边界行走时,反射信号路径的长度不变,接收到的信号保持稳定。当用户连续走过多个菲涅尔区域边界时,接收到的信号看起来像一个正弦波形,这个正弦波的峰值各自对应于奇/偶菲涅尔区域的边界。另外菲涅尔区具有边界清晰、信号稳定等优点,相比于其他算法有更好的效率。
在本章设计了一个智能的复杂手势识别系统,系统架构如图2所示,系统分为硬件模块和软件模块。硬件模块收集数据集,软件模块进行处理,首先建立手势动作特征数据集并进行信号预处理,然后进行特征提取,分析波峰和波谷的特性。最后是手势识别模块,使用贝叶斯算法进行简单手势的识别,再使用隐马尔可夫模型的维特比算法实现复杂手势的识别。
图2 系统架构Fig.2 System architecture
建立手势动作数据集:利用兼容IEEE802.11 a/g/n的Intel 5 300无线网卡,即可从每个时刻接收到的无线信号数据包中获取一组CSI,每组CSI是以子载波频差为频率采样间隔,对WiFi带宽内的虚拟遗憾最少化算法(countfactual regret minimization,CFR)的K个离散采样值。
实验过程中设置的数据包发送速率为40个/s,连续测试发送60 s,即发送端在信号收集环节共发送了2 400个数据包。接收到数据包后根据动作模板执行得到对应的dat数据,并进行解析。
1)滤波去噪。直接获取到的数据中包含许多干扰数据,不能直接使用。人类行为活动信号的频率集中在0~5 Hz之间,容易受到其他频率信息干扰,去噪的目的就是去除无关信息。使用线性滤波器滤除无关信息。线性滤波处理的输出像素值(i.e.g(i,j))是输入像素值(i.e.f(i+k,j+l))的加权,公式(6)为:
式中,加权系数h(k,l)称为核。
2)平滑处理。去噪后,行为曲线上仍存在一些尖锐的毛刺影响光滑度,因此要进行平滑处理。使用粗糙惩罚算法来进行平滑处理,经过平滑处理的行为信号在特征提取过程中得到的特征会更加真实,出现错误的可能性小。
经过预处理后的数据集不能直接被识别,还需要从手势动作的数据中提取相位差特征。
1)滑动窗口法。为了在提取特征数目有限的情况下尽可能多地获得数据样本,使用滑动窗口法按时间顺序将步态数据划分为不同的集合,更全面地表征某种行为。
滑动窗口法在使用过程中涉及两个关键变量,分别是窗口大小和滑动步长。窗口大小指的是每次特征提取处理的单位数据量,滑动步长等价于完全将一次行为数据处理结束,滑动窗口需要移动的次数,间接反映了行为数据的大小。为了同时满足信号在时、频域采样过程中的数据要求,通常情况下滑动步长与信号的采样频率相等,窗口大小取决于采样频率,其计算公式(7)为:
式中,f为信号的采样频率。设置无线信号发送速率为50个/s,故信号采样速率为50 Hz,窗口大小为128。
2)相位差提取。一旦在相位差提取阶段选择了两个子载波,较长的反射路径将导致较大的相位差。当用户的位置固定时,两个子载波之间的频率差越大,相位差越大。如果两个子载波之间的差异太小,则这两个波形太接近,无法进行差分。但是两个子载波之间的巨大差异将导致相位模糊。因此,子载波的选择尤为重要。
多径效应会导致波形失真和随机相移。因此选择π/2作为最大允许相位延迟来选择子载波,在数学上,可以根据相位差来计算波长λ1和λ2之间的子载波之间的频率差公式为:
如果房间大小是8×12 m,发射机和接收机之间的距离是6 m。当波长Δρ仅限于π/2,允许的最大频率差是6.8 MHz。如果WiFi卡配置为40 MHz带宽,根据802.11n-2009规范,相邻子载波的CSI值为1.25 MHz。又因为单个副载波的菲涅尔区域定位具有局限性,只能识别到用户正在穿过菲涅尔区域,而不能具体感知用户所在位置,因此选择了两个CSI子载波。
先使用朴素贝叶斯分类算法进行简单手势识别。简单手势识别是复杂手势识别的基础,实现简单手势识别后就要利用隐马尔可夫及其相关算法进行复杂手势识别。
隐马尔可夫模型对复杂动态手势具有良好的描述能力。在日常生活中,大部分复杂手势都是由简单手势组合而成的。例如朋友见面时的“挥手”动作,是由“向左挥手”和“向右挥手”两个简单手势动作交替组合成的复杂手势动作。再比如在交谈中需要用到“指向”动作,是由“向前指”和“向后收”两个简单手势动作组合完成的。利用隐马尔可夫模型的特性,就能够根据若干个简单手势动作的组合来识别复杂手势。
首先将数据集划分为训练集和测试集两部分,其中训练集用来训练特征数据得到分类模板,测试集使用训练好的分类模板预测新的动作数据,用来评估分类模型对于没有识别过的新动作的判别能力。本文将80%用于生成转换概率,20%用于测试验证。
1)训练。对复杂手势的识别分为训练和识别两部分。复杂手势识别是HMM中状态序列未知的参数估计问题,也就是说已知观测序列O=(o1,o2,...,oT),估计模型参数λ=(A,B,π),使得在该模型下观测序列概率P(O|λ)最大。由于状态序列未知,因此这可以看作是一个含有隐变量的参数估计问题,解决这一问题的经典算法就是最大期望算法(exceptation maximization,EM),而Baum-Welch算法就是EM算法在隐马尔科夫模型学习中的具体体现。
首先要写出完全数据的对数似然函数关于给定模型参数和观测变量的前提下对隐变量的条件概率分布的期望,称之为Q函数计算公式为:
在本文中,将隐藏状态即下一时刻检测到的手势动作定义为q,本系统共有四种隐藏状态,分别为“左挥”手势、“右挥”手势、“前指”手势及“后拉”手势。可观察到的输出即当前时刻检测到的手势动作定义为v,本系统共有4种输出状态,分别为“左挥”手势、“右挥”手势、“前指”手势及“后拉”手势。状态转移概率即q转变为v的概率定义为a,即从当前手势到另外一个手势的概率。输出手势的概率为b即观察到某手势的概率。
训练过程的实质就是参数重估计算概率并将重估前后产生观测序列时的模型概率差值与阈值相比较的过程,若大于阈值则继续重复训练,若小于阈值则训练结束。
2)识别。训练的目的是得到HMM模型,为识别做准备。识别过程是将待测序列的样本进行分类,然后将待测样本依次放入训练出来的HMM模型,计算每个HMM产生这个待测样本的概率,概率最大的HMM模型即为识别出来的手势。根据识别出来的手势动作,与前一时刻的手势动作组合,即可判断出当前所做的复杂的组合手势动作。上述过程要通过使用维特比(Viterbi)算法来完成。
Viterbi算法实际上解决的是最大化的问题,给定观测状态序列找出最可能对应的状态序列。首先导入两个变量δ和ψ。δ是在时刻t状态为i的所有单个路径(i1,i2,…,it)中概率的最大值,从而可以得到δ的递推公式,算法在设定初始值后不断迭代,终止情况计算公式为:
将Viterbi算法应用于HMM模型,定义HMM模型为λ={π,A,B},A是隐藏状态转移概率矩阵,B是一个模糊矩阵的观测状态,π是初始状态概率分布。则隐藏状态计算公式为:
式中,N为隐藏状态的数量,也就是手势的数量。
观测状态计算公式为:
其中,M为可观察到的状态数,即实验中观察到的特征数。
Viterbi算法的核心是使用递归方法降低计算复杂度,根据公式,为了计算t时刻的概率,只需要知道t-1时刻的概率。所以只需要记录在t时刻引起最大部分概率的状态。
计算目标是找到概率最大的隐藏状态序列,进而判断当前手势动作,并推断出之前的手势动作。复杂手势是根据这两种手势的组合来判断的。
搭建好实验平台后,需要确定系统待识别的手势动作模板,针对每种步态分别建立一系列步态模板。本文的动作模板共3种:“左挥手->右挥手”手势、“前指->后拉”手势和“前指->右挥手”手势。为了方便表示,后文分别用为手势1、手势2和手势3来表示。
系统的性能指标是衡量模型好坏的关键,本文在测试环境中进行了广泛的实验评估,以测试NCGes系统的性能。
1)简单手势识别准确率。4种手势识别性能的混淆矩阵,简单手势识别准确率如图3所示。每行表示用户实际执行的手势,每一列表示分类识别的手势。矩阵中的每个元素对应于行中被分类为列中的手势的分数。
图3 简单手势识别准确率Fig.3 Recognition accuracy of simple gesture
对4种基本手势进行分类,平均准确率为92.7%。对比4种手势识别准确地发现其识别精度相近。其中前指、后拉识别精度较高,左挥手、右挥手识别精度较低。结果表明,垂直切割菲涅尔区域边界的手势动作更容易被识别。
2)复杂手势识别准确率。本文在实验中测试了不同场景志愿者站在不同位置时的3种复杂手势。复杂手势识别准确率如4所示。
图4 复杂手势识别准确率Fig.4 Recognition accuracy of complex gesture
3)不同场景下的准确率。不同环境的识别准确率对比,如图5所示。影响不同实验环境识别性能的因素包括:环境中与所用AP占用相同工作频段的其他路由器造成的同频干扰,以及环境中的移动人员及静止障碍物造成多径效应。因此,教室和会议室的识别准确率相对较高,实验室准确率相对较低。但总体来看,3种环境下的识别准确率区别不大,因此NCGes系统对环境具有较强的普适性和鲁棒性。
图5 不同环境的识别准确率对比Fig.5 Comparison of recognition accuracy in different environment
本文基于隐马尔可夫模型,实现了WiFi环境下的复杂手势识别。并且进行了全面的理论研究和深入的实验分析,实验结果表明,该系统能够在不同的室内环境下实现复杂手势识别,总体识别误差率小于10%,具有较强的智能性和鲁棒性。研究结果验证了本文提出的方法。相信这一技术可以应用于许多室内公共环境中,为行为识别以及人机交互的新应用提供理论依据。