本文主要是介绍图像修复_LaFIn_Generative Landmark Guided Face Inpainting,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Abstract
提出了一个深度学习策略来修复人脸图像,这个网络由两个部分组成,一个是人脸关键点预测子网络,该网络的目的是给另一个网络提供人脸的结构信息(破损人脸图像的人脸拓扑信息,表情信息)。另一个是图像修复网络,该网络的目的是修复出符合真实外观的人脸图像。该人脸图像修复方法在数据集CelebA-HQ和CelebA上进行了实验。
Introduction
人脸图像相比较海洋、草地等自然风景图像具有更强的拓扑结构和更强的局部连贯性,因此修复人脸图像任务更具挑战性。
传统的修复方法:diffusion-based and patch-based
基于深度学习的修复方法:成为主流。context-encoder,global and local,CA,Pconv,这些方法通常在破损区域较大时,会使得修复区域变的模糊扭曲。
为了保持人脸图像的结构信息,一些方法也尝试预测破损图片的边缘信息,来作为指导信息。这类方法在破损区域较小时表现较好,但是当破损区域变大时,那么边缘信息就不是那么好预测了,导致最终的修复效果变差。
文献15提出了一种基于人脸语义分隔的损失来期望保存结构信息,
文献11,33,提出让用户手动提供边缘信息。
文献36,35,26已经成功的将人脸关键点信息应用到人脸生成任务上了。
为什么采用人脸关键点?因为人脸关键点,简洁,有效,鲁棒性好。
可能会有人问,人脸的边缘信息或者语义分割信息是否能够提供更加强大的指导信息?
问题在于,当破损区域较大时,人脸的边缘信息,语义分割信息是否能够预测的相当准确,如果足够准确,那么当然是用这个二者作为指导信息更好。如果预测的不准确,那么提供的信息就是冗余的甚至是错误的,会损害修复的表现。相应的一组人脸关键点信息总是存在的,不论是什么情况。此外,人脸关键点可以看作是在人脸关键边缘/区域上采样的离散/有序点,这足以在去除冗余信息的情况下对关键边缘/面部区域(人脸解析)进行反向改造。
本文的贡献点:
- 提出用人脸关键点作为指导信息,人脸关键点相比较其他(人脸边缘信息、人脸语义分割信息)更加简洁、有效、鲁棒性更好,设计出了一个预测人脸关键点的子网络,来提供拓扑结构信息、姿势、表情信息
- 提出了修复图像子网络,为了使得属性的连贯性,子网络充分利用了遥远的空间信息和连接中间的特征层信息
- 做了大量的实验来验证本方法的有效性
- 完成后可以根据地标产生各种看似合理的新面孔。因此,生成的人脸和相应的(地面真实)标记可以作为增强数据,缓解人工标注的压力。在WFLW和300W数据集上的实验结果证实了这种方法的有效性。
Method
整个网络架构:
1. landmarks 预测子网络
由于celebA-HQ和celebA的数据集都没有提供人脸关键点的标签。那么首先需要获得相应的人脸关键点标签,才能对破损的人脸图像进行人脸关键点的预测。本文采用FAN方法来对上述数据集生成人脸关键点标签作为ground truth,(标签的形式是64个关键点,每个点由(x,y)坐标组成),预测人脸关键点的子网络采用MobileNet-v2网络来预测。该网络的输出也是64个人脸关键点坐标。损失函数采用的是l2损失。
2. image inpainting 图像修复子网络
该子网络包含修复网络和鉴别器网络.
1.鉴别器采用的是Patch-Gan架构,为了稳定训练过程,为鉴别器引入了普归一化(spectral normalization),与其他的修复方法不一样,本文只用了一个鉴别器。论文中有解释原因(但我觉得不是很有道理).
2.修复网络是基于U-net架构形式,网络包含,三个逐渐下采样的 编码块,然后跟着7个扩张卷积的残差块和一个长短期注意力块,最后解码器逐渐的将特征图上采样到和输入时的此寸一样。修复网络的输入是(破损的人脸图片,landmasks单通道数据).
但是人脸关键点预测子网络的输出是64个关键点坐标,那么修复网络是如何利用的:
采用的方法是:将这64个关键点变成一个单通道的图像数据。具体做法是,先创建一个和人脸图像数据尺寸大小一样的单通道的数据,所有像素点先全部设为0,然后根据64个关键点的坐标数据,将那64点的坐标像素变为1.
3 损失函数
损失函数采用了:
1.重建损失(per-pixel loss)
2.感知损失(perceptual loss)
3.风格损失(style loss)
4.TV损失(total variation loss)
5.生成对抗损失(adversarial loss)
4.训练策略
人脸关键点预测子网络和修复子网络是被分开训练的,或许有人认为可以进行联合训练,但是实际上将二者进行联合进行训练导致最后的效果是不好的,因为如果进行联合训练,在训练的开始阶段人脸关键点预测实际上是非常不准确的,那么这样的指导信息只会导致错误的修复,论文中作者将二者分开进行训练给出了两点原因:
1.对于人脸关键点预测子网络只有68个关键位置点需要被进行预测,这,这与修复网络是非常不匹配的。
2.另外网络权重参数的训练本身就是非常困难的,在训练的开始阶段,二个子网络的能力都是非常差的导致预测出的人脸关键点预测和修复网络的质量非常差,这两个因素很可能就将训练陷入了鞍点。
外网络权重参数的训练本身就是非常困难的,在训练的开始阶段,二个子网络的能力都是非常差的导致预测出的人脸关键点预测和修复网络的质量非常差,这两个因素很可能就将训练陷入了鞍点。
训练所用的优化器采用的是Adam优化器,b1=0,b2=0.9,学习率采用10-4,鉴别器的学习率采用10-5.
参考文献
[1] Yang Y , Guo X , Ma J , et al. LaFIn: Generative Landmark Guided Face Inpainting[J]. 2019.
这篇关于图像修复_LaFIn_Generative Landmark Guided Face Inpainting的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!