查看原文
其他

【人脸表情识别】如何做好表情识别任务的图片预处理工作

Menpinland 有三AI 2021-07-09

上一篇专栏文章中,我们介绍了人脸表情识别的相关概念以及研究现状并了解了目前基于图片的人脸表情识别领域最常用的几个数据集。本文将介绍基于图片的人脸表情识别中最常用的预处理方式和对应的方法。


                                            作者&编辑 | Menpinland

跟其他人脸相关的机器学习任务一样,在人脸表情识别中,对人脸进行预处理通常都是一个必不可少的环节。虽然可以利用深度学习方法在不经过预处理的情况下实现端到端的表情识别,但在实际场景下,表情数据通常是用户非限制条件下拍摄产生,在这种环境下拍摄到的人脸存在着姿态变换、光线、遮挡等问题,端到端的表情方法在复杂的现实条件下很容易产生误差。恰当的预处理能够减少因图像质量对识别效果的影响,同时也能提升算法的鲁棒性。本文参考近年的两篇人脸表情识别综述 [1,2],总结出在人脸表情识别预处理中较为常用的预处理方法:

1 人脸检测

人脸检测基本上是所有人脸有关的任务中都会包含的一个预处理模块,它把人脸从复杂的图像中提取出来,后续只需专注于提取人脸的相关特征,从而有效提升相关任务的效果。最常用的人脸提取方法是Viola和Jones在2001年在 [3] 提出的Viola-Jones(下面简称V&J)目标检测器,它基于类Haar特征以及Adaboost分类器实现了一个实时目标检测的框架。同时由于Haar特征更适合于人脸,因此其作为人脸检测工具被更多人熟知。OpenCV中的Haar分类器就是基于Viola-Jones方法的一个改进版本 [4]。

图1|OpenCV中使用Haar分类器进行人脸检测

当然还有基于深度学习的人脸检测算法,如比较著名的多任务级联卷积神经网络(Multi-Task Cascaded Convolutional Network, MTCNN)[5],或者直接用目标检测的相关算法进行人脸的检测,如Faster-CNN、SSD等进行。有关人脸检测方法的选择,在[2]中,对V&J和MTCNN做了简单的对比:“尽管在大部分的论文中V&J仍然是人脸检测方法中最常见的选择,但MTCNN在保证实时性的同时,在人脸检测和人脸对齐的几个具有挑战性的基准测试中胜过V&J。V&J仍然是使用最多的人脸检测器的主要原因是,过去大多数论文都在受控条件表情数据集中对他们提出的人脸表情识别方法进行实验,而V&J可以在受控的数据集中稳定地检测到人脸。在非受控(自然)条件表情数据库中实验人脸表情识别方法通常是使用MTCNN”。

图2|MTCNN检测原理

2 脸部归一化

前面提到,如果是在非受控条件下,人脸数据很可能会受到姿态变换、光线、遮挡等问题的干扰,在这些情况下,人脸表达情绪的核心区域(眼睛、嘴巴)的信息就会缺失,从而大大影响模型训练/测试的效果。因此,一些研究者考虑采用一些方法将人脸转换为归一化(normalization)的人脸(正脸、对比度合适、无遮挡)再进行表情识别模型的训练。


光照归一化:早期研究 [6] 主要通过基于各向同性扩散(isotropic diffusion,IS)的归一化、基于离散余弦变换(discrete cosine transform,DCT)的归一化、高斯函数差分(difference of Gaussian,DoG)进行光照归一化;随后一些研究表明,与单独使用光照归一化相比,直方图均衡与光照归一化方法相结合可获得更好的人脸识别性能,因此部分的研究者也将这种方法应用到表情识别中 [7,8];但是,直接使用直方图均衡可能会过分突出局部对比度, 为了解决这个问题,[9]提出了一种加权求和方法,将直方图均衡和线性映射相结合。

图3|论文[9]中的光照归一化(从左到右依次为原始图片、直方图均衡后的图、线性映射后的图、直方图均衡和线性映射加权求和后的图)

姿态归一化:姿态归一化主要内容就是将一些侧脸的人脸图像转化为正面的人脸图,最直接有效的方法是先进行三维重建,然后通过反投影的方式来合成原始图像的正脸图像 [10];通过GAN来生成正脸表情也是近些年出现比较频繁的姿态归一化方式 [11,12]。(ps:由于姿态归一化有可能导致改变表情,尤其是在非受控条件下,因此近些年的文章也很少用姿态归一化进行预处理)

图4|论文[10]中姿态归一化的方法

去除遮挡:遮挡问题相对于光照、姿态变换更加复杂,原因在于遮挡现象的出现是很不规律的。遮挡的部位可能是人脸上任意部位,遮挡物也可以是任意东西(头发、眼睛甚至拍摄图片时的外部物体),因此更多的文章[13,14]是把带遮挡的表情识别单独作为研究命题,通过构建特殊网络对含有遮挡的人脸表情进行识别。

图5|论文[13]中通过人工合成带遮挡的图片对带遮挡的表情识别进行研究

3 数据增强

最后一种预处理也是所有深度学习任务最常用的预处理方式——数据增强。深度学习需要足够多的训练数据才能保证算法模型的准确性与泛化能力,在表情识别领域,即便是研究得最久远的基于图片的人脸表情识别,目前最大的数据集AffectNet是40多万张图,跟ImageNet、VGGFace2等数据集相比还是小巫见大巫,至于其他更小众的表情识别(如微表情识别)则更是少之又少。因此,有关表情识别的论文中基本上都会包含数据增强这步预处理操作。


常规的数据增强方式可参考有三AI过去的文章《【技术综述】深度学习中的数据增强方法都有哪些?》。


文献 [15] 考虑到人脸表情数据特殊性,采用的增强方式都保留人脸表达情绪的核心区域;考虑到增强后的数据很可能会缺乏人脸表达情绪的核心区域,文献 [16,17]在测试时仅采用人脸的中央区域作为测试,文献 [18,19] 对单幅图像增强后的所有图像进行预测并用取均值的方式预测该幅图像对应表情类别;也有通过三维模型[20]或者GAN[21]来生成表情数据进行数据增强。

4 上期补充

在上一篇专栏发出后,有位小伙伴提供了有关FER2013数据集使用的一些建议,因此笔者也在此处做补充。FER2013是一个通过Google搜索引擎然后爬取收集成的一个人脸表情数据集,也是应该第一个比较有名的非受控条件下人脸表情的数据集。但该数据集最大的问题是许多与人脸表情毫无相关的图片会被贴上表情的标签,标注错误的样本也不少,因此如果直接使用一些经典的深度学习模型去训练,在不加任何tricks的情况下,识别准确率。针对数据集存在的问题,微软在2016年重新标定了FER2013数据集并命名为FER plus,用重新标定后的数据集识别准确率会有所提高(笔者曾用同样的方法,在FER2013中识别的准确率50%-60%,在FER plus中准确率70%-80%)。微软的工作论文可参考 [22],代码可参考:https://github.com/microsoft/FERPlus。近几年许多文章在实验对比中也是会直接采用FER plus作为自己方法的对比。最后感谢上次小伙伴的留言,也欢迎其他大佬提供更多专栏的相关建议。

图6|同样的图片,FER2013(上)与FER plus(下)标签对比

4 参考文献

[1] Li S, Deng W. Deep facial expression recognition: A survey[J]. IEEE Transactions on Affective Computing, 2020.

[2] Canedo D, Neves A J R. Facial Expression Recognition Using Computer Vision: A Systematic Review[J]. Applied Sciences, 2019, 9(21): 4678.

[3] Viola P, Jones M. Rapid object detection using a boosted cascade of simple features[C]//Proceedings of the 2001 IEEE computer society conference on computer vision and pattern recognition. CVPR 2001. IEEE, 2001, 1: I-I.

[4] Lienhart R, Maydt J. An extended set of haar-like features for rapid object detection[C]//Proceedings. international conference on image processing. IEEE, 2002, 1: I-I.

[5] Zhang K, Zhang Z, Li Z, et al. Joint face detection and alignment using multitask cascaded convolutional networks[J]. IEEE Signal Processing Letters, 2016, 23(10): 1499-1503.

[6] Shin M, Kim M, Kwon D S. Baseline CNN structure analysis for facial expression recognition[C]//2016 25th IEEE International Symposium on Robot and Human Interactive Communication (RO-MAN). IEEE, 2016: 724-729.

[7] Yu Z, Zhang C. Image based static facial expression recognition with multiple deep network learning[C]//Proceedings of the 2015 ACM on international conference on multimodal interaction. 2015: 435-442.

[8] Bargal S A, Barsoum E, Ferrer C C, et al. Emotion recognition in the wild from videos using images[C]//Proceedings of the 18th ACM International Conference on Multimodal Interaction. 2016: 433-436.

[9] Kuo C M, Lai S H, Sarkis M. A compact deep learning model for robust facial expression recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops. 2018: 2121-2129.

[10] Hassner T, Harel S, Paz E, et al. Effective face frontalization in unconstrained images[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 4295-4304.

[11] Yin X, Yu X, Sohn K, et al. Towards large-pose face frontalization in the wild[C]//Proceedings of the IEEE international conference on computer vision. 2017: 3990-3999.

[12] Tran L, Yin X, Liu X. Disentangled representation learning gan for pose-invariant face recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1415-1424.

[13] Li Y, Zeng J, Shan S, et al. Occlusion aware facial expression recognition using cnn with attention mechanism[J]. IEEE Transactions on Image Processing, 2018, 28(5): 2439-2450.

[14] Pan B, Wang S, Xia B. Occluded facial expression recognition enhanced through privileged information[C]//Proceedings of the 27th ACM International Conference on Multimedia. 2019: 566-573.

[15] Hua W, Dai F, Huang L, et al. HERO: Human emotions recognition for realizing intelligent Internet of Things[J]. IEEE Access, 2019, 7: 24321-24332.

[16] Meng Z, Liu P, Cai J, et al. Identity-aware convolutional neural network for facial expression recognition[C]//2017 12th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2017). IEEE, 2017: 558-565.

[17] Liu X, Vijaya Kumar B V K, You J, et al. Adaptive deep metric learning for identity-aware facial expression recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops. 2017: 20-29.

[18] Kim B K, Lee H, Roh J, et al. Hierarchical committee of deep cnns with exponentially-weighted decision fusion for static facial expression recognition[C]//Proceedings of the 2015 ACM on International Conference on Multimodal Interaction. 2015: 427-434.

[19] Levi G, Hassner T. Emotion recognition in the wild via convolutional neural networks and mapped binary patterns[C]//Proceedings of the 2015 ACM on international conference on multimodal interaction. 2015: 503-510.

[20] Abbasnejad I, Sridharan S, Nguyen D, et al. Using synthetic data to improve facial expression analysis with 3d convolutional networks[C]//Proceedings of the IEEE International Conference on Computer Vision Workshops. 2017: 1609-1618.

[21] Zhang F, Zhang T, Mao Q, et al. Joint pose and expression modeling for facial expression recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 3359-3368.

[22] Barsoum E, Zhang C, Ferrer C C, et al. Training deep networks for facial expression recognition with crowd-sourced label distribution[C]//Proceedings of the 18th ACM International Conference on Multimodal Interaction. 2016: 279-283.

总结


本文介绍了基于图片的人脸表情识别中最常用的三种预处理方式及相对应的具体方法。后两篇文章将分享近几年论文中具体的方法实现。

有三AI秋季划-人脸图像组

人脸图像小组需要掌握与人脸相关的内容,学习的东西包括8大方向:人脸检测,人脸关键点检测,人脸识别,人脸属性分析,人脸美颜,人脸编辑与风格化,三维人脸重建。了解详细请阅读以下文章:


【CV秋季划】人脸算法那么多,如何循序渐进地学习好?


转载文章请后台联系

侵权必究

往期精选


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存