FReeNet

282 阅读4分钟

FReeNet

1。安装anaconda3 对应python===3.7以上

2。添加清华 镜像源 中科大镜像原

3。conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0

1. 论文提出的出发点(问题导向)

(1)意义

面部重现是一个将源脸的表情转移到目标人脸上的任务,它具有广阔的应用前景,例如电影制作,面部动画和增强现实

(2)论文的创新着力点

人脸重现的方法大致分为两类:基于合成的3D参数化模型设计、基于GAN等一些生成模型的方法,由于第一种方法模型设计比较复杂,计算代价昂贵,所以本文中采用第二种GAN生成的方法。

并指出在第二类的之前的方法中存在的问题,如当模型一旦训练好,只能在指定的两个人脸中重现表情,缺乏通用性与灵活性;

  • 使得人脸重现的目标人脸可以不指定 many--->many 更加通用与灵活
  • 另一种人脸重现的方法(3D 预定模型参数空间)

(1)如何使用同一的网络框架去实现many-->many

(2)如何在保持姿势、色相和照明一致的同时,增加图片的真实感和与表情转换后的目标人脸的特征保持

2.框架

主要是两个部分:ULC + GAG

(1)ULC

输入: 两个人脸标记点的隐含空间

  • 具有目标人脸的几何信息(geometry)与参照人脸的外貌信息(apperance)的一张图片 通过 face landmark detector编码后的隐含空间
  • 具有源脸的几何信息与任意外观的一张图片 通过 face landmark detector编码后的隐含空间

输出:

  • 具有转换后的目标人脸表情的几何信息(geometry)的一个隐含空间

!注意 ULC中有两个人脸标记点编码器(分别提取源脸与目标脸的标记点特征),一个标记点偏移解码器(预测标记点的偏移量,然后根据偏移量对目标脸的人脸标记点逐点转换,就会得到具有源脸表情信息和目标脸轮廓信息的标记点),两个辨别器(用于判断生成的标记点的正确性)、(用于预测标记点对的相似性)

(2)GAG

输入:

  • 参照人脸的外貌信息(apperance)

  • 转换后的几何信息 输出:

  • 带有与源脸对应的任意表情信息的目标人脸图片

!注意GAG的设计是基于最常使用的Pix2Pix框架中解耦的思想,从不同路径获取几何信息和外貌信息。包括一个图片编码器,一个标记点编码器,一个转换器,和一个图片解码器

3.新的约束函数Triplet Perceptual Loss

(1)提出的原因:

在训练阶段,由于RGB图像和标记点图像是两个不同的分布,生成器更加倾向于学习到分布较简单的标记点分布,所以如果仅有对抗和L1损失,GAG模块就无法适应学习输入标记点和生成图像之间的映射的条件。因此将三元组损失和感知损失结合起来,形成了一个新颖的三元组感知(TP)损失,它可以使类间的感知变化最大化,并使类内的感知变化最小化。

(2)形式

(3)知识扩展

  • 三元组损失

在人脸识别、行人识别里面,最重要的两个任务是特征提取和距离度量。好的特征一般是类内差距小,类间距离大的。所以就有了三元组损失,又叫做triplet loss:

triplet有三元组(a,p,n),a表示anchor,是关注的样本;然后p表示positive sample,是跟anchor同类别的样本,n表示negative sample,是跟anchor不同类别的样本。triple loss希望anchor的embedding跟positive接近,跟negative 距离比较远

  • 感知损失

感知损失,就是把预训练好的特征提取器相当于人的眼睛,要求生成的图像和真实图像经过预训练好的模型提取得到的特征尽可能相似。在图像生成里面,感知损失可以让图片生成地更加逼真一些。

4.论文的创新点

  • 提出了一个新的网络框架FReeNet ,可以使得many-->many
  • 将三元组约束和感知约束结合起来,提出一个新的约束函数(Triplet Perceptual Loss)