多任务人脸属性分析

https://zhuanlan.zhihu.com/p/38082084

前言

人脸分析在多媒体、社交网络分析、计算机视觉等领域有着非常广泛的应用,不同于我们所熟知的“人脸检测”、“人脸验证”、“人脸比对”等技术。人脸分析可以理解为「给定一张肖像图,算法自动给出对其的属性分析值,例如“是否戴了口罩”、“是否带了美瞳”、“是否有双下巴”、“长得是否好看”等等」,是个非常有意思的研究方向。在Face Attribute Analysis方向目前比较权威的benchmark是香港中文大学汤晓鸥实验室标注的CelebA

 

多任务学习可以简单理解为模型一次性可以同时处理两个以上的任务,而传统的模型通常只能解决一个特点的任务(例如性别识别、种族识别等);进入Deep Learning时代,尤其是在CV相关的很多任务上,其实很多情况下的特征都是可以共享的,此处“可以共享”的意思就是说「无论你是用了什么样的网络结构、在什么Loss下、在什么相关的数据集上进行训练」均可以取得不错的效果(不一定是state-of-the-art,但也是非常不错的成绩)。


正文

这篇笔记是CVPR2018上一篇利用多任务学习来做人脸属性分析的Paper,名字叫《Partially Shared Multi-Task Convolutional Neural Network With Local Constraint for Face Attribute Learning》。idea和自己之前的投稿比较相似,在此记录一下。

 

传统的Multi-Task Learning往往会设计成Multi-Branch的结构,即底层layers学习universal feature representation,而高层branch layers学习task-specific feature representation,而且不少实验都发现通过这样joint training可以提高每一个task的性能。传统的Multi-Task Learning Model在分支以后,往往就是“各学各的”,彼此之间没有交集,这篇文章提出了一种partially shared architecture,使得分支以后的branch之间依然可以交互学习,并且集成了identity information,进一步促进了人脸属性分类任务的精度提升。如下图所示:

文章中提出的PS-MCNN(partially-shared multi-task CNN)包含两个部分:TSNet(Task-specific Networks)和SNet(Shared Networks),其中TSNet学习task-specific representation,而SNet学习shared universal representation。SNet的每一层都获得了从前一层TSNet的额外输入,并且传递到下一层的TSNet和SNet:

feat_1^{t^`}=[feat_1^t, feat_s^t], feat_1^{t+1}=H^{t+1}(feat_1^{t^`})

feat_2^{t^`}=[feat_2^t, feat_s^t], feat_2^{t+1}=H^{t+1}(feat_2^{t^`})

feat_s^{t^`}=[feat_1^t, feat_2^t, feat_s^t], feat_s^{t+1}=H^{t+1}(feat_s^{t^`})

 

在PS-Net的构建方面,作者利用人脸属性在人脸的相对位置来对其进行分组,例如:

Upper group包含了:头发、眉毛、是否戴帽子等信息;

Middle group包含了:鼻子、脸蛋、是否带耳环等信息;

Lower Group包含了:嘴巴、胡须、是否戴项链等信息;

Whole image group包含了全局信息:性别、是否化了妆、长得是否好看等等。

 

此外,作者借助Local learning constraint 来使得局部特征相似的样本之间更可能地接近,意思就是说,相似个体之间的人脸属性也应当是具备更高的相似度,作者定义了LCLoss:

LCLoss=\frac{1}{N(N-1)}\sum_{i=1}^N \sum_{j=i+1}^N w_{i,j}||feat_{si}^t-feat_{sj}^t||_2^2 \\ w_{i,j}=\begin{cases} 1 & \text{if sample i and sample j have the same identity} \\ 0 & \text{otherwise} \end{cases}

 

然后整体的优化目标如下:

Obj = \sum_{i=1}^4 ALoss_i + \lambda \times LCLoss

 

网络结构如下:

然后就是SGD优化算法去迭代~~~~~~

作者实验证明PS-MCNN-LC在CelebA和LFWA数据集上取得了非常好的效果。

 

这篇CVPR思路上也比较简单,feature fusion也是比较常用的操作。但是在分支后通过SNet进行交互学习,从而促进information flow是个值得借鉴的地方(大多数MTL Model是在分支之后,互相之间就没啥事儿了~)。


结语

目前MTL尽管在很多benchmark上都取得了不错的成绩,但一个比较麻烦的事情是一些超参数需要调整,例如从哪里开始分支?最后联合Loss的权重 \lambda_i 也需要手工调整。前段时间看了一篇Cross-Stitch Networks,但还没有完美解决这个问题,期待接下来在MTL领域有更多大新闻出现!

这篇paper大致过了一遍,没有细看,若有错误,欢迎指出~ ^_^


Reference

  1. Deep Learning Face Attributes in the Wild
  2. Partially Shared Multi-Task Convolutional Neural Network With Local Constraint for Face Attribute Learning

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值