基于自适应提取和改进CAMSHIFT单目手势跟踪
2016-08-22黄敦博林志贤姚剑敏郭太良
黄敦博,林志贤,姚剑敏,郭太良
(福州大学 物理与信息工程学院,福建 福州 350002)
基于自适应提取和改进CAMSHIFT单目手势跟踪
黄敦博,林志贤,姚剑敏,郭太良
(福州大学 物理与信息工程学院,福建 福州 350002)
为了解决复杂背景下手势提取与手势跟踪准确度受影响的问题,提出了一种基于自适应提取和改进CAMSHIFT(ContinuouslyAdaptiveMeanShift)单目手势跟踪算法。该算法通过自适应手部提取方法识别手部完成对跟踪目标的初始化,以运动历史矩阵为掩模提取图像中的感兴趣区域,在该区域内使用CAMSHIFT算法跟踪目标,并通过傅里叶描述子对跟踪目标轮廓进行实时反馈,完成对动态手势的精确跟踪。该方法能够在手部经过肤色区域的情境中实现准确跟踪,与经典CAMSHIFT算法相比,跟踪正确率提高了80%,实现了复杂背景下动态手势的准确跟踪。
动态手势跟踪;自适应手部提取;运动历史矩阵;改进CAMSHIFT
随着科技的迅猛发展,与计算机打交道成为人们日常生活的一部分,人机交互成为科研领域的热点问题。基于视觉的手势识别技术使操作者以更加自然的方式进行人机交互,用于动画制作、智能家电设备研发、游戏娱乐和政府及其企业的公共服务等设施,给人们的生活带来了极大的便利[1]。
基于视觉的动态手势识别系统中对动态手势的跟踪是一个重要环节。动态手势跟踪其跟踪目标是直接在图像中提取手部信息,所以手部信息的提取效果会直接影响到跟踪的精度。目前手部信息提取方法主要有传统的手部标定、基于肤色提取、基于运动提取、多模式提取等[2],以上方法在手部跟踪目标提取的准确度、应用环境、人机交互的自然性等方面都存在一定程度的局限性[3-4]。文献[5]采用多特征融合的手势检测提取方案,取得了较好的效果。另外,现有动态手势跟踪算法如基于Kalman动态模型法、粒子滤波(ParticleFilter)法、CAMSHIFT法、MeanShift等[6-7],在出现大面积类肤色干扰或手与面部等其他肤色区域重叠时,跟踪准确性无法保证。真实环境中动态手势跟踪时,不可避免会出现跟踪错误的情况,为了提高跟踪精度,应尽量使跟踪与手部特征相结合。目前常见方法中,在复杂背景下,手势提取方法抗干扰能力差,动态手势跟踪精度和实时性欠佳[8]。
针对现有单目动态手势跟踪算法在复杂背景下手势目标提取效果不佳及固有的局限性,同时为了提高复杂背景下动态手势跟踪精度,本文提出一种基于自适应提取和历史矩阵的CAMSHIFT单目手势跟踪算法,通过自适应提取方法精确提取手部,初始化跟踪目标,引入运动历史矩阵和傅里叶描述子反馈对CAMSHIFT跟踪算法进行改进,在复杂环境下单目动态手势跟踪的准确性有明显提高。
1 CAMSHIFT算法及问题分析
CAMSHIFT跟踪算法是一种经典动态目标跟踪方法。该算法利用颜色概率模型与MeanShift结合,逐帧更新搜索窗口,实现目标跟踪。该算法以其较好的鲁棒性被普遍应用于简单背景下的目标跟踪。
经典CAMSHIFT手势跟踪流程如图1所示,在CAMSHIFT目标跟踪算法中,目标初始化需要在第一帧
内手动标定跟踪目标或者事先保存跟踪模板,无法自动初始化跟踪目标[9]。同时,由于该方法采用颜色概率模型对目标进行识别,当背景中有大量类肤色信息干扰时,跟踪容易失败[10]。而且,经典CAMSHIFT算法没有跟踪目标的检测反馈阶段,一旦跟踪出错不能有效校正。
图1 经典CAMSHIFT手势跟踪流程
本文针对以上不足,将自适应手部提取方法与历史矩阵相结合改进CAMSHIFT,如图2所示。首先,提出一种自适应手部提取方法,自动初始化手部跟踪目标,利用动态色彩直方图精确分割图像中的肤色区域,与傅里叶描述子结合,直接匹配提取肤色区域中的手部区域;其次,引入运动历史矩阵,记录手部运动区域,在掩模区域内使用CAMSHIFT缩小目标采样范围,减少复杂背景干扰;最后,对每帧跟踪到的目标信息,利用傅里叶描述子进行判断反馈,及时校正跟踪目标。
图2 本文算法手势跟踪流程
2 自适应提取CAMSHIFT跟踪目标策略
2.1自适应手部提取算法
目标跟踪算法中的自动手部提取,最终目的是在图像中分割出手势并获取手势特征,标记手部位置。通常,利用肤色的静态特征,采用肤色识别提取,但单纯的肤色识别单纯肤色识别易受背景、光照及类肤色等因素影响,手部提取效果并不理想[11]。而手势特征的提取往往是在手势分割之后进行,存在特征提取结果依赖于手势分割效果的缺陷[12]。
本文利用肤色的动态特征,并融合手势特征,提出一种自适应手部提取算法,初始化手部跟踪目标,算法流程如图3所示。该方法利用HSV肤色模型对图像中的肤色区域进行提取,同时对提取出的肤色区域建立色彩直方图;对每帧都进行肤色区域识别,对相邻帧间的肤色区域做差分处理,使用该结果对色彩直方图进行更新;通过动态色彩直方图获取图像中肤色区域后,提取肤色区域上半部分轮廓信息,利用傅里叶描述子分析得到的轮廓信息并与模板进行匹配,记录手部位置。
图3 自适应手部提取算法
自适应手部提取算法中,动态色彩直方图肤色检测方法将HSV肤色模型与肤色区域帧间差分融合,可根据视频中人的肤色自适应地调节肤色阈值,减小由周围环境和光照产生的噪声,提高人体肤色区域提取的准确率。其中,帧间差分处理只在肤色区域进行,减小计算量。获取肤色区域后,提取肤色区域上半部分轮廓,只对轮廓上半部分采用傅里叶描述子进行匹配,能有效避免手臂的干扰。直接利用傅里叶描述子匹配提取肤色区域中的手部特征,摒弃先分割手势再特征提取的传统思想,克服特征提取对手势分割的依赖,同时,手部提取算法可并行化处理,使得手部提取更快速、更准确。
2.2算法实现步骤
1)检测肤色区域
本文利用动态色彩直方图肤色检测方法,利用HSV肤色模型,结合帧间差分,可自动调整肤色阈值提取肤色区域。假设摄像头获取的第i帧图像用Pi标记,其中i=1,2,…,n。
首先,初始化色彩直方图。将摄像头采集到第一帧图像P1转换为HSV色彩图像,使用经典H分量的肤色模型识别肤色区域C1,初始化色彩直方图H1。其次,在下一帧图像中用已经建立的色彩直方图进行肤色检测,同时更新色彩直方图。P2帧图像同样转换为HSV色彩图像,使用经典肤色模型对P2帧图像做肤色区域检测,得到肤色区域C2,在C1与C2间做差分处理,得到相邻帧中肤色区域间的差分色彩直方图HM,并利用式(1),将HM叠加到H2中,得到更新后的色彩直方图H2。式(1)为
Hi+1=(1-A)Hi+AHM
(1)
式中:A为融合系数,取值为0~1,代表最新得到的肤色样本在整体肤色样本中的比重。
A取值过大可能出现手部提取不完整,而取值过小可能导致提取出的手部干扰信息增多,在实际应用中,本文取0.2。用不断更新的色彩直方图检测下一帧图像的肤色区域,同时再次更新色彩直方图,不断更新提取视频中的肤色区域。
2)提取手部特征
对获取到的肤色区域提取轮廓;对各轮廓曲线进行历遍,保留轮廓上半部分曲线数据,并相应地采用经典傅里叶描述子进行计算;将得到的各轮廓与事先准备好的若干手势轮廓模板计算差异程度,选择在阈值内最相似的模板,完成手势匹配识别,保留该轮廓位置及与其匹配的手势特征。
3 自适应提取和历史矩阵CAMSHIFT手势跟踪策略
经典CAMSHIFT算法只对颜色信息敏感,复杂背景下跟踪容易出错,且无法重新定位目标。本文引入运动历史矩阵,屏蔽干扰区域,解决运动手势与肤色区域重叠时跟踪出错问题;将跟踪与手部形态特征结合,加入傅里叶描述子进行跟踪反馈,有效发现跟踪错误,及时重新定位跟踪目标。
3.1运动历史矩阵
本文提出运动历史矩阵概念,运动历史矩阵是一个与获取的视频图像相同大小的二维矩阵,采用帧间差分与历史运动像素点值随时间衰减方式来记录最近时间段内运动像素点的历史。
运动历史图像矩阵的生成原理如图4所示,其基本思想:认为当前的运动像素点是最有价值的,故在运动历史矩阵中置为初始值且值最大;在最近时间段内曾经发生过运动的像素点,有一定的价值,称为历史运动点,其对应在运动历史矩阵中的值会随时间而衰减;当历史运动点值衰减到最小阈值时,则认为是太早发生过的动作,没有记录价值,对应历史矩阵中的值置0。该矩阵用不同数值记录不同时刻的运动像素点,时间越早的像素点,其运动历史矩阵中的记录数值越小。
图4 运动历史矩阵示意图
记录运动像素点的值的运动历史矩阵公式为
(2)
式中:D=Pi-Pi-1表示相邻帧的差分图像,D(x,y)为D中的像素点值;Z为运动历史矩阵,Z(x,y)为Z中元素值;a为初始值;Dmin为最小阈值。
在本文中,a取255,Dmin与要保存的运动历史时间相关,需要结合每秒处理帧数来进行设置,保存的运动历史时间越长,Dmin值越小。视频图像帧间差分处理得到D,如果像素点D(x,y)≠0,表明该像素点当前时刻为运动点,在运动历史图像矩阵的相应位置Z(x,y)置为a进行标记;如果差分图像中,像素点D(x,y)=0,表明该像素点当前时刻为非运动点,但仍需检测该像素点对应在运动历史图像矩阵中Z(x,y)的值,当时Z(x,y)=0,表明该像素点曾经运动过但在当前时刻未运动,该点值Z(x,y) 3.2运动历史矩阵改进CAMSHIFT策略 首先,利用运动历史矩阵提取感兴趣区域,在感兴趣区域内使用CAMSHIFT算法跟踪手部。提取感兴趣区域方法公式为 (3) 式中:Pi(x,y)为Pi帧图像x行y列像素点色彩值;Z(x,y)为运动历史矩阵x行y列的元素。 由式(3)可知,由于运动历史矩阵存储了近段时间的历史运动点,采用将运动历史矩阵作为掩模提取视频图像中的感兴趣区域,能够保证感兴趣区域内图像像素值保持不变,而区域外图像像素值都为0,故得到的新图像是与运动历史区域所对应的区域图像,能有效防止在运动手部与肤色区域重叠时CAMSHIFT算法对手部范围判断的失误,同时减少跟踪过程CAMSHIFT算法的迭代次数以保证算法实时性。 其次,加入傅里叶描述子对跟踪得到的手部轮廓进行检测反馈。加入运动历史图像矩阵并不能完全避免手部与肤色区域重叠时反向投影跟踪算法跟踪错误的状况,当傅里叶描述子检测CAMSHIFT跟踪出错时,则使用自适应手部提取算法重新提取手部区域,作为新的跟踪目标。加入傅里叶描述子进行跟踪反馈,能极大提升手部跟踪的准确性。 3.3自适应提取和历史矩阵CAMSHIFT手势跟踪 本文提出的改进CAMSHIFT算法,使用自适应手部提取算法识别手部,保存手部信息后使用运动历史矩阵改进CAMSHIFT策略对手部进行跟踪,傅里叶描述子对跟踪得到的手部轮廓进行判断反馈,从而将自适应手部提取与历史矩阵CAMSHIFT策略有效融合,整个算法形成闭环回路,提高手势识别跟踪准确性。算法流程如下: 步骤1,摄像头获取实时图像,判断图像中的手部跟踪信息,若是不存在,则转到步骤2,否则转到步骤3。 步骤2,利用自适应手部提取方法,通过帧间差分图像更新色彩直方图后对肤色区域进行提取,得到若干轮廓,转到步骤5。 步骤3,使用帧间差分图像更新运动历史矩阵,并使用该运动历史矩阵为掩模提取当前帧的感兴趣区域。 步骤4,在感兴趣区域内以手部跟踪信息为模板,以运动历史矩阵最大值区域重心为起点,进行CAMSHIFT跟踪,并得到手部轮廓。 步骤5,将轮廓分别与傅里叶描述子进行匹配,若为手部则更新并储存手部跟踪信息,否则清空删除手部跟踪信息,接着转到步骤1继续进行跟踪。 为了验证本文算法的有效性,本文实验使用罗技C270摄像头,在PC机上进行测试,摄像头分辨率为640×480,使用OpenCV进行编程,并与经典CAMSHIFT算法进行对比。算法迭代精度均为Δ=10,当前后两次迭代得到的手势中心间距小于(或等于)Δi(i=1,2)时,认为当前点为手势中心点。本文算法以运动历史矩阵中最大值区域的重心作为搜索中心,以上一帧包含跟踪目标的最小矩形作为搜索窗口大小。 4.1算法精度对比 在有较多肤色区域的复杂环境下,本文算法与经典CAMSHIFT算法动态手部跟踪效果如图5和图6所示。 通过对比试验,图6中经典CAMSHIFT算法需要在跟踪初始阶段人为标定手部位置,采集样本建立跟踪目标,在手部运动较快或者与人脸等其他裸露身体部位重叠时,跟踪精度已不能得到保证,手部跟踪出 图5 本文算法 图6 经典CAMSHIFT 错。而图5中,本文算法使用自适应手部提取自动建立跟踪目标,改进CAMSHIFT能在肤色重叠区域正确跟踪手部。为了充分证明本文算法跟踪准确度的提高,在图5和图6的环境背景下,分别测试运动手部与面部等肤色区域重合、运动手部与肤色区域不重合两种情况,不同情况下两种算法各进行15次手部跟踪试验,每次跟踪持续30 s,统计结果如表1所示。 表1不同手部运动情况下实验对比 运动情况跟踪算法成功次数反馈次数成功率/%动态手势与肤色区域不重叠本文算法151100经典CAMSHIFT13—86.67动态手势与肤色区域重叠本文算法14793.33经典CAMSHIFT2—13.33 由表1可以看出,在动态手部与面部有重合的情况下,本文跟踪成功率较经典CAMSHIFT算法提高了80%。在动态手部与面部不重合的情况下,由于所用背景有部分类肤色区域,经典CAMSHIFT算法依然有一定的失败率,而本文跟踪成功率则为100%,提高13.33%。 4.2算法运行时间对比 经典CAMSHIFT算法与本文算法在跟踪过程中的每帧平均耗时如表2所示。 本文算法虽然跟踪消耗的时间略高于传统CAMSHIFT,但在高收敛精度的条件下,依然能够实现实时跟踪。 表2运行时间对比 算法帧数1~30f/ms31~60f/ms61~90f/ms91~120f/ms经典CAMSHIFT6.210.14.87.2本文算法13.611.211.99.8 本文提出并实现了一种基于自适应提取和历史矩阵的CAMSHIFT手势跟踪方法,该方法用自适应手部提取代替了手动标记跟踪目标的传统方法,精确提取手部信息,获得跟踪目标。相比经典CAMSHIFT算法,本文利用运动历史矩阵和傅里叶描述子跟踪反馈对其进行改进,在运动手部经过面部的情况下,跟踪准确率提高80%;在背景中存在大量类肤色区域情况下,跟踪准确率提高13.33%。本文算法之所以能有效提高跟踪精确率,是因为运动历史矩阵实现了对大部分干扰区域的屏蔽,同时对CAMSHIFT搜索窗口进行预测,在跟踪出错时能利用傅里叶描述子及时反馈,重新定位手部。本文算法能保证在高收敛精度条件下,实现精确跟踪。该方法适用于复杂背景环境中对动态手势的跟踪,并取得了较好的效果。 [1]RAUTARAY S S,AGRAWAL A.Vision based hand gesture recognition for human computer interaction:a survey[J].Artificial intelligence review,2015,43(1):1-54. [2]林燕,冯志全,朱德良,等.以多模型融合为特征的三维手势跟踪算法[J].计算机辅助设计与图形学学报,2013,25(4):450-459. [3]HASAN H,ABDUL-KAREEM S.Static hand gesture recognition using neural networks[J].Artificial intelligence review,2014,41(2):147-181. [4]NAYAK M K,TALUKDAR A K,SARMA K K.Hand segmentation and tracking of continuous hand posture using morphological processing [J].International journal of electronics signals and systems,2013,3(1):82-86. [5]沙亮,王贵锦,林行刚,等.基于多特征融合的稳健手势检测方法[J].电视技术,2010,34(8):110-113. [6]冯志全,杨波,李毅,等.以时间优化为目标的粒子滤波手势跟踪方法研究[J].电子学报,2009,37(9):1989-1995. [7]王宇.基于Mean Shift的序列图像手势跟踪算法[J].电视技术,2010,34(6):97-99. [8]OHN-BAR E,TRIVEDI M M.Hand gesture recognition in real time for automotive interfaces:a multimodal vision-based approach and evaluations[J]. IEEE transactions on intelligent transportation systems,2014,15(6):2368-2377. [9]张春林,李小坚.基于帧间差分和背景差分结合的Camshift目标跟踪算法[J].工业控制计算机,2014 (6):118-120. [10]张秋余,胡建强,张墨逸,等.基于区域生长的Mean shift动态变形手势跟踪算法[J].模式识别与人工智能,2010,23(4):580-585. [11]BOUCHRIKA T,ZAIED M,JEMAI O,et al.Neural solutions to interact with computers by hand gesture recognition[J].Multimedia tools and applications,2014,72(3):2949-2975. [12]张国亮,王展妮,王田.应用计算机视觉的动态手势识别综述[J].华侨大学学报,2014,35(6):653-658. 黄敦博(1991— ),硕士生,主研光电信息处理; 林志贤(1975— ),教授,博士,硕士生导师,主要研究领域为平板显示器件驱动技术和图像处理技术等; 姚剑敏(1978— ),副研究员,博士,主要研究方向为模式识别、三维显示技术等; 郭太良(1963— ),研究员,博士生导师,主要研究方向为FED显示器等。 责任编辑:闫雯雯 MonoculargesturetrackingbasedonadaptiveextractionandimprovedCAMSHIFT HUANGDunbo,LINZhixian,YAOJianmin,GUOTailiang (College of Physics and Information Engineering,Fuzhou University,Fuzhou 350002,China) Inordertosolvegestureextractionandgesturetrackingaccuracyaffectedbytheproblemofcomplexbackground,amonoculargesturetrackingalgorithmbasedontheadaptiveextractionandimprovedCAMSHIFT(ContinuouslyAdaptiveMeanShift)strategyisproposedinthispaper.Themethodisautomaticallyaccomplishedbytheadaptivehandextractionmethodidentifyingthehand.TheCAMSHIFTalgorithmisusedtotrackthetargetintheareathatisextractedbythemotionhistorymatrixasamask,thenFourieroperatorcalculatesthetrackeddynamicgesturesasreal-timefeedbacktocompletetheprecisetrackingofthedynamicgesture.Theproposedmethodcantrackthedynamicgestureaccuratelyundertheconditionthatthemotiongesturesandfacialoverlappedeachother.Therateoftrackingprecisionrises80%whichcompareswiththetraditionalCAMSHIFTalgorithm.Themethodrealizestheprecisiondynamictrackingunderthecomplexbackground. dynamicgesturetracking;adaptivehandextraction;motionhistorymatrix;improvedCAMSHIFT TP391 ADOI:10.16280/j.videoe.2016.07.024 国家科技部“863”重大专项(2013AA030601);福建省科技重大专项(2014HZ0003-1);福建省资助省属高校专项课题项目(JK2014002) 2015-10-19 文献引用格式:黄敦博,林志贤,姚剑敏,等.基于自适应提取和改进CAMSHIFT单目手势跟踪[J].电视技术,2016,40(7):107-112. HUANGDB,LINZX,YAOJM,etal.MonoculargesturetrackingbasedonadaptiveextractionandimprovedCAMSHIFT[J].Videoengineering,2016,40(7):107-112.4 实验结果
5 结论