换脸算法学习笔记

换脸即将源人脸的身份转移到目标人脸,同时保持目标人脸的属性(如表情、姿势、光照等)不变。

目前主要有两种类型的人脸交换方法:

  1. 在图像层作用于源人脸的面向源的方法。将目标面部的属性(如表情和姿势)转移到源面部,然后将源面部混合到目标图像中。该方法对源图像的姿态和光照很敏感,不能准确地再现目标的表情。

  1. 在特征层作用于目标人脸的面向目标的方法。直接修改目标图像的特征,可以很好地适应源面部的变化。DeepFakes能够生成两个特定身份之间的人脸交换结果,但缺乏泛化能力。

1. SimSwap

【2021】SimSwap: An Efficient Framework For High Fidelity Face Swapping

项目路径:https://github.com/neuralchen/SimSwap

贡献

基于基础GAN框架:

  1. 引入了ID Injection Module (IIM),将源人脸的身份信息在特征级传输到目标人脸,解决身份限制的问题,将特定人脸互换算法的结构扩展到任意人脸互换。

  1. 提出Weak Feature Matching Loss,隐式保持目标属性的一致性

网络结构

Figure 1. SimSwap框架

  1. 比较DeepFakes

DeepFakes的架构包含两个部分,一个公共编码器Enc和两个特定于身份的解码器DecS、DecT。在此过程中,编码器Enc提取目标的特征,其中包含目标面部的身份和属性信息,解码器DecS设法将目标特征转换为具有源身份的图像,源面部的身份信息必须已集成到DecS,因此,DeepFakes中的解码器只能应用于一个特定身份。

  1. 网络结构设计

a. ID Injection Module

包含两部分:

1)身份特征提取,用人脸识别网络ArcFace从源人脸提取身份特征向量

2)嵌入,使用ID-Blocks将身份信息注入特征,ID-Block即残差模块的变体,将批正则化改为AdaIN

channel-wise的均值和方差,源人脸的均值和方差来自特征向量

整个IIM共使用9个ID-Blocks。

由于训练中涉及不同身份的源图像,因此解码器的权重应该与任何特定身份无关,其只专注于从特征中恢复图像,而将身份修改任务留给ID注入模块,因此该架构可以应用于任意身份。

训练过程中若使用Identity Loss容易使网络过拟合,只生成带有源身份的图像,而失去目标的所有属性。为了避免这种现象,利用对抗性训练的思想,使用Discriminator来区分具有明显错误的结果。Adversarial Loss在提高生成结果的质量方面起着重要的作用。

b. Weak Feature Matching Loss

利用训练损失约束来防止目标人脸属性被源人脸影响。然而,如果选择显式地约束所有属性,需要为每个属性训练一个网络。因此,提出Weak Feature Matching Loss隐式地进行约束。

Original Feature Matching Loss:

表示判别器的第i层特征提取,表示第i层元素数量。

Weak Feature Matching Loss:

,相比原始公式,移除最开始的m层。

主要区别:原始训练是需要生成器在多个层次上产生自然统计信息,且浅层的特征将起关键作用,因为浅层的特征主要包含纹理信息,能够在像素级上约束结果。但在人脸交换任务上,损失的目的是约束属性,即主要存在于深层特征中的高度语义信息,引入过多的纹理信息可能导致结果和目标人脸相似,影响身份修改,所以抛弃浅层。

2. FaceShifter

【2020】FaceShifter: Towards High Fidelity And Occlusion Aware Face Swapping

*换脸效果不如SimSwap,但AEI-Net结构被SberSwap引用,故放在SberSwap之前介绍。

之前很多方法只用目标面部的姿态和表情引导合成转换人脸,然后使用目标人脸的掩码将人脸混合。这一过程很容易产生伪影(SimSwap也有这个问题),原因有:1)在合成交换人脸时,除了姿态和表情外,对目标图像的了解很少,很难尊重目标的属性,如场景照明或图像分辨率;2)这样的混合将丢弃源面部位于目标面部之外的所有外围区域。

贡献
  1. 设计Adaptive Embedding Integration Network(AEI-Net,自适应嵌入集成网络)。

  1. 提出一种多层属性编码器,用于提取不同空间分辨率下的目标属性。

  1. 提出带Adaptive Attentional Denormalization(AAD,自适应注意反标准化层)的生成器,自适应地学习在哪里集成属性或身份嵌入。

  1. 设计Heuristic Error Acknowledging Refinement Network (HEAR-Net,启发式误差识别优化网络),在重构误差的指导下进一步优化结果,可以识别出更多的异常类型,如眼镜、阴影和反射效果以及其他不常见的遮挡。

网络结构
  1. AEI-Net

Figure 2. 第一阶段的AEI-Net。AEI-Net由一个身份编码器、一个多层属性编码器和一个AAD生成器组成。AAD生成器使用构建在AAD层上的级联AAD ResBlks集成多个特征层的身份和属性信息。

a. Identity Encoder

使用预先训练的人脸识别模型作为身份特征编码器,定义身份嵌入特征为模型最终FC层之前生成的最后一个特征向量。

b. Multi-level Attributes Encoder

人脸属性相比身份需要更多的空间信息,因此提出将属性embeddings表示为多层次的特征映射。使用UNet结构,并定义属性嵌入特征为U-Net解码器生成的特征映射。

c. Adaptive Attentional Denormalization Generator(自适应注意反标准化生成器)

用于整合身份embeddings和属性embeddings以生成初始的交换人脸。相比简单的特征拼接,提出AAD,即使用denormalizations在多个特征级别进行特性集成(启发于AdaIN,AdaIN主要用于风格迁移,其接收两个信息源:内容输入x和风格输入y,基于实例归一化将权值参数改为风格向量的方差和均值 (channel-wise)),以一种更自适应的方式实现该任务。

具体实现:如Figure 2 (c),表示输入AAD的激活图,经过BN后输入三天并行的分支:

1)属性整合:将三维属性特征经过两个卷积层获得两个调制参数,得到属性激活(element-wise)

2)身份整合:将一维属性特征经过两个FC获得两个调制参数,得到身份激活

3)AAD层的一个关键设计是自适应调整身份嵌入和属性嵌入的有效区域,使其能够参与人脸不同部位的合成。例如,身份嵌入应该相对更多地集中在合成面部最能区分身份的部分,如眼睛、嘴巴和面部轮廓。因此,在AAD层中采用了一种注意机制,即基于通过卷积和sigmoid操作生成一个注意力掩码,最终得到(element-wise)

AAD生成器由级联 AAD Residual Blocks (如Figure 2 (b)) 组成,AAD ResBlks内部包含两个AAD层。

  1. HEAR-Net

Figure 3. 第二阶段的HEAR-Net

第一阶段的人脸交换可能无法保留目标人脸上出现的遮挡,因此设计利用重构图像与其输入之间的误差来定位面部遮挡,即启发式地完善异常发生的位置。

启发式误差即目标图像重构误差,将启发式误差和第一阶段结果输入U-Net结构,最终得到细化后的图像

3. SberSwap

【2022】GHOST—A New Face Swap Approach for Imageand Video Domains

论文:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9851423

项目路径:https://github.com/ai-forever/sber-swap

Figure 4. GHOST Pipeline全流程

Model

基于baseline architecture——AEI-Net:

  1. 对SimSwap的reconstruction loss function进行升级

只对数据集中来自同一人脸的n帧进行计算,保证不因转换发生任何改变。

原始损失函数:当时,,否则

改进后损失函数:当时,,否则

  1. 新增针对眼部的损失函数

面部交换结果在视觉感知的重要组成部分是注视方向的转移,尤其是在进行图像到视频交换时,在这种情况下,每一帧都应该代表相同的视线方向,以建立逼真的感知。 因此添加一个眼部损失来纠正注视方向,用以比较使用人脸关键点模型获得的的眼部热图,

Post-processing & Blending

后处理:超分等处理以获得高质量的信息转换。

混合:提出自适应混合以更有效地传输源面的形状(没细讲方法,提出了一些优化,包含在人脸检测过程使用segmentation mask + 高斯模糊mask边缘,解决边缘伪影问题)。

参考文献

https://zhuanlan.zhihu.com/p/380765530

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值