DeepFakeLab
主流的换脸模型DeepFakeLab只能实现一对一的换脸,用source数据集和target数据集对模型进行训练,训练后的模型只能将source的脸换到target上面去。其主要训练流程如下:
- 训练一个encoder(source 和target 共用一个encoder), 训练两个decoder(source 和target各自对应一个),在训练阶段,利用encoder-decoder(src)和encoder-decoder(trg)将source和target 图像分别进行扭曲-还原
- 在测试阶段将target image 送入到 encoder-decoder(src)之中,模型会将target image 误认为是source image, 并将其按照source image的标准进行id信息的还原,这样就将source 的id 信息转移到target之中,并且保持target的属性信息不变。
优点:一对一针对性换脸,源码提供了很强的可交互性,换脸质量高。
局限性:DeepFakes的模型的decoder包含着source image/target image的id信息,所以训练一个模型,其只能对特定的两个身份进行一对一换脸。
SimSwap的框架图
S对imSwap通俗地讲解:给定一张target image和source image, SimSwap可以将source image的id信息转移到target image之中,并且可以最大程度地保持target image的属性信息不变(姿势,表情,光照等),该论文的创新点在于:1.在DeeoFakes的基础上进行了拓展可以实现任意换脸 2.使用Weak Matching Loss来最大程度保留target image的属性信息
如何实现任意脸的交换
DeepFakeLab只能进行一对一换脸的原因:其decoder模块包含了特定身份的id信息,
SimSwap能实现任意换脸的关键点:SimSwap将decoder中的id信息分离出来,让decoder只关注于图像的生成,不涉及src/trg的id信息。对于分离出来的id信息,SimSwap提出了一个ID Injection 模块,此模块负责将source 的id信息注入到target之中,将ID Injection模块放在encoder-decoder的中间,就可以实现任意换脸,并且设计了Weak Matching Loss来最大程度的保留target的属性信息。