DNANet Age and Gender Aware Kin Face Synthesizer

发布 : 2021-08-03 分类 : 深度学习 浏览 :

《What Will Your Child Look Like? DNA-Net: Age and Gender Aware Kin FaceSynthesizer》论文笔记
本文同时考虑父母双方的影响,构建年龄和性别可控的 two-stage klin-face 生成模型。
image.png

2 方法

整个模型可分为两个阶段训练,首先训练 CAAE model,该模型在大规模的数据集进行预训练,目的是将编码特征生成高质量图像。然后训练本文提出的 DNA-Net,该网络同样是 encoder-decoder 结构,编码器解码器均为 3 层全连接层,论文中阐述了这种分两阶段训练的方法,主要是为了减少因为数据量过少带来的过拟合风险。最后,CAAE 还能引入年龄和性别条件,控制最终的图像合成。
image.png

2.1 Genetic Model

图 2 描述了 gentic model,本文模型主要包含三个阶段:

First stage

首先编码将父亲和母亲的图像分别进行编码,得到个人面部特征$h_k$ :
image.png
编码特征$h_k$可进一步通过 DNA-Net 编码器 $T_{fg}$ 编码器为 gene vector $g_k$ :
image.png

Second stage

得到父母双方的基因后通过随机挑选的方式,获取孩子的 gence vector $g_c$ ,$r_i$ 是被随机赋予的值:
image.png

Third stage

根据上一阶段选择的孩子 gene vector $g_c$,DNA-Net 的解码器将基因信息先解码到 CAAE model 分布的特征向量$h_c=T_{gf}(g_c)$ ,然后 CAAE 解码器生成图像$x_c=G(h_c)$ 。

2.2 Image-Feature Mapping via CAAE

CAAE 是《Age Progression/Regression by Conditional Adversarial Autoencoder》在这篇文章中提出的,本文基本保持了原来 CAAE 的思路。训练时,图像统一到$128\times 128$ RGB 的尺度。年龄分离散化到多个阶段,只用 one-hot 向量表示。性别也使用 one-hot 向量表示,且扩展到与年龄的相同的向量长度,缺位补 0。使用 L2 距离作为损失:
image.png
这里给编码器特征添加了鉴别器$D_z$使其符合均匀分布,让年龄转换更平滑。(这些都是 CAAE 原文的做法)
整体损失函数如下:
image.png

2.3 Genetic Mappings via DNA-Net

该模块训练时是预先准备好父亲、母亲和孩子的编码器特征,单独训练的。训练时,使用固定规则挑选父母双方的基因,文中使用的是 max 操作,选取双方最大的分量,组合成孩子的基因$g_c$ 。而在测试时,则是选取与 gene vector 等长的掩码,选取双方特征。训练时,通过让预测的孩子特征和真实孩子特征的 L2 距离更近,构建损失:
image.png
同时所挑选基因生成的特征也要符合均匀分布(与编码器特征要求相同):
image.png

3 实验

CAAE model 使用 UTKFace 数据集训练,包含 20000 张对齐后带年龄和性别标签的数据。
FIW 数据集包含 1997 组 father-mother-child face 数据,随机选择 1600 组用于训练,保留 397 组用于测试。

定量定性测试

随机选取了 100 对正例和 100 对负例进行亲属人脸验证。召集 30 名志愿者区分亲属关系。
image.png
最后对特征进行了可视化:
image.png
image.png

本文作者 : HeoLis
原文链接 : https://ishero.net/DNANet%20Age%20and%20Gender%20Aware%20Kin%20Face%20Synthesizer.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

学习、记录、分享、获得

微信扫一扫, 向我投食

微信扫一扫, 向我投食