美妆之PSGAN
论文:PSGAN: Pose and Expression Robust Spatial-Aware GAN for Customizable Makeup Transfer
Github:https://github.com/wtjiang98/PSGAN
CVPR2020
主要贡献:
- PSGAN是第一个实现局部换妆,换妆深浅控制,姿态,表情鲁棒的换妆算法,可以很好的应用于真实世界环境。
- PSGAN中的MDNet模块被提出,从参考图片中分解出妆容信息为2个矩阵,通过这2个矩阵实现局部换妆,换妆深浅控制。
- PSGAN中的AMM模块,实现将妆容信息的2个矩阵过渡为对应于原图的2个矩阵。
- 提出新的换妆数据集Makeup-Wild dataset
整体模块:
整体模块由3个部分组成,
- Makeup distill network(MDNet)
MDNet实现了从参考图片中提取出参考图片的妆容信息,将这些妆容信息表示为2个妆容矩阵γ,β,其矩阵维度大小为1*H*W 。
2.Attentive makeup morphing module (AMM)
由于原始图片和参考图片可能会在表情和姿态上存在大的差异,因此MDNet直接提取的妆容矩阵γ,β不可以被直接应用于原始图片。这里通过原图和参考图生成的attention矩阵,将妆容矩阵γ,β修改为适应于原图的妆容矩阵γ’,β’。
实现上首先对参考图的维度进行变换,将C*H*W的维度变换为C*(HW),然后在channel维度上concat一个人脸68个关键点坐标位置矩阵。对原始图片也进行该同样的操作。然后将原始图片的(C+136)*HW和参考图片的(C+136)*HW进行矩阵运算,得到attention矩阵HW*HW。
这里还需要对P进行一个归一化操作,同时,除了位置信息之外,还需要加入该位置的像素信息V,最终将该attention矩阵表示如下,
其中,[·,·] 表示concat操作
p表示68个人脸关键点的x,y坐标
w表示视觉特征的权重
I(·) 表示原始图x的人脸区域i和目标图y的人脸区域j相同时为1,其余情况为0
N表示人脸区域的个数,这里N=3,包括眼睛,嘴巴,皮肤,3个区域。
将该attention矩阵HW*HW和参考图的γ,β矩阵进行运算,得到适应于原图的妆容矩阵γ’,β’矩阵。
3.Makeup apply network (MANet)
MANet通过将妆容矩阵γ’,β’以乘加运算的模式,应用于原图的特征层,实现换妆的效果。
Loss函数:
Adversarial loss :
对抗loss
Cycle consistency loss :
L1 loss
Perceptual loss :
L2 loss
Makeup loss:
直方图匹配loss
Total loss :
其中,λadv = 1, λcyc = 10, λper = 0.005,λmake = 1
Makeup-Wild dataset :
图片大小为256*256,403张化妆的图片,369张未化妆的图片。
实验结果:
总结:
- loss和beautyGAN的loss一样,吸收了beautyGAN中的基于直方图匹配的换妆loss。
- 可以控制换妆的深浅,只换任意部位的妆容,支持多姿势