博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多任务人脸属性分析
阅读量:2754 次
发布时间:2019-05-13

本文共 1909 字,大约阅读时间需要 6 分钟。

前言

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

 

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


正文

这篇笔记是CVPR2018上一篇利用多任务学习来做人脸属性分析的Paper,名字叫。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

 

转载地址:http://blgad.baihongyu.com/

你可能感兴趣的文章
我拿什么来留住你?我的员工!
查看>>
利用JSF开发Web程序的三大优势
查看>>
MySQL之Handler_read_*
查看>>
09年又要死多少“第二款游戏”?
查看>>
度歌虎山寨搜索引擎创始人竟是“90后”
查看>>
分享.NET开发中经常用到的十大软件
查看>>
F5 吴静涛:从四个维度看TCP协议优化
查看>>
从职业人角度看外企
查看>>
2009年会火的移动应用
查看>>
Google鲜为人知的强大功能!
查看>>
把程序作为人生,把人生当作程序
查看>>
苹果公司的简单产品线为何能够成功?
查看>>
中国移动如何用Java做开发
查看>>
处理超过 2G 的 DBF 表
查看>>
22 个苹果风格的 Web 设计
查看>>
海盗湾BT网站创始人或被判处2年徒刑
查看>>
细数宅男周末休闲的一天
查看>>
三十了终于明白了些事
查看>>
什么技术和应用赚钱?
查看>>
Spring创始人:看衰Java EE,Spring3.0将支持REST
查看>>