CVPR2020: Suppressing Uncertainties for Large-Scale Facial Expression Recognition 阅读随笔

0. Abstract

大规模表情识别(large-scale Facial Expression Recognition, FER)的主要挑战在于不确定性(uncertainties),这些不确定性来源于模棱两可的面部表情(ambiguous facial expressions),低质量的脸部图像(low-quality facial images)和标注者的主观性(the subjectiveness of annotators).
为了解决这个问题,本文提出一个Self-Cure Network(SCN),抑制不确定性,避免模型在不确定的脸部图像上过拟合。
主要通过两种方法:1)在每个batch上的自注意力机制(self-attention mechanism),对每个训练样本加权,进行等级正则化(ranking regularization). 2)通过仔细的重新标注机制(a careful relabeling mechanism)修正最低等级组(in the lowest-ranked group)的样本.
在RAF-DB上达到88.14%准确率,在AffectNet上达到60.23%准确率,在FERPlus上达到89.35%准确率.
github网址

1. Introducation

作者的主要做法为:

  • Step1: Backbone CNN提取特征
  • Step2: Self-attention importance weighting module学习每张图像的重要性来对loss进行加权. 不确定的面部表情图像权重较小,反之较大.
  • Step3: Ranking regularization module 以降序排列这些权重,分成两组(高重要性和低重要性),通过两组平均权重的margin来正则化,使用Rank Regularization loss(RR-Loss).
  • Step4: Careful relabeling module对bottom group的样本进行重新label, 方法是若最大预测概率比给定label的概率高出超过阈值,则修改其label.
  • Step5: 作者认为只有在incorrect/noisy标注的数据集上才能展示出算法的优越性,因此自己爬取了WebEmotion数据集.(译者按:这一点,听起来,。。。。。)

2. Self-Cure Network

2.1 Overview

CVPR2020: Suppressing Uncertainties for Large-Scale Facial Expression Recognition 阅读随笔_第1张图片

2.2 Self-Attention Importance Weighting

实际上就是采用一个含有FC层和sigmoid激活函数的网络来对每个图像预测权重.
权重直接乘以loss的话极端情况会导致有些图像的loss为0,因此作者采用Logit-Weighted Cross-Entropy Loss(WCE-loss), N为Batch_size:
CVPR2020: Suppressing Uncertainties for Large-Scale Facial Expression Recognition 阅读随笔_第2张图片

2.3 Rank Regularization

对以上预测权重降序排序,再按照一定比率分成两组,定义一个rank regularization loss(RR-Loss)来使得两组均值相差更大.
CVPR2020: Suppressing Uncertainties for Large-Scale Facial Expression Recognition 阅读随笔_第3张图片
其中 δ \delta δ为超参.
对WCE-loss和RR-loss加权,得到最终结果.

3.4 Relabeling

以上已经划分为两组,对低权重组中的图像(或部分最低的图像)进行relabel, 如果预测的概率比原label的概率高出一定的值,便修改原label.如下式:
CVPR2020: Suppressing Uncertainties for Large-Scale Facial Expression Recognition 阅读随笔_第4张图片

4.Implementation

  • MTCNN检测人脸并校准,尺寸224x224
  • Pytorch编程
  • BackBone ResNet18,在MS-Celeb-1M数据集上预训练
  • 8x Nvidia Titan 2080ti GPU
  • Batch size = 1024
  • high权重:low权重 = 7:3
  • 两种Loss比 1:1

你可能感兴趣的:(CV,CVPR2020,人脸,CVPR2020,表情识别)