Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Chen Ma作者清华大学学校人脸识别和物体检测研究方向

AU R-CNN:利用专家先验知识进行表情运动单元检测的R-CNN模型

这篇论文率先利用先验知识和物体检测技术做 Action Unit 人脸表情识别,在 BP4D 和 DISFA 两个数据库达到了 SOTA 的实验结果:BP4D 数据库的 F1 score 63%。

论文标题:AU R-CNN: Encoding Expert Prior Knowledge into R-CNN for action unit detection

论文链接:https://arxiv.org/abs/1812.05788

代码链接:https://github.com/sharpstill/AU_R-CNN

、介绍


FACS (Facial Action Coding System) 是人脸国际标准组织定义的 44 种人脸运动单元(AU),这些运动单元可以组合表示人脸表情所有可能的表情(包含皱眉,抿嘴等),AU 是组成人脸表情的基石。

本论文中所谓的人脸 AU 检测的任务是指:识别一段视频中每一帧图像的人脸上出现哪些 AU。因为 AU 只是面部肌肉的细微运动,而且不同的面部肌肉运动幅度大小不同,所以 AU 检测任务具有挑战性。AU 检测在测谎仪、汽车驾驶辅助系统(探测是否驾驶员瞌睡)等有重要应用。

▲ 图1. Action Unit 的例子


 图 1 是 Action Unit的例子,关于 Action Unit 的表情到底定义了怎样的细微的面部表情。以下链接提供了动画演示,读者可以自行观看。

https://imotions.com/blog/facial-action-coding-system/

总结一下已有方法的缺点:

1. 已有的方法虽然提出了 AU center 的概念作为 AU 发生的重要区域,并被定义为人脸关键点的附近,这种定义粗糙而位置不精确。AU 发生在人脸肌肉运动的特定区域,但不一定是某个 landmark 附近。
 
2. 已有的研究使用 CNN 去识别整张脸的图像,而非局部区域的 AU。
 
3. 人脸 AU 识别是一个多 label 的分类问题,这种多 label 的约束可以被限制在更细的粒度上:人脸的局部区域上,从而达到更高的精度。

二、方法

AU R-CNN 的方法框架如图 2 所示,AU 检测最困难之处在于人脸的五官大小不定,每个人长相不同,而且发出的表情的位置也不相同,这种难题之下如何检测呢?
 
本文站在前人的肩膀上,利用人脸关键点!人脸关键点提供了丰富的人脸位置信息,若能充分利用,则消除了五官的差异,更能细微精确地检测 AU。所以该框架首先将人脸划分成不同的区域,每个区域独立地进行检测,如图 2 所示:


▲ 图2. AU R-CNN方法的整体概览框架
 
首先用 landmark 将人脸的 68 个关键点定位,再依照不同区域 ROI 独立检测,最后将每个 ROI 的检测汇总,便得到了全脸的检测结果!

▲ 图3. 关键点和面部分割图
 
为了利用这些关键点的信息和 AU 的定义,本文引入了专家先验知识的概念,AU R-CNN 方法将 AU 与其相关的人脸区域的划分定义为专家知识,提出了 AU partition rule 的规则。该规则如表 1 所示:

▲ 表1. AU partition rule(也即专家先验知识

AU partition rule 将不同的 AU 分组,同一个位置区域发生的 AU 被分为一组,比如都是眼睛部位的 AU,所以诞生了 AU group 的概念。(表 1 左),由此全脸被划分成九个区域,每个区域是一组 ROI 表示,最后本文使用该 ROI 的最小外包矩形来表示该 AU group 区域,如图 4 所示。

图4. AU group和其外包矩形,之后这些矩形被送入R-CNN的检测头

另外一个难题在于即使同一个区域也可能发生多个 AU 的表情出现,因此本文使用了 sigmoid cross entropy 的损失函数来计算损失并反向传播优化网络参数


图5. AU R-CNN 整体网络结构图,左侧由先验知识截取出不同区域的 bounding box,右侧是检测头去分别检测,与此同时,ground-truth label 也被按照不同区域分割了,最后计算 sigmoid cross entropy 损失。

三、AU R-CNN扩展

AU R-CNN 可以被作为一个基础框架产生出来很多扩展和变种,这是由于视频的先后帧之间有时间顺序关系,所以可以使用 ConvLSTM 建模先后帧之间的关系。如下图所示,每个部位的小 box 被单独的时间轴建模,用一个独立的 ConvLSTM 去建模并学习。

但是在具体实验中,作者发现这种利用上下帧的建模方法效果不是很好,甚至总体的平均 F1 score 不如单帧检测。作者在实验部分也分析了其中的原因。
 
另外除了 ConvLSTM 这种时空卷积,还可以使用双流法等其他方法进行扩展,总体如下表:

四、实验

实验在 BP4D 和 DISFA 两个数据库上进行,该文的实验部分值得称道的一点是,作者采用了标准的 AU R-CNN,并在 ResNet-101 和 VGG-16、VGG-19 几个网络上进行测试:

实验结果如下,可以看到 AU R-CNN 结合 ResNet-101 的 backbone 取得最佳的实验结果:


剥离实验中,主要探究这种局部检测到底比标准的 CNN 那种全脸检测效果好多少,所以在不同分辨率下与标准 CNN 也进行了比较:


DISFA 数据库都是连续的表情视频,实验结果如下:
 

最后,作者总结了不同的 AU R-CNN 扩展及其适用范围:

五、总结

在本文中,作者研究了如何将先验知识融合进 R-CNN 这种物体检测框架,并使用 RoI pooling 层在每个位置分别检测,丰富的实验证明了该做法的有效性,也取得了 State-of-the-art 的实验结果。
PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论AU R-CNN先验知识R-CNN
1
相关数据
VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

推荐文章
暂无评论
暂无评论~