新的换脸模型FaceShifter论文的简单而完整的解释(二)

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 新的换脸模型FaceShifter论文的简单而完整的解释(二)

第3部分的任务是选择我们应该在每个单元格/像素处关注的部分(2或3)。例如,在与嘴相关的单元/像素处,该网络将告诉我们更多地关注第2部分,因为嘴与身份更相关。这是通过图8所示的一个实验进行的经验证明。

640.png

图8。显示AAD层第3部分所学内容的实验。右边的图像显示了整个AAD生成器中不同步数/空间分辨率的第3部分的输出。亮区表示我们应该关注同一性的单元格(即第2部分),黑色区域表示关注第1部分。注意,在高空间分辨率下,我们主要关注的是第1部分。

如此,AAD生成器将能够一步一步地构建最终图像,在每个步骤中,它将确定给定身份和属性编码的当前特征映射的最佳放大方式。

现在,我们有了一个网络,AEI网络,它可以嵌入Xₛ&Xₜ,并以实现我们目标的方式集成它们。我们将AEINet的输出称为Yₛₜ*

训练损失函数

一般来说,损失是我们希望网络所达到目的的数学公式。训练AEI网有4个损失:

  1. 我们希望它输出一个真实的人的脸,所以我们将有一个对抗性的损失,就像任何对抗网络。

2.我们希望生成的人脸具有Xₛ的身份。我们唯一能代表同一性的数学对象是zᵢ此,这个目标可以用以下损失来表示:

image.png

我们希望输出具有Xₜ的属性。损失是:


image.png

作者根据网络应该输出Xₜ(如果Xₜ和Xₛ实际上是相同的图像)的观点,又增加了一个损失:

image.png

我相信这最后的损失是必要的,以驱动zₐ实际编码属性,因为它不是像zᵢ预先训练。如果没有它,AEI网可以忽略Xₜ,使zₐ只产生0。

我们的总损失只是以前损失的加权和。

Hear网络

AEI网络是一个不光能够进行面部交换完整的网络。然而,它在保持一致方面还不够好。具体地说,每当目标图像中的某项事物遮挡了最终输出中应该出现的部分面部(如眼镜、帽子、头发或手),AEI网络就会将其移除。这些事物应该仍然存在,因为它与将要更改的标识无关。因此,作者实现了一个称为"启发式错误确认细化网络"的附加网络,该网络具有恢复这种遮挡的单一任务。

他们注意到,当他们将AEI网络(即Xₛ&Xₜ)的输入设为相同的图像时,它仍然没有像图9那样保留遮挡。

640.png

图9。当我们输入与Xₛ&Xₜ相同的图像时AEINet的输出。注意头巾上的链子是如何在输出中丢失的。改编自[1]

因此,他们没有将Yₛₜ*和Xₜ做为HEAR网络的输入,而是将其设为Yₛₜ*&(Xₜ-Yₜₜ*),其中Yₜₜ*是当Xₛₜ和Xₜ是相同图像时AEI网络的输出。这将把HEAR网络指向遮挡未保留的像素。如图10所示。

640.png

图10。HEAR网络的结构。改编自[1]

训练损失函数

HEAR网络的损失函数为:

  1. 因保留身份而蒙受的损失:
    image.png
  2. 不大幅度改变Yₛₜ*的损失:
    image.png
  3. 如果Xₛ&Xₜ是相同的图像,那么HEAR网络的输出应该是Xₜ:
    image.png

总损失是这些损失的总和。

总结

换脸器的效果是惊人的。在图11中,您可以找到它在设计它所依赖的数据集之外的图像上的泛化性能的一些示例(即来自更宽泛的数据集)。注意它是如何在不同和困难的条件下正确工作的。

image.png

图11。结果表明,该变换器具有良好的性能。改编自[1]

  1. L. Li, J. Bao, H. Yang, D. Chen, F. Wen, FaceShifter: Towards HighFidelity And Occlusion Aware Face Swapping (2019), Arxiv.
    论文地址:https://arxiv.org/pdf/1912.13457.pdf
目录
相关文章
|
6月前
|
机器学习/深度学习 监控 算法
傻傻分不清目标检测、语义分割和实例分割,看这篇就够了
傻傻分不清目标检测、语义分割和实例分割,看这篇就够了
358 0
|
人工智能 JSON 测试技术
语言模型悄悄偷懒?新研究:​上下文太长,模型会略过中间不看
语言模型悄悄偷懒?新研究:​上下文太长,模型会略过中间不看
134 0
|
机器学习/深度学习 自然语言处理 算法
论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息
论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息
101 0
|
机器学习/深度学习 人工智能 自然语言处理
图与代码不一致,Transformer论文被发现错误,网友:早该被指出1000次
图与代码不一致,Transformer论文被发现错误,网友:早该被指出1000次
129 0
|
机器学习/深度学习 编解码 监控
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(一)
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(一)
130 0
|
机器学习/深度学习 固态存储
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(二)
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(二)
87 0
|
存储 编解码 C++
实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(二)
实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(二)
575 0
|
自然语言处理 数据建模 计算机视觉
实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(一)
实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(一)
249 0
|
机器学习/深度学习 测试技术 异构计算
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
|
机器学习/深度学习 数据挖掘 PyTorch
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。

热门文章

最新文章