《IACycleGAN》

paper: Identity-Aware CycleGAN for Face Photo-Sketch Synthesis and Recognition (arxiv.org)

code: none

任务

真人素描生成与识别

出发点

生成促进识别 识别促进生成;

大部分生成方法使得合成图像与原始图像在纹理上保持一致,会导致信息丢失;

大多数生成框架都只能学习两个域之间的关系,其鉴别器只关注照片和草图之间的差异,而不考虑任何特定的识别优化(身份信息);

创新点

在CycleGAN上加入了感知损失(perceptual loss),能更好的关注面部的语义信息(眼睛、鼻子);

使生成模型和识别模型相互优化,生成模型迭代生成更好的图像,Triplet Loss训识别模型;

做法

生成模型

image-20220608102426736

分别给出两个domain的照片(这里输入的是paired数据,这里的paired应该身份paired),其训练目的是获得Gx,Gy两个生成器。

两个识别网络,其目的是使用pretrain好的vggface提取feature做Identity perception loss;

生成器用了《Perceptual losses for real-time style transfer and super-resolution》中的结构;

判别器用了PatchGAN的结构;

生成网络整体loss图示

image-20220608105545461

对抗损失(adversarial loss)

输入图像与生成图像进入判别器进行计算,最小化下式

image-20220608110633855

循环一致性损失(cycle consistency loss)

Gx生成的图像再进入Gy恢复原本domain与最初的输入x计算L1,此loss为pix级,最小化下式

image-20220608110959225

身份保持损失(identity perception loss)

仅使用对抗损失会导致伪影和训练不稳定,需要加更强大的监督;

通过一个pretrain的识别网络(文中选择vggface)分别提取两对(原图与合成图)的feature计算L2,此loss区别于pix级监督,是feature级,文中对于此处的解释是:绘制的草图会有夸张成分以扭曲面部纹理信息,夸大面部特征,完全基于pix重建图像效果不会好;CycleGAN的训练需要进行数据增强操作(resize,flip等)难以实施pix级的监督。

最小化下式

image-20220608111456554

身份映射损失(identity mapping loss)

常规的pix级的约束,最小化下式

image-20220608112212476

整体loss

image-20220608112236780

image-20220608112252105

最小化生成器的loss最大化判别器的loss

其中超参数lamda分别设为10,30000000,5

识别网络与生成网络的互相优化

许多主做生成的工作都是fix相应的识别网络作为一个特征提取器来附加身份保持损失;

本文的做法估计是:

step1:先fix识别网络参数训练生成网络,获得一定量的生成的图片;

step2:使用生成的图片fine-tune识别网络(单走一个人脸识别模型的流程),用了triplet loss,更新识别网络参数,其中两个模态分别有两个识别网络,要分开训练;

step3:重复上述操作以获得更好的生成模型和识别模型。

(有问题的点:若第一次生成的质量得不到保证,那低质量的生成图像真的能提升识别模型的acc吗?互相优化的模型很依赖第一次生成的图像质量

我认为的做法:先简单训练一个识别网络达到一个还行的acc,更新其backbone参数作为生成网络的特征提取器,然后再进行生成网络的训练。

image-20220608135047478

实验

CycleGAN生成—》一阶段vgg fine-tune—》IACycleGAN生成(加入fine-tune的vgg提取的特征做身份保持损失)—》二阶段vgg fine-tune

数据集

CUFS和CUFSF

生成模型实施细节

对于生成网络的训练,都是从头开始训练,使用instance normalization来实现更好的稳定性和更低的噪声;

使用Adam优化器,horizontal filp prob=0.5用于数据增强;

前100个epoch设置0.0002的学习率,并在后100个epoch线性下降至0;

在titian xp上训练了10小时;

为减小网络震荡,采用存储多个生成图像的图像缓冲区来更新鉴别器,而不是使用最后生成的图像。

生成使用了SSIM FSIM两个指标

image-20220608152343197

识别模型实施细节

文中用的vggface,caffe上跑的(估计是官方代码)

image-20220608153331083

在做检索任务时,先做风格模态的迁移,再计算相似度。

image-20220608155946505

image-20220608160958943