人工智能|计算机视觉——微表情识别(Micro expression recognition)的研究现状
一、简述微表情是一种特殊的面部表情与普通的表情相比微表情主要有以下特点持续时间短通常只有1/25s~1/3s动作强度低难以察觉在无意识状态下产生通常难以掩饰或伪装对微表情的分析通常需要在视频中而普通表情在图像中就可以分析。由于微表情在无意识状态下自发产生难以掩饰或伪装通常与真实情感直接相关所以微表情在情感分析中较为可靠应用前景广阔另一方面由于人为识别微表情比较困难训练难度大且成功率不高因此需要计算机进行微表情自动识别。目前微表情识别的工作难点主要有两方面微表情的持续时间短、动作强度低特征难以提取因此需要进行合适的数据预处理与特征提取由于微表情的数据采集与鉴定存在困难现有的微表情数据集较少这使得深度学习在微表情识别中的应用存在困难。现有的的微表情识别方法通常基于传统机器学习设计一种手工特征Handcrafted Feature来提取微表情片段中的特征依照数据预处理——特征提取——特征分类的框架进行微表情分类。随着近年来深度学习在计算机视觉中的发展使用深度学习方法进行微表情识别的尝试也逐渐增多。下面我将从数据集、数据预处理、传统方法、深度方法四个角度来简单介绍微表情识别工作。二、数据集CASME II数据集包含247条微表情视频片段在我实际使用的版本中包含255条使用200FPS的高速摄像机进行拍摄视频片段的面部分辨率可以达到约280*340像素。CASME II数据集将微表情分为5类进行标注分别是快乐Happiness、恶心Disgust、惊讶Surprise、压抑Repression、其他Others除此之外CASME II数据集中还标注了微表情活动的起点Onset、峰值点Apex与结束Offset其中Apex对于微表情识别有所帮助除了对情感进行标注外CASME II数据集还标注了每个微表情的AU面部活动单元AU可以作为对微表情进行分类的依据。对于CASME II数据集的详细介绍可以参照下文CASME II: An Improved Spontaneous Micro-Expression Database and the Baseline Evaluationjournals.plos.org/plosone/article?id10.1371/journal.pone.0086041编辑除此之外目前比较常用的微表情数据集还有SMIC与比较新的SAMM等。对于不同的微表情数据集主要的区别在于帧率、分辨率与标注方式。三、数据预处理在提取微表情的特征前通常要对微表情视频片段进行数据预处理首先就是人脸预处理包括裁剪人脸等随后还要进行其他数据预处理以便于特征的提取。常使用的数据预处理包括使用TIM算法进行时域图像插值、使用EVM算法进行动作放大。1.人脸预处理在裁剪人脸时比较经典的方法是使用ASM或其他算法提取人脸特征点以左眼的位置以及双眼间的距离作为基准控制人脸裁剪的位置与范围由于微表情数据集中的数据采集自多名受试者而不同受试者的面部特征分布有所不同因此为了减少不同受试者之间面部的差异可以基于面部特征点对所有片段进行面部配准face register效果如下图所示(a)标准面部 (b)面部配准前的图像 (c)面部配准后的图像简单来说face register首先选择一张脸作为标准人脸图像提取其特征点对于每个视频片段提取视频片段中第一帧的面部特征点并计算一个映射函数此处使用LWM算法将这帧图像的特征点映射到标准图像的特征点上最后将此映射作用在视频中的所有帧上。这种方法可以使所有视频片段中的人脸特征点位置相同从而减少不同人脸的差异。使用python的dlib库识别人脸特征点进行face register经过实验发现register可以提高模型在10-fold验证时的效果但降低了模型在LOSO验证时的效果。由于dlib对于人脸特征点的识别并不是那么准因此上述现象也可能是由dlib的误差导致。2.时域图像插值TIM算法由于微表情持续时间较短我们希望有一种方法能在保持微表情特征的同时延长微表情的持续时间这样有利于特征的稳定提取因此我们需要对视频片段进行时域上的插值增加微表情片段所包含的图像数相当于变相延长了微表情的持续时间。由于在现实世界中人的表情是连续变化的但是在摄像机拍摄的视频中所包含的图像帧是不连续的。我们可以将现实世界中的连续表情变化视为图像空间上的一条连续曲线曲线的每一个点都代表着人脸在一个瞬间时的表情而摄像机拍摄的视频则可以视为在这条连续曲线上进行采样。只要能找到这条曲线并在曲线上重新进行更加密集的采样便能用更多的图像表示同一段表情。时域插值模型Temporal Interpolation ModelTIM算法是一种时域上的图像插值算法。该方法首先将视频片段视为一个图graph并用图中的节点代表一帧图像视频中相邻的帧在图中也是相邻的节点视频中不相邻的帧在图中也不相邻随后使用图嵌入graph embedding算法将该图嵌入到一个低维的流形中最后代入图像向量计算出这条高维的连续曲线。在曲线上重新进行采样便可以得到插值后的图像序列。TIM算法的细节可以参考下文Towards a practical lipreading systemd1wqtxts1xzle7.cloudfront.net/41951454/Towards_a_practical_lipreading_system20160203-30232-17wz8ns.pdf?1454509076response-content-dispositioninline%3Bfilename%3DTowards_a_practical_lipreading_system.pdfExpires1593328829SignatureacozjaiLd7c2APma86H1KgbKFTjTxvCa8QBNC9wgOsM84NHUPzzrEnTt-G57M~divHhhmuLoEyNLgvBDcyI0EYRdZZ9ooLYQ2FAn0a0Dvm3~JvCl2mfMX1bxwT0TQDugjIb6Pgq4owBFHYSeHX82qV~aV7DyVJ5BjpEth9Sn2t2lT21OZhwKrca94gvKZme7qc10ZhYE-Ztc6-TWbF~eq6vGDu2MJouP1IqKsGm03QG3x-1WyFfh36I~qlsW8sPoXjQtH0yEi4iJWvMdRRdv1-3x5OzfUgIi8xUsnxW40fz5Oi~J-cGMMq-9y7PmqY9P6sjlFu6lIpAnN6OwDLGKiw__Key-Pair-IdAPKAJLOHF5GGSLRBV4ZA3.动作放大EVM算法由于微表情的动作不明显想直接从视频片段中提取想要的特征是比较困难的此时我们可以使用欧拉视频放大Eulerian video magnificationEVM算法来放大我们想要的动作。EVM算法的核心思想在于使用带通滤波器对视频进行滤波获得我们想要的信号频率此处我们关注的是微表情的动作频率并对该频率的信号进行放大该方法既可以用于放大视频中的颜色变化又可以用于放大动作。目前有两种动作放大的方法一种是线性的欧拉视频放大也就是上面讨论的那种这种方法比较简单但带来的噪声比较明显另一种是基于相位的视频放大无论是放大效果还是噪声都优于第一种。这两种方法分别来自下面两篇论文Eulerian video magnification for revealing subtle changes in the worlddl.acm.org/doi/pdf/10.1145/2185520.2185561Phase-based video motion processingdl.acm.org/doi/pdf/10.1145/2461912.2461966在知乎也有文章对这两种方法进行详细的介绍Wang Hawk9. 图像处理的应用 - 欧式视频放大的实现100 赞同 · 22 评论文章编辑Wang Hawk10. 图像处理的应用-基于相位的视频处理127 赞同 · 17 评论文章编辑使用线性的欧拉视频放大方法。经过实际测试EVM算法可以明显提高模型对微表情的识别能力。四、特征提取1.传统方法微表情识别的早期工作大多是基于传统机器学习的方法也就是设计一种手工特征提取算子提取微表情片段中的相应特征再使用SVM、RF等方法对特征进行分类以此识别微表情的种类。在这些工作中最具有代表性的便是Pfister等人在2009年的这篇文章Recognising spontaneous facial micro-expressionsciteseerx.ist.psu.edu/viewdoc/download?doi10.1.1.700.8477reprep1typepdf这篇文章堪称微表情自动识别工作的开山之作上文提到的人脸预处理方法以及TIM算法都是由这篇文章首先应用于微表情识别领域的。这篇文章使用了LBP-TOPLocal Binary Pattern histograms from Three Orthogonal Planes算子提取微表情特征取得了比较好的效果在后来的工作中普遍使用LBP-TOP作为模型的baseline。LBPLocal Binary Patterns是一种用于提取图像纹理特征的算子它会考虑像素点与周围像素的大小关系并将其大小关系编码成为二进制数最后使用直方图进行统计。由于直方图中蕴含了图像中所有像素点与周围的大小关系因此LBP特征可以用于表示图像的纹理特征。LBP-TOP算子是LBP算子在三维空间中的扩展由于视频可以视为x、y、t三个维度上的立方体LBP-TOP算子在XY、XT、YT三个正交平面上提取LBP特征并将得到的结果进行拼接作为最终的LBP-TOP特征。LBP-TOP算子的细节可以参照下面这篇文章Dynamic texture recognition using local binary patterns with an application to facial expressionswww.academia.edu/download/39765451/Dynamic_Texture_Recognition_Using_Local_20151106-14680-19lgjsz.pdfLBP-TOP虽然在微表情工作中表现不错但仍然存在一些问题。例如LBP-TOP提取的特征维度较高且存在稀疏采样的问题LBP-TOP使用直方图表示特征因此会丢失一些信息例如位置信息。在这篇文章之后有许多其他的工作提出了各种提取微表情特征的方法。这些方法主要可以分为两种第一种是基于表观特征Appearance based的方法也就是基于像素值的方法这类方法会直接基于像素值计算视频的某种统计特征LBP-TOP就是一种基于表观特征的方法这类方法提取的特征损失的信息比较少但通常特征维度比较高第二种是基于几何特征Geometric based的方法这类方法不会直接考虑像素值而会考虑某些特征点或特征区域的位移例如计算人脸特征点的位移或动作区域的光流optical flow。限于篇幅我不会对这些方法进行逐一介绍这里推荐一篇中文的综述性文章对于微表情识别工作以及2017年主要的方法都有介绍。人脸微表情识别综述www.aas.net.cn/article/zdhxb/2017/3/333编辑接下来介绍我个人印象比较深的传统方法文章。第一篇要介绍的是这篇2016年的文章Less is More: Micro-expression Recognition from Video using Apex Frame.Less is More: Micro-expression Recognition from Video using Apex Framearxiv.org/pdf/1606.01721传统的微表情特征提取方法既会考虑空间上的图像特征也会考虑时间上的时序特征因此一般都会对从微表情开始到结束的整段视频提取特征。这篇文章的创新点在于并没有从整段视频中提取特征而是只用到了一段微表情的峰值Apex帧与初始Onset帧提取特征并在此基础上取得了超过其他方法的效果。具体地这篇文章首先选择视频片段中的Onset与Apex帧并提取这两帧之间的光流场获得一系列的光流向量随后通过光流向量计算光流的方向、强度与光学应变Optical strain最后以强度与光学应变为权重使用直方图统计光流方向并以此作为最终的特征。这篇文章表明Apex帧中蕴含的信息已经能在很大程度上表示整个微表情的特征。在这篇文章之后有许多工作使用了相似的方法即通过Apex与初始帧之间的差异来分析微表情。2.深度方法尝试使用一些基于深度学习的方法不过由于缺少足够的数据在尝试时很容易就达到了过拟合由于没有足够的时间调试模型最终放弃了深度方法。最近几年MER领域的深度学习工作越来越多在我看来有两个主要的趋势第一是迁移学习Transfor Learning即从普通表情识别模型向微表情识别的迁移第二是跨数据集Cross-database学习即在一个数据集上训练模型、另一个数据集上验证或在多个数据集上共同训练、验证。第一种尝试的出发点在于解决缺少足够的训练数据的问题第二种尝试则是为了模拟现实中较为复杂的应用场景并且也能在一定程度上缓解数据不足的问题二者在实际应用中的效果都不错。接下来我会介绍一些印象比较深刻的深度微表情识别文章。1.Spatiotemporal Recurrent Convolutional Networks for Recognizing Spontaneous Micro-expressionsSpatiotemporal Recurrent Convolutional Networks for Recognizing Spontaneous Micro-expressionsarxiv.org/pdf/1901.04656这篇文章使用了类似Less is More那篇文章的方法即提取微表情Onset与Apex之间的光流并将其输入到RCNRecurrent Convolutional Networks中模型的结构比较简单但最终的效果非常好尤其是在CASME II数据集的LOSO验证中超过了80%的Accuracy是我目前见过最高的。具体地这篇文章首先使用TIM与EVM算法对微表情片段进行时间插值、动作放大在特征提取时文章提出了两种网络结构第一种将微表情片段的每帧图像平铺并拼接这样就将图像序列以二维的形式表示并使用RCN提取其中的特征第二种则是先提取Onset到Apex的光流并将光流输入到RCN中提取特征。显然第一种方法将图像序列以二维的形式表示会在一定程度上丢失图像的空间信息经过实际测试第一种方法在LOVO验证中效果较好但在LOSO验证中效果平平而第二种方法无论在LOVO还是LOSO中的效果都非常好。具体实验效果可以参考上图第一张是LOVOLeave-one-video-out的结果第二张是LOSOLeave-one-subject-out的结果。由于LOVO每次只将一个视频作为验证集模型在该目标的其他视频上经过了训练因此包含了该目标的额外信息在验证时效果较好而LOSO每次将一名目标的所有视频作为验证集模型中不包含该目标的微表情分布因此LOSO验证更能体现模型的能力。曾经尝试了该模型发现仍然逃不出过拟合的命运。这篇文章的data augmentation方法比较简单第一是通过调整EVM的动作放大因子第二是通过随机从视频中抽取一定百分比的帧数不过个人认为这两种方法很难真正缓解过拟合。这篇文章的效果好个人认为有几点原因首先是动作放大可以显著提高模型的识别效果第二是RCN的感受域比普通CNN大可能会增强模型的效果最后就是参数调的比较好……大概吧。五、其他工作MEGCFacial Micro-Expressions Grand ChallengeMEGC是在IEEE FG会议期间举办的一项挑战赛从2018年开始到现在已经举办了三届内容与微表情识别、检测相关在MEGC上可以看到微表情研究领域中比较前沿的任务与方法。MEGC2018MEGC2018提出了微表情识别中的跨数据集识别任务这项任务的本意是为了模拟微表情识别系统被应用于不同人群的场景。此次跨数据集识别使用了CASME II与SAMM两个数据集任务分为两部分第一部分是HDEHoldout-database evaluation将CASME II 与SAMM数据集的其中之一作为训练集另一个作为验证集进行验证第二部分是CDEComposite database evaluation也就是将CASME II与SAMM数据集合并使用LOSO进行验证。MEGC2018一共收到了三篇投稿其中第一篇使用LBP-TOP、3DHOG、HOOF三种传统方法为跨数据集学习的任务提供了baseline第二篇使用ELRCNEnriched Long-term Recurrent Convolutional Network这是一种CNNLSTM的网络结构并将图像、光流、光学应变一同作为输入最终效果尚可。具体可以参照这篇文章在深度微表情识别中算是比较具有代表性的工作Enriched long-term recurrent convolutional network for facial micro-expression recognitionarxiv.org/pdf/1805.08417第三篇使用了迁移学习的方法现在表情识别的数据集上训练模型随后在微表情数据集上进行微调值得一提的是这篇文章只是用了Apex frame的像素值作为特征势必会损失微表情中的很多信息。在上述前提下这篇文章获得了非常不错的效果在两种任务上的效果都明显超过了其他两篇工作这篇文章也应该是第一个将迁移学习完整应用于MER任务中的工作。具体可以参照下文From macro to micro expression recognition: Deep learning on small datasets using transfer learningwww.researchgate.net/profile/Min_Peng15/publication/325638548_From_Macro_to_Micro_Expression_Recognition_Deep_Learning_on_Small_Datasets_Using_Transfer_Learning/links/5b309ffd4585150d23cf3797/From-Macro-to-Micro-Expression-Recognition-Deep-Learning-on-Small-Datasets-Using-Transfer-Learning.pdfMEGC2019MEGC2019提出了两个任务第一个是微表情检测任务这里就不详细展开了第二个依旧是跨数据集的MER任务与MEGC2018的区别在于此次跨数据集识别只采取了CDE一种任务并且数据集扩增为CASME II、SAMM与SMIC。此次MER挑战一共征集到7篇投稿主办方只选择了4篇结果较好的工作进行发表值得一提的是本次的四篇投稿都使用了Onset到Apex的光流作为主要特征。第一篇文章可以简称为EMRExpression Magnification and Reduction这篇文章采用了类似MEGC2018中迁移学习的方法。具体地本文首先提取微表情Onset到Apex的光流再使用预训练的Resnet18提取特征随后将特征分为上下两个部分其中上部分主要包含眼部区域的特征下部分主要包含嘴部的特征作者使用这两部分特征分别训练一个分类器再拼接两个分类器的全连接层输入到另一层全连接网络中进行最终的分类。作者使用ImageNet2012数据集进行预训练并且使用了两种域自适应Domain Adaptation策略第一种是作者提出的表情放大与缩小Expression Magnification and Reduction策略简单来说就是通过EVM算法放大微表情的动作减小普通表情的动作使两种表情的差异减小第二种是Adversarial Adaptation这个我不太了解具体可以查看文章的参考文献。这篇文章的主要创新点在于Domain adaptation中使用的EMR方法最终实验的结果也是四篇工作中最好的一个具体可以参照文章A Neural Micro-Expression Recognizersci-hub.tw/10.1109/FG.2019.8756583第二篇工作使用了Shallow Triple Stream Three-dimensional CNN网络结构简写为STST-Net。具体地作者还是提取每个微表情片段中Onset到Apex的光流与光学应变随后将垂直光流、水平光流、光学应变输入到一个浅层的3DCNN中进行分类第三个维度就是特征的channel。吐槽一下虽然作者说这是3D-CNN可是我并没有搞懂这与普通的2D-CNN有什么区别毕竟普通的CNN也是有channel维度的。这篇文章并没有用到迁移学习与动作放大等方法仅凭浅层的CNN就获得了比较好的效果在四篇工作中结果是第二好的尤其在CASME II数据集上的结果比较突出。具体可以参照下文Shallow triple stream three-dimensional cnn (ststnet) for micro-expression recognitionarxiv.org/pdf/1902.03634第三篇工作引入了Inception网络结构可以简称为Dual-Inception Network。具体地作者直接将将微表情片段的中间帧视为Apex提取Onset到Apex的水平与垂直光流特征再分别放入两个Inception网络最终拼接并进行分类。这篇工作的效果还要略逊于第二篇不过在CASME II数据集上的表现比较好可以参照下文Sci-Hub | Dual-Inception Network for Cross-Database Micro-Expression Recognition. 2019 14th IEEE International Conference on Automatic Face Gesture Recognition (FG 2019) | 10.1109/fg.2019.8756579sci-hub.tw/10.1109/FG.2019.8756579第四篇工作比较有趣使用了Capsule Network。在神经网络中特征通常都由标量表示特征向量的中的每一个元素都表示一个特征但在Capsule网络中每一个特征都由向量表示向量的模长就代表向量的重要性。Capsule在某些情况下可以更好地表示特征在深度学习的一些领域上Capsule的效果也已经超过了传统神经网络。因此作者试图将Capsule引入MER工作中。具体地作者首先识别出所有片段的Apex帧随后仅将Apex帧的像素值输入到预训练的Resnet18中得到一系列28*28的特征图再将特征图输入到Capsule network中提取特征并进行分类。最终的结果在整体上超过了baseline但是与其他三篇工作相比略显逊色究其原因可能是Apex帧的图像特征本身并不足以表达整段微表情的特征光流是比像素值更好的特征形式。这篇工作的文章如下Sci-Hub | CapsuleNet for Micro-Expression Recognition. 2019 14th IEEE International Conference on Automatic Face Gesture Recognition (FG 2019) | 10.1109/FG.2019.8756544sci-hub.tw/10.1109/FG.2019.8756544总结MEGC2019中的四篇工作虽然使用的网络结构各不相同但思路类似都使用了微表情的Apex帧表示整段表情的特征。总体而言关于Apex的光流是比较好的特征形式而Transfer learningDomain Adaptation对于模型的效果提升也是巨大的。MEGC2020:MEGC2020中只提出了微表情检测的任务并且挑战赛的summary到现在仍未公布因此就不再介绍了。MEGC20182019 summaryFacial Micro-expressions Grand Challenge 2018jultika.oulu.fi/files/nbnfi-fe2019080723643.pdfMEGC 2019 – The Second Facial Micro-Expressions Grand Challengejultika.oulu.fi/files/nbnfi-fe202003248957.pdf参考链接微表情识别Micro expression recognition简述 - 知乎 (zhihu.com)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2441481.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!