张江鑫,陈 林,吴佳颖(浙江工业大学 信息工程学院,浙江 杭州 310023)
一种基于Camshift聚类的粒子滤波人脸跟踪算法
张江鑫,陈 林,吴佳颖
(浙江工业大学 信息工程学院,浙江 杭州 310023)
针对Camshift算法无法处理相似背景颜色干扰、背景复杂和传统粒子滤波人脸跟踪算法中的粒子退化、计算量大等问题,提出了一种基于Camshift聚类的粒子滤波人脸跟踪算法.在粒子滤波框架下,将Camshift算法中的聚类方法引入人脸状态估计中,使每个粒子沿着梯度最大方向迭代至局部密度最大值区域,让所有粒子移动到与人脸颜色相似的区域.实验结果表明:该算法用较少的粒子实现了人脸曲线无规则运动的跟踪,在光照和遮挡问题上有较好的鲁棒性.该算法性能明显优于传统的粒子滤波人脸跟踪算法,用于实现人脸跟踪具有很好的实时性、鲁棒性和有效性.
Camshift;粒子滤波;聚类;人脸跟踪
人脸跟踪作为运动分析的关键技术之一,已受到国内外的科研机构和众多学者的广泛关注.Camshift算法和粒子滤波算法是目前常见的两种人脸跟踪算法.Camshift算法是通过人脸肤色信息颜色直方图的均值漂移[1]实现人脸跟踪,但有相似背景干扰时会跟踪失败.Isard[2]最早将粒子滤波引入目标跟踪中,解决了卡尔曼滤波无法进行非线性[3]非高斯人脸运动的状态预测问题,但易出现粒子退化.很多学者将Camshift算法和粒子滤波算法结合起来:吴天瑞等[4]提出将肤色色度信息融合于粒子滤波技术中,杜云明等[5]提出基于HSV肤色及空间特征的粒子滤波人脸跟踪算法.但这些算法仅仅使用单一肤色特征,无法实现复杂多变场景中的人脸跟踪,所以也有学者在粒子滤波框架中融合多特征信息.田卉等[6]将加权颜色直方图和旋转复合小波融合到粒子滤波跟踪框架中;Tian[7]提出一种结合肤色和Gabor纹理特征的粒子滤波人脸跟踪算法.这些算法确实在人脸旋转、背景肤色干扰和遮挡问题上有较好的鲁棒性,但多特征[8-9]的加入增加了计算复杂度,也没有解决粒子退化问题.
Camshift聚类方法[10-11]能加快目标收敛速度,笔者引入观测信息[12],采用新的重要性密度函数[13],将Camshift聚类方法引入粒子滤波人脸状态估计中,设计出基于Camshift聚类的粒子滤波人脸跟踪算法,简称CCPF(Camshift clustering particle filter),解决了粒子退化问题,用于人脸跟踪具有很好的实时性、鲁棒性和有效性.
1.1 Camshift人脸跟踪算法分析
Camshift人脸跟踪算法是基于颜色直方图的一种有效的人脸跟踪算法,它对初始的人脸跟踪区域进行反向投影得到颜色概率分布图像,对其进行迭代运算使人脸区域收敛,求出搜索窗口的质心位置和零阶矩阵,并用来设置下一帧人脸图像的位置和尺寸.在人脸跟踪过程中,人脸的运动会引起颜色概率分布图像中颜色区域大小和位置的变化,这时Camshift人脸跟踪算法就要在计算过程中不断调整人脸搜索区域的大小;Camshift人脸跟踪算法是连续自适应算法,能够自动调节人脸搜索区域的大小和位置,并且根据当前帧搜索的结果来预测下一帧图像中人脸区域的重心和大小.该算法跟踪人脸比较稳定,且实时性比较好.但在人脸跟踪过程中处理相似背景颜色干扰、背景复杂等问题时效果不好,容易导致跟踪失败.
1.2 粒子滤波人脸跟踪算法分析
粒子滤波人脸跟踪算法是一种基于蒙特卡罗的估计算法,可以求解后验概率密度函数的最优解.通过在搜索区域以高斯模型投撒粒子,经过状态转移预测和重要性采样对这些粒子进行权值更新,归一化加权确定最佳后验概率密度函数,确定出下一帧中人脸的最佳位置和尺寸.在权值更新过程中,传统的粒子滤波算法是将先验概率密度函数作为重要性密度函数,这样做的缺陷在于粒子的选取没有利用当前的观测值,在多次迭代以后只有少数的粒子得到较大的权值.在后续的状态转移预测过程中,大量的计算浪费在权值较小的粒子上,导致大量粒子在采样中被丢弃,加剧粒子的退化.所以需要通过重采样缓解粒子退化,根据粒子权值的大小重新分配粒子,但这也大大增加了计算复杂度,影响了人脸状态估计的效率.
如果能利用当前的观测值,并采用新的重要性密度函数更新权值公式,将所有的粒子移动到人脸颜色相似的区域内,就可以实现用较少的粒子数准确地估计出后验概率密度函数.如此就可以解决粒子退化问题,舍弃重采样步骤,大大减少计算复杂度,提高人脸状态估计的效率.
2.1 算法的提出
在粒子滤波人脸跟踪算法中,粒子数的多少决定了每一帧图像对人脸匹配运算的次数,粒子数越多,耗时越多.状态转移预测过程决定了下一帧粒子的散部区域,如果能将粒子集中在某一区域就可以用少数粒子准确预测人脸位置进行跟踪.
为了用较少的粒子数目实现准确的人脸跟踪,可以将Camshift算法中的聚类方法应用到转移预测过程,加入当前时刻的观测值,使建议分布函数包含最新的观测信息,让先验分布函数更加准确;并采用新的重要性密度函数,摒弃传统粒子滤波算法将先验概率密度函数作为重要性密度函数的做法,使大多数粒子在采样中不被丢弃,提高了粒子传播的准确性.粒子经过聚类处理算法之后,均朝向梯度最大的方向移动,集中在真实人脸区域附近.最后进行颜色相似度比较求出似然函数,并带入权值更新公式求出粒子的权值.迭代后的粒子大多移动到了人脸区域附近,获得大的权值,而权值小的粒子很少,克服了粒子退化问题.
粒子经过聚类获得的权值都很大,粒子集中在人脸区域附近,所以即使很少的粒子也能很好地反映人脸区域状态,提高了粒子的使用效率,简化了计算复杂度,增加了跟踪准确性,所以该算法不需要大量的粒子就可以实现人脸跟踪.
2.2 粒子聚类处理算法
(1)
p(xt|y1:t)=p(xt|yt,y1:t)
(2)
2)将状态转移预测后的粒子用Camshift算法沿着梯度最大方向迭代至局部最大值区域,粒子均移动到其附近与目标模型颜色相似的区域,得到新的粒子状态
(3)
其中CCPF(·)为Camshift聚类的粒子滤波方程,即
(4)
式中:h为核函数窗口半径;Xn=(xn,yn)为粒子所在区域的像素位置;g(x)为轮廓函数k(x)的负导函数.
3)引入新的重要性采样函数
(5)
式(5)以聚类优化后的粒子新状态为采样中心,既考虑了粒子的状态转移,又考虑了目标的当前观测.此时高斯模型的方差为σ′2,其大小取决于经聚类优化后粒子接近真实目标的概率,即σ′2越小,优化后粒子越接近真实目标.
2.3 笔者算法流程
一种基于Camshift聚类的粒子滤波人脸跟踪算法具体流程图如图1所示.
图1 笔者算法流程图Fig.1 Flow chart of the algorithm
所有仿真结果基于Inter酷睿i5-2410m处理器,4GB内存,vs2012开发环境.采集3段实验视频用于以下几组实验,比较笔者算法和传统粒子滤波人脸跟踪算法的性能差异.每段视频截取长度为200帧,每帧图像的分辨率205×153,实验帧率为15fps.
第1组实验是比较两种算法在不同粒子数下的跟踪性能,笔者算法采用25个粒子进行实验,传统粒子滤波算法则采用25个粒子和50个粒子分别进行实验.实验视频中人脸只进行横向和纵向运动.第2组实验是对第1组实验的补充,比较两种算法在粒子数分别为25,50个时的耗时情况,进一步体现跟踪性能差异,实验在MATLAB7.0上进行仿真.第3组实验是测试两种算法在光照变化和遮挡情况下的鲁棒性,笔者算法采用25个粒子进行实验,传统粒子滤波算法采用50个粒子进行实验.
3.1 不同粒子数下的跟踪性能比较
图2为两种算法在不同粒子数下的跟踪结果,实验视频为采集的第1段视频,其中,蓝色框体为同一时刻的粒子状态图,红色区域为最终确定的人脸区域.图2(a)为笔者算法实验结果,图像分别为视频的第1,25,50帧.可以发现:通过粒子聚类使粒子沿梯度方向迭代到局部密度最大值区域,仅使用25个粒子使得所有的粒子聚集在人脸相似的区域,解决了粒子退化的问题,能够准确地跟踪人脸.图2(b)为传统粒子滤波算法实验结果,图像分别为视频的第75,100,125帧.因为使用的粒子数过少,粒子随机的状态过于分散,即便用重采样将粒子按权值重新分配,权值较大的粒子区域也不准确,易跟踪失败.图2(c)为传统粒子滤波算法采用50个粒子,图像分别为视频的第150,175,200帧,因为粒子数较多加上重采样,基本上可以实现人脸跟踪.但是蓝色框体并没有聚在一起,粒子的状态为随机状态,即使有重采样,这些粒子聚集效果也不好.
更进一步的不同粒子数下的跟踪准确率见图3,可见笔者算法明显优于传统跟踪算法.随着粒子数的增加,准确率幅度增加越快;当粒子数为180个时,准确率增长减缓,笔者算法在近200个粒子数时达到峰值为82.3%,而传统跟踪算法最大准确率只有55.4%.
通过实验可以发现:笔者算法将聚类算法嵌入粒子滤波框架中,只需较少粒子就能实现准确跟踪,大大提高跟踪效率和准确性,较传统粒子滤波算法性能更好.
图2 不同粒子数跟踪性能比较Fig.2 Comparison of tracking performance with different number of particles
图3 不同粒子数跟踪准确率曲线图Fig.3 Graph with different number of the particle tracking accuracy
3.2 算法耗时比较
为了进一步说明笔者算法在人脸跟踪性能上的优越性,对两种算法在不同粒子数下的平均耗时进行了实验,实验视频仍为采集的第1段视频,表1为具体的实验结果.由表1可以发现:在相同粒子数下,传统粒子滤波算法耗时明显大于笔者算法,因为传统粒子滤波算法为了解决粒子退化问题,在权值更新后需要通过阈值判断是否加入重采样,且重采样分配粒子耗时较长;而笔者算法通过Camshift聚类算法将所有粒子都聚集在人脸相似的区域,解决了粒子退化问题,不需要重采样,节约了时间,同时也证明了用聚类算法迭代粒子增加的时间与传统粒子滤波算法中的重采样阶段的时间相比要少一点,所以笔者算法在保证准确性的同时也减少了每帧图像的处理时间,具有更好的实时性.
笔者算法也存在缺陷,在初始化人脸状态时由于需要使用Camshift聚类聚集所有粒子于人脸区域,因此初始化单帧的耗时会高于传统的粒子滤波人脸跟踪算法,但后续每帧均优于传统粒子滤波人脸跟踪算法.
表1 不同粒子数下的粒子滤波人脸跟踪算法的帧率实验
Table 1 The frame rate test of particle filter face tracking algorithm with different number of particles
算法25个耗时/ms帧率/fps50个耗时/ms帧率/fps笔者算法6216.18312.0传统算法7513.39810.2
3.3 光照和遮挡实验
为了体现笔者算法在复杂情况下的鲁棒性,笔者进行了光照和遮挡实验.图4为光照实验的结果,实验视频为采集的第3段视频,图4(a,b)中的图像均为第1,50,100帧的视频跟踪结果.图4(a)为笔者算法实验光照变化的结果,可以发现笔者算法在第50帧光线太暗的情况下依然可以实现跟踪.图4(b)为传统粒子滤波算法实验光照变化的实验结果,在光线很暗的情况下已经无法准确跟踪人脸.当光线较强时两种算法都能很好的跟踪人脸.但是当光线较差时,笔者算法能较好的实现人脸跟踪,传统的粒子滤波算法会出错,可见笔者算法鲁棒性更好.
图5为进行遮挡实验的结果,实验视频为采集的第4段视频,图5(a,b)中的图像均为第1,50,100帧的视频跟踪结果.图5(a)为笔者算法进行遮挡实验的结果,可以发现:进行局部遮挡可以实现跟踪,但全部遮挡无法实现跟踪,而是选择了与人脸相似的手部区域.图5(b)为传统粒子滤波人脸跟踪算法的实验结果,即便增加粒子数,在局部遮挡情况下确定的人脸区域准确性也差于笔者算法,当然在全部遮挡时也无法实现人脸跟踪.当出现局部遮挡时,笔者算法较传统的粒子滤波算法更为准确,但是当全部遮挡时,两种算法都无法实现人脸跟踪.
通过上述两个实验也证明了笔者算法在恶劣环境下的鲁棒性,更加适合应用在真实的场景中.
图4 不同粒子滤波人脸跟踪算法光照实验Fig.4 Illumination test of face tracking algorithm with different particle filter
图5 不同粒子滤波人脸跟踪算法遮挡实验Fig.5 Occlusion test different particle filter face tracking algorithms
笔者在粒子滤波框架下提出了一种基于Camshift聚类的粒子滤波人脸跟踪算法,通过Camshift算法迭代每个粒子,使每个粒子沿着梯度最大方向迭代至局部密度最大值区域,让所有粒子移动到与人脸颜色相似的区域,使粒子集更好满足状态后验概率密度函数.聚类以后这些粒子很好地反映了人脸状态,因此会获得较大的权值,而权值小的粒子则很少,很好地解决了计算量大、粒子退化等问题.通过3组实验发现:笔者算法使用较少的粒子便能很好地反映目标状态,相比传统的粒子滤波算法减少了许多权值很小的粒子,提高了粒子的使用效率,减少了算法耗时;并且在人脸无规则曲线运动中实时准确跟踪,克服了传统粒子滤波人脸跟踪算法只能跟踪人脸匀速直线运动的缺点,在光照变化和遮挡情况下具有较好的鲁棒性.
[1] 周芳芳,樊晓平,叶榛.均值漂移算法的研究与应用[J].控制与决策,2007,22(8):841-847.
[2] ISARD M, BLAKE A. Visual tracking by stochastic propagation of conditional density[C]//International Journal of Computer Vision. Proceedings of 4thEuropean Conference Computer Vision. Cambridge: International Journal of Computer Vision,1996:343-356.
[3] 张美玉,侯向辉,任炜彬,等.基于非线性最小乘的人脸姿态估计算法[J].浙江工业大学学报,2016,44(1):34-38.
[4] 吴天瑞,邹月娴,王巍.基于肤色信息的粒子滤波人脸跟踪技术[C]//北京图象图形学学会.第三届图像图形技术与应用学术会议论文集.北京:北京图象图形学学会,2008:68-73.
[5] 杜云明,刘启生,邵东伟,等.基于肤色特征的粒子滤波人脸跟踪算法[C]//中国体视学学会.第十二届中国体视学与图像分析学术会议论文集.北京:中国体视学学会,2008:32-37.
[6] 田卉,沈庭芝,赵三元,等.综合颜色和纹理特征的粒子滤波人脸跟踪算法[J].北京理工大学学报,2010,30(4):469-473.
[7]TIANT.基于肤色和Gabor纹理的粒子滤波人脸跟踪[J].计算机工程,2014,40(7):123-127.
[8] 郑博,毛剑飞,梁荣华.基于纹理权重的AAM人脸特征点检测方法[J].浙江工业大学学报,2012,40(6):661-665.
[9] 缪永伟,王洪军,寿华好.一种环形特征线的快速提取方法[J].浙江工业大学学报,2013,41(5):529-533.
[10] 初红霞.基于均值移动和粒子滤波的人脸跟踪关键技术研究[D].哈尔滨:哈尔滨工程大学,2012.
[11] 刘玄.基于粒子滤波的视频人脸跟踪算法研究[D].西安:西安电子科技大学,2013.
[12] 高建坡,杨浩,安国成,等.基于均值移动重要性采样的粒子滤波人脸跟踪算法[J].东南大学学报(英文版),2007,23(2):196-201.
[13] 王兆光,王敬东,李鹏.一种Camshift优化的粒子滤波跟踪算法[J].光电子技术,2010,30(1):58-63.
[14]COMANICIUD,RAMESHV,MEERP.Kernel-basedobjecttracking[J].IEEEtransactionsonpatternanalysis&machineintelligence,2003,25(5):564-575.
(责任编辑:朱小惠)
A particle filter algorithm for face tracking based on Camshift clustering
ZHANG Jiangxin, CHEN Lin, WU Jiaying
(College of Information Engineering, ZheJiang University of Technology, Hangzhou 310023, China)
Specific to Camshift algorithm can not handle similar background color, complex background and degradation and complicated calculation of traditional particle filter algorithm for face tracking, this paper proposes a new particle filter algorithm for face tracking based on Camshift clustering. In the framework of particle filter, clustering method in Camshift algorithm is introduced into face statement estimation. Each particle is iterated along the gradient direction to the region of maximum local density so that all particles move to the region with the same face color. Experiments show that effective face tracking of curved irregular motion is achieved with fewer particles and have better robustness in the problem of light and occlusion. The performance of the proposed algorithm is obviously better than the traditional particle filter algorithm for face tracking, which is real-time, robust and effective for face tracking.
Camshift; particle filter; clustering; face tracking
2016-05-17
浙江省级重点科技创新团队项目(2012R10011-01)
张江鑫(1964—),男,浙江海宁人,副教授,硕士,研究方向为信息与通信工程,E-mail: zjx@zjut.edu.cn.
TP391.41
A
1006-4303(2017)02-0168-05