读论文:LADN: Local Adversarial Disentangling Network for Facial Makeup and De-Makeup
1 前言
传统算法做美妆迁移的时候,如下图所示,把 A* 的美妆迁移到 B 上面。但是这样会有一些问题:
- A 和 A* 难以同时获得
- A 和 B 要做对齐工作
- 其他
而 LADN: Local Adversarial Disentangling Network for Facial Makeup and De-Makeup 这篇文章,解决了上述的一些缺点,其效果特色在于:
- 同时实现化妆和卸妆效果;
- 美妆迁移后的人脸的面部细节保留好。
其技术特点在于:
- 局部对抗网络;
- 基于人脸特征点的多个重叠判断器。
如下图:
2 技术原理
2.1 生成器
生成器架构如下图所示,生成器采用 U-Net,其中的编码器获得高纬度的人脸的风格特征(attribute)和内容特征(context)。交叉组合通过解码器得到美妆后的人脸和卸妆人脸。
2.2 判别器
判别器的整体架构如下所示,除了2个 global 的判别器,额外引入 local discriminator。对于每一个样本,人工生成一个合成的标签 W(我不知道这个仿真的技术手段,如果有人了解的话,欢迎一起讨论。另外如果人工能合成标签了,还要这个算法干啥(难道是合成标签成本太大,而算法成本低?但是这个算法是建立在合成数据的训练上的啊。这也是我非常不理解的地方。我重新理解了下,这个合成标签根据人脸特征点将参考妆容强行弄到了待迁移的人脸上,会产生瑕疵,而网络可以消除瑕疵。))。局部判别器是基于人脸特征点生成的,数量可控。根据论文效果展示,越多越好。
2.3 损失函数
损失函数的设计难点在于如何在美妆迁移以及卸妆的过程中,能够保留人脸的高频局部信息。
总损失 = 局部对抗损失+ 全局对抗损失 + 重建损失(这个损失灵感来自 CycleGAN) + KL 损失(为了使得无化妆人脸和化妆人脸在生成器中提取的内容特征接近高斯分布) + 高阶损失(化妆局部判别器中保留人脸局部细节信息,特征用拉普拉斯滤波强化) + 平滑损失(卸妆局部判别器中去除妆容中的高频信息,特征用拉普拉斯滤波器强化)
毕竟传统 GAN 只有个全局对抗损失,我不得不说这个损失函数设计也是屌的一匹。但我个人其实持怀疑态度,又没有消融试验的结果对吧。
3 启发
结果我就不展示了,启发如下:
- 局部判别器对于细节的提取;
- loss 中对于高频的消除与保护;
- 美妆迁移(卸妆)思路在其他图像领域的应用。