tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第1张图片
人脸具有许多属性,比如:年龄、发色、是否戴眼镜等等,具体细节可阅读这篇综述:A Survey to Deep Facial Attribute Analysis。其中,比较热门的应该是表情属性,甚至大部分时候表情识别单独作为一个方向进行讨论。不过,在这篇博文中,我将表情识别作为面部属性的其中一个小分支看待,与人脸属性识别一起进行讨论。(如果对表情识别感兴趣,可以看看这篇综述:Deep Facial Expression Recognition: A Survey,由北邮模式识别实验室所提出)

(各位收藏的时候, 麻烦顺手点个赞同吧)

目录

  1. LNet+ANet
  2. Fully-adaptive Feature Sharing in Multi-Task Networks
  3. DLP-CNN
  4. Adaptively Weighted Multi-task Deep Network
  5. Covariance Pooling for Facial Expression Recognition
  6. Multi-Task Learning as Multi-Objective Optimization

1. LNet+ANet

论文链接:Deep Learning Face Attributes in the Wild, 发表时间:2014.11

本篇论文由港中文的 MMLab 提出(通讯作者为汤晓鸥),整体算法属于 Part-Based Method,主要思路为:构建两个卷积网络,分别记为 LNet 和 ANet,LNet 用于定位人脸具体位置(

定位头部和肩部,
在其基础上进一步定位人脸区域),ANet 用于提取人脸属性信息,最后将 ANet 所提取的特征输入到 Linear SVM 中进行属性预测。(个人感觉 14/15 年发的论文,喜欢用级联结构作为主体框架,利用 CNN 提取特征,再用 SVM 进行分类或回归)

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第2张图片

其中,LNet 在 ImageNet 上进行预训练,再利用 Attribute Tag 对新增的 Output Layer 进行 fine-tune;ANet 在 CelebFaces 上进行预训练,再利用 Attribute Tag 对其进行 Fine-Tune。

此外,作者对 CelebFaces 和 LFW 人脸数据集进行标注,构建了人脸属性识别数据集 CelebA 和 LFWA(目前 CelebA 已经成为人脸属性识别的 Bechmark )。

2. Fully-adaptive Feature Sharing in Multi-Task Networks

论文链接:Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification,发表时间:2016.11

在这篇论文中,作者主要讨论 Multi-Task Learning(MTL)中网络设计的问题,提出了自适应特征共享算法,从较瘦的网络开始(使用SOMP进行初始化),由网络挖掘各个子任务的相关性,使得各个子任务选择性共享特征,最终使得网络逐渐加粗。

在 MTL 中,常见网络结构都是由手工设计,基本都是主干网络提取底层特征,分别输入到各个子模块进行预测。但是,这样将导致网络结构往往不是为最优解,因为受设计者主观影响大。于是作者就从此入手,让网络自动对各个任务分支进行聚合,不将其局限于使用一样的特征,并对任务聚合进行约束,防止 negative transfer 现象的发生。

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第3张图片

任务聚合后的网络结构:(model on CelebA)

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第4张图片

自适应拓展算法伪代码:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第5张图片

Simultaneous Orthogonal Matching Pursuit(SOMP)算法伪代码:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第6张图片

此外,作者在 CelebA 和 DeepFashion 上分别取得当时的 SOTA,其中,DeepFashion 同样由 MMLab 提出,目前为 Clothes Recognition 方向的 Bechmark。

PS: 作者开源项目:luyongxi/deep_share,不过没有详细的项目说明,至今 issues 里关于 'How to run it?' 的问题都没回复。

3. DLP-CNN

论文链接:Reliable Crowdsourcing and Deep Locality-Preserving Learning for Expression Recognition in the Wild, 发表时间:2017

该论文由北邮模式识别实验室所提出,一/二作分别为 Shan Li 和 Weihong Deng,也是 Deep Facial Expression Recognition: A Survey 的作者(最近几年,邓伟洪副教授经常在人脸识别方向上发文章,构建了许多数据集,推荐大家看他一篇最近的工作:A Deeper Look at Facial Expression Dataset Bias)。

在论文中,作者通过 Reliable crowdsourcing approch 构建了非受控环境下的人脸表情数据集 RAF-DB,其中不仅含有 7 类基础表情标签,还包括 12 类复合表情标签,近年来也成为非受控环境下人脸表情识别的 Bechmark。(2019 年,作者构建了一个含有 6 类基础表情标签的人脸表情数据集:RAF-ML。与 RAF-DB 相比,RAF-ML 所含标签不是 Sigle Label,而是 Blended Label。)作者不仅分析了 RAF 采集/标注/过滤/分析/评估过程的设计,还通过跨数据集实验,证明 RAF 的 AU 比 CK+ 更多样化,即跟符合现实情况下的人脸表情。

为了应对现实环境下人脸识别问题,作者还提出了 Deep Locality-Preserving CNN(DLP-CNN),通过添加 Local Proserving Loss(LP Loss),从而缩短样本的类内距离,扩大样本的类间距离,使得模型能更好的解决在非受控环境下进行人脸表情识别问题。

关于 RAF 的构建:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第7张图片

作者先通过网络爬取 29672 张现实场景下的人脸表情图像,雇佣 315 个标注员进行随机标注(由大学的学生与员工组成,都接受过一小时的心理知识培训),确保每张图像至少经过四十个标注员标注。表情标签标注完毕后,作者手动对图像中的人脸进行人脸框以及人脸关键点(5 个)的标注,并利用 Face++ 的 API 进行人脸关键点(37 个)的标注。此外,作者还提供一些额外的人脸属性标签,例如:性别、年龄、种族。

为了避免由于标注人员的主观性导致标签出错,作者利用 EM 算法对标签数据进行筛选,以去除其中的噪声。具体算法如下所示:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第8张图片

关于跨数据集实验:

作者为了证明现实场景(即非受控环境)下的人脸表情数据比实验室场景(即受控环境)下的人脸表情数据有明显的区别,便利用 RAF 和 CK+ 进行了跨数据集实验。其实验结果如下所示:(大白话解释的话,应该就是非受控环境下的人脸表情数据更多样、复杂,更难以拟合)

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第9张图片

此外,作者还从两个数据集中抽取数据进行 AU 标注并进行比较,由下图可以看出 RAF 的人脸表情数据的 AU 信息更为丰富多样。

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第10张图片

关于 DLP-CNN:

由于非受控环境下的人脸表情数据更加复杂,作者认为普通的 Softmax Loss 在这些数据上并不能很好的衡量各个类别中的特征分布,于是作者便提出了 Local Proserving Loss(与 Center Loss 相似),以及 DLP-CNN(也就是卷积网络加 Softmax Loss 和 LP Loss,具体结构如下图所示)。

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第11张图片

LP Loss 的核心思路就是想在保持各个类别的类间距离更远的同时,使得类内距离更小,从而使得类内样本的特征分布更加紧凑。不过,由于需要计算各个样本的与其邻居的距离,LP Loss 的计算成本是很高的。具体公式如下所示:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第12张图片

4. Adaptively Weighted Multi-task Deep Network

论文链接:Adaptively Weighted Multi-task Deep Network for Person Attribute Classification, 发表时间:2017

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第13张图片

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第14张图片

5. Covariance Pooling for Facial Expression Recognition

论文链接:Covariance Pooling for Facial Expression Recognition, 发表时间:2018.05

本篇论文投在 2018 CVPR Workshop 上,其核心思想为相较于一阶统计量,二阶统计量更适合捕捉人脸关键点的变形,从而提高人脸表情识别的准确率。而传统卷积神经网络只能捕捉一阶统计量,作者便引进 Covariance Pooling 用于从卷积网络所获取的特征中计算协方差矩阵,再将其输入到 SPD Manifold Network(SPDNet) Layers 中。

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第15张图片

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第16张图片

作者对 SPDNet 的结构进行了实验,并设计了四种不同的结构,具体细节以及实验结果如下所示:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第17张图片

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第18张图片

作者在 RAF 和 SFEW 2.0 上取得了目前的 SOTA,即 87.0 和 58.14。但作者所用指标为 Accuracy,我认为应该用 Mean Diagonal Value of the Confusion Matrix 作为指标(因为用 Accuracy 的话,标签为 Happy 和 Neutral 的样本数量占绝大多数且容易识别,并不能完全体现模型表情识别能力),以此为指标,作者在 RAF 和 SFEW 2.0 上的精度分别为 79.4 和 50.1。

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第19张图片

PS: 作者开源项目:d-acharya/CovPoolFER(基于 Tensorflow 实现的)。

6. Multi-Task Learning as Multi-Objective Optimization

论文链接:Multi-Task Learning as Multi-Objective Optimization, 发表时间:2018.10

该篇论文由 Intel Lab 提出,作者将 MTL 当作 Multi-Objective Optimization 进行处理,利用 gradient-based multi-objective optimization 进行优化,以此取得帕累托最优解。在文章中,作者介绍了用多目标优化解决多任务学习的一般形式,帕累托最优的定义,如何将求解帕累托最优转换为求解人物权重,以及如何简化计算过程。

Multi-Task Learning(MTL)的一般形式:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第20张图片

MTL 的 Pareto Optimality(帕累托最优解) 定义:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第21张图片

算法细节如下所示:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第22张图片

最后,作者利用该算法在 CelebA 上取得了 SOTA,实验结果如下所示:

tensorflow 人面关键点识别_[论文笔记] 人脸属性识别方向系列论文_第23张图片

PS: 作者开源项目:intel-isl/MultiObjectiveOptimization(基于 PyTorch 实现的)。

参考资料:

  • 《Deep Learning Face Attributes in the Wild》论文笔记
  • Deep Learning Face Attributes in the Wild
  • 行人属性“Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Cl”
  • Multi-task Learning(Review)多任务学习概述
  • 多任务学习权重的动态调整
  • NIPS 2018 | 作为多目标优化的多任务学习:寻找帕累托最优解
  • Multi-Task Learning as Multi-Objective Optimization 阅读笔记
  • 《Deep Facial Expression Recognition:A Survey》论文笔记
  • 论文笔记:2018 PRCV 顶会顶刊墙展- PilgrimHui - 博客园
  • 表情识别——Covariance Pooling for Facial Expression Recognition
  • 学习笔记之——covariance pooling
  • 属性预测相关论文阅读Adaptively weighted multi-task deep network for person attribute classification
  • 【资源】聚焦人脸表情识别 (FER) 的顶级会议和期刊文献与资源列表

如果你看到了这篇文章的最后,并且觉得有帮助的话,麻烦你花几秒钟时间点个赞,或者受累在评论中指出我的错误。谢谢!

作者信息:知乎:没头脑LeetCode:Tao PuCSDN:Code_MartGithub:Bojack-want-drink

你可能感兴趣的:(tensorflow,人面关键点识别)