Occlusion Aware Facial Expression Recognition Using CNN With Attention Mechanism
Date: July 6, 2022
Topic: Occlusion
Where: TIP
Year: 2019
摘要
主要问题:真实环境中可能出现表情遮挡问题。此前大部分模型是在controlled face(大多数数据集都是由CK+ , MMI , OuluCASIA实验环境下得到的表情 )上得到的结果
提出含注意力机制的卷积神经网络,可以构想出遮挡区域,并且将”注意力“集中在未遮挡的部分上。
此网络混合人脸中感兴趣的区域多种表示,每一种表示都有对应的权重。
含注意力机制的卷积神经网络有两种版本,一种是全局-局部的注意力机制(global–local-based ACNN),一种是基于patch的注意力机制(patch-based ACNN)。
主要思想
人们在生活中遇到遮挡物时,会把注意力集中在未遮挡的部分,或者是关注与遮挡部分对称或紧密相关的部分。
如图中小女孩用手遮挡了嘴巴,因此后三个部分得到的权重较低,特别是最后一个部分,手指完全遮住了嘴巴,无法判断表情,则权重极低。
- pACNN:根据图片的landmark的位置把最后一层卷积层输出的特征图分割成多个patch,对于每个patch,PG-Unit学习给每个patch对应的权重。
- gACNN:同时整合local和global的表示,GG-Unit给每一个全局表示一个权重。
相关工作
从两个方面介绍相关工作:
相似的任务:含遮挡的表情识别
Holistic-based(基于整体的方法)
- 通过 designated regularization方式,提高网络的鲁棒性(这个想法也适用于一般性物体遮挡)
- 通过生成模型补全成完整的脸(相关研究表明,同等情况下,对嘴巴的遮挡,相比对眼睛的遮挡会极大影响表情识别模型的能力)
Part-based:将图片分块:根据landmark分块,或者均等分块,后detecting 是否含遮挡
- 补全遮挡的块
- 对所有块分配不同权重
- 忽略被遮挡的部分
- 相似的技术:注意力机制
网络结构
Overview
- 一张图片输入VGG网络,得到一些特征图
- ACNN将特征图解构为小特征图,得到不同的local patches。
- 每个local patch被PG-Unit编码为一个带权重的向量,权重表示被遮挡的程度。
- 带权重向量和local representations拼接
- 两层全连接层用于分类
Patch Based ACNN
- Region Decomposition:首先检测出人脸中68个landmark,在这68个点中,选择或者重新计算24个更为重要的点,包含人脸的眼睛,鼻子,嘴巴,眉毛四个关键部位。
Occlusion Perception With Gate Unit:
- 被选择出来的 裁剪后的特征图送入两层卷积层(不改变空间分辨率)
最后一层特征图送入两个分支
- 第一个分支将输入的特征图编码成局部特征向量
- 第二个分支包含Attention Net使用一个标量取估计local patch的重要性。
数学表示如下:
Global-Local Based ACNN
pACNN用于捕获局部面部特征,gACNN用于捕获全局面部特征
Integration With Full Face Region:
- Global-Local Attention可以帮助推断局部特征
- Global-Local Attention可以看作一种类型 ensemble learning(集成学习)
Global-Gated Unit (GG-Unit)
- 第一个分支将输入的特征图编码成全局特征向量
- 第二个分支包含Attention Net使用一个标量取估计global patch的重要性。
Landmark的错误判断无疑会给模型带来消极影响。
注意,这种属于本文可以改进的地方,本文为2018/2019论文,后续已经有论文将不依赖landmark作为创新点
实验
实验数据集
- 原始完整数据集:RAF-DB,AffectNet这类
- 人工合成的遮挡图片(在原始数据集上进行人工遮挡):使用熊,帽子,书,头发等多个物体作为遮挡物,遮挡原始数据集中的图片。这个方法第一次见,不知道之前是否有先例,之后的RAN中也是在原始数据集上新建了数据集,这种方法很讨巧。
- 含遮挡的真实图片,构建了一个数据集FED-RO:利用搜索引擎搜集含遮挡的图片,并确保选出来的400张图片和RAF-DB以及AffectNet中不重合,由3个人进行标注。
实验细节
Backbone:VGG-16 (只取前9个卷积层)
预训练模型:ImageNet
训练过程中:原始完整数据集和人工合成的数据集按照1;1混合
优化器:SGD
初始学习率:0.001
学习率调整策略:polynomia,gamma为0.1
momentum:0.9
weight decay:0.0005
batch size:128
最大迭代次数:50K 共花费2天!!!
- 与其他注意力机制模型对比:
- Comparison With Other Methods Handling FER With Synthetic Occlusion
- Comparison With Inpainting Methods:(和其他修复方法对比)
4,跨数据集的测评