基于深度学习辅助的动态人脸跟踪方法
2018-10-08亚蒙
, , ,亚蒙,
(浙江工业大学 信息工程学院,浙江 杭州 310023)
随着高清视频技术的日趋成熟,人们逐渐将视频监控智能分析的关注焦点集中到监控对象本身,而人脸作为重要的前景目标,一直以来被视为智能视频分析的重点研究对象.典型的动态人脸跟踪[1-2]是通过一定的策略根据视频起始帧中人脸目标区域,持续判定视频序列中的人脸目标区域.随着学者对跟踪算法的不断研究,提出了很多优秀的跟踪算法.Bolme等[3]提出一种用图像灰度特征描述学习最小误差输出平方误差和(Minimum output sum of squared error, MOSSE)的相关滤波跟踪算法,通过离散傅里叶变换转换频域对算法进行加速,然而 MOSSE 算法分类器模型训练的候选样本不足.Rui等[4]提出循环移位矩阵增加分类器训练样本的检测跟踪(Circulant structure of tracking-by-detection with kernels, CSK)方法,在灰度空间上使用快速傅里叶变换进行分析,跟踪效率较高,但是对多尺度目标的跟踪效果较差,且跟踪目标一旦丢失,就无法再次进行跟踪.Henriques等[5]提出一种具有在线学习能力的相关滤波(Kernelized correlation filters,KCF)跟踪方法,特征描述选择方向梯度直方图特征(Histogram of oriented gradient, HOG)[6],运算中通过快速傅里叶变换提高跟踪算法的速度和性能,由于算法采用的局部特征,跟踪目标出现快速运动或者严重遮挡情况,无法及时准确判定跟踪漂移导致跟踪失败.
针对基于核相关滤波的跟踪算法在遮挡、快速运动和频繁进出区域时目标跟踪失败,而目标再次出现作为新目标进行跟踪的问题,提出融合跟踪校验和深度学习识别辅助的动态人脸跟踪算法.改进的动态人脸跟踪算法基于核相关滤波框架,通过肤色检测粗定位和AdaBoost算法[7-8]精确定位实现人脸跟踪的快速初始化[9-10].为保证算法的鲁棒性,通过借鉴跟踪-学习-检测(Tracking-learning-detection,TLD)[11-12]的思想,采用检测-跟踪-校验-识别机制,对跟踪器更新的人脸区域进行跟踪校验[13-15],加权评分判定是否跟踪失败.同时,结合深度学习识别辅助[16-18]方法,实现目标丢失后再出现恢复持续跟踪.
1 人脸检测跟踪初始化
KCF动态人脸跟踪的原理是通过计算视频序列中目标人脸区域与滤波器模板的峰值响应强度,选取最大响应结果对应的区域作为跟踪更新的人脸目标区域.跟踪算法结合核相关滤波跟踪(Kernelized correlation filters,KCF)框架,引入肤色检测和人脸再检测机制,实现跟踪算法的快速初始化,从而自适应地跟踪检测到的人脸目标.
1.1 颜色空间提取
通过肤色建模与分割进行人脸区域粗定位,即通过肤色和人脸特征对图像进行快速提取,以缩小人脸检测的搜索区域,因此肤色模型的建立只需要简单有效.采用YCrCb颜色空间方法,图像中皮肤区域在YCrCb颜色空间CrCb平面上呈现一定聚类特性,其分布近似椭圆,如果像素颜色在Cr=[123 180]和Cb=[72 129]范围内,就判定为肤色像素.转换公式为
(1)
式中:R,G,B分别为RGB颜色空间分量.
1.2 人脸检测
由于人脸检测的可靠性将对后续人脸跟踪的性能和稳定性产生重大影响,使用基于Haar特征的Adaboost级联人脸检测算法能够检测出正面人脸,其核心步骤为
步骤1给定一系列训练样本(x1,y1),(x2,y2),…,(xn,yn),其中yi=0表示其为非人脸,yi=1表示其为人脸,n为训练样本总数.
步骤2初始化权重,即
(2)
式中:m为正样本(人脸)数量;n为负样本(非人脸)数量.
步骤3弱分类器训练.归一化权值
(3)
式中t为弱分类器数量(t=1,2,…,N).
对每个特征j,都训练一个弱分类器hj(xi),计算对应所有特征的弱分类器的加权错误率,即
(4)
选取错曲率最小εj,t的弱分类器叠加到强分类器中,然后调整权重
(5)
步骤4强分类器输出,即
(6)
1.3 核相关滤波跟踪
核相关滤波跟踪(Kernelized correlation filters,KCF)基于岭回归,通过训练最小化平方误差函数f(t)=wTt,求得分类器参数w,即
(7)
式中:λ为正则化参数,控制过拟合;i为样本编号;yi为ti对应的回归值.
首先从视频图像中采集一幅x∈M×N的人脸目标图像,然后将人脸图像x进行水平和垂直方向循环移位,偏移量分别以m和n个像素为单位,其中m∈{0,1,2,…,M-1},n∈{0,1,…,N-1},获取到人脸目标区域附近的不同样本xm,n,其回归值ym,n服从二维高斯分布.最后通过训练获取到参数w,即
(8)
通过FFT和岭回归方法,解得
(9)
式中:F为傅里叶变换;F-1为对应傅里叶逆变换;y为由元素ym,n组成的M×N矩阵.
根据当前帧中图像块x与上一帧训练获得的参数α,得到响应强度最大值,即在当前帧中跟踪更新的目标区域为
f(z)=F-1(F(α)F(φ(x)φ(z)))
(10)
2 融合跟踪校验和识别辅助的鲁棒跟踪
实际的动态人脸跟踪中,若当前视频帧目标快速运动超出滤波模板范围直接导致跟踪失败,在目标存在人脸遮挡、转身和频繁进出区域等情况下的跟踪漂移同样造成跟踪失败.通过跟踪更新后的级联校验机制,实时判定目标是否丢失;通过跟踪失败再检测后的识别辅助机制,解决目标短暂消失再出现作为新的目标进行跟踪,从而保证目标跟踪的持续更新.
2.1 跟踪校验策略设计
对跟踪器更新前后相邻帧的目标框进行级联跟踪校验,计算峰值响应强度、目标框的最近邻相似度、目标位置中心距离和目标尺度系数,判定目标是否跟踪失败,及时消除跟踪区域误差积累和跟踪后的初始化.其工作流程如图1所示.
图1 人脸跟踪校验算法流程Fig.1 The processing of face tracking verification algorithm
1) 峰值响应强度判定.核相关滤波跟踪中,当前帧目标区域与滤波模板的响应强度最大值为峰值响应强度(Peak to sidelobe ratio, PSR),即
(11)
式中:ϑmax为滤波模板响应最大值;μ为对应滤波响应均值;σ为对应滤波响应标准差,滤波模板响应结果由式(10)中的f(z)所得.
只有目标的峰值响应强度大于阈值T时才开始继续跟踪,判定准则为
(12)
PSR的经验取值范围为[0,1],响应值越大跟踪更新越准确;反之,可能导致跟踪漂移和跟踪失败.根据判定准则判定跟踪过程中是否遮挡、转身和出视野.
2) 目标中心位置判定.通过计算当前目标位置Rect1和上一帧匹配成功目标位置Rect2的欧氏距离获得,即
DIS=|CRect1-CRect2|
(13)
(14)
式中CRect为目标位置,采用目标区域中心,通过选取合适的阈值过滤,判定跟踪时是否产生跟踪漂移.
3) 跟踪框最近邻相似度判定.选择当前帧跟踪器预测到的人脸目标区域Rect2与前一帧Rect1的交集与并集的比值作为最近邻相似度,选择合适阈值判定是否接受该区域为跟踪结果,即
(15)
(16)
式中:P的取值范围为[0,1],当P>0.39,分配跟踪校验判定的权重系数1;当0.14
4) 目标尺度系数判定.通过当前帧成功跟踪到目标的尺度大小和下一帧预测到的目标尺度大小的比例关系进行判定,即
(17)
式中area为跟踪到目标的矩形框长和宽的乘积.Scale的经验取值范围为[0.5,1],解决跟踪过程中跟踪漂移和近似目标的尺度干扰.
5) 校验判定.通过对目标受严重遮挡、快速运动、相似目标干扰和频繁进出区域等情况的分析,对各项分配权重系数,加权求和后得到跟踪校验的综合评分,公式为
Scalefinal=αPSR+βDIS+γP+ξScale
(18)
根据评分结果,若大于阈值,判定跟踪结果准确;否则,判定跟踪失败,此时在前一帧人脸目标区域附近,通过再检测机制重新跟踪.
2.2 深度学习网络识别辅助
为保证人脸目标的持续、鲁棒跟踪,通过识别算法对跟踪失败后新出现人脸目标进行辅助跟踪.深度学习网络识别辅助部分采用DeepID (Deep hidden identity features)网络模型[19],如图2所示.DeepID网络包含4个卷积层组,前3个卷积层后面都紧跟着一个最大池化层,将第4个卷积层的特征和第3个卷积层经过Max-pooling后的特征进行全连接,最后将DeepID层连接到softmax层的深度特征通过相似性度量进行分类,并给出分类种类概率.
图2 DeepID网络结构Fig.2 DeepID network structure
跟踪失败后新的人脸目标出现时,根据预先训练好的网络模型对人脸图像进行特征提取,判断该目标是否曾出现过.这样就解决人脸目标短时间进出视野再出现情况下,传统方法判定为新人脸目标进行跟踪的问题.
3 实验与结果分析
实验测试PC机环境:Intel(R) Core(TM) i5-
4460 3.4 GHz CPU,采用Visual Studio 2013,OpenCV2.4.8和caffe-windows-master实现了深度学习辅助的实时动态人脸跟踪算法.
实验数据采用国际视频监控会议AVSS2007单人脸数据和Visual tracker benchmark sequences,对包含目标快速运动、遮挡和短暂进出视野等应用场景的图像序列进行测试.测试标准包括动态人脸跟踪的精度、跟踪校验的可靠性和识别辅助跟踪算法的性能,实验采用多次测量取平均值进行统计(表1).
表1 测试数据描述
3.1 跟踪校验判定准确性分析
选取数据集中人脸跟踪算法出现跟踪漂移或跟
踪失败的视频帧数据对校验算法进行检测,检测结果如表2所示.
表2 跟踪校验分析Table 2 Theanalysis of trackingverification
每一帧中更新预测的目标位置是否接受,由跟踪校验综合评测结果与阈值比较决定,记为
(19)
实验中跟踪校验分配0.4,0.25,0.1,0.25的权重系数,阈值经过统计分析设定为0.58.从表2中可以看出:视频1中知道第702帧时跟踪误差积累比较明显,有出现跟踪漂移的趋势;视频2中第36帧目标人脸存在遮挡、快速运动的情况,人脸跟踪发生跟踪漂移导致跟踪失败;视频3中第444帧存在相似目标干扰的情况,发生跟踪漂移导致跟踪失败;视频4准确跟踪到人脸目标;视频5中由于目标的快速运动导致运动模糊,发生跟踪漂移导致跟踪失败;视频6中第47帧存在短暂消失再出现导致跟踪失败;视频7中第220帧由于人脸目标转身发生跟踪漂移;视频8中第393帧由于人脸目标转身遮挡发生跟踪漂移导致跟踪失败.通过实验证明:跟踪校验算法可以有效地判断出跟踪过程中的跟踪漂移和跟踪失败.
3.2 识别辅助鲁棒性分析
深度学习网络选取李子青团队的CASIA WebFace Database和UMDFaces Dataset数据集,将人脸数据对齐到50×50进行训练和微调.识别辅助鲁棒性测试,选取人脸目标跟踪失败后对该区域再检测,将当前人脸区域与前一个检测到的人脸目标跟踪区域预处理后进行验证,实验中分别选取阈值为0.6,0.55,0.5进行统计计算,如表3所示.
表3 识别辅助算法性能分析Table 3 Theperformance analysis of tracking recognition-aided %
实验中识别辅助阈值根据实验场景环境和检测到人脸图像质量进行统计后选择:从跟踪校验判定跟踪失败到再检测,跟踪目标出现运动模糊、遮挡和部分人脸(进出区域)等情况,如视频2和视频6,使得获取到的人脸照片质量不高时,即使人脸对齐其识别辅助模块精度降低;而对人脸目标跟踪序列进行择优处理后,得到前一人脸目标正面或较为正面的人脸图像,当前人脸图像出现以上情况下进行识别比对,其识别精度依然会降低.
综合考虑后识别辅助选择阈值0.55,对前一目标人脸图像和当前检测到的人脸图像进行人脸对齐处理,提取特征进行相似度计算后的结果高于阈值0.55,则判定为同一目标,否则,作为新的目标进行跟踪.从实验结果来看:识别辅助方法能够实时有效地实现人脸检测后同一目标人脸图像序列合并,特别是对检测跟踪到的人脸序列进行择优处理,效果会更好.
3.3 多跟踪器应用对比
实验中使用跟踪目标区域中心距离误差精确度(Tracking precision, TP)和跟踪校验精确度(Verification precision, VP)作为评估标准.距离误差是指跟踪区域中心位置与目标真实区域中心位置之间的欧氏距离,其精确度定义为距离误差低于阈值的视频序列帧数与整个视频序列总帧数的比值,比例系数越接近于1跟踪更新结果越可靠.跟踪校验精确度定义为校验模块综合评分高于阈值的视频帧数与视频序列总帧数的比值,得分越高时跟踪校验成功率越高,即跟踪效果越好.
根据跟踪速度和跟踪精度选择具有代表性的跟踪算法与实验对比,将改进后的跟踪算法(Kernelized correlation filters with verification and recognition, KCFVR)与核相关滤波跟踪算法(Kernelized correlation filters, KCF)、时空上下文算法(Spatio-temporal context, STC)[20]和跟踪-学习-检测算法(Tracking-learning-detection, TLD)进行验证.实验中评测标准:目标区域中心距离误差阈值设定为目标标定真实区域的一半,跟踪校验精确度阈值为0.58.为了更形象地表现测试结果,表4中提出的跟踪算法分配0.4,0.25,0.1,0.25的权重系数,统计获得满足目标区域中心距离误差的跟踪精确度;表5中对TLD和STC算法各项分配0,0.4,0.2,0.4的权重系数,根据跟踪校验的综合评分,统计得到跟踪校验精确度.
表4各跟踪算法在视频序列上的距离误差精确度
Table4Trackingprecision(TP)ofeachalgorithmoverthevideosequence
序号初始框KCFVRKCFTLDSTC1(131,100,85,118)892/892892/892892/892138/8922(144,98,35,47)299/313302/313283/31334/3133(56,27,31,37)437/500451/500311/500427/5004(161,95,55,70)472/472472/472472/4724/4725(155,59,32,44)367/448408/448397/44823/4486(87,53,35,48)464/550485/550344/55082/5507(329,136,75,104)404/430421/430419/43087/4308(146,131,83,103)865/910869/910839/91024/910
表5跟踪校验算法在视频序列上的精确度
Table5Verificationprecision(VP)ofeachalgorithmoverthevideosequence
序号KCFVRTLDSTC1892/892892/892208/8922308/313292/313158/3133463/500454/500427/5004472/472472/47298/4725405/448410/44849/4486481/550465/550369/5507416/430419/430345/4308899/910865/910228/910
值得指出的是,笔者提出的跟踪校验算法时间消耗约为1 ms,故对各算法添加跟踪校验后,在不影响原有跟踪算法跟踪速度的基础上,提高了各跟踪算法的跟踪精度.
表4给出改进跟踪算法与各跟踪算法在标定数据下设定阈值的实验结果,从实验数据可以看出:统计分析后改进的跟踪算法区域中心距离精确度为0.923,跟踪精度上改进算法略低于KCF跟踪算法,定位视频数据发现跟踪目标出现跟踪漂移或遮挡.数据结果表明依靠区域中心阈值会将跟踪漂移直接判定为跟踪失败,改进后设定双阈值判定跟踪状态为可能跟踪失败和跟踪失败.
表5中给出应用跟踪校验算法后在测试视频上的实验结果,从实验数数据来看:应用综合跟踪校验后各跟踪算法的精确度提高,积累误差减小,改进算法的跟踪精确度均值为 0.956,性能指标表现最好.实验中改进后的人脸目标跟踪更新及级联校验时间消耗约为16 ms/fps,识别辅助特征提取时间消耗约为18 ms/fps,改进后的KCFVR动态人脸跟踪算法能够满足实时跟踪需求.
4 结 论
通过人脸检测跟踪初始化、跟踪校验和深度学习网络识别辅助,解决视频场景下动态人脸跟踪过程中出现严重遮挡、快速运动和频繁进出区域等情况下的跟踪漂移和跟踪失败问题,自适应地恢复同一人脸目标的持续跟踪.从大量的实验数据结果来看,改进后的KCFVR跟踪算法对移动人脸目标的持续跟踪具有较强的鲁棒性.动态人脸跟踪过程中肤色分割和人脸目标的检测和跟踪时间代价较小,而人脸跟踪失败后,深度学习识别辅助模块的特征匹配及更新等操作较为耗时,接下来工作将讨论研究多跟踪器快速准确判断跟踪器更新校验和加快识别辅助判定速度,实现多人脸目标的实时、持续跟踪.