MixCut | 一种简单、高效的面部表情识别数据增强方法 !

技术

点击下方卡片,关注 「AI视界引擎」 公众号

picture.image

picture.image

在面部表情识别任务中,研究行人由于训练样本数量较少,总是得到较低的表情分类准确度。为了解决这类问题,作者提出了一种名为MixCut的新数据增强方法。在这种方法中,作者首先在像素 Level 上以随机比例对两个原始训练样本进行插值,生成新样本。然后,在新样本上随机方形区域内执行像素移除,以生成最终的训练样本。作者在Fer2013Plus和RAF-DB上评估了MixCut方法。

使用MixCut,在Fer2013Plus上的八标签分类中,作者达到了85.63%的准确度,在RAF-DB上的七标签分类中达到了87.88%的准确度,有效地提高了面部表情图像识别的分类准确度。

同时,在Fer2013Plus上,MixCut相对于其他三种数据增强方法:CutOut、Mixup和CutMix,分别实现了+0.59%、+0.36%和+0.39%的性能提升。在RAF-DB上,MixCut相对于这三种数据增强方法,提高了分类准确度分别为+0.22%、+0.65%和+0.5%。

1 Introduction

面部表情识别是一项复杂的任务,需要对人类面部表情进行准确描述和分类。基于传统机器学习的面部表情识别建立在手动提取表情特征的基础上,然后通过分类算法进行表情识别。两种传统的特征提取方法是全局特征提取和局部特征提取。全局特征提取是从整个面部图像中提取特征。

最常用的方法之一是主成分分析(PCA)[1]。Niu等人[2]提出了加权主成分分析方法。该方法为PCA提取的特征添加权重,进一步筛选主要特征并优化特征矩阵的大小,从而提高面部表情识别的效率。

Zhu等人[3]引入了平均主成分分析方法,优化了表情特征的提取,有效提高了面部表情分类精度的稳定性。除了改进PCA本身之外,一些研究者通过将PCA与其他方法结合来改进PCA方法。Mohammadi等人[4]模拟了面部表情的变化,并建立了PCA与分类字典之间的关系模型。

这种方法产生了六种表情的稀疏矩阵表示。Roweos等人[5]首次使用局部线性嵌入方法缩小图像特征并减少模型中的参数数量。Arora M等人[6]将PCA与粒子群优化算法相结合,实现了高精度的特征向量提取。局部特征提取方法将面部图像划分为几个区域,并对不同区域分别进行表情特征提取。

Ekman等人[7]提出了经典的行为单元(AU)划分方法,即面部动作编码系统(FACS)。此后,许多研究者基于FACS从面部AU提取特征进行表情分类。Zhao等人[8]提出了结合小区域方法的多表情标签进行特征提取。Han等人[9]通过面部表情进行面部网格变换,以提高面部的AU特征提取。Hasan Z F等人[10]使用方向梯度直方图(HOG)和Gabor方法提取特征,通过结合提取的特征来提高面部表情检测的准确性。

2006年,Hinton等人[11]首次提出了深度学习的概念,研究行人开始使用卷积神经网络(CNN)来提取面部表情的深度特征并进行分类。许多经典的CNN网络模型,如AlexNet[12],VGGNet[13],GoogLeNet[14]和ResNet[15],已成功应用于面部表情识别。深度学习算法通过机器训练自动提取图像特征。这一过程消除了与手动特征提取相关的瓶颈,显著提高了图像处理的效率和准确性。这些进步与传统机器学习算法相比尤其显著。在面部表情识别领域,深度学习技术的研究重点主要在于改进CNN以及不同CNN的融合。

CNN是深度学习算法中最常用的模型之一,其性能提升对表情识别的准确性至关重要。Liu等人[16]提出了一种平均加权方法,以减少使用深度学习方法进行面部表情识别时的误差,结果表明该模型优于传统的CNN方法。Kim等人[17]训练了多个卷积神经网络,并选择权重比最高的一个来识别面部表情。

Shao J等人[18]通过构建不同的CNN模型比较了面部表情识别的效果,得出浅层CNN优于其他CNN方法的结论。Shi等人[19]提出了一种多分支交叉连接卷积神经网络(MBCC-CNN),它提高了每个卷积核的特征提取能力。Yu等人[20]提出了一种新的端到端协同多任务卷积神经网络(CMCNN),它包括通道协同注意力模块(CCAM)和空间协同注意力模块(SCAM)。许多实验结果表明,该方法优于单任务和多任务 Baseline 。此外,一些研究行人基于softmax损失函数进行了改进。Wen等人[21]提出了中心损失函数以实现类内方差的最小化;该函数的核心作用是实现在图像类别内中心的均匀分布。Cai等人[22]提出了一种岛屿损失函数,它提高了学习面部表情深层特征识别的能力。Han等人[23]基于MobileNet V1提出了一种三结构网络模型,训练了一种新的多分支损失函数以提高表情识别的准确性。

深度学习算法在面部表情识别方面取得了巨大成功。然而,这项任务仍需解决一些挑战,比如样本数量有限以及网络过度拟合的倾向。

研究行人在面部表情识别中广泛采用数据增强技术来解决这些问题。数据增强技术通过放大和转换原始数据,生成更丰富的数据样本,从而有效地提高了面部表情识别的准确性。目前流行的数据增强方法包括随机裁剪、图像翻转和随机移除[24]。研究行人已将卷积神经网络从VGG[13]发展到了ResNet[15],并广泛使用了数据增强方法。K.K. Singh等人[25]提出了“捉迷藏”方法,以增强模型对遮挡情况的鲁棒性。

这种方法在训练图像中生成多个离散的隐藏块,创造出各种遮挡组合。因此,当模型在测试时遇到一个隐藏的可识别目标,它被迫寻找其他相关内容,从而提高了整体的鲁棒性。S.Yun等人[26]提出在训练图像之间随机剪切和粘贴CutMix,并对标记数据进行相应处理。Y. Linyu等人[27]提出使用随机 Mask LMix保持训练样本的数据分布和高频滤波锐化样本以突出识别区域。T. Devries等人[28]提出了Cutout技术,在训练期间随机遮盖输入图像的固定大小矩形区域。用户可以将此技术与其他技术在对抗训练中结合使用。H. Zhang等人[29]提出了Mixup,该技术引起了广泛关注;

Mixup混合了成对的样本及其标签。Mixup可以减少模型对错误标记的记忆,并增加对对抗实例的鲁棒性。

本文提出了一种结合Cutout、Mixup和CutMix的新数据增强方法:MixCut。

MixCut方法首先以特定比例对两个样本进行插值,以生成新的样本和新的标签,并保持相同的比例。从插值获得的新样本然后随机去除一部分方形像素,以获得最终数据增强后的新样本。

picture.image

图1展示了MixCut与RAF-DB[30]上的另外三种数据增强方法的视觉比较。为了验证该方法的有效性,作者在面部表情识别数据集Fer2013Plus[31]和RAF-DB数据集上对其进行了评估,选择了改进的VGG19作为 Baseline (详情见3.1小节)。在Fer2013Plus数据集中,与 Baseline 相比,MixCut的分类准确率提高了。在RAF-DB数据集中,与 Baseline 相比,MixCut的分类准确率提高了。在这两个数据集中,使用MixCut进行数据增强后的分类准确率均优于使用Cutout、Mixup和CutMix后的准确率。

2 MixCut

MixCut是一种简单的数据增强方法。简而言之,MixCut通过在像素 Level 随机插值两个原始训练样本生成新样本。然后,它在随机方形区域内移除新样本的像素,以创建最终的训练样本。

设,分别表示训练样本及其标签。MixCut的目标是通过结合两个训练样本和生成一个新的训练样本。生成的训练样本用其原始损失函数训练模型。作者定义此操作为:

其中,是与训练样本和尺寸相同的二值 Mask 。表示矩阵点乘。表示两个训练样本之间的插值强度。

算法1 MixCut的伪代码

picture.image

首先,生成与训练样本和大小相同的二值 Mask 以生成二值 Mask ,中的所有元素均为1。下一步是随机选择中元素的坐标作为中心点。作者围绕这一点生成一个方形移除区域,并通过将中的所有元素设置为0来完成二值 Mask 。作者设置移除区域比例,,遵循贝塔分布。这种方法不允许所有的移除区域包含在二值 Mask 中。实际的移除区域可能小于预期的移除区域。插值强度遵循贝塔分布。此外,MixCut中的超参数控制使用MixCut的概率,这里设置为0.5,表示在训练过程中有50%的概率使用MixCut。第3.3节详细讨论了超参数、和的选择。

在每次训练迭代中,根据方程1和2,通过在小批量中随机选择两个训练样本来生成新的MixCut样本。算法1展示了MixCut的伪代码。

表1:MixCut、Cutout、Mixup和CutMix之间的主要区别MixCut方法非常简洁,可以更高效地训练网络。

picture.image

Cutout[28]移除原始样本的随机方形区域以生成新样本。然而,Cutout固定了移除区域,保持移除区域比例恒定,并且不修改样本标签。Mixup[29]在像素 Level 以随机比例插值两个原始样本以生成新样本,但不移除它们。新样本通过以插值比例混合两个原始样本的标签来获取其标签。Cutout和Mixup的使用概率为1。CutMix[27]涉及剪下原始样本的一个随机方形区域,并将其粘贴到另一个原始样本的剪切区域以生成新样本。新样本通过混合两个原始样本的标签以及剪切区域比例来获取其标签。CutMix的使用概率为0.5。图2说明了使用MixCut、Cutout、Mixup和CutMix从原始样本生成新样本的过程。表1展示了MixCut、Cutout、Mixup和CutMix之间的主要区别。

3 实验

picture.image

为了评估MixCut的性能,作者在两个面部表情识别数据集Fer2013Plus和RAF-DB上分别进行了实验。

Experiments on the Fer2013Plus dataset

Fer2013Plus数据集[31]是Fer2013数据集[32]的重新标注版本。在这个数据集中,十位标注者通过提供他们的投票来标注每张图像。除了FER2013原始的七种表情(愤怒、厌恶、恐惧、快乐、中性、悲伤和惊讶)之外,还增加了三种新类别:轻蔑、未知和NF(无脸)。与原始FER2013标签相比,Fer2013Plus在静态图像中提供了更准确的情绪状态表现。该数据集包含35887张图像,每张图像的尺寸为48*48像素,分为三部分:28709张训练图像,3589张验证图像和3589张测试图像。

在实验之前,作者对Fer2013Plus数据集进行了以下处理。

首先,作者为每张图像选择票数最多的标签作为唯一标签,将Fer2013Plus数据集从多标签数据集转换为单标签数据集。

其次,在上面的处理之后,作者移除了标记为未知和NF的图像。经过此处理后,Fer2013Plus数据集由28389张训练图像,3553张验证图像和3546张测试图像组成。

移除标记为未知和NF的图像是因为它们没有可供网络学习的重要特征。

作者对获得的Fer2013Plus数据集进行了统一处理。在训练阶段,作者随机裁剪44x44的图像,并在送入训练过程之前应用随机镜像。在测试阶段,作者采用集成方法以减少异常值。作者在左上、左下、右上、右下和中心裁剪并镜像图像,从一张测试图像中得到10张图像。模型处理这十张图像,然后平均获得的概率。输出概率最高的分类被视为相应的表情。这种方法有效地减少了分类错误。

作者对VGG19[13]结构进行了几处调整。

首先,作者在ReLU层[34]之前添加了一个批量归一化(Batch Normalization, BN)[33]层。然后,作者在全连接层之前引入了dropout[35]策略。

最后,作者移除了传统VGG19中的多个全连接层,直接在经过一个全连接层后将其分类为八个类别。图3展示了改进的VGG19网络的架构,该网络接受44*44尺寸的图像作为输入。

作者选择了改进的VGG19作为 Baseline (Baseline)。

上述处理包括数据集的处理、训练数据的预处理、测试阶段使用的策略以及选择改进的VGG19作为 Baseline 。所有这些的目的是让模型能够获得更好的表现力并减少预测误差,以便实验中的唯一变量来自于不同的数据增强方法。

picture.image

在实验中,作者将批量大小设置为128,并训练了250个周期。将初始学习率设置为0.01,并从第80个周期开始,每五个周期衰减一次,每次乘以0.9。此外,作者使用了动量为0.9和权重衰减为5e-4的SGD优化器。

在Fer2013Plus数据集上,作者评估了不同的数据增强方法。作者将CutOut的移除比例设置为0.25。Mixup的插值强度遵循的Beta分布。作者将CutMix的裁剪比例设置为遵循的Beta分布,使用的概率为50%。按照第2节中的方式设置MixCut的超参数。在这个实验中,唯一的变量是所使用的不同数据增强方法。作者每种方法测试了五次,包括 Baseline ,然后取平均结果。表2展示了MixCut与其他方法在Fer2013Plus上的准确率比较。

picture.image

MixCut在Fer2013Plus上达到了85.63%的准确率,比 Baseline 准确率84.36%高出了1.27%。此外,它还在四种数据增强方法中取得了最高的准确率,分别比Cutout、Mixup和CutMix高出0.59%、0.36%和0.39%。

Experiments on the RAF-DB dataset

RAF-DB[30]是一个大规模的情感面部表情数据集,包含29,672张多样化的面部图像。四十位标注员对这些基本或复合表情的图像进行标注。此外,每张图像都标注了五个精确的标志点位置,37个自动标志点位置,一个边界框,种族,年龄范围和性别属性。作者为这项实验选择了RAF-DB的单标签子集,包含15,339张图像。每张图像的大小为100100像素,分为两部分:12,271张训练图像和3,068张测试图像。总共有7种表情类别(愤怒,厌恶,恐惧,快乐,中性,悲伤和惊讶)。作者对RAF-DB数据集本身没有进行任何预处理。在训练期间,图像被随机裁剪为9292像素,然后在输入训练过程之前进行随机镜像增强。Baseline 使用了如3.1小节所述的相同网络结构。由于RAF-DB有七个表情类别,MixCut在RAF-DB上达到了87.88%的分类准确率,比 Baseline 的86.84%准确率高出+1.04%。它比其他三种数据增强方法的准确率分别高出+0.22%,+0.65%和+0.5%,分别是Cutout,Mixup和CutMix。

Selection of Hyperparameters

在本节中,作者讨论了三个超参数的设置:插值强度、移除区域比例和使用概率。本节中的实验都是在经过3.1小节处理后的Fer2013Plus数据集上进行的。在3.1小节中描述的MixCut方法是指原始的MixCut,其中遵循Beta分布;将移除区域比例设置为1-,其中遵循Beta分布;并将使用概率设置为50%。

3.3.1 Selection of

对于插值强度 ,作者分别将其设置为0.2和0.4。所有其他条件保持与原始MixCut相同(关于移除区域比例 和使用概率 的讨论也同样如此)。表4展示了不同插值强度 下MixCut在Fer2013Plus上的准确率比较。

picture.image

3.3.2 Selection of

表3:MixCut与其他数据增强方法在RAF-DB上的比较

picture.image

对于去除区域比例 ,作者分别设置为1/4(对应的去除区域边缘比例为1/2)、9/64(对应的去除区域边缘比例为3/8)、1/16(对应的去除区域边缘比例为1/4)以及1/64(对应的去除区域边缘比例为1/8)。表5比较了不同去除区域比例 下MixCut在Fer2013Plus上的准确度。

3.3.3 的选择

对于使用概率 ,作者设置为100%。表6比较了不同使用概率 下MixCut在Fer2013Plus上的准确度。

picture.image

实验结果表明,与原始MixCut相比,上述超参数的变化导致MixCut性能下降。

picture.image

表4和表5的结果显示,网络需要一些具有随机性的训练样本,而不是将插值强度 和去除区域比例 设置为固定值。因为网络本身的训练本质上是具有随机性的。表6的结果表明,网络需要一些正常或未受干扰的训练样本。如果所有训练数据都受到噪声或干扰,性能不如预期。

4 结论

本文提出了一种使用MixCut方法进行数据增强,以训练卷积神经网络使用增强样本的方法。MixCut易于实现,在面部表情识别任务中显示出良好的性能。

同时,作者还探讨了在Fer2013Plus数据集上的MixCut 、、超参数,并选择了最佳超参数。在Fer2013Plus数据集上,MixCut将 Baseline 分类准确度提高了,达到。在RAF-DB数据集上,MixCut将 Baseline 准确度提高了,达到。此外,与其它数据增强方法相比,MixCut在两个数据集上一致提高了分类准确度。

MixCut在面部表情识别任务上表现良好,那么它是否在其他分类任务上同样表现良好?它是否可以应用于计算机视觉领域的其他任务,如检测、定位和分割?这种方法是否可以扩展到半监督或无监督学习?MixCut的高度适应性是作者未来研究的重点。

参考

[1].MixCut: A Data Augmentation Method for Facial Expression Recognition.

点击上方卡片,关注 「AI视界引擎」 公众号

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
边缘云游戏行业解决方案
《“加速”游戏体验升级,火山引擎边缘云游戏行业解决方案》 许思安 | 火山引擎边缘云高级总监
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论