0%

论文阅读-人脸相关(一)MTLface年龄无关识别

论文链接:When Age-Invariant Face Recognition Meets Face Age Synthesis: A Multi-Task Learning Framework

论文详情:2021年CVPR的年龄无关人脸论文,使用多任务模型综合生成和鉴别模型进行人脸识别/生成

自己也是拿他做了实验室的presentation,这里记录整理一下

作者:Zhizhong Huang etc 学校:复旦

Motivation

  1. 年龄无关人脸识别主要有两种方法:
    • 生成模型的方式:将输入图片生成为不同年龄的图片进行训练,类似于用GAN做数据增强,这种方法的缺点是生成图片质量不高,以这种生成模型训练的分类器不适用于现实场景
    • 鉴别模型的方式:设计网络架构和学习任务以期学习到age invariant, identity related的特征,这种方法的缺点是很难具备可解释性,尤其是网络得不到可视化的图片证据来佐证特征分离的成功
  2. 因此,本文的动机是同时使用生成模型和鉴别模型,应用多任务学习的框架进行训练,可以得到更鲁棒的生成模型及更鲁棒的鉴别模型

Method

image

  1. 总体架构:
    • 输入不同年龄段的人物图片,使用特征提取模块(a)提取混合了年龄特征和身份特征的混合特征
    • 使用通道注意力和空间注意力的CBAM的模块生成注意力热图(b),特征和热图相乘代表年龄特征图,剩下的特征残差代表身份特征图,这里注意力热图是通道注意力热图和空间注意力热图扩展维度之后取平均值求得的
    • 使用年龄估计(d)和身份识别(e)两个模块训练网络,确保特征分离
    • 使用带有特殊设计的ICM模块(c)进行不同年龄段的人脸图片生成(f),训练一个可以生成同一人物不同年龄图片的生成模型,注意生成模型也会将特征提取模块各个层级的特征图输入到解码模块,拟合除开身份特征之外的残差信息(如content等信息)(类似于一个UNet结构)
  2. ICM模块:
    • 传统的ICM模块(a)使用身份特征加上一个one-hot的特征图的方式代表不同年龄的图片,将年龄先分为不同的类别,比如按10岁一档进行划分,这样进行图片生成
    • 这种one hot的实现的缺点单一用一个特征图代表年龄信息没办法概括所有年龄信息,尤其是一些和身份强关联的年龄信息,比如成年男子会有胡须,但是成年女子不具有这一特征,因此,单一的年龄信息忽视了那些与身份信息强关联的年龄信息
    • 本文设计了一个ICM模块,先用卷积网络将身份信息进行处理,将新的特征图分为不同的组,各个组对应不同的年龄段,组与组之间存在一定交叉的特征图,因为有些特征是不同年龄段共享的,之后选出对应生成年龄的特征组,进行后续的生成。

image

  1. 损失函数设计:
    • 首先明确,模型的鉴别模型和生成模型是交替进行训练的
    • 鉴别模型首先训练年龄特征,使用年龄特征预测年龄类别和具体数值,前者用MSE loss进行回归训练,后者用CE loss进行分类训练
    • 对于人脸识别任务的训练:首先利用人脸特征训练人脸分类器(CE loss),接着用人脸特征训练一个年龄分类/回归任务,将梯度取负,即最大化损失值,注意这里的年龄分类/回归和年龄特征的网络架构相同,但是单独/分开训练
    • 对于生成模型,除开普通的gan loss(即最大化discriminator的鉴别能力训练discriminator同时训练generator),还加入了年龄身份鉴别,对于生成的图片,判断年龄和身份属于想要生成的类别。
    • 注意鉴别模型和生成模型交替训练,鉴别模型提取的身份特征用于后续的生成过程,生成模型生成的图片可以用鉴别模型进行鉴别

实验结果

  1. 关于数据就不看了,感觉数据一般般
  2. 生成的结果如下
    image

  3. 一些自己的想法:

    • 生成模型的加入对鉴别任务的提升并不大,但是加入鉴别模型感觉对生成的效果还是很好的
    • 借鉴就是:分离特征可以设计专门的模块,用attn来做可以具备一定的可解释性;多任务,交替训练更有利于收敛,解耦也可以用分组的方式表示不同特征