APP下载

基于深度图像信息的指尖跟踪与轨迹识别

2016-05-09彭四伟

计算机应用与软件 2016年4期
关键词:跟踪目标指尖轨迹

李 哲 彭四伟

基于深度图像信息的指尖跟踪与轨迹识别

李 哲 彭四伟

(北京化工大学信息科学与技术学院 北京 100029)

针对基于传统摄像头获取的二维图像难以准确区分复杂环境下目标和背景的问题,提出一种利用Kinect摄像头对复杂背景下手指指尖的跟踪算法,并对指尖跟踪的轨迹进行识别。首先利用Kinect获取的深度图像信息对手部进行分割和指尖检测;然后利用压缩感知方法对跟踪目标进行特征提取,通过朴素贝叶斯(NB)分类器分类跟踪目标和背景;最后,通过支持向量机(SVM)方法对跟踪的轨迹进行识别。实验结果表明,提出的方法能够成功地跟踪手指指尖的位置,同时能够准确识别出指尖跟踪的轨迹。

Kinect 指尖跟踪 深度图像 压缩感知 手势轨迹识别 支持向量机

0 引 言

在人机交互和虚拟现实系统中,实时和稳定的手势跟踪不仅给用户带来良好的交互体验,还能为手势的识别提供准确的运动轨迹[1],从而大大提高人机交互和虚拟现实的沉浸感。

Kinect是微软发布的革命性的摄像头,通过Kinect可以同时获得图像的彩色信息和深度信息,并且支持人体骨骼关节点的实时跟踪[2]。Kinect廉价和高效的特性使其在三维重构和手势跟踪识别中被广泛地应用[3-5]。Kinect提供的深度信息为人机交互和虚拟现实提供了新的研究方法。

由于虚拟现实的广泛应用前景,手势的检测跟踪与识别得到了广泛的关注。大量文献从二维图像或三维空间对目标特征进行了研究。目前对于二维图像中目标的检测跟踪,很多文献利用了皮肤颜色信息[6]和图形学算子[7]对目标进行检测和分割。其中,Thangali等[8]利用方向梯度直方图算子来描述手部形状特征,然后应用支持向量机对特征进行分类识别。Alon等[9]利用相邻帧间人手运动误差和肤色信息进行手部的检测,然而对于复杂背景下运动目标的检测,效果并不理想。对于三维空间,Elmezain等[10]使用配准的深度信息和颜色空间上高斯混合模型得到的肤色信息对手部进行检测,但是配准的深度信息易受摄像头计算误差的影响。Oka等[11]利用红外相机来分隔手部区域,然后利用模板匹配找到指尖位置,最后通过卡尔曼滤波器来跟踪手指指尖的运动轨迹,但是由于缺乏深度值信息,只是对二维图像进行指尖跟踪。Ren等[12]利用Kinect获得的深度信息和彩色图像信息对手部进行了检测和分割。对于手势轨迹的识别,Chen等[13]人提出了采用Harr特征和AdaBoost算法识别基本的英文手语;Zhang[14]提出使用HMM算法进行中文视频检索。然而以上基于视觉的手势运动轨迹分析方法容易受光照、背景、摄像头等因素的影响,识别准确率不高。

针对上述文献中存在复杂背景下目标检测跟踪问题,本文通过Kinect提供的深度图像信息分割手部和背景,结合压缩感知理论提取手部指尖区域特征,利用朴素贝叶斯算法对指尖和背景进行分类,实现指尖的跟踪。最后,对跟踪的指尖轨迹进行特征提取,利用支持向量机方法进行训练识别,且通过实验验证算法的有效性。

1 基于深度信息的指尖检测与跟踪

Kinect提供的深度信息可以从三维空间分析图像的特征[15],更准确地获取图像信息。本文将利用Kinect摄像头采集的图像信息和深度信息,对手部进行分割、指尖检测和指尖跟踪。

1.1 手部的分割

手部的分割有助于手势的检测和跟踪,通过Kinect获取深度图像,把获得的深度图像和彩色图像进行配准。然后利用开源库OpenNI找到手心的坐标位置,根据手心坐标利用深度二值掩膜对图像进行或运算,把手部图像从背景中分离出来。其中,二值掩膜Iθ为一个以手心为中心,宽和高固定的掩膜窗口,其定义如下:

(1)

由实验得出深度阈值θ=5 cm,Zhand表示跟踪的手心坐标深度值;Z(x,y)表示图像像素(x,y)处的深度值。如图1所示,(a)是手部的彩色图像,(b)是对应的深度图像,(c)是根据深度图像二值掩膜从彩色图像分割出来的手部图像。

1.2 指尖检测

通过上面手势的分割,可以得到手部的基本信息,但是由于存在运动模糊和设备误差,得到的图像信息可能存在噪声。为了能更准确地检测手指所在位置,本文通过高斯滤波对分割的图像进行处理。由于经过深度信息从复杂的背景中提取的手部轮廓比较完整,本文提出了一种基于轮廓特征的指尖检测算法。指尖检测算法的主要步骤如下:

1) 对分割得到的手部图像进行高斯滤波,平滑图像边缘锯齿。

图2 指尖检测

2) 找出滤波后图像的轮廓,对轮廓进行多边形曲线拟合,找出拟合多边形的所有凸包。

3) 找到以手心为圆点,r为半径的圆与手指轮廓的交点,通过交点和对应凸包的向量夹角确定凸包是指尖或其他凸点。

如图2所示,T为通过轮廓找到的其中一个凸包,P1和P2是以手心为圆心r为半径的圆与指尖轮廓的交点。通过如下公式计算交点与对应凸包向量间的夹角:

(2)

(3)

图3 轮廓凸包与检测到的指尖

1.3 指尖跟踪

针对指尖坐标的跟踪,很多研究学者利用卡尔曼滤波的方法进行跟踪。然而获得的深度信息存在抖动现象,会导致卡尔曼滤波器的频繁终止,达不到很好的跟踪效果。本文通过压缩感知跟踪的方法[16]结合深度信息值对检测到的指尖进行跟踪。

1.3.1 压缩感知

压缩感知理论是最近几年被提出的一种信号压缩的理论,只要信号是可压缩的或在其变换域上是稀疏的,那么就可以用一个和变换基不相关的观测矩阵将高维信号投影到一个低维空间上。通过低维空间求解可以以高概率重构出原信号。通过对信息的压缩表示可以以很少的信息来表征原来信息的特征。为了保证能够准确重构原信息,该理论需要满足条件:随机观测矩阵与稀疏矩阵的乘积满足Restricted Isometry Property(RIP) 性质[17]。

假设有一个随机矩阵R∈Rn×m,可以用这个矩阵将一个高维空间的向量x∈Rm降维变成一个低维向量v∈Rn,用数学公式表示为:

v=Rx

(4)

其中,n≤m。Johnson-Lindenstrauss推论[17]表明,可以随机选择一个高维子空间,原始空间中两点的距离投影到这个子空间,能够高概率地保留这种距离关系。而Baraniuk[18]证明了如果随机矩阵满足Johnson-Lindenstrauss推论,那么同样满足压缩感知理论中的RIP条件。所以,如果式(4)中随机矩阵R满足Johnson-Lindenstrauss推论,且如果x是可压缩的,那么可以通过最小化误差从v中高概率重构x。因此,只要找到一个满足Johnson-Lindenstrauss推论的随机矩阵。

本文将采用文献[17]中的稀疏随机观测矩阵,这种随机稀疏矩阵可以通过均匀随机数发生器得到,其矩阵元素定义如下:

(5)

Achlioptas[17]证明了上式中当s取2或者3时,该矩阵满足Johnson-Lindenstrauss推论,且这个矩阵非常稀疏。通过该随机观测矩阵对跟踪目标图像特征进行压缩。

1.3.2 指尖跟踪方法

假设定义跟踪目标窗口为z∈Rw×h(以w,h为宽和高的矩形窗口),将跟踪目标窗口z与一系列尺度不同的矩形滤波器{h1,1,h1,2,…,hw,h}进行卷积运算作为跟踪目标的特征,每一种矩形滤波器表示为:

(6)

式中,i、j分别为矩形滤波器的宽和高,总共有w×h个矩形滤波器,然后分别用这w×h个矩形滤波器和跟踪目标图像z做卷积运算将得到m=(w×h)2维的多尺度特征向量x=(x1,x2,…,xm)T。特征向量x是一个非常高维的向量,所以需要对其进行降维,通过式(5)中的随机观测矩阵把特征向量x投影到低维空间v∈Rn。低维特征v的每个元素vi是由不同尺度的矩形滤波器的线性组合得到(即v=Rx),而随机观测矩阵R中的元素是1、0和-1,所以R可以通过均匀随机数发生器产生。而矩形滤波器窗口中的元素都是1或0,因此x中每个特征可以通过计算滤波器窗口中的积分值代替,从而高效地计算出低维特征向量v。

通过对跟踪目标图像的压缩处理,得到其特征向量v,利用这些特征对跟踪目标和背景进行分类。本文通过文献[19]中的朴素贝叶斯分类器来进行分类,并且假设特征向量间相互独立,朴素贝叶斯分类器表示为:

(7)

式中,y=0表示负样本(即背景样本),y=1表示正样本(即跟踪目标样本),假设正负样本的先验概率相等(即p(y=0)=p(y=1))。那么式(7)可化简为:

(8)

Diaconis等[20]在其文献中证明了高维随机向量的随机投影基本都是高斯分布。所以假设式(8)中的条件概率p(vi|y=0)和p(vi|y=1)也属于高斯分布,即:

(9)

所以,根据下式增量更新μi和σi为:

(10)

式中,λ为学习因子,式(10)中当y=1时初始的σ和μ可由最大似然估计计算得到:

(11)

综合上述压缩感知理论和指尖跟踪方法,本文所用的指尖跟踪过程可以概括为以下步骤:

(1) 输入第t帧图像;

(2) 在第t-1帧图像跟踪到的目标周围(以目标窗口中心为圆点,r为半径的圆内)采集n个样本,然后利用压缩感知方法对这些样本进行特征压缩,得到每个样本的特征向量vi;

(3) 利用式(8)中的分类器H(v)对上一步采集的样本分类,找到最大概率的样本窗口作为当前帧跟踪到的目标窗口;

(4) 在当前目标窗口周围分别以窗口中心为圆心,r

(5) 分别对正、负样本进行特征压缩,利用式(10)对参数μi和σi进行更新;

(6) 输入下一帧图像,重复上述步骤处理,直到所有帧图像处理完毕。

通过对跟踪目标的检测,利用压缩感知方法对跟踪目标进行特征压缩,实时采集正负样本训练分类器,实现目标的跟踪。本文结合了正负样本的深度信息积分值,即在样本的积分值上结合其深度积分值,减小目标窗口的漂移。

2 指尖跟踪轨迹识别

通过对指尖的检测跟踪记录下指尖的运动轨迹,对记录的轨迹进行重映射和特征提取,然后利用支持向量机的方法训练识别。

2.1 轨迹特征提取

在成功检测到指尖位置后,将通过上述跟踪算法跟踪记录指尖点的坐标位置。本文选择0~9十个数字作为指尖手写对象进行识别。由于每个数字的笔画、长度不同,而作为支持向量机的输入要求输入向量的维数固定。所以,需要对手写的数字做相应的处理。首先记录手写数字的轨迹(即手指指尖的像素坐标),如果坐标点的数量小于某个阈值,对这些坐标点中欧式距离最大的两点之间进行插值,直到满足阈值要求为止;如果坐标点的数量大于这个阈值,先对坐标点中欧氏距离最大的两点之间进行插值,再从这些坐标点中均匀选取定量坐标点。

通过上面的步骤可以得到指尖点坐标的轨迹,但是这些坐标点的位置是屏幕上像素的绝对位置。如果指尖的起始位置变化,每次得到的轨迹就会相应的变化。为了解决该问题,本文通过将图像中指尖轨迹进行分割,重新映射到一个200×200的图像上。经过映射后的轨迹可以很好地解决指尖坐标绝对位置的问题。

重映射后,将得到的坐标点的横纵坐标按点的先后顺序排列起来形成一个一维向量,将此向量作为支持向量机的输入向量。但是,当遇到手写的笔画顺序不同时,此时该向量不能被正确识别。为了让识别与笔画书写顺序无关,本文将分割后的轨迹点再次映射到一个10×10的表格上,当坐标点落在表格相应位置时,表格中该位置标志为1,其他位置设置为0。最后将表格中的所有数字按从左到右,从上到下顺序排列成一维特征向量,并将此向量作为支持向量机的输入向量。

如图4所示,(a)为跟踪手指指尖得到的手写数字‘2’的图像,(b)为对图像(a)中数字的分割和重新映射。

图4 指尖跟踪轨迹及重映射

图5为图4(b)中数字‘2’再次被映射到10×10的表格中,并以此作为手写数字‘2’的识别特征。

图5 数字‘2’的表格映射

2.2 轨迹训练识别

为了对手写数字提取的特征进行识别,本文选择支持向量机作为学习识别的算法。和其他机器学习方法相比,支持向量机具有能有效发现目标函数的全局最优解,最大化决策边界等特点。同时,SVM在解决小样本、非线性以及高维模式的识别中有特定的优势。在解决线性问题中,SVM能直接在该空间中划分出分割平面,但在实际问题中更多的是非线性的问题,需要经过非线性变换将其转换为高维空间中的线性问题来处理。而转换过程一般是通过核函数进行。SVM有三种常用的核函数,分别是多项式核函数、径向基(RBF)核函数和Sigmoid核函数,可以根据实验结果选取一种合适的核函数。

本文通过实验对比发现,用径向基核函数比其他核函数的识别精度更高,所以选择RBF作为支持向量机的核函数。此时,对轨迹特征提取得到的特征向量,用支持向量机进行训练识别。

3 实验结果及分析

本实验在英特尔酷睿双核2.0 GHz处理器、2 GB内存硬件平台上,利用微软Kinect摄像头作为图像采集设备。基于PrimeSense v5.1.2驱动接口,在开源图形库OpenCV v2.4.3和OpenNI v1.5.4基础上开发完成。实验主要分为指尖的跟踪和指尖运动轨迹的识别。实验时人距离Kinect摄像头约1.5米。

3.1 指尖坐标跟踪分析

对指尖运动轨迹的跟踪实验主要是跟踪右手食指指尖的运动。实验中首先对指尖进行检测,当检测到指尖时,利用跟踪算法进行实时跟踪。实验通过三种方法对比跟踪右手食指指尖。将跟踪算法分别应用于如下三种情形:(1) 直接在彩色图像上进行跟踪;(2) 对彩色图像中手部分割后再进行跟踪;(3) 在(2)基础上结合深度积分值进行跟踪。

图6显示了右手食指指尖的跟踪过程的中间帧,图中有三个框选区域是实心正方形、圆形和正方形分别对应上述三种方法的跟踪结果。其中,正方形区域是本文所用算法的跟踪结果,即通过对手部进行分割。然后对该区域进行特征压缩,结合深度信息的跟踪结果;圆形区域为对手部进行分割和特征压缩,但没有结合深度信息的跟踪结果;实心正方形为没有对手部进行分割,而是直接在彩色图像上进行特征压缩的跟踪结果。从实验结果可以看出,本文提出的方法能够有效地跟踪目标,没有结合深度信息的跟踪方法会出现一定的漂移,而直接在彩色图像上的跟踪由于复杂的背景容易丢失目标停留在开始位置。图7为彩色图像帧对应的深度图像帧。

图6 指尖跟踪的彩色图像帧

图7 与彩色图像对应的深度图像帧

图8为上述三种方法跟踪的误差曲线。其中,横坐标为图像帧数,纵坐标为跟踪位置与实际指尖位置的距离(像素)。图中的菱形、方形和圆形曲线分别对应彩色图像上跟踪(第一种)、图像分割后跟踪(第二种)和本文采用方法跟踪的位置误差曲线。从图中可以看出,本文所用的方法跟踪结果非常接近指尖的真实位置,能够有效地跟踪指尖目标。

图8 指尖跟踪位置误差曲线

3.2 指尖轨迹训练识别

针对跟踪获得的指尖轨迹进行特征提取,利用SVM进行训练识别。本实验将对指尖跟踪采集到的手写数字0~9进行训练识别。实验分为离线测试和实时测试,其中离线测试包含了两组数据。第一组为0~9十个数字,共500个训练样本(每个数字包含50个),500个测试样本(每个数字包含50个);第二组同样为0~9十个数字,共1000个训练样本(每个数字100个),500个测试样本(每个数字50个)。分别对这两组样本进行训练识别。

表1中第一组样本和第二组样本显示了两组不同训练样本的识别结果。从表中可以看出第一组样本数字‘8’的识别准确率不高,有一部分识别为‘6’或‘9’,但是从整体上看,识别准确率达到了96.8%。由于训练的样本不充分,所以在第二组实验中增加了训练样本。从表中第二组样本可以看到随着训练样本的增加,识别的准确率也得到了提高,平均识别准确率达到了99.2%。实验结果说明了本文提出的指尖跟踪和轨迹识别算法能够准确地跟踪识别指尖运动轨迹。

表1 指尖轨迹训练识别结果

表1中实时跟踪识别为对指尖实时跟踪轨迹的识别结果,实验中应用了第二组样本的训练结果,实时对两个人的手写数字进行识别,对每个数字测试了100次(每人各50次)。从表中可以看出,实时跟踪识别同样能得到很高的识别率,而且本文采用压缩感知的跟踪算法进行指尖的跟踪,对特征进行压缩来减少运算量,所以该算法实时跟踪同样具有很好的时间性能。

图9显示了对数字0~9的指尖跟踪轨迹及识别结果图像。其中,图中左上角方框中的数字为识别结果,手掌附近的数字为指尖的跟踪轨迹。

图9 数字0~9的指尖跟踪轨迹与识别结果

4 结 语

本文提出了一种基于深度信息的指尖检测跟踪和跟踪轨迹识别的方法。通过压缩感知理论提取跟踪目标特征,利用朴素贝叶斯分类器对跟踪目标和背景分类,实现对目标的跟踪。然后记录指尖跟踪的轨迹,对该轨迹进行特征提取。最后利用支持向量机算法对特征向量进行训练识别。实验表明,文中提出的方法获得了较好的指尖跟踪效果和较高的跟踪轨迹识别率,对实时的跟踪识别也具有较高的准确性和鲁棒性。接下来将进一步研究指尖的变形跟踪及多指尖的跟踪,进一步增加对英文字母和少量汉字的轨迹识别。

[1] 刘伟华,樊养余,雷涛.基于深度图像的运动人手检测与指尖点跟踪算法[J].计算机应用,2014,34(5):1442-1448.

[2] Tsai T C,Chung Y S.A Kinect-based handwritten digit recognition for TV remote controller [C]//2012 IEEE International Symposium on Intelligent Signal Processing and Communication Systems.Taipei:IEEE Press,2012:4-7.

[3] 邓瑞,周玲玲,应忍冬.基于Kinect深度信息的手势提取与识别研究[J].计算机应用研究,2013,30(4):1265-1274.

[4] 张毅,张烁,罗元,等.基于Kinect深度图像的手势识别及应用[J].计算机应用研究,2012,29(9):3547-3550.

[5] 晏浩,张明敏,童晶,等.基于Kinect的实时稳定的三维多手指跟踪算法[J].计算机辅助设计与图形学学报,2013,25(12):1801-1809.

[6] Lee D,Park Y.Vision-based remote control system by motion detection and open finger counting[J].IEEE Transactions on Consumer Ele-ctronics,2009,55(4):2308-2313.

[7] Kang S K,Nam M Y,Rhee P K.Color based hand and finger detec-tion technology for user interaction[C]//Proceedings of the 2008 International Conference on Convergence and Hybrid Information Technology.Washington,DC:IEEE Computer Society,2008:229-236.

[8] Thangali A,Sclaroff S.An alignment based similarity measure for hand detection in cluttered sign language video[C]//Proceedings of the 2009 IEEE Computer Society Conference on Computer Vision and pattern Recognition.Piscataway:IEEE Press,2009:89-96.

[9] Alon J,Athitsos V,Yuan Q,et al.A unified framework for gesture recognition and spatiotemporal gesture segmentation[J].IEEE Transac-tions on pattern Analysis and Machine Intelligence,2009,31(9):1685-1699.

[10] Elmezain M,Alhamadi A,Michaelis B.Real-time capable system for hand gesture recognition using hidden Markov models in stereo color image sequences[J].Journal of Winter School of Computer Graphics,2008,16(1):65-72.

[11] Oka K,Sato Y,Koike H.Real-time fingertip tracking and gesture recognition[J].IEEE Computer Graphics and Applications,2002,22(6):64-71.

[12] Ren Z,Meng J,Yuan J,et al.Robust hand gesture recognition with Kinect sensor[C]//Proceedings of the 19th ACM International Conference on Multimedia.New York:ACM,2011:759-760.

[13] Chen Qing,Georganas N D,Petriu E M.Real-time vision-based hand gesture recognition using Harr-like features[C]//Proceedings of IEEE Instrumentation and Measurement Technology Conference.Piscataway:IEEE Press,2007:1-6.

[14] Zhang Shilin,Zhang Bo.Using HMM to sign language video retrieval [C]//Proceedings of the 2nd International Conference on Computational Intelligence and Natural Computing.Los Alamitos:IEEE Computer Society Press,2010:55-59.

[15] 陶丽君,李翠华,张希婧,等.基于Kinect传感器深度信息的动态手势识别[J].厦门大学学报,2013,52(4):493-497.

[16] Zhang Kaihua,Zhang Lei,Yang Minghsuan.Real-time compressive tracking[C]//Computer Vision ECCV 2012.Springer Berlin Heidelberg,2012.

[17] Achlioptas D.Database-friendly random projections:Johnson- Lindenstrauss with binary coins[J].Comput. Syst.Sci,2003,66(4):671-687.

[18] Baraniuk R,Davenport M,Devore R,et al.A simple proof of the restricted isometry property for random matrices[J].Constr.Approx,2008,28(3):253-263.

[19] Xue Jinghao,Michael D.On discriminative vs.generative classifier: a comparison of logistic regression and naive bayes[J].NIPS,2008,28(3):169-187.

[20] Diaconis P,Freedman D.Asymptotics of graphical projection pursuit[J].The annals of statistics,1984,12(3):793-815.

FINGERTIP TRACKING AND TRAJECTORY RECOGNITION BASED ON DEPTH IMAGE INFORMATION

Li Zhe Peng Siwei

(SchoolofInformationScienceandTechnology,BeijingUniversityofChemicalTechnology,Beijing100029,China)

It is difficult to accurately distinguish the object and the background under the complex environment in two-dimensional image acquired based on traditional camera. To solve the problem, we proposed a tracking method which utilises Kinect camera aiming at the fingertip in complex background, and recognises the trajectory of fingertip tracking. First, it uses the depth image information captured by Kinect to segment the hand and to detect the fingertip. Subsequently, it uses compressive sensing method to extract features from tracking object, and employs the naive Bayesian (NB) algorithm to classify the tracking object and background. Finally, it uses support vector machine (SVM) method to recognise the tracking trajectory. Experimental results showed that the proposed method can successfully track the fingertip locations and accurately recognise the fingertip trajectory at the same time.

Kinect Fingertip tracking Depth image Compressive sensing Fingertip trajectory recognition Support vector machine (SVM)

2014-10-30。李哲,硕士生,主研领域:模式识别,机器学习,图像处理,虚拟现实。彭四伟,副教授。

TP391

A

10.3969/j.issn.1000-386x.2016.04.037

猜你喜欢

跟踪目标指尖轨迹
治理“指尖乱像”不宜一散了之
核相关滤波与孪生网络相结合的目标跟踪算法
轨迹
轨迹
虔诚之花在指尖绽放
指尖上的生活,指尖上的美
轨迹
基于 Android的自学习视觉跟踪系统设计∗
指尖童话
基于图割理论的尺度自适应人脸跟踪算法