FACS3D-Net: 基于三维卷积时空表示学习的面部动作单元检测

举报
ForEver207 发表于 2020/06/20 19:29:50 2020/06/20
【摘要】 随着人工智能的发展,让机器学会识别人的情感在人机交互中具有很大应用潜力。而面部表现出来的情感占我们日常生活中的绝大部分,因此通过设计基于人脸的表情识别系统,就显得很重要。本博客介绍了笔者关于人脸动作单元检测领域的新工作,该工作在人脸动作单元检测领域取得了很好的性能,发表于情感计算领域的顶级会议中。


       随着人工智能的发展,让机器学会识别人的情感在人机交互中具有很大应用潜力。而面部表现出来的情感占我们日常生活中的绝大部分,因此通过设计基于人脸的表情识别系统,就显得很重要。

       提到基于面部动作单元的情感识别,就必须涉及到人脸动作单元(Action Unit,AU)。面部动作单元是心理学家根据人脸的解剖学特点,将其划分成若干既相互独立又相互联系的肌肉块,这些肌肉块通过彼此之间的互相组合运动,便可以描绘出脸部肌肉运动与不同表情之间的对应关系,这里列出了一些比较常见的AU代表的面部动作(ref.: https://www.cs.cmu.edu/~face/facs.htm):

        AU1:内眉毛扬起

        AU2:外眉毛扬起

        AU4:眉毛落下

        AU6:脸颊扬起

        AU7:眼部收紧

        AU10:上嘴唇扬起

        AU12:嘴角上扬

        AU14:酒窝出现

        AU15:嘴角收紧

        AU17:下巴上扬

        AU23:嘴巴收紧

        AU24:嘴巴压缩

       可以看到,AU4代表眉毛落下,也就是皱眉的动作。而AU12嘴角上扬,则代表微笑,与之关联的表情就是高兴之类。为了让大家更加直观的体会到AU与不同情感之间的联系,这里援引维基百科的定义,如下:


Emotion Action units
Surprise 1+2+5B+26
Sadness 1+4+15
Happiness 6+12
Fear 1+2+4+5+7+20+26
Disgust 9+15+16
Contempt R12A+R14A
Anger 4+5+7+23


       之前包括现在大多数AU检测的算法都是基于单帧的人脸图像的,就是给我一张人脸图像,我来判断这张人脸图像里面出现了哪些AU。但是这些方法忽略了Au出现的动态特性,比如AU12笑这个动作,是慢慢张开嘴然后到达顶峰,最后再消失,实际上是一个动态过程。另外有心理学家也做过实验,证明人类在感受一些微小AU的时候,动态信息很重要。

image.png

图1 AU12的时序变化

       

       之前也有人用CNN+LSTM的结构去挖掘AU的动态特性,使用CNN提取人脸的空间特征,然后用LSTM建模时间动态信息。但是这样的结构是先空间建模后时间建模,而我跟一些专门进行AU标注的心理学工作人员交流的时候,他们说他们在标注的时候是先整体过一下视频段,有了一个整体印象后,再回头一帧一帧进行标注。所以人类的感知实际上是先时间动态,再空间,或者是时空是同时建模的,跟CNN-LSTM的建模顺序是不同的,因此我们就提出了FACS3D-Net,实现时空信息的同时建模,进行AU检测。

       图2显示的是FACS3D-Net的网络结构,将一整段人脸输入3D卷积里面进行一个时空信息的学习,最后得到一个时空信息的特征向量,同时将每一帧人脸图像输入一个2D卷积,进行空间信息的学习,得到一个向量,然后将3D卷积得到的时空表示和2D卷积得到的空间表示串接,输入全连接层实现12种AU的多标签检测。3D卷积就是在2D卷积上增加了时间维度上的卷积,也就是相邻帧之间进行了卷积。

image.png

图2 FACS3D-Net的网络结构



       FACS3D-Net模型是在EB+这个人脸数据库上进行验证的。包含200名受试者的自发表情数据库,每名受试者涉及5到8项任务。数据库共包含1261条视频,平均每条视频含有328帧标注数据。由于在FACS3D-Net模型中每个视频的长度需要相同,因此我们对每个视频随机的每隔二或三帧进行采样,每个视频采样得到126帧, 共获得153,090个标注的人脸帧。并且对人脸进行了归一化等等操作,下面列出了实验的一些设置和评价指标。


    1. 实验数据库 :

        EB+ (Expanded BP4D+):包含200名受试者的自发表情数据库,每名受试者涉及5到8项任务。数据库共包含1261条视频,平均每条视频含有328帧标注数据。

    2. 数据预处理:

        a. 随机的每隔二或三帧进行采样,每个视频采样得到126帧, 共获得153,090个标注的人脸帧。 

        b. Zface进行人脸追踪及归一化:间距为80像素的200*200的人脸图像。 

    3. 实验设置:

        a. 3D卷积参数: (64@3*3*3, 128@3*3*3, 128@3*3*3)+400。

        b. 2D卷积参数与3D卷积参数一致五折交叉验证。 

        c. 多标签二分类任务Loss函数:

image.png

     4. 模型性能评价指标:

        a. F1得分:F1得分在AU检测等分类问题中广泛使用,可以同时衡量模型的精确率和召回率。 

        b. Negative agreement (NA):NA的定义与F1的定义正好相反,F1 得分衡量的是模型对正样本的性能,NA 则衡量的是模型对负样本的性能。 

        c. Area under the Receiver Operating Characteristics Curve (AUC):ROC曲线下的面积,AUC越高,模型性能越好。 

        d. Accuracy:准确率

        e. S 得分:S 得分也称为“free-marginal kappa coefficient”。表示真实标注与模型预测结果之间的一致性。


    

    5. 实验结果:

        我们将提出的FACS3D-Net和单纯的2D CNN和CNN-lstm进行了对比实验,可以看到,在这五个指标中FACS3D-Net全面要优于其他两个模型:


            image.png


        同时,为了验证模型的有效性,我们做了t检验之后发现,FACS3D-Net在比较微小、比较少见的AU检测上效果要好,比如这里的AU 1 2 4 6和AU14 15 17 23 24,这些AU属于变化比较微小的AU,而在这些AU上我们的模型性能显著好于另外两种模型,说明时空动态信息建模的好,对微小AU的检测就比较好。

image.png


       另外我们也对模型进行了可视化,就是看模型对人脸有没有学到真正有意义的区域。图3中,越红的区域表示模型重点关注了这个区域。可以看到,对于特定AU,模型真的是关注了应该关注的区域,比如AU4,实际就是皱眉的动作,而模型就关注了眉心那块区域。

image.png

图3 模型可视化图


        综上,可以看到我们的模型针对面部动作单元的检测具有很好的性能,该工作也发表在2019年在英国剑桥大学举办的情感计算领域的会议ACII上。下一节,我们将推出我们在FACS3D-Net上的拓展工作。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。