王铭航 柳培忠 黄德天 顾培婷 洪 铭
基于改进的TLD算法的手势跟踪算法
王铭航 柳培忠 黄德天 顾培婷 洪 铭
华侨大学工学院
该文在分析表征手势特征基础上,分别根据金字塔LK原理、FERN分类原理和P-N学习原理及手运动轨迹的连续性规律来研究适用于手势识别的关键技术,即手势目标跟踪技术、P-N学习的样本增长和修剪技术的算法。针对目前在手的局部区域跟踪过程中,手势目标跟踪失败后难以恢复和容易受到脸部、肤色和手臂的干扰等问题,该文在TLD单目标跟踪算法的基础上,提出了一种改进的多目标手势局部区域跟踪TLD算法,针对算法的检测模块,在FERN分类器的基础上,采用颜色特征相交系数的方法,改进FERN分类器的第一级方差分类器;还提出一种自适应坐标系的方法,缩小了检测模块扫描窗口的滑动区域。通过仿真实验证明,相对于原算法,这一改进算法在客观评价指标和主观视觉效果上都有明显提高。
手势目标跟踪 LK跟踪 FERN分类 颜色特征相交系数
手势交互是人机智能交互更为高层、难度更高的一种交互方式,手势交互可使人与机器的交互更加自然,是机器向深度智能化发展过程中必须要解决的问题。
手势交互的关键在于机器对人手势动作的准确识别。根据手势识别的内容,基于视觉的手势识别可以划分为静态手势识别和动态手势识别。动态手势的特征可以定义为手势运动轨迹,而静态手势特征主要是通过手的手型、轮廓、指向、骨架和位置等来描述。动态手势主要涉及动态检测和动态跟踪,以及跟定义好的手势曲线拟合的过程。
在对手的局部区域跟踪过程中,存在容易受到头部、肤色和手臂等因素干扰的问题,采用一种改进的TLD跟踪算法,通过检测模块和P-N学习的方式,来滤除跟踪模块受到的外在因素干扰。此外,检测模块本身还存在性能不好的问题,可以通过采用自适应坐标系和颜色相关系数的方法来改进检测模块的性能。
手势区域分割的好坏将直接影响到后续手势的分类结果。而手势背景的复杂性、明暗度变化易受肤色、手臂和轮廓的干扰等现状,以及考虑到在实际应用中对手势识别研究的要求,比如对实时性的要求,都会提高手势分割研究的难度。常用的分割算法包括增加限制条件、肤色模型法和轮廓跟踪法。肤色对于手势分割的研究是非常明显的特征,根据肤色特征检测算法可以快速检测到手部区域,颜色空间分为很多种,包括RGB、HSV、YCbCr等,对于肤色而言,不同的人种在色度上可能比较相近,但在亮度上却有很大的差别,并且肤色在一定范围内表现为较强的聚类特性[1]。文献[2]提出一种基于YCrCb的肤色提取方法。Habibi等人关于手和人脸分割提取的研究就采用YCbCr颜色空间,基本可以将背景与手势分开[3]。Lew等利用均一化RGB模型来分割手势,尽管能起到一定的作用,但RGB模型对光照非常敏感,分割效果并不好[4]。
为了针对应用场景的差别以及手势分割后提取的特征,需要构建符合场景和特征的手势模型。基于灰度图像的手势模型是将2D图像中手势运动序列作为手势模型[5],该方法的优点是灰度图像包含的有效信息较少,能够识别的手势种类相对也少,容易操作。手势特征提取环节对手势识别的影响在于,手势特征选取的好坏会影响手势识别的精确性和识别效率。因此,在选取手势特征时,需要考虑的因素包括特征计算的复杂度和该特征是否能唯一标识手势。选择特征时,有以下原则[6]:
(1)同一类手势的特征要相似或相近;
(2)不同类手势的特征要有明显的差别;
(3)手势的特征应该满足尺度、旋转和平移不变性等特点,即特征不受手势的尺寸大小、位置和方向的改变影响,识别结果一致。
表征手势的特征有颜色直方图、几何特征、轮廓、Hu矩[7]、BitBP特征[8]、HOG特征[9]、光流特征[10-12]等。
为了应用基于Haarlet小波的手势识别方法来识别手势,学者采用颜色和深度信息检测的方式跟踪人手[13]。Kjeldsen等人在Windows系统下开发出了一套基于计算机视觉的手势控制软件,其原理是通过手势的运动轨迹识别来控制Windows系统[14]。Pavlovic等人也设计了一套基于计算机视觉的手势交互系统,可以通过双手之间的手势动作来模拟鼠标的拖拽,单击及双击等操作[15]。Lars等提出了一种先采用颜色特征对手势进行分割,后利用粒子滤波对手势动作进行跟踪,由于颜色特征的分割效果不佳,并且粒子滤波算法又相对比较复杂[16]。Ho-SubYoon等人也采用HMM进行手势识别,达到了不错的识别效果[17]。Aditya Ramamoorthy等人也同样利用肤色分割获取轮廓,同时采用卡尔曼滤波的运动跟踪方法,进行动态手势识别,效果一般[18]。Hyeon-Kyu Lee等人提出了一种基于HMM门限的连续手势识别模型,可以将手势动作和无意义的动作区分开,而且能够确定手势动作的终点和起点[19]。
TLD(Tracking-Learning-Detection,TLD)是英国萨里大学博士生Zdenek Kalal在2010年提出的一种长时(Long-Term)在线跟踪算法[20,21]。结构如图1所示。TLD算法由三部分组成:跟踪、学习、检测。跟踪模块采用的算法是金字塔LK光流法,该算法适用于自适应短时跟踪。在跟踪模块跟踪期间,视频帧图像变化对建模的影响包括两类:生长事件(Growing Events)和剪枝事件(Pruning Events)。两类事件共同进行扩展,这样可以避免因短时跟踪器误分带来的影响。建模得到的结果是经过筛选并且剪枝后得到的模板集合,而检测模块正是基于这个模板集合进行在线构造。检测模块与短时跟踪器并行地运行,这样使跟踪模块在失效后能够快速初始化。检测模块是由FERN分类器构成的,能够快速更新FERN树。
图1 TLD算法结构图
1.1 金字塔LK算法
为了解决窗口位移较大的问题,Intel公司的Bouguet等人于2000年提出了一种改进的金字塔LK光流法[22]。
1.1.1 图像配准
窗口位移关于图像配准的问题,LK光流法在这里可以描述为:对于图中的一点及其邻域,找到一个向量,即求得图中的对应点及其邻域,使得两个领域的像素值相似。d称为图像的运动速率,即光流。光流d使得两块区域的残差最小,残差为:
1.1.2 图像金字塔
由公式(2)可以得到金字塔的边上以2的指数级速度在减小:
(3)
通过公式(2)的迭代计算得到图像与的金字塔图像和,金字塔的层数通常取值为2,3,4。
1.1.3 金字塔特征跟踪
对中的一点及其邻域,找到一个向量d,即求得图中的对应点及其领域,使得两个领域的残差最小。记为图中点对应第L层金字塔中的坐标,且有:
(6)
于是,从L传到L-1层的初始预测光流为:
(8)
考查g与d的关系,得到:
金字塔LK算法的优势在于,对于较大的光流的计算结果非常有效。实际研究中,每次迭代产生的光流都很小,假设每一次迭代计算得到的光流都达到最大值,那么能处理的光流也将达到最大值为:
(10)
1.2 FERN分类
FERN分类是一种树形分类器,是在随机森林基础上改进得到的一种树形结构,它支持在线更新及对序列化的特征的分类。检测器的特征选择是一种基于LBP特征的2bit BP特征,这种特征是一种类似于Harr-like的特征,其结构如图2所示。
图2 2bit BP特征结构图
由于需要处理的矩形框数目太大,对图像片的分类效果具有很高的要求。采用相似度评估的方法就能评估NN分类器性能的好坏。级联分类器包括方差分类器、集合分类器和NN分类器。
每一个基本分类器都是基于一系列的像素比较来进行的,像素比较是离线随机生成的,并在实时运行中保持不变。先对图像块进行3×3的标准高斯加噪模糊处理,目的是增加抗漂移和噪声的鲁棒性。然后进行像素比较,像素比较的结果为0或1的二值编码,这样一连串的编码返回值构成了图像片向量。图3为其详细示意图。
图3 像素二进制编码示意图
1.3 P-N学习分类
P-N学习也可以解释为“生长”和“修剪”。学习模块(Learning)主要是通过对视频的在线处理达到提升检测器(Detector)性能的目的。在每一帧里,我们希望评估当前的检测器,发现它产生的错误,不断更新检测器以避免将来它再次犯错。P-N学习的主要思想是检测器产生的错误结果可以被“P约束”和“N约束”识别出来并标记下来。P约束主要用来识别错误的负样本,N约束主要用来识别错误的正样本。当然,P约束和N约束也会出现错误。同时,P约束和N约束是相互独立的,还可以相互纠正对方发生的错误。P约束发生的错误,N约束纠正,N约束发生的错误,P约束纠正。P-N学习的流程如图4所示。
图4 P-N学习流程图
在第k次迭代中,n+(k)表示P约束产生的正样本,n-(k)表示N约束产生的负样本。为了分析方便,假设未被标记的样本已知其分类,并可知道分类器和P-N约束产生的错误。a(k)表示分类器产生的错误的正样本数量,B(k)表示分类器产生的错误的负样本数量。nc+(k)表示P约束产生的正确正样本数量,nf+(k)表示P约束产生的错误的正样本数量。同理,nc-(k)表示N约束产生的正确的负样本数量,nf-(k)表示N约束产生的错误的负样本数量,如下:
(13)
(14)
P约束产生的正样本的可靠性P-precision:
(16)
P约束被误分为负样本数量的百分比P-recall:
N约束产生的负样本的可靠性N-precision:
(18)
N约束被误分为正样本数量的百分比P-recall:
TLD算法在鲁棒性和准确率方面的表现十分优秀,但仍存在一些缺点。当进行在线模型验证时,需要对所有图像进行归一化积计算,当在线模型中的图像数量越来越多时,会带来额外的时间开销。尤其是将TLD算法应用在多目标跟踪问题时,在线模型图片库规模的增长更加迅速,TLD算法归一化积的计算也会更加复杂,算法的效率必然十分低下。检测模块的扫描窗口对每一帧都处理,会带来巨大的计算负载。本文主要对扫描帧、扫描窗口和级联分类器进行改进,以减少算法的复杂性。
2.1 输入图像
原TLD算法主要针对的是单目标跟踪,其检测器在通过滑动窗口对每一帧图像进行扫描,如果调整滑动窗口的扫描范围,会对生成样本产生比较大的影响。本文采用基于改进的TLD多目标手指跟踪算法,由于手指的运动范围有限,可以针对不同的手指运动范围,去除手指不可能移动到的区域,减少滑动窗口扫描的次数。如图5所示,a点不会运动到B区域,而b点同样不会运动到A区域。
图5 输入图像区域图
2.2 改进级联分类器
由于级联分类器的第一级是方差分类器,其对灰度变化不明显的目标的分类效果不好。而方差分类器主要采用的方法是计算积分图的方式,该方法在处理Harr-like特征的时候,分类的效果比较好,假如手势的检测受到人脸等因素的干扰,方差分类器的效果比较好,为了适应不同的复杂背景,颜色特征作为比较显著的特征,不可或缺。基于以上特点,我们采用颜色特征相交系数的方式,其特点为计算开销小。颜色特征相交系数的计算如下式所示:
为了验证该TLD单目标跟踪算法的实时性、准确性和鲁棒性, 本文对该算法进行了实验验证。本文的编程平台为Visual Studio2013下的opencv2.4.8, 使用C / C + + 语言编程实现了TLD算法。
实验主要从TLD算法的鲁棒性、准确性和实时性三个方面进行考虑,对TLD算法在手的局部区域跟踪上的优劣进行客观评价。可以看出,多目标跟踪在不同背景下,还可以满足实时性和准确性,实验选择压缩跟踪算法(Compressive Tracking)和Struck算法作为比较对象。
评价标准如下:
验证改进的TLD多目标跟踪算法可以适用于不同的背景,实验选取3种不同的背景,测试算法是否可以在保证跟踪准确率的同时,达到实时性。从视频序列中提取6帧说明改进的TLD算法可以适应不同的背景。本文的实验是在3种不同背景下,对改进的TLD多目标跟踪算法的实验结果。在背景3下,容易受到背景人脸及肤色的干扰,如图6所示。
表1 跟踪算法平均成功率对比表
表2 跟踪算法平均帧率对比表
(a)第17帧 (b)第64帧 (c)第82帧 (d)第100帧 (e)第145帧 (f)第182帧
(a)第17帧 (b)第64帧 (c)第82帧 (d)第100帧 (e)第145帧 (f)第182帧
(a)第17帧 (b)第64帧 (c)第82帧 (d)第100帧 (e)第145帧 (f)第182帧
本文研究了TLD算法的基本原理及其改进的方法。依次介绍了TLD算法的跟踪模块、patch检测器及P-N学习等模块。其中,patch检测器需要每一帧图像进行滑动窗口检测,产生巨大数量的矩形框,增加了计算的负担。为此,本文主要从三个方面进行了改进:第一,从图像本身入手,减少了滑动的次数,第二,缩小滑动窗口的坐标范围,减小了滑动窗口产生矩形框的数目,第三,从级联分类器的方差分类器存在的不足角度出发,采用颜色特征相交系数的方法,提高了分类器的性能。本文还分析了改进之后的跟踪算法的优劣,并强调了本文的主要研究方向。
[1] Yang J, Lu W, Waibel A. Skin-Color Modeling and Adaptation[C]//Third Asian Conference on Computer Vision. Springer-Verlag,2015,:687-694.
[2] Choi KM,Na YG,Chae Sb,Jung KH. A hand gesture-based remote control of robot[C]//Proc. of KSBE Fall Conference, 2010: 196-199.
[3] Habili N, Lim C C. Hand and face segmentation using motion and color cues in digital image sequences[C]//Proceedings of IEEE International Conference on Multimedia & Expo,2001:261-264.
[4] Lew Y P, Ramli A R, Koay S Y, et al. A Hand segmentation scheme using clustering technique in homogeneous background[C]//Conference on Research & Development Proceedings, 2002:305-308.
[5] G.Bradski, Boon-Lock Yeo, Minerva M.Yeung. Gesture for video content navigation[C]//Proceedings of International Society for Optical Engineering, 1999, 3656: 230-242.
[6] R Culter, M Turk. View-based interpretation of real-time optical flow for gesture recognition[C]//Proceedings of 3rd Intel Conference Automatic Face and Gesture Recognition, 1998.
[7] Hu MingKuei. Visual Pattern Recognition by Moment Invariant[J]. Information Theory Ire Transactions on,1962,8(2):179-187.
[8] OJALA T, PIETIKAINEN M, HARWOOD D. Performance evaluation of texture measures with classification based on Kullback discrimination of distributions[C]//Proceedings of the 12th IAPR International Conference on Pattern Recognition,1994:582-585.
[9] Jorn Alexander Zondag, Tommaso Gritti, Vincent Jeanne. Practical study on Real-time Hand Detection[C]//International Conference on Affective Computing & Intelligent Interaction & Workshops, 2009: 1-8.
[10] Barron J L, Fleet D J, Beachemin S S. Performance of Optical Flow Techniques[J]. International Journal of Computer Vision,1994,12(1): 43-77.
[11] Berthold K.P. Horn, Brian G. Schunck. Determining Optical Flow[J]. Artificial Intelligence,1980,17(81):185-203.
[12] Lucas B D, Kanade T. An iterative image registration technique with an application to stereo vision[C]//International Joint Conderence on Artificial Intelligence,1981,73(3):121-130
[13] van den Bergh M, van Gool L. Combining RGB and ToF cameras for real-time 3D hand gesture interaction[C]//IEEE Workshop on Applications of Computer Vision,2011:66-72.
[14] R Kjeldsen, J Kender. Visual hand gesture recognition for windows system control[C]//Proc. Int. Workshop on Autom. Face & Gesture Recognition, 1995:184-188
[15] Pavlovic V, Sharma R, Huang TS. Visual interpretation of hand gestures for human-computer interaction: a review[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,1997, 19(7): 677-695.
[16] Lars Bretzner, Ivan Laptev, Tony Lindeberg. Hand gesture recognition using multi-scale color features, hierarchical model and particle filtering[C]// Fifth IEEE International Conference of Automatic Face and Gesture Recognition,2002:423-428.
[17] Ho-Sub Yoon, Jung Soh, et al. Hand gesture recognition using combined features of location,angle and velocity[J]. Pattern Recognition, 2001, 34(7): 1491-1501.
[18] Aditya Ramamoorthy, Namrata Vaswani, et al. Recognition of dynamic hand gestures[J]. Pattern Recognition,2003,36(9):2069-2081.
[19] Hyeon-Kyu Lee, Jin H. Kim. An HMM-Based Threshold Model Approach for Gesture Recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999, 21(10):961-973.
[20] Z Kalal, K Mikolajczyk, J Matas. Tracking-Learning-Detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(7): 1409-1422.
[21] Z.Kalal, K.Mikolajczyk, J.Matas. Face-TLD: Tracking-Learning-Detection Applied to Faces[C]//IEEE International Conference on Image Processing, 2010,119(5):3789-3792.
[22] J Y Bouguet. Pyramidal implementation of the Lucas Kanade feature tracker description of the algorithm[J]. Acta Pathologica Japonica, 2000, 22(2): 363-381.