转载请注明作者和出处: http://blog.csdn.net/john_bh/
论文链接: 3FabRec: Fast Few-shot Face alignment by Reconstruction
论文链接: Arxiv地址(完整版)
作者及团队:韩国高丽大学
会议及时间:CVPR 2020
code:作者开源github 地址
文章目录
1.主要贡献
目前的人脸地标识别监督方法需要大量的训练数据,而且由于参数数目庞大,可能会导致对特定数据集的过拟合。作者介绍了一种半监督的方法,其关键思想是首先从现有的大量未标记的人脸图像中生成隐式人脸知识。
第一个完全无监督的阶段,训练一个对抗性自动编码器通过一个低维的人脸嵌入来重建人脸。
第二个监督阶段,将解码器与传输层交错,重新生成具有landmark热图的彩色图像。
即使只有10幅图像,3FabRec 依然可以保证预测的准确性,另外由于交错层只增加了少量的参数到解码器,推理运行在GPU达到几百帧。
2. Methods
训练细节:
第一阶段使用 VGGFace2(1.8 million faces) & AffectNet (228k images) 数据训练对抗性自动编码器,输入和输出都是 128 × 128 128\times 128 128×128,训练
50个epoch,batchsize=100;直到收敛,训练编码器和解码器,输入图像大小为 256 × 256 256\times256 256×256,提高生成图像的保真度,训练50个epoch,batchsize=50;第二阶段,将人脸大小调整到 256 × 256 256\times 256 256×256,根据 landmark 坐标,使用 σ = 10 \sigma=10 σ=10 生成ground truth heatmaps,并且使用了数据增广方法对人脸数据进行扩充。
2.1 Unsupervised face representation
作者使用论文 Robust discrimination and generation of faces using compact, disentangled embeddings 中的框检进行无监督训练,其中包含四个损失函数:
- L r e c \mathcal {L_{rec}} Lrec:重建损失通过基于像素的 L 1 L1 L1 误差来惩罚重建误差;
- L e n c \mathcal {L_{enc}} Lenc:编码特征损失确保创建平滑连续的潜在空间;
- L a d v \mathcal {L_{adv}} Ladv:对抗特征损失推动编码器 E E E和生成器 G G G产生高保真度的重建,因为仅使用图像重建损失的生成模型训练通常会导致图像模糊;
- L c s \mathcal {L_{cs}} Lcs:由于预测 landmark 位置直接来自重建的面部元素的位置,因此在训练自动编码器时,主要重点在于准确重建这些特征。通过用新的结构化图像损失 L c s \mathcal {L_{cs}} Lcs代替[4]中使用的产生图像损失 L g e n \mathcal {L_{gen}} Lgen,将一些生成能力与重建精度进行了权衡。
Structural image loss: 为了对不能将面部结构与输入图像很好地对齐的重建进行惩罚,基于SSIM 图像相似性度量添加了结构图像损失,该度量可测量两个图像a和b之间的对比度
c
(
a
,
b
)
c(a, b)
c(a,b)和相关性
s
(
a
,
b
)
s(a, b)
s(a,b) :
其中
σ
a
\sigma_a
σa 和
σ
b
\sigma_b
σb 表示图像a和b之间强度方差,
σ
a
b
\sigma_{ab}
σab 表示它们的协方差,常数
c
=
25
5
0.01
c = 255^{0.01}
c=2550.01, 增加了分母的稳定性。这个计算在图像上
k
×
k
k \times k
k×k 个窗口上运行:
通过用原始图像及其重构评估
c
s
(
x
,
y
)
cs(x, y)
cs(x,y) 来获得结构图像损失,如公式3所示,该损失改善了高频图像元素的对准,并且对由对抗性图像损失引入的高频噪声施加了惩罚。
L
c
s
\mathcal {L_{cs}}
Lcs还可以充当正则化器,稳定对抗训练。
全自动编码器损失函数如公式4所示:
其中
λ
e
n
c
\lambda_{enc}
λenc 和
λ
a
d
v
\lambda_{adv}
λadv 是1.0,
λ
r
e
c
≈
1.0
\lambda_{rec}\approx1.0
λrec≈1.0 ,
λ
c
s
≈
60.0
\lambda_{cs}\approx60.0
λcs≈60.0
2.2 Supervised landmark discovery
-
Interleaved transfer layers
训练 landmark 检测器,首先要冻结自动编码器的所有参数。 然后,在生成器的ResNet层中交叉使用 3 × 3 3\times 3 3×3卷积层。 每一个交叉传输层(ITL)的输出通道数量与原始ResNet层相同。 ResNe block的输出将被 ITL 层转换,并输入到下一个block中。最后一层输出 L-channel 的热图(L = 要预测的landmarks 数)。 这种方法通过重新使用预训练的自动编码器权重,为生成器增加了足够的灵活性以生成新的热图输出。给定一张人脸图像 x x x, H i H_i Hi 是 l i l_i li(第 i i i 个landmark ) 的 ground truth heatmap。在 landmark 训练和推理过程中,第一个倒置ResNet block层对编码图像 z = E ( x ) z = E(x) z=E(x) 进行卷积操作,然后传递到第一个ITL层,接着到下一个冻结的倒立ResNet block层,这样ResNet和ITL的完整级联可以重建界标热图 H ^ \hat H H^。
landmark heatmap 损失函数使用的是 L 2 L_2 L2 损失:
landmark 的位置 l ^ i = arg max u , v H ^ i ( u , v ) \hat l_i=\argmax_{u,v}\hat H_i(u,v) l^i=u,vargmaxH^i(u,v) -
Encoder finetuning
一旦 I T L ITL ITL 层的训练达到收敛,可以执行一个可选的微调步骤。为此,对编码器 E E E 进行解冻,使 I T L ITL ITL 层与编码器进行串联优化(图2)。
由于更新仅基于landmark错误,因此这将推动 E E E 对输入面部进行编码,以便将面部特征更精确地放置在重建的面部中。 同时,其他属性(如性别,肤色或照度)可能会被删除,因为这些属性与 landmark 预测任务无关。 由于生成器保持不变,充当了regularizer的作用,并限制了编码器的灵活性,所以避免了过拟合。
3. Experiments
经过训练的生成器能够从一个低维(99D)的潜在特征向量
z
z
z 中生成人脸如图3所示,随机生成带有landmark 热图的人脸。
通过在人脸嵌入之间插入和观察生成图像中的面部结构(如嘴角)以高度一致的方式构建来进一步说明隐含的脸型知识,图4展示了隐含人脸知识的可视化结果,说明了两点,首先,面部结构实际上是在低维表示
z
z
z 中编码的。其次,此信息可以转换为像素强度(即彩色图像)的2D映射,同时保持与原始编码的高度相关性。
图5显示了具有挑战性的图像上的重建质量,可以看到,pipeline 将尝试重建一个全脸尽可能给定的输入,去除遮挡和化妆。但是如第5列所示,当过度极端情况下, lamdmark 的预测是不准确的。
图7显示了从潜在空间(顶部四行)的随机采样中生成的人脸,以及预测的地标热图(底部四行),使用的是论文中的最终架构(在VGGFace2和AffectNet上使用256x256px进行训练)。注意到,这些面部具有很高的视觉质量,并且在面部外观(姿势、表情、发型、配饰)上有很大的变异性。
AFLW 和 300W 结果:
WFLW 结果:
- Limited training data and fewshot learning
表4,5,6展示了3FabRec当只对训练集的一部分进行训练时的结果:
3.1 Ablation studies
- Effects of ITLs
为了了解关于landmark的信息在交叉传输层中的学习位置,图6显示了在使用所有四层和减少上层子集时landmark热图的重构结果。
表7所示,定位精度在300w数据集上(51个内部地标和轮廓的NME,以及FR)结果。
- Effects of finetuning
表8报告了在对三个评估数据集的完整测试集进行微调和不进行微调的情况下运行模型的效果。