Suppressing Uncertainties for Large-Scale Facial Expression Recognition阅读笔记
原文地址和源代码
- 原文地址: https://arxiv.org/pdf/2002.10392.pdf
- 源代码:github地址
注:2020年4月4日查看github地址,仍未公布源代码。
本文中图片权重的分配,损失函数的设计等思路和作者的另一篇RAN原文(已被TIP接受),RAN解读的思路是相似的,建议两篇论文一起食用会更佳。
解决问题
- 主要问题
如图所示,从左到右,表情逐渐不确定,现在的大型数据集存在着一定的标注不确性问题。
- 标注者的主观性。 一千个读者有一千个哈姆雷特,表情因不同的标注者的主观判断差异性,标注结果可能不同。
- 表情图片的二义性。 一张表情图片可能包含几种不同的表情,如白夜追凶最后一幕,左半边脸是邪魅一笑,右半边脸是冷静沉稳。所以会有研究者采用多标注者多label的方式来标注一张图片,如FERPlus。
- 遮挡,光照,图片质量问题等因素影响标注结果。
- 可能的影响
noise label会对训练产生以下几种影响:
- 过拟合;
- 不利于学习有效表情特征;
- 高比率的错误标签使模型初期不收敛
解决方法
作者提出的SCN(Self-Cure Network)能有效的抑制图片的这种不确定性。
- self attention importance weighting:为batch中的每张图片分配权重
- ranking regularization:按权重降序排列,加强确定,抑制非确定(RR-Loss)
- noise relabeling:尝试将noise label换成伪标签
网络模型
模型大致可以分为三个模块,首先用CNN Backbone
提取epoch中每张图片(共有N张)的特征.
-
Self-Attention Importance Weighting Module. 提取的表情特征经过全连接层,Sigmoid**函数可以得到对应的权重。
-
Rank Regularization Module. 将权重降序排列,按比例划分,前属于确定性区域,后张图片属于非确定区域。通过RR-Loss来保证前一组权重的均值至少要比后一组均值 大于 ,在RAN中,作者也使用了相同的损失函数设计思路。通过RR-Loss可以加强确定区域,拟制非确定区域。
-
Rabeling Module. 权重经过Re-Weighting后,将表情特征用分类器进行分类(m类),会得到m个类别的分类概率。正确类别的概率为,分类结果的概率为。作者定义了一个限制关系,当关系成立,表明这个标签可能是noise label,此时会进行Relabel操作,将原始类别修改为最大分类概率对应的类别。
实验
- 权重可视化
第一行使用的是RAF-DB中的原始图片进行训练,第二行给原始图片的label加入噪声(修改label),然后用不带relabel的网络训练,我们会发现表情的权重相对原始图片的权重都有所下降,表明模型很好的对错误label的表情权重进行了抑制,第三行是带relabel的网络训练噪声label,可以发现模型对于happy表情的错误label能进行很好的纠正,其它表情也能取得较为接近的纠正效果。
- SCN在合成的噪声数据集上的性能表现
SCN在噪声数据集上的表现要优于其它模型,在RAF-DB上的表现最佳。作者也对这一现象给出了原因,因为RAF-DB的label是由非专业人士标注,相对其它数据集来说,错误的标签更多。
- SCN在各个模块的表现
- 几个超参的评估
- SCN在RAF、AffectNet、FERPlus上的性能表现
表现的很好,尤其是RAF-DB,达到88.14精度。
结论
作者独辟蹊径,不在原有的label上训练(某种程度上数据集已经不再是原来的数据集,比较似乎有点不公平), 尝试修改错误的label,来提高的训练精度。他的分区域以及损失函数的设计方式都有一定的借鉴意义。