0引言人脸表情识别是计算机视觉领域的一个研究热点。当前深度学习方法的研究在提升表情识别性能上取得了重大进展。然而,训练数据的缺乏以及大量表情无关因素(例如身份信息、光照、头部姿态、面部遮挡等)的影响影响了深度模型的特征学习能力,容易出现过拟合现象,限制了模型的泛化性能。为了缓解过拟合问题,有些研究使用经过充分预训练的人脸识别模型(例如VGG(visual geometry group)-Face(Parkhi等,2015),然后在目标表情数据集上进行微调。预训练的人脸识别网络具有更强的特征提取能力,另外,人脸识别和表情识别两个领域的相似性使得面部特征易于迁移,从而提升了表情识别性能。尽管如此,网络内部仍然保留大量身份主导的信息,极可能削弱其表示不同表情变化的能力(Ding等,2017)。实际上,识别效果既想保留人脸识别网络强大的感知面部特征的能力,又希望网络尽可能地学习表情特有的信息。本文首次将持续学习(de Lange等,2019)的思想和算法引入表情识别问题,旨在利用人脸识别预训练网络重要信息来指导表情识别网络的训练,而不是直接采用预训练—微调策略。1相关工作传统的特征提取方法如:局部二值模式(local binary pattern,LBP)、方向梯度直方图(histogram of oriented gradient,HOG)和尺度不变特征变换(scale invariant feature transform,SIFT)等难以有效地表示细腻的表情特征。而基于深度学习方法的表情识别不仅受训练数据缺乏的影响,且很多与表情无关的因素限制了深度模型的特征学习能力,如光照、头部姿态和面部遮挡等,因此模型容易过拟合。考虑到图像分布的相似性,人脸识别与表情识别存在很强的相关性,而人脸识别具有大量的训练数据,因而模型具有很强的提取面部特征的能力。Levi和Hassner(2015)在人脸识别预训练网络的基础上利用目标数据集进行微调,从而避免了表情数据量小造成的过拟合问题。类似地,Ng等人(2015)提出了一种两阶段训练方法,首先用较大的表情数据集训练,接着在目标数据集上进行微调。使用人脸识别的预训练网络虽然获得了性能提升,但其中包含大量与识别身份相关的信息,对于表情识别可能造成不利影响,限制了模型的泛化性能。Ding等人(2017)提出了一种两阶段的训练算法FaceNet2ExpNet来消除预训练网络中人脸主导信息的影响,预训练的人脸识别网络不直接为表情网络提供初始化参数。首先,它通过让两个网络生成相似的中间层特征来指导表情网络卷积层的学习,然后再添加全连接层,利用目标表情数据集的标签信息对整个网络进行微调。另外一些研究也旨在消除身份信息对于表情识别的影响。直观来说,同一个体的不同表情之间的差异一般小于不同个体的同一表情之间的差异。Yang等人(2018b)提出了一种身份自适应的架构来解决个体间差异的问题。它使用条件生成对抗网络(conditional generative adversarial network, cGAN)(Mirza和Osindero,2014),对于任意输入的人脸图像,合成其6类原型表情,同时保持身份信息不变。然后通过比较测试图像与各个原型在特征空间中的距离来分类。相反地,Yang等人(2018a)将表情图像解耦成中立成分和表情成分,对于任意输入图像,利用cGAN生成此人对应的中立表情,利用残留在网络中的表情成分来进行分类。但是这类方法需要一个大型的包含来自不同人的各类表情的数据库用于预训练,在真实世界环境下很难满足。本文针对表情识别缺乏充足训练数据的问题,利用人脸识别的预训练网络,同时希望克服网络中识别身份相关信息的负面影响。以一种全新的思路,充分利用人脸识别与表情识别之间的区别和联系。引入持续学习的思想,将人脸识别和表情识别看做两个连续的学习任务,仅保留人脸识别中对于感知面部特征较为重要的参数的作用,同时鼓励网络的其他参数学习更多的表情相关特征。持续学习研究从无限数据流中学习的问题,其目标是逐渐扩展所学知识并将其用于未来的学习(de Lange等,2019),通常以任务递增的方式进行。但是,人工神经网络存在灾难性遗忘,即学习到新知识会迅速忘记旧知识。与持续学习相似,本文首先进行人脸识别任务,随后进行表情识别任务。不同之处在于本文仅关注后者的性能,而持续学习还希望保持原有任务的性能。Zenke等人(2017)指出,生物神经网络中的每个突触会随着时间的推移积累与任务相关的信息,并利用该信息快速存储新的记忆而不会忘记原有记忆。与突触类似,人工深度神经网络应该具有追踪以往和当前参数值的能力,并可以在线估计参数对解决以往任务的“重要性”。在实验中,这种重要性度量可以通过训练过程中每个参数对总体损失变化的局部贡献来表示。当任务发生变化时,通过在后续任务中阻止重要参数大幅度变化,可以减轻灾难性遗忘。一般的持续学习任务仅包含少量的类别。例如,将MNIST(Mixed National Institute of Standards and Technology)数据集(LeCun等,1998)分为5个子集,每个子集包含2类数字,从而形成5个连续任务。因此每个任务的重要参数与此任务具体的类别有关。然而,人脸识别任务的类别数量通常很大,因此重要参数不太可能与具体的类别,即单个个体的身份信息相关。本文认为人脸识别任务的重要参数与捕获公共面部特征有关,所以它们对整体损失的贡献才更大。因此,通过计算人脸识别网络所有参数的重要性并限制重要参数来指导表情识别的训练,这样可以基本保留人脸网络提取面部一般特征的能力。同时低重要性参数可以以更大的幅度变化,从而学习表情特有的信息,提升识别性能。2基于参数重要性正则的表情特征学习本文方法流程如图 1所示,包含两个阶段。第1阶段,训练一个人脸识别网络,其间计算并记录每个参数的重要性。第2阶段,根据表情图像及标签信息进一步优化预训练网络,使其适用于表情识别任务,同时限制人脸识别的重要参数,从而保留网络提取面部一般特征的能力,避免过拟合。与直接微调不同的是,本文添加了一个有效的正则化项来指导表情网络的训练。 图1 方法框架 The framework of our methodFig 12.1重要性计算人脸识别和表情识别两个任务存在很强的关联性。持续学习希望在持续增长的任务中都能保持良好的性能,而本文研究仅希望提升后者即表情识别的性能。持续学习的方法通过限制对以往任务具有更强重要性的参数变化来保留其学习能力,这种重要性通过每个参数对总体损失值变化的贡献来衡量。对于人脸识别任务来说,由于类别众多,“重要”参数,即对损失值的变化贡献更大的参数,倾向于与感知面部一般特征相关而不是某一具体类别。因此,通过限制重要参数的变化可以更加有效地利用网络感知面部公共特征的能力,避免表情网络的过拟合。假设网络有$K $个参数,参数重要性$ {\omega _k}$由其对人脸识别损失函数值变化的贡献来表示。$ {\omega _k}$值越大,代表此参数重要性越高。相邻两次迭代间损失值的变化可以表示为式(1),网络的每个参数在当前时刻都对此变化作出了局部贡献;而整个训练过程包含多次迭代,$ {\omega _k}$即为训练过程中所有时刻此参数局部贡献的积分,如式(2)。神经网络的训练过程可以标识为参数空间中的轨迹$ \mathit{\boldsymbol{\theta }}(t)$,通过最小化损失函数$L $,梯度下降学习引起参数空间中从原始$ \mathit{\boldsymbol{\theta }}({t_0})$到最终$ \mathit{\boldsymbol{\theta }}({t_1})$的运动。首先,定义时间$t $处一个无穷小的参数更新量$ \mathit{\boldsymbol{\delta }}(t)$和梯度$ \boldsymbol{g}=\frac{\partial L}{\partial \boldsymbol{\theta}}$,则损失值的变化可以近似表示为 1 $L(\mathit{\boldsymbol{\theta }}(t) + \mathit{\boldsymbol{\delta }}(t)) - L(\mathit{\boldsymbol{\theta }}(t)) \approx \sum\limits_k {{g_k}} (t){\delta _k}(t)$ 为了计算训练过程中总的损失值变化,需要对这些无穷小的变化求和。换言之,需要计算梯度矢量场沿参数轨迹从初始点(时间点$ {t_0}$)到最终点(时间点${t_1} $)的路径积分。损失值的变化为 2 $\begin{array}{c}L_{1}-L_{0}=\int_{C} g(\boldsymbol{\theta}(t)) \mathrm{d} \boldsymbol{\theta}=\int_{t_{0}}^{t_{1}} g(\boldsymbol{\theta}(t)) \boldsymbol{\theta}^{\prime}(t) \mathrm{d} t= \\\sum\limits_{k} \int_{t_{0}}^{t_{1}} g_{k}(\boldsymbol{\theta}(t)) \theta_{k}^{\prime}(t) \mathrm{d} t=-\sum\limits_{k} \omega_{k}\end{array}$ 式中,${\mathit{\boldsymbol{\theta '}}} $表示微分,每个参数的重要性现在可以定量地描述为$ {\omega _k}$,即它对整体损失的贡献。由于损失值是不断减小的,因此在求和符号之前引入负号。在具体实现时,路径积分可以通过训练过程中每次迭代的梯度$ g_{k}(t)=\frac{\partial L}{\partial \theta_{k}}$与参数更新量$\Delta {\theta _k} $乘积的总和来近似得出。然而多数情况下,真实梯度通过随机梯度下降(stochastic gradient descent,SGD)近似得到,从而导致将噪声引入到了$ {{g_k}}$的估计中,这样近似的参数重要性通常会高于$ {\omega _k}$的真实值。但是在本文中,仅希望获得每个参数的相对重要性,因此可以忽略整体重要性偏高的影响。2.2训练框架记表情识别的类别数为$ C$,人脸识别和表情识别网络的公共参数个数为$K $。在第1阶段,训练人脸识别网络时计算其所有参数的重要性,然后记录最终的参数及其重要性。在第2阶段,使用损失函数对预训练网络进一步优化,即 3 $L=L_{\mathrm{c}}+\lambda L_{\mathrm{r}}$ 式中,$ \lambda $为权衡超参数,$ {L_{\rm{c}}}$是交叉熵损失,定义为 4 $ L_{\mathrm{c}}=-\frac{1}{N} \sum\limits_{i=1}^{N} \sum\limits_{j=1}^{C} y_{i, j} \log \hat{y}_{i, j} $ 式中,$ {{y_{i, j}}}$是图像的标签,${{\hat y}_{i, j}} $是图像通过网络的输出经softmax归一化的概率。${L_{\rm{r}}} $即参数重要性正则化项,定义为 5 $ L_{\mathrm{r}}=\sum\limits_{k=1}^{K} \omega_{k}\left(\theta_{k}-\tilde{\theta}_{k}\right)^{2} $ 式中,$ {{\theta _k}}$是当前参数值,$ {{{\tilde \theta }_k}}$是人脸识别任务结束时的参数值,$ {\omega _k}$即此参数的重要性。$ {\omega _k}$越大,即此参数重要性越高,其对应的损失也越大,因此网络会限制这些重要参数的变化。3实验使用3个广泛使用的数据集来验证算法的有效性,包括两个实验室环境下的数据集CK+(the extended cohn-kanade database)(Lucey等,2010),Oulu-CASIA(Zhao等,2011)和一个真实世界环境下的数据集RAF-DB(real-world affective faces database)(Li等,2017)。3.1实现选择MobileFaceNet(Chen等,2018)作为CNN(convolutional neural network, CNN)骨干网络,它是一个运行于移动设备和嵌入式设备上的用于实时人脸验证的CNN网络,模型大小仅4 MB左右。两个任务的输入图像均使用多任务卷积神经网络(multi-task cascaded convolutional neural network,MTCNN)(Zhang等,2016)经过人脸检测和对齐后归一化到112×112像素,如图 2所示。CNN提取的特征维度为512。两个训练阶段均使用带动量的随机梯度下降作为优化器,动量设为0.9,权重衰减项设为0.000 5。数据增广采用随机水平翻转。在第1阶段,使用CASIA-WebFace(Yi等,2014)训练人脸识别模型,损失函数选择ArcFace(Deng等,2019),批量大小设为256。网络共训练70个epoch,初始学习率为0.1,从第40个epoch开始,每隔10个epoch学习率下降到之前的1/10。人脸识别模型训练结束后,全连接层之前的部分用于进行第2阶段表情识别的训练。此时批量大小设为32,初始学习率设为0.01,每5个epoch降低学习率至当前的1/10,一共训练25个epoch。基线的训练超参数与之相同。参数重要性正则目标函数的$ \lambda $固定为0.01。 图2 对齐后的图像示例 The aligned images in three databasesFig 2((a)angry; (b) disgust; (c)fearful; (d) happy; (e)sad; (f)surprised) 3.2CK+CK+(Lucey等,2010)为实验室环境下收集的数据集,包含来自123个受试者的593个视频序列。实验中进行6类基本表情的分类,仅从106个受试者中选择了309个序列,然后提取每个序列中表情强度达到峰值的最后3帧,得到927幅图像。最后,将所选图像按人物ID升序分为10个子集,进行身份无关的十折交叉验证。交叉验证的平均精度如表 1所示。从表 1中可以看出,本文方法达到了98.7%的识别率,使用更加简单的网络结构MobileFaceNet,达到了与当前先进算法接近的结果。图 3展示了CK+上的混淆矩阵,可以看到算法识别厌恶、开心和悲伤这3类表情的效果最好,而生气和恐惧样本数量更少,相对难识别。 表1 CK+数据集上的整体精度 方法 精度/% DTAGN(Jung等,2015) 97.25 PPDN(Zhao等,2016) 97.3 FN2EN(Ding等,2017) 98.6 MDSTFN(Sun等,2019) 98.38 DSAN-VGG-RACE(Fan等,2020) 98.92 微调(基线) 97.6 参数重要性正则(本文) 98.7 The overall accuracy on CK+ databaseTable 1 加粗字体表示最优结果,DTAGN表示deep temporal appearance-geometry network;PPDN表示peak-piloted deep network;FN2EN表示FaceNet2ExpNet;MDSTFN表示deep spatial-temporal feature fusion neural network;DSAN表示deeply-supervised attention network。 图3 CK+数据集上的混淆矩阵 Confusion matrix on the CK+ databaseFig 33.3Oulu-CASIAOulu-CASIA(Zhao等,2011)是实验室环境下收集的数据集,包括来自80个受试者的2 880个图像序列,被标记为6类基本表情标签。选择在正常照明条件下拍摄的480个图像序列。与CK+数据库类似,在每个序列中选择最后3个峰值帧,形成共1 440幅图像,每类表情具有相同数量的图像。然后进行身份无关的十折交叉验证。表 2展示了Oulu-CASIA上6类基本表情的识别率。 表2 Oulu-CASIA数据集上的整体精度 方法 精度/% DTAGN(Jung等,2015) 81.46 PPDN(Zhao等,2016) 84.59 FN2EN(Ding等,2017) 87.71 DeRL(Yang等,2018a) 88.0 IDFERM(Liu等,2019) 88.25 SCAN(Gera和Balasubramanian,2020) 86.56 微调(基线) 88.26 参数重要性正则(本文) 88.19 The overall accuracy on Oulu-CASIA databaseTable 2 加粗字体表示最优结果。DeRL表示de-expression residue learning;IDFERM表示identity-disentangled facial expression recognition machine;SCAN表示spatio-channel attention net。可以看到本文方法达到了与先进算法可比的结果。注意到算法的精度比微调略低,这是因为预训练的人脸识别网络使用互联网图像进行训练,而Oulu-CASIA的图像包含实验室环境下的多种光照条件,这种图像分布上的差异使得预训练的人脸模型对于此类图像的感知能力较弱,因此造成效果不佳。随后进行了跨数据集实验,验证两个模型在CK+上的测试性能。将CK+中的所有图像分别输入基线模型和利用参数重要性正则训练出的模型,测试识别率。微调模型在Oulu-CASIA上测试精度为88.26%,在CK+上测试精度为87.41%。使用参数重要性正则模型在Oulu-CASIA上测试精度为88.19%,在CK+上测试精度为87.98%。这表明通过正则化,模型可能具有更好的泛化性能。图 4是Oulu-CASIA上的混淆矩阵。可以看出算法识别开心和惊讶的效果最好,而识别恐惧和厌恶的性能相对弱。 图4 Oulu-CASIA数据集上的混淆矩阵 Confusion matrix on the Oulu-CASIA databaseFig 43.4RAF-DBRAF-DB(Li等,2017)是一个大规模真实世界环境下的表情数据集,其中包含从互联网上下载的来自数千人的约3万幅非常多样化的面部图像。RAF-DB中的图像共由315人标记,最终的标签通过众包策略确定,并且确保每幅图像都由40个不同人员标记。对于基本表情类别(生气、厌恶、恐惧、开心、悲伤、惊讶和中性表情),RAF-DB包含12 271个训练样本和3 068个测试样本。RAF-DB为表情识别提供了可靠的标注,并且在光照、头部姿态以及面部遮挡等方面的具有多样性。实验结果如表 3所示,可以看到,通过参数重要性正则,本文方法比直接微调提升了1.83%,这主要是由于保留了人脸识别网络充分提取面部特征的能力,从而避免多种无关因素的影响。值得注意的是,本文方法在RAF-DB上取得了88.04%的精度。混淆矩阵如图 5所示,相比于Soft Label方法(Gan等,2019),本文方法在识别相对难的表情(如恐惧、厌恶和生气)上的表现有所提升。 表3 RAF-DB数据集上的整体精度 方法 精度/% PAT-ResNet-(gender, race)(Cai等,2018) 84.19 IPA2LT (LTNet)(Zeng等,2018) 86.77 Covariance Pooling(Acharya等,2018) 87.0 Soft Label(Gan等,2019) 86.31 APM-VGG(Li等,2019) 85.17 SCN(Wang等,2020) 87.03 微调(基线) 86.21 参数重要性正则(本文) 88.04 The overall accuracy on RAF-DBTable 3 黑色字体表示最优结果。PAT表示probabilistic attribute tree;IPA2LT表示inconsistent pseudo annotations to latent truth;APM表示adaptive pooling maps;SCN表示self-cure network。 图5 RAF-DB数据集上的混淆矩阵 Confusion matrix on the RAF-DB databaseFig 53.5$ \lambda $的选择为了说明权衡超参数$ \lambda $对实验结果的影响,本小节在RAF-DB上进行了实验评估。从图 6中可以看出当$ \lambda $取0.01时效果最佳。当$ \lambda $取值较小时,参数重要性正则效果较弱,识别精度变差;当$ \lambda $取值较大时,正则效果过强导致参数的变化幅度小,阻碍了网络学习表情特有的特征表示,识别效果也随之变差。 图6 $ \lambda $值对RAF-DB识别率的影响 The evaluation of $ \lambda $ on RAF-DBFig 64结论本文分析了人脸识别与表情识别之间的区别与联系,应用持续学习的思想进行表情识别,避免由于缺乏足够的训练数据导致的模型过拟合问题。主要通过参数重要性正则保留人脸识别模型强大的特征提取能力,同时低重要性参数的变化能够学习表情相关的信息,避免大量身份信息的保留对表情识别的不利影响。本文方法在RAF-DB数据集上达到了88.04%的测试精度,由于基本保留了提取面部特征的能力,模型对于真实世界环境下表情图像多样性的处理能力增强,性能提升更为明显。但由于实验室环境下收集的表情图像基本为正面无遮挡的规范人脸,图像质量更高,特征更加易于学习和识别,因此本文方法对于这类数据集的识别性能提升不明显。在今后的工作中,会关注这类数据集上的识别性能。
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览