应用于人脸自动实时跟踪的改进Struck算法
2016-04-14肖儿良
肖儿良,韩 超
(上海理工大学 光电信息与计算机工程学院,上海 200093)
应用于人脸自动实时跟踪的改进Struck算法
肖儿良,韩超
(上海理工大学 光电信息与计算机工程学院,上海200093)
摘要传统的Struck算法在人脸跟踪系统中,需要手动实现初始化且易受环境影响。文中提出一种基于AdaBoost目标自动检测和改进的Struck人脸自动跟踪算法。从图像中提取人脸的Haar特征,采用AdaBoost算法实现人脸的检测,并自动初始化跟踪器,再依据检测得到的相邻帧目标的相似度判定跟踪目标的有效性,采用Struck算法实现人脸的连续跟踪。实验结果表明,改进的算法有效解决了部分遮挡、尺度变化、光照变化等人脸跟踪难题,且具有较高的鲁棒性与准确性。
关键词AdaBoost;Struck;人脸检测;实时跟踪
Improved Struck Algorithm for Real-time Face Auto-tracking
XIAO Erliang,HAN Chao
(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)
AbstractThe classic Struck algorithm is incapable of automatic tracking of the human face and easily subject to the environment interference.In the paper,the classical Struck method is improved to achieve automatic real-time face tracking by the Adabboost algorithm.Firstly,the Haar feature of the face is extracted.Then the AdaBoost algorithm is used to detect face target and initialize the Struck tracker automatically.The similarity between the detected target and the last result is computed to get the best result,with Struck tracking the face continuously.Experimental results show the improved algorithm applies in such complex environment as partial occlusion,scale variation,illumination variation with good robustness and accuracy.
KeywordsAdaBoost;Struck;face detection;real-time tracking
人脸跟踪是计算机视觉领域的研究热点,其在智能监控、人机交互、游戏等领域有重要的应用价值。人脸跟踪指在视频图像中,确定人脸的运动轨迹及其大小变化的过程。
人脸跟踪包括人脸的检测和跟踪,其中人脸检测是人脸跟踪的关键。目前人脸检测的方法主要有3种:基于人脸特征[1]、基于模板匹配[2]和基于人脸整体统计信息[3]。跟踪算法应用较多的有光流法[4]、粒子滤波算法[5]和Meanshift算法[6]。然而传统的跟踪算法只是单纯跟踪,不能在线学习,从而不能适应跟踪目标的变化,应用于复杂场景的目标跟踪。但Struck算法基于结构输出预测的自适应目标跟踪框架,利用支持向量机(SVM)原理,通过引入输出空间,避免中间分类环节,直接输出跟踪结果。
本文在原始Struck算法的基础上,通过AdaBoost算法对人脸区域进行快速检测,以此作为Struck算法的初始目标,从而实现了自动的人脸检测,不再需要人工初始化目标区域。同时为了增加算法的鲁棒性,借鉴跟踪-学习-检测(Tracking-Learning-Detection,TLD)中跟踪与检测同时进行的思想,对检测器产生的目标框与跟踪器产生的目标框进行判断与融合。
1原理
1.1AdaBoost算法原理
人脸检测是人脸跟踪中的重要环节,其可靠性将对后续人脸跟踪系统的性能和稳定性产生重大影响。人脸检测的目的是为了获得人脸的位置、大小等信息。本文主要利用基于Haar特征的AdaBoost算法[7]进行人脸检测。
在基于AdaBoost算法的人脸检测算法中,由于Haar特征[8]相对于像素来描述人脸,不仅包含一定领域的信息,且计算速度快,因而在人脸检测算法中被大量使用。Haar特征如图1所示。
图1 Haar特征
Haar特征的特征值是图1中黑色区域和白色区域的像素灰度值之差。实际通过积分图法计算Haar特征,只需遍历一次图像便可求出图像中所有区域的像素和。
AdaBoost算法的核心思想是针对同一个训练集训练不同的弱分类器,将弱分类器相组合,从而构成一个强分类器,弱分类器效果好的赋予更大的权重。
AdaBoost算法具体步骤如下:
(1)给定人脸图片(x1,y1),(x2,y2),…,(xn,yn),其中,xi表示第i个人脸样本;yi=1,表示正样本(人脸);yi=0表示负样本(非人脸);
(2)初始化样本权值
(1)
式中,m为正样本数量;n为负样本数量;
(3)1)归一化权值
(2)
式中,t为弱分类器数量,t=1,2,…,N;
2)对特征j,训练一个弱分类器hj(xi),然后对每个特征生成的弱分类器计算权重误差
(3)
3)选择具有最小误差εj,t的分类器叠加到强分类器中,并更新训练样本的权值
(4)
4)强分类器输出
(5)
本文利用瀑布算法的分类器组织成筛选式的级联分类器,级联的每个节点是AdaBoost训练得到的强分类器,其人脸检测模型如图2所示。
图2 人脸检测模型
1.2Struck算法原理
Struck(Structured Output Tracking)[9],即结构性训练跟踪算法,是由Sam Hare等首先提出,该算法提出了一种新的跟踪框架。与传统的特征和标签训练跟踪方法不同,Struck是基于特征和变换的训练方法,通过维护一个支持向量集来寻找置信函数的极值点,确定跟踪目标的位置。
为能跟踪到物体,假设物体的运动是小运动,通过最大化h来预测目标的位置。物体当前的位置与上一帧位置的函数关系如下
pt=pt-1。yt
(6)
(7)
传统的训练分类器只利用了正负标签,因而分类器的置信函数无法准确处理估计的物体位置;训练分类器的样本权值相同。实际上,不同的样本对分类器产生的影响程度不同;标签器的选择往往取决于经验,需经过试探性,才能找到合适的标签器。
为解决以上问题,Struck采用了结构输出预测的自适应SVM跟踪框架,其输出空间不再是传统的正负标签,而是所有的位置变换。其变换函数如下式
(8)
其中,F为判别函数;F(x,y)=〈w,Φ(x,y)〉,用于评价样本间的相似度,与跟踪目标最相似的,数值越大,Φ为输入空间到特征空间的映射,将不可分转化成线性可分。
给定样本T={(x1,y1),…,(xn,yn)},寻找离数据点的间隔最大的分类界面,其最优化目标函数如下
(9)
通过拉格朗日乘子法,将(9)转化为如下的对偶函数
(10)
为便于求解式(10),进行参数替换,如式(11)所示
(11)
从而化简成
(12)
判别函数的最终形式为
本文采用高斯核函数作为核函数
(13)
Struck的算法主要步骤为:(1)给定目标图片序列,通过获取到的跟踪目标进行跟踪器参数的初始化;(2)估计出物体新的位置;(3)处理新的跟踪目标样本,通过SMO[10]算法求解最优的分割平面,阈值判断,从而防止支持向量过增长,跟踪到目标对象及更新支持向量集。
1.3评价参数
通过比较跟踪器的结果与标定的真实值,选用重叠度Ok和AUCλ[11]作为评价标准。
重叠度Ok用来比较标定好的真实目标框与跟踪器跟踪的目标框的结果。
(14)
其中,TPk为在某一帧中被真确跟踪到的像素点数,FPk为在错误跟踪到的像素点数;FNk为跟踪器丢失的跟踪像素点数。Ok越大,则跟踪器跟踪更准确。
当重叠度小于某一特定值时,即Ok≤τ,其中τ≤[0,1],则认为跟踪器跟丢目标。跟丢率λ为跟丢的帧数与总帧数的比值,其形式如下
(15)
其中,Nl为总的丢帧数;N为测试视频的帧数。
基于λ(τ),引入AUCλ来评价跟踪器的性能,AUCλ为LTR(LostTrackRatio)跟丢率曲线的面积,其形式如下
(16)
其中,Δτ=0.01,0≤AUCλ≤1。AUCλ值越小,则说明跟踪器的综合性能越好。
2算法实现
本文通过AdaBoost检测出人脸,从而实现Struck跟踪算法的初始化。为提高算法的鲁棒性和准确性,将检测与跟踪同时进行,计算AdaBoost检测器返回的目标框与Struck跟踪器上一帧输出的目标框的最近邻相似度。若小于阈值,则认为跟踪失败,此时通过检测器重新初始化跟踪器。当AdaBoost检测返回的目标框与Struck上一帧输出的目标矩形之间的相似度大于阈值时,则认为跟踪结果可靠。改进的算法流程如图3所示。
图3 改进的Struck算法流程
3实验测试与分析
此部分对分别对网上公开的boy,FaceOcc2,jumping视频及摄像头实时视频进行实验测试。这些视频包含了跟踪过程中出现的目标的部分遮挡,姿态的改变以及相似目标的存在等各种严峻测场景。
进行实验的软件环境:Windosw7系统,VS2010,OpenCV2.4.6,Eigen2;硬件平台:Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz,8 GB内存,摄像头为USB2.0 HD UVC WebCam;数据的测试在Matlab下完成。粒子滤波是一种基于蒙特卡罗和递推贝叶斯估计的方法,由于粒子的非高斯及非线性特点,被广泛用于目标跟踪。TLD[12]是用于解决单目标长时的跟踪算法,最近得到了国内外学者的广泛研究。为了说明本文的改进算法性能更优,采用相应的AdaBoost结合ParticleFilter、TLD的算法进行比较,实验采用多次测量取平均值。
3.1网上公开视频测试
测试人脸视频序列的跟踪结果部分截图如图4所示,图中深色实线是AdaStruck的跟踪框,浅色实线框是AdaTLD的跟踪框,虚点画线是AdaParticleFilter的跟踪框。
图4 3种视频不同算法的跟踪结果对比
从图4(a)的boy视频看出,在第324帧,当boy人脸发生尺度变化时,AdaParticleFilter已经完全失去跟踪目标,跟踪失败。在第349帧,boy人脸模糊时,AdaParticleFilter发生漂移。在第372帧,boy人脸旋转,AdaParticleFilter再次跟踪失败。AdaStruck和AdaTLD均能较好地跟踪到人脸。
在图4(b)FaceOcc2测试中,在部分遮挡的第143帧及旋转的第332帧,AdaParticleFilter发生漂移。在光照变化的第375帧,AdaParticleFilter无法跟踪到人脸。此时AdaTLD仍可跟踪到人脸,但其目标框受到干扰,不能完全框住人脸区域。
在最后的视频测试测试中,人脸快速运动及模糊时,AdaTLD及AdaParticleFilter都无法跟踪到人脸目标。在以上所有的测试中,AdaStruck都能很好的跟踪到人脸目标。
测试视频的重叠度结果如图5所示。可以看出,AdaStruck算法跟踪到的人脸目标重叠度比AdaTLD、AdaParticle均要高,这说明AdaStruck跟踪到的人脸准确性较高。测试视频的LTR曲线对比,如图6所示。
图5 3种视频不同算法重叠度的对比
图6 3种视频不同算法LTR曲线对比
图片序列AdaParticleFilterAdaTLDAdaStruckboy0.3850.3220.255FaceOcc20.7120.3400.250jumping0.7450.4010.298
由图6看出,在各个测试视频中,AdaStruck的LTR曲线所包围的面积最小。从表1的综合性能参数比较中,可以看出在各组测试中,AdaStruck的性能都优于其他算法。故改进的AdaStruck算法相相比其他算法,性能上有很大的提升。
3.2实时摄像头测试
将算法用摄像头来跟踪人脸,视频像素为320×240,帧速为15 f·s-1,对实验结果进行部分截图,如图7所示。
图7 不同场景的跟踪实测
图7(a)的人脸虽然被遮挡,跟踪器仍能跟踪到人脸;图7(b)为人脸虽发生了旋转和缩放,但跟踪器仍可较好的找到人脸;图7(c)和图7(d)为人脸发生丢失,当人脸重新回到摄像头的范围内,人脸能较快被重新跟踪到。测试结果表明,改进的算法可适用于真实场景。
4结束语
Struck算法是一种可在线学习的新颖计算机视觉跟踪算法。本文在其基础上,提出了一种基于AdaBoost优化的Struck人脸实时跟踪算法。算法使用AdaBoost进行人脸检测,避免了Struck的人工初始化。AdaBoost人脸检测与Struck人脸跟踪同时运行,通过相似度计算AdaBoost与Struck跟踪的目标框,从而提高了跟踪的准确性。此外,当Struck跟踪发生失败时,再次通过AdaBoost进行人脸检测,重新初始化跟踪。在boy,FaceOcc2,jumping视频序列测试及摄像头实测中的结果表明,采用AdaBoost优化的Struck算法能够有效适用于人脸序列中的实时跟踪。
参考文献
[1]Shaick B,Yaroslavsky L.Accelerating face detection by means of image segmentation[C].Kunming:Proceeding of EURASIP Conference Focused on Video/Image Processing and Multimedia Communications,2003.
[2]Yang G,Huang T S.Human face detection in a complex background[J].Pattern Recognition,1994,27(1):53-63.
[3]Rowley H A.Neural network-based face detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1998,20(1):23-38.
[4]Lucas B D,Kanade T.An iterative image registration technique with an application to stero vision[C].Soul:International Joint Conference on Artificial Intelligence,1981.
[5]Katja Nummiaro,Esther Koller-Meier,Luc Van Gool.An adaptive color-based particle filter[J].Image & Vision Computing,2003,21(1):99-110.
[6]胡铟,杨静宇.基于分块颜色直方图的Mean Shift跟踪算法[J].系统仿真学报,2009,5(10):2963-2939.
[7]Viola P,Jones M.Robust real-time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[8]Papageorgiou C P,Oren M,Poggio T.A general framework for object detection[C].London:Proceedings of the 6th International Conference on Computer Vison,1998.
[9]Sam Hare,Amir Saffari,Philip H S Torr.Struck:structured output tracking with kernels[C].MA USA:Proceedings of the 28th International Conference on Machine Learing,2011.
[10]Antoine Bordes,Leon Bottou,Patrick Gallinari,et al.Solving multiclass support vector machines with larank[C].NZ USA:Proceedings of the 24th International Conference on Machine Learing,2007.
[11]Tahir Nawaz,Andrea Cavallaro.PFT:A protocol for evaluating video trackers[C].Belgium:Proceedings ofthe 18th IEEE International Conference on Image Processing,2011.
[12]Kalal Z,Mikolajczyk K,Matas J.Tracking-learning-detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,34(7):1409-1422.
欢 迎 投 稿
投稿请登录:www.dianzikeji.org
中图分类号TP391.41
文献标识码A
文章编号1007-7820(2016)03-042-06
doi:10.16180/j.cnki.issn1007-7820.2016.03.011
作者简介:肖儿良(1969—),男,博士。研究方向:信号采集与处理等。
收稿日期:2015- 07- 17