【菜鸡读论文】Micro-expression Recognition Based on Facial Graph Representation Learning and Facial Action
大家好哇!
这一周就正式开学啦,因此也要开始读论文了。快乐的寒假总会过去,现在又迎来了可怜的打工人时刻。不过上了一周课之后,倒也感觉不像周一这么排斥开学了,也可能因为今天是周五吧(所以才说出这种毫无道理的话哈哈)。
新的一年,也有新的目标,本猫头的目标是今年一定脱单!哈哈哈!【痴人说梦】
让我们来看看今天要读的论文吧!
这是CVPR2021年的一篇论文
首先让我们来总体地看一下这个网络架构图
输入是Onset帧和Apex帧,输入到一个运动放大网络MagNet中对运动进行放大,也就是表情运动的幅度进行放大。接下来,从中间层提取一个人脸特征表示(不是最终放大的输出),基于人脸地标landmarks取30个人脸地标,每个人脸地标取附近一个7*7的块,这就是一个人脸图(Facial Graph)。接下来把30个块拉成通道的形式,分别进行点学习(Node Learning)和边学习(Edge Learning),这个是主分支。
接下来看AU学习模块,图卷积网络需要两个输入,节点特征矩阵和表示节点之间的关系的邻接矩阵。结点特征矩阵就是选取的九个AU,原本对于每个节点应该是一个one-hot向量,作者在这里使用类似于NLP的嵌入层将其转换成一个高维向量作为节点矩阵。邻接矩阵是通过CASME2获取的各个AU之间的条件概率,接下来会详细介绍。
最后将AU学习模块和图学习模块进行融合,通过一个全连接层获得最终的表情分类结果。
对于每个子模块,接下来详细介绍。
Node Learning
所提出的深度卷积(DConv)在每个通道上独立地执行空间卷积,同时保持通道的数量不变。可以保留每个节点块的内部空间信息。我们称这个步骤为节点学习。
Edge Learning
下一步需要在节点块之间进行全局特征学习,即边缘学习。
Transformer的编码器Etran可以计算序列中组件之间的关系。每个节点块作为一个独立的组件被输入到Etran,然后就可以学习节点之间的关系,即边。直到这一步,整个图的表示都已经自动地从Dconv和Etran学习出来了。
AUFusion
下面是图卷积的公式,以及每个变量的含义。
因为使用的三个AUs只发生在眉毛(AOE),剩下的6个AUs只发生在嘴(AoM)。
我们可以灵活的分离特征(两个Etran分别代表两个区域),眉毛的面部特征融合眉毛区域AU特征,而嘴部面部特征融合嘴部AU特征。
如下图所示,眉毛的AUs(AoE)和嘴的AUs(AoM)取Etran中每个对应向量的点积。
消融实验和结果