解梦达,孙 鹏,2,张志豪,郎宇博,周纯冰,单大国
1.中国刑事警察学院 公安信息技术与情报学院,沈阳110854
2.司法部司法鉴定重点实验室,上海200063
人脸追踪是计算机视觉领域的经典研究方向,被广泛地应用于生物识别、安全检测、视频筛选等领域。近几年,研究人员在人脸追踪方向开展了许多工作,也取得了一定的进展。然而,由于视频场景变化及人脸状态的不确定性,人脸追踪方向仍然存在着许多的难点,制约着追踪精度与速度的提升。
视频中的人脸追踪可从目标追踪这一研究方向考虑。在文献[1]中,Wu等人将目标追踪难点主要分为遮挡、变形、尺度变化、快速运动几个方面。目标遮挡及快速运动导致目标特征的部分消失或改变将考验算法追踪过程中的鲁棒性,后续视频序列内目标定位的精度同样受该类条件下模型更新机制的影响。此外,非刚性目标外观的变化将导致目标边缘信息及局部纹理发生较大改变;尺度的变化则要求追踪算法对目标具有外观的尺寸自适应性,单一尺寸的追踪窗口在目标大小发生改变时将导致追踪的精度下降,同时可能使得追踪器学习到部分背景信息,导致追踪的偏移或失效。最后,目标或背景快速运动导致的图像模糊易降低目标与背景间差异性,增加追踪窗口的选取难度。现有目标追踪算法可以分为生成式模型算法与鉴别式模型算法[2]。生成式模型算法针对当前帧目标区域进行建模,并在后续视频帧中寻找模型相似区域以进行坐标预测。其中较为典型的算法有粒子滤波、光流法、Mean-Shift等算法;鉴别式模型算法则采用机器学习的方式针对生成的目标及背景样本进行学习,并将学习到的分类器应用于后续视频帧内的目标检测,由于将目标所处的背景信息引入了判定模型,相比生成式模型算法,该类算法在复杂环境及目标变化时具有更高的鲁棒性。现有判别式算法包括传统判别式算法,如MIL[3]、TLD[4]、DAT[5]等;相关滤波类算法,如CSK[6]、KCF[7]、BACF[8]等。近几年,随着深度学习技术的发展,部分算法如DeepSRDCF[9]、SiamBAN[10]、LTMU[11]、ROAM[12]等,尝试将深度神经网络学习到的特征应用于目标追踪,取得了更高的追踪精度。
在人脸追踪相关研究中,赵昶辰等人[13]提出一种结合TLD 与级联回归树模型的地标检测及人脸追踪算法,该算法通过设置阈值作为地标点稳定判据,以解决人脸追踪过程中,地标无规则抖动对基于远程光体积描记算法的心率测量干扰。此外,牛颖等人[14]以TLD算法为基础,采用CamShift 算法加速TLD 算法的人脸追踪过程,同样取得了良好的人脸追踪效果。对于人脸来说,随着姿态的改变,人脸所表达的面部特征也在随之变化[15]。人脸的平面内及平面外旋转将导致面部纹理特征发生较大改变,而肤色受到的影响则较小,且在多数色彩空间中,人体肤色具有较强的共性,形成一个小而紧致的聚簇[16]。因此,本文以面部肤色为特征,并采用基于目标色彩特征的CamShift 算法实现人脸追踪。然而,CamShift算法易受类肤色背景影响导致搜索框的偏移及尺寸异常。针对以上问题,文献[17]将KCF算法与CamShift算法相结合,同时构建高斯背景模型以去除类肤色背景,但该算法无法处理动态背景的视频序列,且实时性较弱。文献[18]则在YCbCr 色彩空间内采用非参数肤色分割模型划分人脸及背景,然而,非参数肤色分割模型仅采用一组固定阈值边界,难以有效地区分类肤色背景与人脸。基于对肤色分割速度及精度两方面的考虑,本文采用非参数肤色分割模型及SVM 构建联合肤色分割模型。其中,非参数肤色分割模型用于快速去除视频帧中的多数背景,而对于难以去除的类肤色背景,则采用SVM 构建特定于当前视频帧的肤色分割模型,以在类肤色背景中精细分割出人脸肤色区域。接下来,考虑在应用CamShift算法对分割后区域进行人脸追踪时,由场景或光照变化导致的联合肤色分割模型或CamShift 色彩直方图失效,继而引发的追踪失败问题。采用拉依达准则对CamShift算法返回目标窗口内的Cr均值进行异常值监测,当发现异常值时即判定当前帧人脸追踪失败。随后,采用预训练的AdaBoost 算法进行人脸复检,同时重构肤色分割模型及CamShift算法色彩直方图,以确保算法在人脸追踪过程中的鲁棒性。
本文主要贡献在于以下两方面:
(1)针对类肤色背景对CamShift 算法的干扰,提出了一种非参数肤色分割模型与SVM相结合的肤色分割算法,该算法可实现对类肤色背景的有效去除,同时相比仅使用SVM的肤色分割算法速度优势明显。
(2)提出了一种简单有效的追踪监测机制。该监测机制通过拉依达准则判断追踪窗口内Cr 均值异常,可有效识别到由肤色分割模型或CamShift 算法色彩直方图失效所导致的追踪失败问题。
本文人脸追踪算法主要由人脸追踪、追踪监测、人脸复检三部分流程组成。其中,人脸追踪流程包括基于联合肤色分割模型的肤色分割及CamShift 算法人脸追踪。追踪监测流程用于对追踪器性能做出评价,以判断联合肤色分割模型或CamShift 算法色彩直方图是否存在失效问题。对于判断追踪失效视频帧,采用预训练的AdaBoost算法进行人脸复检,同时重构肤色分割模型及CamShift算法色彩直方图。算法全局流程如图1所示。
图1 人脸追踪算法总流程图Fig.1 General flow chart of face tracking algorithm
肤色分布与色彩空间的选择密切相关,对于肤色分割来说,其选用的色彩空间应对肤色及背景具有良好的可区分度。Shin 等人[19]在RGB、YUV、Lab、YCbCr 等色彩空间下对肤色-非肤色的可分离性指标进行比较,结果证明:不同的色彩空间内可分离性指标存在差异。采用Shin 等人提出指标,徐占武等人[20]使用1 894 幅图像建立肤色及背景的像素样本库,并对不同的色彩空间内肤色与背景分离指标进行比较以寻找肤色检测最优空间。根据徐占武等人实验结果,本文选取肤色分割常用的RGB、HSV、YCbCr 三类色彩空间作为候选色彩空间集,同时采用肤色分布信息熵E对肤色分布的紧致度进行评价:
式(1)内pj代表肤色分布概率,较低的信息熵E代表了肤色分布的一致性,故该值越低肤色紧致度越高。此外,采用肤色及非肤色样本集合的离散度矩阵指标tr[Sw]/tr[SB]对二者的可分离性进行评价,tr[SW]代表肤色及非肤色样本的类内距离,tr[SB]则代表两者的类间距离。显然,应期望较小的类内距离及较大的类间距离,即tr[Sw]/tr[SB]取值越小越好。
式(2)中,M为类别数,Ni为第i类下的样本数目,为第i类下的第k样本,此外,m(i)为第i类样本的均值,m则为所有样本均值,三类色彩空间下的肤色紧致度及可分离性指标如表1所示。
表1 中3D 为三维色彩空间,2D 为去除亮度后的二维色彩平面,RGB色彩空间内视G为亮度分量。由表1可知,相比三维色彩空间,肤色在二维平面内的分布及其与背景的可分离性更为理想。此外,在二维色彩平面中,三类色彩空间下肤色分布的紧致度指标信息熵E相差不大,YCbCr色彩空间略优于另外两者。而对比不同色彩空间下肤色与背景的离散度矩阵指标tr[Sw]/tr[SB],可发现在二维色彩平面内,YCbCr 色明显低于另外两者,这反映出YCbCr色彩空间内的肤色与非肤色分布具有更好的可分离性,故本文选用YCbCr色彩空间的Cb、Cr分量进行肤色分割。
表1 不同色彩空间肤色紧致度及可分离性指标Table 1 Indexes of skin compactness and separability in different color spaces
常见肤色分割模型可分为非参数、参数以及半参数三种类型[16]。非参数模型基于特定色彩空间设置阈值边界,尽管其分割速度较快,但分割精度较低。此外,参数模型通过构建模型对肤色数据进行拟合,常用有单高斯模型(single Gaussian model,SGM)以及高斯混合模型(Gaussian mixture model,GMM)。最后,半参数模型以神经网络、SVM 为代表,与前两种模型相比,其肤色分布信息被隐藏在网络架构或不同权值中[20],且同时考虑了肤色及非肤色信息来构建二分类器。近几年,另有部分更为复杂的肤色分割算法提出:如王雪等人[21]采用贝叶斯分类器标记准肤色像素点,后通过Gabor特征计算图像纹理以对准肤色像素点进行二次分类,最后以区域生长的方式扩充肤色区域完成肤色分割。此外,董旭德等人[22]采用非参数肤色分割模型对图像进行粗分割,并将质心及图像梯度局部极小值作为积水盆地,通过分水岭算法完成肤色分割。与上述肤色分割算法不同,刘可等人[23]则将肤色分割建模为多目标优化模型,并通过分布估计算法寻找最佳分割方案。
在本文算法中,所使用的肤色分割模型由非参数模型及SVM联合构建。其中非参数模型用于快速去除图像中大量与肤色差异显著的背景区域,而SVM 则用于在未被正确去除的类肤色背景与人脸肤色间构建决策面。需要说明,本文采用SVM 构建肤色分割模型是基于以下三点考虑:(1)基于SVM的肤色分割算法具有较快运行速度,相比之下,文献[21]、[22]中的区域生长及分水岭算法均存在重复迭代过程,而文献[23]中求解一幅100×100像素尺寸的多目标优化模型用时则在4~5 s,因此不适于人脸追踪中的快速肤色分割。(2)文献[16]、[24]研究均表明,同时考虑肤色及背景样本信息将有助于肤色分割精度提升,而在同一视频序列中,基于视频标准帧(视频首帧及后续人脸复检所用视频帧)内类肤色背景及肤色样本构建的SVM 肤色分割模型对后续视频帧的肤色分割显然会更加高效且具有针对性。(3)SVM 可根据结构风险最小化原则增强学习机的泛化能力[16],这使得仅基于视频标准帧构建的肤色分割模型同样能够对后续视频帧起到较好分割作用。
在本文算法中,未直接采用SVM 构建肤色分割模型是考虑到尽管SVM 的运行速度较快,但其在训练及预测过程中的特征高维映射仍需一定计算开销,而这将降低整体人脸追踪算法的实时性。因此,设计在使用SVM 构建肤色分割模型前,首先应用非参数肤色分割模型对视频帧进行粗分割,以去除大多数易于分割的背景,降低SVM 所需训练及预测的数据量。为得到非参数肤色分割模型所使用阈值边界,本文采用了FDDB人脸数据集构建基于人脸的肤色样本库。所构建样本库包含来自300幅人脸图像中超过24万个肤色像素,其中人脸图像的搜集已考虑不同人种肤色及成像时环境光照差异性。基于构建的肤色样本库,本文所使用的非参数肤色分割模型阈值边界如下:
在经非参数肤色分割模型粗分割后,对于未被有效去除的类肤色背景,则使用SVM 算法构建特定于当前背景及肤色的分割模型。基于非参数肤色分割模型及SVM构建的联合肤色分割模型将用于对同一视频序列中后续视频帧的肤色分割。图2 展示了部分常见肤色分割算法及本文基于联合肤色分割模型的算法应用于同一视频帧时肤色分割效果。
图2 不同肤色分割方法效果图Fig.2 Results of different skin color segmentation methods
由图2 可看出,在单独使用非参数、SGM 及椭圆肤色分割模型进行肤色分割时,视频帧内的部分类肤色背景信息均未被有效去除。而在本文所提出的联合肤色分割模型中,SVM 在肤色分割时考虑到了类肤色背景因素,因此最终实现的肤色分割更为准确,这将有效地降低类肤色背景对后期人脸追踪算法的影响。表2 展示了不同肤色分割模型算法对图2视频帧的分割用时,特别地,对仅采用SVM 的肤色分割算法及本文构建的联合肤色分割模型算法的分割用时进行了对比。
表2 不同肤色分割模型算法用时Table 2 Runtime of different skin color segmentation algorithms ms
由表2可知,尽管非参数肤色分割模型算法的分割精度较低,但其分割用时明显短于其他肤色分割模型算法。相比之下,椭圆肤色分割模型算法及SGM 肤色分割模型算法在分割精度及速度上均未达到最优。最后,基于SVM的肤色分割模型算法及本文所提联合肤色分割模型算法均具有较高的分割精度。但由于仅采用SVM时,算法所需训练及预测数据量均较高,因此该算法用时较长。而联合肤色分割模型算法则可通过非参数肤色分割模型去除多数的背景区域,仅在未被有效去除的类肤色背景中使用SVM 对肤色区域进行分割,因此算法的整体用时较仅采用SVM进行肤色分割明显更短。
在有效分割出视频帧中的肤色区域后,本文采用CamShift算法自适应更改追踪窗口大小并定位目标人脸。CamShift 算法基于MeanShift 算法[25]改进,MeanShift 算法使用核函数对色彩直方图加权,并在一组密度不均的数据中,反复迭代进行密度估计以寻找局部极值。MeanShift算法多用于单幅图像的目标搜索,相比之下,CamShift算法则在其基础上扩展至连续视频序列,同时可利用目标投影概率密度自适应地调整搜索窗口的大小。原始CamShift 算法采用HSV 色彩空间中H分量构建色彩直方图。而本文2.1 节证明,肤色在YCbCr 色彩空间的Cb、Cr分量内与背景的可分离性更为理想。然而,同时采用Cb、Cr两类分量将增加构建色彩直方图时的复杂度。因此,本文使用FDDB人脸数据库对肤色及背景信息建模,以在Cb、Cr分量中进一步筛选与背景可分离性最高的分量。图3 为FDDB 人脸数据库中肤色及背景的Cb、Cr分量取值概率密度分布,其中肤色分布信息为图中经拟合后的红色曲线,背景分布信息则由黑色直方图表示。
图3 肤色及非肤色区域Cb、Cr 分量概率密度分布图Fig.3 Probability density distribution of Cb and Cr components in skin and non-skin areas
对比可知,相比Cb分量,肤色在Cr分量下与背景分布的重叠区域更小,这说明Cr分量下肤色与背景具有更高的可区分性。因此,本文选用Cr分量构建基于人脸肤色色彩直方图。设构建的直方图模型为H={hu},u=1,2,…,m,则投影概率图坐标(x,y) 下目标概率值I(x,y)为:
式(4)内目标投影概率图I(x,y)取值范围为0~255,I(x,y)代表像素值为u时目标出现概率。在获得目标概率后,使用如下方法计算搜索窗口的零阶距M00与x、y方向的一阶矩M10、M01,进而计算该搜索窗口下的质心坐标(xc,yc):
CamShift 算法在目标投影概率图中进行迭代至质心收敛于搜索窗口中心附近,后根据搜索窗口内目标概率密度改变搜索框尺寸,设置人脸搜索窗口固定宽高比为a,则搜索窗口自适应宽度W与高度G计算方式如下:
在追踪过程中,如何判定追踪结果的准确性是确保有效追踪的关键。目前各类追踪有效判定的方式较多,如李子印等人[26]采用相邻追踪窗口的城区距离(CityBlock)构建模板评价函数,其背后的思想是运动目标在相邻帧间的位置一般不易发生突变。此外,Ma等人提出的LCT算法[27]通过置信度滤波器计算目标周围最大响应值作为追踪置信度,当置信度低于设定阈值时即停止更新模型并进行目标重检。
在本文算法的人脸追踪流程中,追踪精度将主要受以下两方面因素影响:(1)当人脸所处背景相较标准帧发生较大改变时,由于联合肤色分割模型中SVM 训练未考虑该部分背景信息,将可能导致对当前视频帧的肤色分割性能降低,进而使得CamShift算法受到类肤色背景影响并导致追踪窗口异常。(2)视频帧内场景光照强度变化过大时易引发人体肤色信息波动,使得当前联合肤色分割模型及CamShift目标色彩直方图不再适用,从而导致追踪窗口异常。考虑本文算法中肤色分割模型及CamShift目标色彩直方图均基于肤色构建,因此使用色彩信息构建追踪监测机制即为本文目的。若在人脸追踪流程中,认为联合肤色分割模型及CamShift目标色彩直方图正确生效时,所返回的追踪窗口将精确标记出当前人脸窗口,此时各个追踪窗口内的色彩信息应趋向于肤色且稳定在一定区间。而当追踪窗口发生偏移或尺寸异常时,由于包含了较多背景,此时追踪窗口内色彩信息相较先前追踪精度较高视频帧内的追踪窗口色彩信息将存在较为明显差异。因此,对人脸追踪精度的监测即可转化为对追踪窗口内色彩信息的异常监测。本文监测流程将采用追踪窗口内Cr分量均值记录不同视频帧间的色彩信息变动,这是考虑到YCbCr 色彩空间下肤色区域的Cb、Cr分量与联合肤色分割模型及CamShift 目标色彩直方图直接相关,且由图3(b)可知,肤色在Cr分量下与背景分布的重叠区域更小,这表明Cr分量下肤色与背景具有更大的差异性,即在追踪精度降低时,采用Cr分量更有可能识别出肤色与被误判背景间差异。
假设在追踪精度较高时,CamShift算法返回追踪窗口内的Cr均值变化呈正态分布。则对追踪窗口内Cr均值的异常值监测即可采用拉依达准则[28]实现。为确定用于拉依达准则中数据呈正态分布时的方差及均值,本文假设在任意连续的20 帧视频序列中,算法返回的追踪窗口将保持较高追踪精度,即该20 帧追踪窗口内的Cr均值应呈正态分布。进一步,将不同的测试视频序列以20 帧为单位划分至多组,并采用Lilliefors[29]检验每组内Cr均值分布正态性。Lilliefors 检验基于Kolmogorov-Smirnov 检验改进,在μ及σ2未知的情况下采用样本均值和方差作为估计值以确定理论分布函数F(x),并求出样本经验分布函数S(x)。最后,采用Kolmogorov-Smirnov 检验单样本统计量的形式检验拟合优度并计算检验统计量D,依据查表所得LillieforsD界值进行判断,其中检验统计量D计算形式如下:
由于Lilliefors 检验避免了在拟合优度检验前对分布参数的估计,因此Lilliefors检验对小样本可用[30]。在本文正态性检验中,选取了来自OTB-2015 内Trellis、David、Man、Boy、BlurFace 共五部以人脸为追踪目标的彩色视频序列。测试时将每部视频序列以20帧为单位分为多组,在每组首帧给定真实人脸窗口标注并采用基于联合肤色分割模型的CamShift 算法进行追踪。对于返回的20帧追踪窗口内Cr均值,使用Lilliefors检验以0.05显著性水平判断每组内追踪窗口Cr均值分布的正态性。
由表3可知,不同视频序列经分割后的正态性检验均具有较高接受率。这表明在追踪精度较高的情况下,多数视频帧返回追踪窗口内的Cr均值呈正态分布,即拉依达准则可用于本文中对追踪窗口内Cr均值的异常值监测。
表3 不同视频序列的分布正态性检验Table 3 Normality test of distribution for different video sequences
表3 不同视频序列的分布正态性检验Table 3 Normality test of distribution for different video sequences
基于拉依达准则,可认为对于服从正态分布,且均值为μ,方差为σ2的数据N(μ,σ2)有:
由式(11)可知,数据N(μ,σ2)取值落在(μ-3σ,μ+3σ)区间之外的概率小于0.003。因此,超出上述区间的N(μ,σ2)取值即可视为异常值。在人脸追踪监测流程中,基于拉依达准则的异常值监测公式表达如下:
式(11)及式(12)中,p代表当前监测视频帧标签,q代表初始视频帧或最近一次复检视频帧标签,代表第i帧追踪窗口内Cr均值,为由i∈{q,q+20}计算的标准差。U(p,q)为追踪监测评价指标,其取值为1时代表第p帧追踪精度良好,当取值为0时,则代表第p帧追踪精度可能由于联合肤色分割模型或CamShift算法色彩直方图的性能减弱而降低,此时则应重启人脸复检程序对人脸重新定位,同时重构联合肤色分割模型及CamShift算法色彩直方图。
在算法实际运行中,考虑到在给定第q帧真实人脸窗口后,第{q,q+20}帧内返回的追踪窗口一般具有较高的追踪精度,因此本文设置监测机制仅在连续独立追踪20 帧后启用。对于当前第p帧返回的追踪窗口,其追踪监测流程可用图4表示。
图4 追踪监测流程图Fig.4 Tracing monitor flow chart
基于第4章对人脸追踪过程可能产生的误差分析,建立了相应的人脸追踪监测机制。对于监测异常的视频帧将启动人脸复检流程。不同于多数的目标追踪算法,本文人脸复检流程中的人脸重定位问题可独立于追踪过程实现,即人脸检测器可在执行追踪前,学习来自非同一追踪目标的大量人脸样本,并用于复检流程中的人脸重定位。进一步,基于重定位后的人脸坐标信息,重构联合肤色分割模型并CamShift算法色彩直方图,即可有效避免追踪过程中的模型误差累积[31],实现较为准确的人脸追踪效果。
目前人脸检测领域研究成果较多,如王茹等人[32]提出的二分支神经网络检测算法以DSFD 人脸检测算法为基础,增加特征增强模块以改进网络提取特征性能,可在提升人脸检测速度的同时确保检测精度。此外,张海涛等人[33]设计双层级联卷积神经网络来检测人脸,其中前端神经网络模型用于输出多个疑似人脸窗口,后端神经网络则用于判断并输出最佳检测窗口,同样取得了较好的检测效果。然而,尽管基于深度神经网络的人脸检测器在检测精度上较高,但其代价在于模型架构复杂且参数较多[34],对设备的计算能力需求较高[35]。本文综合模型复杂度及检测速度两方面的考虑,选择使用基于Haar特征的AdaBoost算法构建人脸检测器。其中,Haar特征用于表示人脸灰度分布,而AdaBoost 算法则用于构建人脸检测分类器,本文以FDDB人脸数据库为基础训练人脸检测器并应用于人脸复检流程。基于AdaBoost算法的人脸检测器训练方式如下:
(1)给定n个训练样本(x1,y1),(x2,y2),…,(xi,yi),…,(xn,yn)。其中xi代表第i个训练样本,yi=1 代表该训练样本为人脸样本,yi=0 则代表训练样本为非人脸样本。
(2)初始化样本权值
设训练样本中人脸样本数量为p,非人脸样本数量为u,则初始化第t轮训练中第i个样本权值方式如下:
(3)样本权值归一化
(4)最优弱分类器选取
基于AdaBoost算法的人脸检测器由以下多个弱分类器组成:
式(16)中,x代表图像中的待检测窗口,f代表Haar特征,p代表不等号方向,θ代表特征值阈值。最优弱分类器选取即为寻找对当前人脸及非人脸样本具有最小加权错误率εt的Haar特征及阈值θ:
(5)样本权值更新
在经一轮循环取得最优弱分类器后,需降低正确分类的样本权值并增大被错误分类的样本权值,并进入下一轮循环,样本权值更新策略如下:
(6)强分类器构建
经T轮循环后可得到T个最优弱分类器,对多个最优弱分类器组合即得到强分类器:
(7)强分类器级联
在得到多组强分类器后,最终的人脸检测器由强分类器以级联形式组成。在级联形式中,绝大多数非人脸窗口仅需较少强分类器即可被排除,因此级联结构可显著降低人脸检测时间,且确保检测准确率。强分类器的级联示意图如图5。
图5 强分类器级联示意图Fig.5 Strong classifier cascade diagram
实验中发现,基于AdaBoost 的人脸检测算法仅对正面人脸的检测成功率较高,而对于出现人脸平面外旋转的视频帧则易发生人脸复检失败的情况。针对此类问题,设计对复检失败视频帧及其后10 帧内视频帧重新应用人脸追踪流程,而对复检失败后第10 帧视频帧再次应用人脸复检流程。未对复检失败的相邻视频帧进行复检是考虑到相邻视频帧间内容多具有高度相关性,因此针对相邻视频帧的人脸复检仍具有较高失败概率,这将增加不必要的计算开销。
硬件环境:CPU:Inter CoreTMi7-8750h@2.21 GHz,RAM(16 GB)and HD(1.5 TB)。软件环境:Microsoft Windows10 and MatlabR2017a。
数据集与对比算法:实验采用OTB-2015 目标追踪数据集内Trellis、David、Man、Boy、BlurFace共五组以人脸为追踪目标的彩色视频序列,模拟追踪难点为光照变化、尺度变化、类肤色背景、运动模糊、平面内、外旋转。对比算法为原始CamShift 算法、结合肤色分割的CamShift算法(CAMSHIFT-S)、结合肤色分割及监测机制的CamShift 算法(CAMSHIFT-SM,本文算法),以及Wu 等人用于OTB-2015 数据集测试的不同目标追踪算法。此外,实验同样对比了近几年的相关滤波类算法BACF 及深度学习类算法ECO[36]、MDNet[37]。测试平台为OTB-2015提供的Tracker Benchmark。
6.2.1 追踪精度评价
实验中,采用单次成功率(one-pass evaluation,OPE)评估算法追踪精度,同时对算法的运行速度做出评估。其中,OPE计算方式为视频帧内真实标注与追踪器返回窗口的重叠比:
式(21)中,BT代表追踪器返回人脸窗口,BR代表数据集提供真实人脸窗口,成功率采用曲线下面积(area under the curve,AUC)计算。图6展示了不同追踪算法在五段测试视频序列中的OPE曲线。
图6 不同算法OPE曲线图Fig.6 Different algorithm OPE plots
如图6 所示,结合肤色分割及监测机制的CamShift算法(CAMSHIFT-SM)在五段人脸追踪视频序列中的精度为(64.2%),这一结果低于BACF 算法(77.0%),及深度学习类算法ECO(81.8%)、MDNet(74.2%),但优于KCF(60.0%)、STRUCK[38](48.8%)以及CSK(59.4%)等算法。此外注意到,原始CamShift算法的追踪精度仅为29.8%,在实验中劣于绝大多数对比算法,而在使用联合肤色分割模型进行肤色分割预处理后,算法追踪精度提升至40.0%。进一步,在加入追踪监测机制后,算法的性能再次由40.0%提升至64.2%,这证明了本文所提联合肤色模型及追踪监测机制的有效性及必要性。进一步,对比不同挑战下各类算法的追踪性能,可发现本文算法(CAMSHIFT-SM)具有良好的尺寸变化适应性,这是由于经肤色分割后,CamShift算法在无类肤色背景干扰下能够更为精确地计算出人脸的尺寸。另外,由于采用肤色为追踪特征,因此本文算法受目标平面内及平面外旋转所产生的形变影响较小,同时对快速运动所产生的纹理及轮廓模糊表现较为鲁棒。最后,可发现算法在光照变化中性能表现稍弱,这主要是由于光照变化易引起肤色信息的波动,从而导致本文算法中肤色分割模型及CamShift目标色彩直方图失效,继而影响算法追踪精度。
6.2.2 参数设置分析
在本文算法肤色分割流程中,非参数肤色分割模型所采用的阈值边界决定了其对肤色及背景间的分割性能,并将进一步影响人脸追踪精度。尽管本文所采用的阈值边界由人脸数据集构建,但基于不同数据集得到的阈值边界仍存在差异。为测试不同阈值边界设置对人脸追踪精度的影响,本文扩展了以下三组阈值边界对非参数肤色分割模型中的参数设置进行分析:
式(22)由Chai 等人[39]在尝试使用肤色图实现人面部肤色分割时提出。此外,Basilio 等人[40]在研究中认为,Chai 等人提出的参数(式(22))仅适用于白种人肤色,且对肤色分割的准确度不高。因此,他们提出了一组新的阈值边界:
最后,第三组阈值边界由Kukharev等人[41]提出:
相较于式(22)与式(23),式(24)在构建阈值边界时将光照强度纳入对肤色的判定依据,因此该组阈值边界可用于研究光照强度对肤色分割精度的影响。在采用包括本文所确定阈值边界在内的四种非参数肤色分割模型进行分割的基础上,测得的五组视频序列中追踪窗口与真实标注窗口平均重叠比如表4。
表4 不同非参数肤色分割模型下算法追踪精度对比Table 4 Comparison of algorithm tracking accuracy under different non-parametric skin color segmentation models
观察表4 可发现,采用本文与文献[39]构建阈值边界的算法均具有较高人脸追踪精度。相比之下,由文献[40]及文献[41]构建的阈值边界则在部分视频序列中对算法的追踪精度起到了负面作用。这主要是由于以上两组阈值边界在视频帧中均产生了较为严重的过分割。为进一步说明以上问题,在图7中展示了四组阈值边界对不同视频序列中部分关键帧的分割情况。
结合表4 及图7 可发现,人脸肤色过分割问题与追踪精度间存在一定关联。如在子图(3)、(4)、(8)中,所采用的阈值边界均将人脸完全去除,从而导致了追踪算法在构建联合肤色分割模型及CamShift 目标色彩直方图时失败。此外,子图(1)、(2)、(5)、(15)、(16)、(20)中同样存在着一定程度的过分割问题,因此表4中算法相应的追踪精度同样较低。总体来看,本文及文献[39]构建的阈值边界在五组视频序列中对人脸肤色的分割精度相对较高,故基于上述两组阈值边界构建肤色分割模型的算法追踪精度良好。相比之下,文献[40]、[41]构建的阈值边界则在较多视频序列中存在完全及部分人脸过分割问题,这也导致了以上两组阈值边界构建的算法追踪精度相对较低。
图7 非参数肤色分割示意图Fig.7 Diagram of nonparametric skin color segmentation
6.2.3 追踪监测流程分析
在本文追踪监测流程中,拉依达准则用于监测追踪窗口内Cr均值是否异常以对算法追踪精度做出判定。其背后的依据是背景与肤色间的Cr均值存在较为明显差异。为直观说明基于拉依达准则的追踪监测流程有效性,通过图8展示了本文算法在视频序列Man中所返回追踪窗口内的Cr均值变化。该视频序列以一段由暗至明的人脸为追踪目标,且类肤色背景干扰较为严重。
图8 视频序列Man中追踪窗口内Cr均值变化折线图Fig.8 Line chart of Cr mean change in tracking window of video sequence Man
本文算法在视频序列Man中的三处复检帧已在图7中标记并给出了相应追踪状态。观察可知,三帧复检帧均存在着追踪精度降低的问题。其中第33帧的追踪精度降低是由于场景中光照由暗转明,导致当前联合肤色分割模型及CamShift 目标色彩直方图不再适用,从而引发追踪窗口的尺寸扩大及偏移。而后续第70 帧及第90 帧的追踪窗口偏移则是受到了类肤色背景(人脸右侧的红色书籍)影响。结合视频序列中追踪窗口内Cr均值变化来看,可发现以上三帧复检视频帧均由于追踪窗口异常而包含了一定背景信息,因此相比先前视频帧内追踪窗口的Cr均值存在较为明显差异。在此基础上,拉依达准则通过对追踪窗口内Cr均值的异常值监测即可有效检出此类情况,从而启动人脸复检程序以确保追踪稳定。
6.2.4 人脸复检流程分析
尽管人脸复检流程在多数情况下可有效实现对人脸的重定位,同时重构联合肤色分割模型并初始化CamShift 目标色彩直方图。但AdaBoost 的人脸检测算法所给出的人脸坐标仍与真实标注的人脸窗口存在一定差异。表5 列出了本文中AdaBoost 人脸检测算法在复检帧中的人脸检测窗口与真实标注人脸窗口的重叠比,同时给出在不同分辨率下算法对人脸的重定位速度。
表5 基于AdaBoost算法的人脸检测统计Table 5 Face detection statistics based on Adaboost algorithm
观察表5可知,AdaBoost人脸检测算法在五组视频序列复检帧中所给出的人脸窗口均与真实人脸窗口具有较高的重叠比,同时在各分辨率视频帧中的人脸重定位速度可达到实时效果,这表明了本文采用AdaBoost人脸检测算法对人脸重定位的有效性。然而,尽管在多数复检视频帧中AdaBoost人脸检测算法均能够较为准确地给出人脸窗口,但由于本文中AdaBoost 算法仅接受了正面人脸样本训练,因此对存在平面外旋转的人脸易出现检测失败的情况。针对这一问题,在表6中进一步对算法的人脸重定位帧数进行了统计。
表6 人脸重定位帧数统计Table 6 Statistics of face relocation frames
观察表6可知:AdaBoost人脸检测算法在多数视频序列中的人脸重定位成功率较高,且五组视频序列的复检帧数占比均稳定在较小区间,这表明本文算法在绝大多数视频帧中的人脸定位由追踪流程完成。此外,可观察到AdaBoost 人脸检测算法在视频序列Trellis 及Boy中的重定位失败次数较多,这主要是由于视频序列Trellis中存在明显光照不均问题,而这对以人脸灰度分布为特征的AdaBoost 人脸检测算法影响较大。另外,视频序列Boy中则存在较多人脸平面外旋转现象,这同样会使得AdaBoost 算法难以有效检出人脸。因此可以预见,采用更为鲁棒且速度更快的人脸检测算法将可以效降低人脸复检次数,从而提升算法的整体追踪速度,这也将作为本文后续的一个优化方向。
6.2.5 追踪速度分析
表7 为不同算法的运行速度对比,限于篇幅,此处仅展示OPE性能优于本文算法的几类追踪算法。其中,对于深度学习类ECO 算法,分别测试了该算法在GPU及CPU上的运行速度。不同算法测试时所依赖硬件环境已在算法名称的下方标出。
对比表7内各类算法运行速度可知,深度学习类算法MDNet及ECO的平均运行速度均较慢。而相关滤波类算法BACF 虽然运行速度稍快,但19 frame/s 左右的速度仍达不到良好的实时性。相比之下,本文算法在五段视频序列中的平均运行速度接近160 frame/s,对比前四类追踪精度更优的算法具有明显的速度优势。此外需要指出:由于深度学习类算法模型复杂度较高,因此通常需要在GPU 中训练,当仅使用CPU 时算法的运行速度将明显降低。以表7中ECO算法为例,当仅在CPU中运行时,该算法的跟踪速度由在GPU 中的11 frame/s降至1.5 frame/s。相比之下,本文算法仅在CPU中测试,采用未经优化的Matlab 代码即可达到接近160 frame/s的速度。
表7 部分追踪算法运行速度对比Table 7 Speed comparison of partial tracking algorithms frame/s
6.3.1 追踪结果展示
为便于直观地对比分析,在图9中展示了五段测试视频序列中的部分算法追踪结果,下面将基于追踪结果对各算法进行详细的定性评估及分析。
观察图9可发现,KCF算法由于无法自适应改变目标窗口大小,因此其在在视频序列1中的第374帧、视频序列3 中的第465 帧追踪精度较低,且在视频序列1 中的第400帧受复杂背景干扰发生目标窗口偏移。此外,在视频序列1 中的第316 帧、视频序列3 中的第400 帧、视频序列4中的第10帧,原始CamShift算法在类肤色背景的干扰下出现了目标窗口的尺寸异常现象。类似的,在视频序列2 中的第37 帧,视频序列5 中的第10 帧,原始CamShift 算法则受类肤色背景影响发生目标窗口偏移,而本文算法与经肤色分割后的CamShift 算法(CAMSHIFT-S)由于排除了类肤色背景干扰,因此追踪结果较为稳定。此外,对于CAMSHIFT-S 算法,其在视频序列3中的第465帧由于未能适应场景变化导致肤色分割失效,使得目标窗口偏移至分割失败的类肤色背景区域,相似情况同样发生在视频序列2、4、5 中,由于场景及光源强度存在变化,该算法在后期视频序列中十分容易失效。最后,BACF算法与本文算法在五类视频序列中的追踪精度均较高,然而值得注意的是:在视频序列1中的第400帧,视频序列3中的第465帧、第747帧,本文算法将追踪窗口定位至肤色较为集中的脸颊及脖颈区域,导致追踪精度较低,这是由于CamShift 算法基于肤色概率密度投影决定追踪窗口位置,而脸颊、脖子等人体部位肤色概率较高且分布较为密集,因此本文算法易将追踪窗口定位至此类区域。
图9 不同算法在部分视频帧中追踪结果Fig.9 Different algorithms track results in partial video frames
6.3.2 类肤色背景下算法追踪性能评价
为进一步分析本文人脸追踪算法处理不同等级类肤色背景下视频序列的能力,本小节将对五组测试视频序列的类肤色等级做出大致划分,同时定性分析不同类肤色等级掉本文算法追踪精度的影响。然而,由于不同视频序列自身存在着诸多挑战因素,本文算法的追踪精度将同样受这些因素影响。表8 展示了文献[1]对五组视频序列中各类追踪挑战的划分。此外,本文同样对各视频序列中的类肤色等级做出定性评价,类肤色等级分为I(低)、II(中)、III(高)三级。
表8 各视频序列中追踪挑战及类肤色等级划分Table 8 Tracking challenges and skin color similarity level in each video sequence
分析表8 可知:视频序列Trellis 及David 中均存在较多追踪挑战,且类肤色等级划分为II(中),因此本文算法在两组视频序列中的追踪精度并不高。相比之下,视频序列Boy中同样存在较多追踪挑战,然而其类肤色等级为I(低),即视频帧中存在较少类肤色背景,因此本文算法在该组视频序列中的追踪精度相较上两组视频序列明显较高。最后,本文将Man及BlurFace两组视频序列放在一起对比,这是由于以上两组视频序列均具有最少的追踪挑战,而类肤色的等级划分却不同。其中,视频序列BlurFace 中的运动模糊、快速运动、平面内旋转三项追踪挑战对以色彩为特征的CamShift 算法影响较低,且在等级为II 的类肤色背景下,联合肤色分割模型可有效实现对非人脸背景的去除,因此本文算法在该组视频序列中的追踪精度较高。相比之下,本文算法在视频序列Man中的追踪精度则较低,这一方面是由于本文算法受光照变化这一追踪挑战影响较高,另一方面则是由于视频序列Man 中存在较多的类肤色背景(如图8中出现的红色书籍、橱柜灯等),此外该组视频序列中同样存在着明显的偏色问题,这同样提升了背景与目标肤色间的相似度。
综上所述,本文算法在各类类肤色等级的视频序列中均具有较为理想的追踪精度。然而分析表明,与肤色相似度较高的背景仍会对算法追踪精度产生一定干扰,因此考虑除肤色外更多鲁棒的人脸特征将作为本文后续的一个改进方向。
针对人脸追踪中可能出现的类肤色背景干扰问题,提出了一种基于肤色分割及追踪监测机制的改进CamShift算法。相比原始CamShift算法,所提算法通过构建联合肤色分割模型的方式,有效避免了类肤色背景可能对CamShift 算法造成的追踪窗口偏移及尺寸异常问题。此外,所提出的追踪监测机制可有效监测到由联合肤色分割模型及CamShift 算法色彩直方图失效引发的追踪精度降低问题。最后,基于AdaBoost 算法的人脸复检流程可实现对追踪精度较低视频帧的人脸重定位,并重构联合肤色分割模型及CamShift算法色彩直方图,使人脸追踪过程更为鲁棒。基于OTB-2015目标追踪数据库的测试结果表明,本文所提算法具有较高追踪精度,且相比多数追踪算法存在明显速度优势。最后,本文算法的不足在于:仅使用肤色特征易使得算法追踪窗口落入人体其他肤色区域(如脸颊、脖颈处),且追踪监测机制难以识别此类情况,造成追踪精度的降低。因此本文下一步研究将致力于联合肤色及纹理特征来实现对人脸的追踪。