Method
Problem Formulation
定义young face image为Iy,对应的age为αy,是一个one-hot向量
给定目标age αo(要求αo>αy),我们希望学习一个age progressor Gp,能够生成older face image Io,即Io=Gp(Iy,αo)
注:下标y表示young,o表示old
需要注意的是,数据集使用的是unpaired aging data,即不要求同一个人的young face image和older face image
另一方面,考虑age regression,引入age regressor Gr,利用之前生成的Io重构出young face image,即Iy′=Gr(Io,αy)
我们将Gp和Gr集成为一个统一的framework,得到unified
solution for both age progression and regression

如Figure 3所示,整个framework包含2个data flow cycle:age progression cycle和age regression cycle,涉及4个网络:Gp、Dp、Gr、Dr
Network Architecture
本节介绍网络结构,因为age progression和age regression是类似的,所以我们将Gp和Gr统称为G,将Dp和Dr统称为D

Spatial Attention based Generator
Gp和Gr的网络结构是相同的,以Gp为例,结构如Figure 2所示
已有的face aging工作采用的生成器结构是单路的(with single pathway),这样无法保证生成器只关注与aging相关的区域,生成结果会包含age-irrelevant changes和ghosting artifacts
为了解决这个问题,我们引入spatial attention mechanism,采用多路(多分支)的生成器结构
具体来说,如Figure 2(a)所示,设置一个FCN GpA用于生成attention mask,另一个FCN GpI是常规的生成器,最终利用attention mask融合两幅图像,得到最终的生成结果Io
Io=GpA(Iy,αo)⋅Iy+(1−GpA(Iy,αo))⋅GpI(Iy,αo)(1)
其中GpA(Iy,αo)∈[0,1]H×W
注:此处的spatial attention mechanism其实就是GANimation中所用的
Discriminator
判别器D的任务是区别real/fake images,同时还对image进行age的回归预测
注:本质上就是加了一个auxiliary predictor,这和换脸的套路是类似的
D的结构是PatchGAN,包含6层Conv_4x4,Conv之后连接LeakyReLU
Loss Function
Adversarial Loss
采用least square adversarial loss
LGAN=EIy[(DpI(Gp(Iy,αo))−1)2]+EIo[(DpI(Io)−1)2]+EIy[DpI(Gp(Iy,αo))2]+EIo[(DrI(Gr(Io,αy))−1)2]+EIy[(DrI(Iy)−1)2]+EIo[DrI(Gr(Io,αy))2](2)
注:对于G来说,最小化LGAN,对于D来说,最大化LGAN
Reconstruction Loss
使用L1-norm来避免blurry
Lrecon=EIy∥Gr(Gp(Iy,αo))−Iy∥1+EIo∥Gp(Gr(Io,αy))−Io∥1(3)
Attention Activation Loss
在生成器中,attention mask很容易saturate to 1,为了解决这个问题,提出attention activation loss对attention mask进行约束
Lactv=EIy∥∥GpA(Iy,αo)∥∥2+EIo∥∥GrA(Io,αy)∥∥2(4)
注:实际上就是对attention mask添加L2正则化,这和GANimiation中的一模一样
Age Regression Loss
在判别器中增加的age predictor分支记为Dα,则对于生成器来说,生成图像的age要与target age越接近越好
Lreg=EIy∥∥Dpα(Gp(Iy,αo))−αo∥∥2+EIy∥∥Dpα(Iy)−αy∥∥2+EIo∥Drα(Gr(Io,αy))−αy∥2+EIo∥Drα(Io)−αo∥2(5)
Overall Loss
L=LGAN+λreconLrecon+λactvLactv+λregLreg(6)
Gp,Grmin Dp,Drmax L(7)
Question:训练Dp和Dr的损失函数感觉不应该直接写成L