基于轨迹模板匹配的动态手势识别方法*

2017-07-31 21:57王浩宇漆晶方天恩刘德庆
单片机与嵌入式系统应用 2017年7期
关键词:高斯分布手势卡尔曼滤波

王浩宇,漆晶,方天恩,刘德庆

(重庆邮电大学 移动通信技术重庆市重点实验室,重庆 400065)

基于轨迹模板匹配的动态手势识别方法*

王浩宇,漆晶,方天恩,刘德庆

(重庆邮电大学 移动通信技术重庆市重点实验室,重庆 400065)

首先采用基于混合高斯模型与椭圆肤色模型进行手势分割,分割出手势区域,使用卡尔曼滤波器进行手势跟踪,获得手势中心点的位置。在此基础上,记录各帧中心点位置,得到运动轨迹,利用提出的轨迹模板匹配方法对动态手势进行识别。该方法利用基本的几何特征便可完成手势运动轨迹的设置与识别,无需特征选择或训练样本的搜集。最后,采用基于Zynq-7000的Zedboard平台对该算法进行实现,并采用HLS硬件加速工具进行算法加速。实验结果表明,该算法可实现较精确的手势识别,接受弹性的输入采样,识别正确率在95%以上,且通过硬件加速后,可在嵌入式平台中实时识别,具有较好的实时性。

轨迹模板匹配; 卡尔曼滤波; 椭圆肤色模型; 硬件加速

引 言

随着科技的发展与进步,计算机与嵌入式技术也随之迅猛发展,当前,嵌入式技术朝着更高速、更高效、并行化、更高可靠性方向飞速发展的同时,也向着更自然、更简洁、更舒适的人机交互领域阔步前进。特别是在互联网、游戏、数码产品、AR、VR产业中,可提供更好的人机接口,方便人们与计算机更加自然和谐的沟通与交流,成为了计算机商业领域中一个具有经济效益的发展方向。

在人机交互中,技术的发展经历了键盘、鼠标、操作杆、手柄等交互方式,还经历了佩戴可穿戴传感设备[1-3]、肢体交互方式,再到当前基于视觉的人脸、手势[4-6]、指纹、触摸屏等交互方式和眼球、瞳孔交互等前沿交互方式。对于智能控制和视频监控等领域,动态手势识别更具有重要的意义。基于实时摄像头的动态手势交互,因具有方便、易操控等特点,可以直接用裸手在摄像头前完成相应的手势操作,具有自然性、可移植性等特点,因而获得了学术界和工业界的较大关注。目前在主流单目手势识别中,手势可分为静态手势与动态手势两大类。在静态手势中,手势的形状、轮廓、纹理等信息指示了静态手势的意义,而在动态手势中,手势的意义包含在移动速度、方向、轨迹中。

在当前主流的手势识别研究中,研究者着重于对手势的静态特性或动态特性进行研究、识别。如参考文献[7]中,研究者通过对手势的几何不变矩作为手势的特征向量进行静态手势识别,参考文献[8]中,研究者通过对手势的几何特性作为特征进行静态手势识别。在参考文献[9]中,研究者采用颜色粒子滤波器和HMM(隐马尔可夫模型)提取手势的重心,并通过重心轨迹训练HMM模型进行手势的动态识别。

本文采用手势的静态几何特性与动态轨迹相结合的方法,对手势进行分析。首先将摄像头图像进行肤色分割采用运动背景检测相结合的手势检测方法,而后通过轮廓提取,采用凸多边形拟合、几何特征提取的方式提取手势特征。同时,检测手势重心运动轨迹,得到手势运动轨迹,而后将手势识别问题转换为轨迹识别问题,通过基于轨迹匹配识别算法对手势进行识别,并在Zynq-7000平台上面实现该算法,并对算法进行硬件加速,保证识别的实时性。

1 手势分割

1.1 基于混合高斯模型的运动检测

本文采用混合高斯模型进行运动检测,其基本思路是对视频图像的每个像素点建立多高斯混合模型。即对视频图像的每个像素点建立多高斯混合模型,同时处理多种背景变化,且模型的参数可根据EM(最大期望)算法进行自适应更新[10]。

设任意像素点的像素值为P(x,y,i),则任意像素点的像素值可表示为:

(1)

用K个独立的高斯分布联合建立模型来表示这些历史像素值,像素值Xi为当前像素值的概率为:

(2)

(3)

混合高斯模型采用EM算法进行参数更新。当获得新的观察值Xi后,分别判断该观测值Xi和混合高斯模型的K个高斯分布之间是否存在匹配。若当前帧的像素Xi与第i个高斯分布满足式(4)所示关系时,则认为该像素值Xi与第i个高斯分布匹配。

(4)

如果当前像素Xi与第i个高斯模型匹配,则相应地对第i个高斯分布的参数进行更新,参数更新公式如式下所示:

(5)

如果当前像素Xi未与任何高斯分布模型匹配,则删除权值最小的高斯分布,用新的高斯分布来进行替代。新高斯分布均值初始化为Xt,方差∑初始化为一个较大的值,权值ω0初始化为一个较小值。对于当前时刻未匹配的高斯分布保持均值和方差不变,权重则按照式(6)进行衰减。

(6)

(7)

其中,τ表示权重阈值,其物理意义是所有背景高斯模型权重之和的最小值。

图1 肤色椭圆模型

同时,采用基于(K-L)变换的肤色椭圆模型对输入图像进行肤色分割[11]。根据对肤色的统计,在YCrCb颜色空间中,符合大部分人肤色分布的CrCb值在如图1所示的椭圆范围内部,通过判断像素点的值与椭圆模型范围的关系,可较准确分割得到肤色分布区域。通常情况下,用户进行手势操控时,手的运动幅度最大,因此,通过运动检测得到的二值图像与通过肤色分割得到的二值图像相与,而后对处理后图像进行形态学滤波,可得到比较完整的运动肤色手势二值图。

2 基于特征提取的手势跟踪

2.1 手势轮廓特征提取

通过对得到的运动肤色手势二值图进行轮廓提取,进而可以得到手势候选轮廓。在得到手势候选轮廓后,由以下几个条件进行预处理,去除非手势轮廓,进而得到手势分割结果。

① 去除肤色区域面积小于2 000像素的轮廓。考虑到采用手势进行人机交互时,用户距离机器较近,且轮廓面积过小将导致特征丢失,难以保证指尖的正确检测,故去除面积过小轮廓。

② 待选手势轮廓区域的长宽必须大于100像素,防止某些满足条件(1)的狭长区域被误判为手势轮廓。

③ 待选手势轮廓区域的长(height)宽(width)比σ需满足式(8):

(8)

④ 手指及手掌部分完整出现在视频窗口中。

通过以上条件,得到手势轮廓后,可通过求取图像重心的方式得到近似手势重心。手势重心o(x,y)按式(9)计算:

(9)

设图像像素分布函数为f(x,y),则图像的一阶矩、二阶矩分别为m00=∑∑f(x,y),m10=∑∑xf(x,y),m01=∑∑xf(x,y)。

同时,通过对手势轮廓进行凸多边形拟合,得到手势外接凸多边形,并通过凸缺陷检测,得到手指端点与位置,记录手指个数,作为手势静态特征进行保存。

2.2 基于卡尔曼滤波器的跟踪方法

由于摄像头帧率、噪声、手势移动速度过快等原因,在手势采集时可能出现中途手势丢失的情况,故引入卡尔曼滤波器对手势重心进行跟踪,防止手势移动过程中出现轨迹中断。

基于卡尔曼滤波器的跟踪过程是估计目标当前时刻和未来任意时刻的过程[12]。将运动目标的运行状态模型作为一个卡尔曼滤波器模型,根据目标的运动历史预测它在下一图像序列中的位置信息,减小目标的搜索区域,加快目标跟踪的速度,适用于与其他跟踪方法结合来使用。

卡尔曼滤波器将高斯和线性系统的状态向量和预测值之间的均方误差达到最小,动态系统的状态用测量值进行估计修正,提高状态估计的可靠性。由于视频图像序列获取较快,普通USB摄像头帧率大约在30fps左右,单位时间内可将目标的运动近似认定为匀速运动,因此可以采用适用于线性系统的卡尔曼滤波器进行跟踪估计。

卡尔曼滤波器系统状态方程和观测方程为:

(10)

(11)

根据卡尔曼滤波原理,选择手势的质心位置进行跟踪。视频图像中手势的质心坐标为o(x,y),手势质心的运动矢量为(vx,vy)。设定手势运动状态的状态向量为:

(12)

选取观测向量Z=(x,y)T,确定系统的状态转移矩阵A和观测矩阵H分别为:

(13)

(14)

由首次检测到的手势质心作为初始值,利用式(10)和式(11),根据观测值Z(k)在均方误差最小情况下,对当前状态X(k)进行修正估计,得到最优估计值,同时根据状态方程预估下一时刻的状态变量,然后再进行修正,得到运动手势质心的最优估计值,作为手势运动的轨迹点集,为手势识别做好准备。

3 基于运动轨迹与静态手势特征的手势识别

常用手势识别算法一般采用HMM模型对手势运动进行识别[13-14],或采用分类学习算法,如Haar特征结合Adaboost算法训练进行手势识别[15],或基于深度学习,如CNN算法等进行大量数据训练的手势识别算法[16]。这些算法需要大量的训练数据集,对手势进行扩展时需要大量手势数据库,扩展性较差。本文提出一种基于轨迹匹配的手势识别方法,具有一次录入,便可作为模板进行识别的特性,避免了大量采集数据样本的问题,具体如下所述。

通过手势跟踪得到的手势位置点集,通过本文提出的算法进行处理,对手势移动轨迹进行识别,处理流程如图2所示。具体算法步骤如下所述:

(1) 对路径轨迹重采样

由于手势移动速度的差异性,以及手势轨迹采集频率不一,为保证后续处理的可靠性,首先对轨迹进行重采样。设轨迹的初始点集中,点个数为M,算法处理中,默认重采样点个数为N。为进行重采样,我们首先计算M个轨迹点之间的距离,而后将该距离均分为(N-1)段,每段长度为I,而后沿着轨迹段矢量方向进行线性差值,得到N个重采样轨迹点。在实际使用时,N=64效果较好,如图2(b)所示。

(2) 轨迹点旋转

对于两个轨迹之间,当前没有有效的最邻近旋转解决方案来将一个轨迹与另一个轨迹对齐。对于轨迹点旋转,为尽量保证实时性,避免比较复杂的算法,如通过矩估计进行旋转等旋转角计算方法,我们采用了一种较为简单的方法,定义从图心到第一个轨迹点的矢量角作为指示角,首先寻找指示角,而后通过旋转,将指示角旋转至0o,如图2(c)所示。

(3) 轨迹缩放

为保证准确识别,需要对轨迹进行进一步标准化和规范化。在轨迹点旋转得到经过处理的点集后,通过非均匀缩放方法将轨迹缩放至指定大小的正方形区域中,如图2(d)所示。经过该步骤可以消除点集C与模板Ti对应点之间由于长宽比不同而产生的距离,仅剩下由旋转导致的距离。

图2 轨迹点集处理流程

(15)

(16)

(4) 寻找最优角度及匹配

(17)

(18)

在本文具体设计中,采用检测到手张开(五指均可检测到)作为轨迹起始,握拳状(检测到无手指)作为轨迹结束进行轨迹采集,而后进行轨迹识别。

本文采用Digilent公司设计的以Zynq-7000芯片为核心的Zedborad开发板作为硬件平台对该算法进行实现,为进行图像采集,本文采用USB 2.0接口、分辨率为640×480的摄像头模组进行图像采集,Zedboard提供的HDMI接口作为显示接口进行结果验证,内部采用AXI总线进行软硬件数据交互。具体结构图如图3所示。

图3 处理平台内部结构图

在本文的设计中,图像数据由USB摄像头采集得到,而后通过USB接口传输至开发平台的DDR内存中,而后,通过OpenCV图像处理库载入图像,通过Xilinx公司提供的HLS工具与Zynq-7000内置AXI端口将图像传输至逻辑模块部分进行硬件并行处理加速,从而加速图像滤波、特征提取等操作,使该算法满足嵌入式实时处理的需求。

5 实验结果与分析

5.1 手势分割结果检测实验

运动检测结果如图4所示,对比图4(a)中的输入图像可知,该方法可较完整地分割出手势,通过膨胀、腐蚀等形态学处理方法后,可去除较小的空洞,较准确地得到包含完整手势的候选区域。

图4 手势分割检测结果

5.2 手势特征提取与跟踪检测实验

图5 手势特征提取

手势特征提取与跟踪检测如图5所示,由实验结果可知,卡尔曼滤波可较准确跟踪手势中心,凸包络缺陷检测方法与几何特征提取可较准确地得到手势的静态信息。

图5中,手指边缘点为检测到的手指端点所在位置,连线汇聚点为手势中心,矩形方框为手势跟踪位置。

5.3 手势识别实验

本文设计了6种手势模板进行识别,具体手势如表1所列,识别结果数据统计如表1所列。由统计数据可看出,本论文所实现的手势识别算法可较准确地对手势进行识别。

表1 手势命令及实验统计

5.4 硬件加速实验

Xilinx提供的EDA工具Vivado集成了HLS(High-Level Synthesic,高层次综合)工具,可将C,C++或System C算法转换为RTL(Register transfer level)实现,并将其实现在FPGA中。HLS工具提供了部分OpenCV功能函数的并行实现方法,可方便地进行视频、图像处理的硬件加速。

在本设计中,首先在Zynq-7000平台上移植Linux操作系统、Linaro文件系统与QT库,并移植OpenCV图形库,采用640×480分辨率USB摄像头进行视频采集,并在视频处理阶段加入HLS对色彩空间变化、图像滤波等预处理步骤进行硬件加速。

通过对该算法在PC、Zynq-7000内部ARM Cortex-A9核心中实现,以及在Zynq-7000系统中通过HLS工具进行算法加速优化后,各平台的平均处理时间如表2所列。可见,在Zynq-7000平台上借助HLS硬件加速工具优化算法后,算法的实时性得到较大的提高。

表2 不同平台处理时间对比

结 语

参考文献

[1] Han Youngmo.A Low-Cost Visual Motion Data Glove as an Input Device to Interpret Human Hand Gestures[J]. Transactions on Consumer Electronics, 2010, 56(2): 501-509.

[2] Iwai Y, Watanabe K, Yai Y, et al. Gesture Recognition Using Colored Gloves[C]//Proc of the 13 International Conference on Pattern Recognition, USA, 1996: 662-666.

[3] Wang R Y, Popove J. Real-Time Hand-Tracking with a Color Glove[J]. ACM Transactions of Graphics, 2009, 28(3): 1-8.

[4] Bretzner L, Laptev I, Lindeberg T. Hand Gesture Recognition Using Multi-Scale Colour Features, Hierarchical Models and Particle Filtering[C]//Proc of the 5 IEEE International Conference of Automatic Face and Gesture Recognitions, USA, 2002: 423-428.

[5] Stenger B. Template-Based Hand Pose Recognition Using Multiple Cues[C]//Proc of ACCV’06, India, 2006: 551-560.

[6] Sha Liang, Wang Guijin, Yao Anbang, et al. Hand Posture Recognition in Video Using Multiple Cues[C]//Proc of the 2009 IEEE International Conference on Multimedia and Expo, USA, 2009: 886-889.

Dynamic Hand Gesture Recognition Based on Track Template Matching

Wang Haoyu,Qi Jing,Fang Tianen,Liu Deqing

(Mobile Communication Technology Key Lab,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)

Firstly,the mixed Gaussian model and ellipse skin color model are used to segment the gesture region and then Kalman filter is used to track gesture,then the center position of the gesture is obtained.On the basis,the center position of each frame is recorded,and then the moving track is gotten.Next,the proposed track template matching method is used for dynamic gesture recognition.This method uses the basic geometric features to complete the setting and recognition of the trajectory of hand gestures,without the need of feature selection or collection of training samples.Finally,the algorithm is implemented on the Zedboard platform based on Zynq-7000 and the HLS hardware acceleration tool is used to accelerate the algorithm.The experiment results show that the proposed algorithm can achieve more accurate gesture recognition and accept flexible input sampling.The recognition rate is more than 95%,and it can be real-time recognized by the embedded platform after the hardware acceleration.So the algorithm has better real-time performance.

track template matching;Kalman filter;ellipse skin color model;hardware acceleration

重庆市教育委员会项目(KJ1500433);重庆邮电大学自然科学基金(A2012-97);2014年重邮文峰创新创业基金支持。

TP391.4

A

猜你喜欢
高斯分布手势卡尔曼滤波
利用Box-Cox变换对移动通信中小区级业务流量分布的研究
2种非对称广义高斯分布模型的构造
挑战!神秘手势
V字手势的由来
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
胜利的手势
一种基于改进混合高斯模型的前景检测
基于模糊卡尔曼滤波算法的动力电池SOC估计
基于扩展卡尔曼滤波的PMSM无位置传感器控制
基于自适应卡尔曼滤波的新船舶试航系统