方路平,洪文杰,潘 清,姚家良
(浙江工业大学信息工程学院,杭州 310023)
基于视觉图像的手指关节角度检测方法及其实现
方路平,洪文杰,潘 清,姚家良
(浙江工业大学信息工程学院,杭州 310023)
常用的手势识别方法受限于有限的二维图像信息,难以从复杂的背景中有效地分割出目标像素,且大多依赖于监督学习的分类方法,只能在有限的手势库中进行选择判定,无法适用于较为精细的手指运动检测。为此,提出一种利用粒子群寻优算法来估计手指关节角度的方法,引入Kinect深度图像优化特征提取,提高检测准确性,通过对手部自由度的分析,引入多个约束条件,减少需要预测和估计的自由度个数。基于粒子群寻优算法,得出最优的预测模型,将手势分类问题转化为手指关节角度变量求解问题。实验结果表明,该方法有效地提高了手势检测中的检测准确率,降低了检测失效的情况。
手势识别;深度图像;肤色检测;粒子群优化算法;手指关节角度
DO I:10.3969/j.issn.1000-3428.2015.10.041
手势识别一直是人工智能和人机交互研究的热点。随着科技的发展,机器人的智能化、现实增强技术等技术已经逐渐从设想变为真实的应用。成熟的手势识别方法可以用于机器人、哑语识别、运动检测等领域中,应用前景广泛。
本文旨在把手指关节角度检测方法应用到医疗领域。为了提高检测的精度,提出一种基于粒子群寻优算法,使用深度图像的手指关节角度检测方法,通过以下3个方面改进现有手势识别技术中存在的问题:
(1)利用Kinect的深度作为图像特征,减小复杂特征提取中的误差,并使用深度数据对图像特征分割提取进行优化,解决复杂背景下的分割困难问题。
(2)提出将手建模成具有21个自由度的三维模型,将对手势的检测转化为对自由度变量的求解问题,从而不再局限于有限的手势库,适用于精细的手指运动检测。通过比对手势三维模型和观测深度图
像,可以较为准确地判断出关节角度,避免了误判带来的检测失效。
(3)对自由度变量的求解,采用粒子群优化(Particle Swarm Optimization,PSO)算法,从而不再依赖于传统的分类器,减少分类器训练不佳带来的检测误差。
在手势识别的发展过程中,比较常见的手势识别系统有2种:数据手套系统和徒手系统[1]。基于数据手套的手势识别系统,需要用户在手上佩戴特殊的手套或者相关识别传感器来获取测量手指和关节在空间的位置和运动的轨迹。在很多特效的电影或者游戏制作中,都可以看到这种类似的动作捕捉系统[2]。徒手系统是指通过图像视觉的方法检测用户的动作,是人机交互研究的热点之一。文献[3]提出了基于隐性马尔科夫模型的动态手势检测方法,可以识别预先指定的7种动态连续手势。文献[4]利用图像的光流匹配特性,采用AdaBoost算法来识别手势。基于二维图像的手势识别方法具有图像采集设备简单通用的优点,但其准确性都极大依赖于前期对图像特征的提取,因此,在复杂背景下的准确度会受到较大影响。
随着深度摄像技术的发展,基于深度图像的手势识别方法很好地改善了上述不足。文献[5]提出基于深度图像的手势识别,采用决策树的方法对常见的9种手势在复杂背景下进行了检测,收到了较好的检测效果。2011年微软发布Kinect,可以实现每秒30帧的深度图像获取,并且精度可以达到3 mm[6]。文献[7]利用Kinect输出的深度图像的方向梯度直方图(Histogram of Oriented Gradient,HOG)特征,利用AdaBoost分类器来检测手势,减少了复杂背景对特征提取的干扰。但是,上述方法均依赖于分类算法,只能在有限的手势库中选择判定,无法适用于较为精细的手指运动的检测。文献[8]提出利用Kinect跟踪手掌和手指的所有关节在三维空间中的位置和方向,但算法实现对硬件要求比较高。文献[9]通过引入 Sobol随机序列可以在有限的计算资源的情况下获得精确的手指关节跟踪信息。文献[10]通过将RGB图像和对应的深度图像与标记捕捉系统结合从而获得精确的手部模型。
本文实现的具体算法方案设计如图1所示,根据其执行的硬件环境可分为两大部分:(1)图像处理和采集模块,主要由CPU执行,负责视频图像的获取和简单处理、肤色检测和兴趣区域的提取。(2)粒子群寻优模块,主要运算由GPU执行,负责模型图像的绘制以及目标函数的计算和降维。
图1 算法总体流程
4.1 图像采集
图像采集模块用于取得RGB图像和对应的深度图像。为了克服深度摄像头和彩色摄像头位置不一致带来的视觉差,需要利用深度图像对该RGB图像进行校准操作[11]。通过给Kinect的指定API函数传入一个全为0的深度数据,就可以准确地校准彩色图像。经过校准以后,深度图像和彩色图像的每个像素就建立起了一一对应的映射关系。
4.2 特征提取
图像特征的提取过程中,为了更准确地分割背景和目标,在传统肤色检测方法[12]的基础上,利用Kinect的深度信息来筛选像素,整体肤色检测分割流程如图2所示。
图2 肤色分割处理流程
深度过滤利用了RGB像素和深度像素的映射关系,滤除指定深度值之外的肤色或者肤色相近的区域。通过引入深度数据来优化分割,提高了其在复杂背景下的准确性,为后续计算提供了稳定准确的输入。
尺寸过滤可以滤除尺寸明显不正确的区域,例如滤除尺寸明显过大的肤色相近区域,更重要的是
可以滤除噪点,减少了对后续计算的干扰。除了过滤掉不合适的点之外,还应用了形态学的膨胀,以扩张和消除区域中的空洞。
图3演示了特征图像的提取过程和最终结果。虽然在图3(a)中,背景图像较为复杂,面部和手部这2个肤色区域都重叠在了一起,分割算法依然取得了目标像素,并且去除了大量噪点,使得最终获得的特征图像只包含了目标的深度数据,其他像素值被滤除为0。
图3 特征图像的提取过程和最终结果
5.1 手的建模
为了摆脱对有限的手势库的依赖,文献[13]将手建模成27个自由度的模型。本文通过对手部自由度的进一步分析,可以引入多个约束条件,将自由度数目缩减为21个。将这21个自由度组合成一个向量记作:
因此,对手势库中特定手势的搜索和判决,转变成对自由度变量的求值运算,从而将检测由定性检测变为定量计算。
本文采用了球体和圆柱体2种几何对象拼接的方法来创建手的三维模型。具体来说,利用球体构成手指的关节和指尖,利用缩放的球体(椭球)构成拇指的部分趾骨,利用圆柱体构成手掌和手指的趾骨。通过上述方法可绘制出由37个几何体组成的一个完整的手部三维模型,如图4所示。通过代入不同数值的XD,就可以构造出具有不同姿态的手的三维模型。
确定了手部三维模型的建模方法以后,利用OpenGL对不同姿态的手势模型进行了渲染绘制。由于手部模型包含 22个球体和 15个柱体,总计2 260个顶点,且每个顶点需要经过多次矩阵变换,计算量较大,因此通过几何体实例化绘制方法[14]和自定义着色器编程方法来提高绘制速度,可以较为高效地绘制出多个不同形态的手的三维模型图像,然后生成对应的二维深度图像。
图4 手的关节活动示意图及三维模型
最终绘制完成的手势模型图像如图5所示,随机赋值XD向量中的元素可生成多个不同姿态的手势图像。
图5 多个假设模型的绘制结果
5.2 特征图像之间的比对计算
在获得了观测图像和模型图像以后,用如下公
式计算两者的匹配程度:
其中:
在式(1)中,括号中第1项用于计算每个像素点上的深度差异均值。这项在最初的迭代中占比不大,因为此时图像和图像之间很有可能处于完全不重合的状态中。第2项的作用就是对完全不重合的区域进行惩罚,可见当2幅图像完全不重合的时候,其值最大为k,而当2幅图像完全重合的时候,该项值为0。因此,第2项可以看成是粗误差,用于有效地将2个图像的像素重叠在一起;而第1项为细误差,用于计算在2个图像像素基本重合的时候,彼此之间的深度误差。
公式中的多个参数需要通过多次反复的实验来确定。本文中,定义dmax为60,dmin为10,k为120。
为了求得最优解,可以通过多种寻优算法,本文采用了粒子群寻优算法。该算法在不牺牲精度的同时,能保证较为有效的寻优速度,更适用于接近实时的视频检测。
基础粒子群寻优算法虽然可以通过设定最大速度的方法来限制粒子的飞行轨迹,但是仍然会导致粒子不可控。控制这种现象的方法有惯性常数法和收缩因子法。本文采用的是收缩因子的算法[15],其修改基础PSO的速度更新公式如下:
初始粒子的速度为0,粒子的最高速度νmax设定为粒子位置上下限的20%。初始粒子的位置随机,其上下限由粒子的寻优空间给定。若粒子在运动过程中,位置超出上下限,则会被强制移回上下边界,以保证其始终处于寻优空间之中。
由于手掌所提供的特征信息充足,因此在21个自由度中,手的全局平移和旋转变量可以非常准确地确定;而其余15个自由度的检测则容易陷入局部最优。因此,在PSO算法中,设计每隔4代,每个粒子 χi有1/2的概率被随机化。其随机化规则为每个元素 χij依如下合集被随机化,每个合集中只有一个元素随机化,即1/5的概率被随机化。
同时,由于视频图像帧的连贯性,可以将当前t帧的最优粒子,作为初始粒子传递给下一帧t+ 1帧。最优值大于阈值时,可以认为是跟踪失败,下一帧的粒子需要重新在寻优空间做随机化,而小于阈值时,这一帧的最优粒子将被传递给下一帧,成为下一帧N个粒子中的一个,实现了连续跟踪。
本文采用的硬件平台:处理器为Intel i5 2550k,显卡为AMD HD7850,内存为8 GB。设定粒子数目为64,寻优 25代,所得到的程序结果演示如图 6所示。
图6 程序结果演示
为了分析检测的准确性,本文选取了实际手势中食指、中指和无名指的如图7所示的2个关节,利用三角尺将其角度依次固定为30°,45°和60°,作为检测的参照值。
图7 检测指定关节示意图
依据上述方案,共检测了18个手势姿态,部分典型的检测结果如表1所示。“关节”一栏标记了选取的关节;“手势图解”一栏以图示方式比对了计算出来的手的模型和实际手势;“角度”一栏则比对了该关节的实际角度值和检测结果之间的差异。其中,“实际”一栏为预先用量角器测得的指定关节的角度值;“检测”一栏则为该关节测量到的值。表 2统计了两者之间的误差情况。
表1 手势检测图像对比和关节角度检测结果
表2 误差统计
从表1的图示对比可见,最优模型和实际手势的匹配还是较为准确的,仅从视觉上并不能看出两者之间存在较大的差异。由表2的误差数据可见,检测值较好地逼近了实际的值。
由于本文采用的是对关节角度XD的求解方法,检测误差为定量的误差,不会发生较显著的检测失效的情况。并且不再依赖于有限的手势库,可以检测任何约束条件下的手势。
本文分析了常用手势检测方法中存在的影响检测准确性的主要因素,并针对这些问题提出了解决的方法,主要在特征提取、手势建模和寻优求解3个方面开展了工作,结合相应的改进优化实现对手势的精确检测。实验结果证明,本文方法有效地解决了常用手势检测中存在的检测不准确、容易检测失效的不足,使得手指的精细检测成为可能。虽然借助了OpenCL技术提高了计算速度,但方法的实时性较低,后续需要对其进行进一步的优化以提高实时性以及实现添加针对不同用户自动建模的方法,这将有利于提高该检测方法的精度和实用性。随着硬件技术的提高,会有更多新设备应用到手势检测领域,使得更为精确的手势检测成为可能。
[1] 崔育礼.手势识别若干关键技术研究与应用[D].上海:同济大学,2008.
[2] Lee J.Interactive Control of Avatars Animated with Human Motion Data[C]//Proceedings of the 29 th Annual Conference on Computer Graphics and Interactive Techniques.New York,USA:ACM Press,2002:491-500.
[3] Wang Xiaoyan,Xia Ming.Hidden-Markov-Models-based Dynamic Hand Gesture Recognition[J].Math-ematical Problems in Engineering,2012,(10):1-11.
[4] Wang Menghui.Hand Recognition Using Thermal Image and Extension Neural Network[EB/OL].(2011-10-07). http://www.hindaw i.com/journals/mpe/2012/905495.
[5] 曹雏清,李瑞峰,赵立军.基于深度图像技术的手势识别方法[J].计算机工程,2012,38(8):16-18.
[6] Khoshelham K.Accuracy Analysis of Kinect Depth Data[C]//Proceedings of International Society for Photogrammetry and Remote Sensing.Calgary,Canada:[s.n.],2011:133-138.
[7] Li Hui,Yang Lei,W u Xiaoyu,et al.Static Hand Gesture Recognition Based on HOG with Kinect[C]// Proceedings of the 14th International Conference on Intelligent Human-machine Systems and Cybernetics. Washington D.C.,USA:IEEE Press,2012:271-273.[8] Oikonomidis I,Kyriazis N,Argyros A.Efficient Modelbased 3d Tracking of Hand Articulations Using Kinect[C]//Proceedings of British Machine Vision Conference.Dundee,UK:[s.n.],2011:1-11.
[9] Oikonomidis I.Lourakis M.Evolutionary Quasi-random Search for Hand Articulations Tracking[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C.,USA:IEEE Press,2014:3422-3429.
[10] Zhao Wenping,Chai Jinxiang,Xu Yingqing.Combining Marker-based Mocap and RGBD Cam era for Acquiring High-fidelity Hand Motion Data[C]//Proceedings of ACM SIGGRAPH Symposium on Computer Animation. New York,USA:ACM Press,2012:33-42.
[11] 韩 峥,刘华平,黄文炳,等.基于Kinect的机械臂目标抓取[J].智能系统学报,2013,8(2):149-155.
[12] Argyros A A,Lourakis M I A.Real-time Tracking of Multiple Skincolored Objects with a Possibly Moving Camera[C]//Proceedings of the 8 th European Conference on Computer Vision.Berlin,Germany:Springer,2004:368-379.
[13] Ge S,Yang Y,Lee T H.Hand Gesture Recognition and Tracking Based on Distributed Locally Linear Embedding[J].Image and Vision Computing,2008,26(12):1607-1620.
[14] Pharr M,Fernando R.GPU Gems 2:Programming Techniques for High-performance Graphics and General Purpose Computation[M].Cambridge,USA:Addison-Wesley Professional Press,2005.
[15] 纪雪玲,李 明,李 玮.一种克服局部最优的收缩因子PSO算法[J].计算机工程,2011,37(20):213-215.
编辑 顾逸斐
Finger Joint Angle Detection Method Based on Visual-image and Its Implementation
FANG Luping,HONG Wenjie,PAN Qing,YAO Jialiang
(College of Information Engineering,Zhejiang University of Technology,Hangzhou 310023,China)
Traditional methods of gesture recognition are incompetent to detect finger’s delicate movement due to poor segmentation effect using 2D images and limited gesture templates through supervised training of classifier.This paper proposes a method of finger joint angle measurement by Particle Swarm Optimization(PSO)algorithm,introduces Kinect depth image to optimize feature extraction and improve accuracy.Through the analysis of hand free degree,it introduces multiple constraints to reduce the degrees of freedom number,optimize PSO to calculate the best model and analyze the measurements,transform the common problems of gesture classification to the variable solution of finger joint angle. Experimental results show that this method can effectively improve the detection accuracy and reduce the situation of detection fault.
gesture recognition;depth image;skin color detection;Particle Swarm Optimization(PSO)algorithm;finger joint angle
方路平,洪文杰,潘 清,等.基于视觉图像的手指关节角度检测方法及其实现[J].计算机工程,2015,41(10):221-225,231.
英文引用格式:Fang Luping,Hong Wenjie,Pan Qing,et al.Finger Joint Angle Detection Method Based on Visual-image and Its Im plementation[J].Computer Engineering,2015,41(10):221-225,231.
1000-3428(2015)10-0221-05
A
TP391.41
浙江省国际科技合作基金资助项目(2012C34G2020027)。
方路平(1968-),男,教授,主研方向:图像识别;洪文杰,硕士;潘 清,讲师;姚家良,硕士。
2014-10-08
2014-11-06E-mail:flp@zjut.edu.cn