SimSwap

作者: 斯文攸归 | 来源:发表于2021-12-29 19:50 被阅读0次

    上交+腾讯

    支持图片视频任意身份换脸(finetuning free);并且保持脸部属性如表情/姿态/光照等。

    换脸的方法一般分两类:

    Source-oriented Methods(如FSGANOn Face Segmentation, Face Swapping, and Face Perception等):将target人脸的属性迁移到source人脸上,然后将source人脸融合到target人脸上。该类方法的通病是对source人脸比较敏感,夸张的表情或者大尺度的姿态会严重影响换脸的结果。

    Target-oriented Methods(DeepFakes,IPGAN,FSNet,RSGAN,FaceShifter,DeepFaceLab):使用神经网络提取target人脸的特征,对该特征做修正,然后将修正之后的特征保存到换脸结果中。此类方法的要么不具有泛化能力,不足一旦训练完成,就只能对固定身份执行换脸;要么不能保持target人脸的表情等属性。

    framework

    swap的本质是将target人脸中的身份相关特征替换为source人脸的身份特征,而保留target人脸的属性相关特征。为了使整个模型能够泛化至任意ID(将source人脸的身份特征从decoder中剥离出来),在encoder和decoder之间添加一个ID Injection Module(身份注入模块),将target人脸的身份特征替换为source人脸的身份特征,同时训练时添加损失让网络自行学习身份和属性两种特征的解耦。该IIM模块主要包含两个步骤:特征提取和特征集成。特征提取即使用大规模人脸数据集上的arcface预训练模型提取source人脸的latent ID特征。特征集成使用9个堆叠的ID-blocks将source人脸的ID特征注入到target人脸特征中,ID-block中的BN被替换为Adaptive Instance Normalization(AdaIN),本质上是希望target人脸特征在分布上接近source人脸特征:

    AdaIN

    其中,

    v_S, \mu_S, \sigma_S

    分别代表source人脸的latent ID特征,该特征经过一层全连接层得到的均值和方差。

    由于训练过程中许多不同ID的source人脸都包含在其中,因此decoder的权重与ID无关,仅仅关注从特征重建图像。

    训练过程中提取换脸结果的latent ID特征,计算其与source人脸latent ID特征的距离,最小化该距离。但是仅仅最小化该损失只会生成毫无表情属性的source正脸,因此利用对抗损失(Patch GAN)来提高生成质量。

    此外,为了保留target人脸的属性特征,引入Weak Feature Matching Loss来约束保留人脸的属性信息。原始的Feature Matching Loss(pix2pixHD)表达式为:

    OFML

    D表示判别器,M代表判别器的层数,N表示某一层的分量数量。针对换脸任务,将其改为:

    WFML

    鉴于本任务旨在限制保留target人脸的属性特征,而属性特征通常是高层语义,因而只取判别器的后几层特征计算损失,最小化换脸结果和target人脸的L1范数。

    因此,整体损失为:

    ID Loss:

    ID Loss

    重构损失:

    重构损失

    对抗损失

    弱特征匹配损失(multi-scale discriminator)

    MWFML

    整体损失函数:

    Total Loss

    训练:

    Dataset: VGGFace2,去掉小于250x250的图片,检测对齐到224x224

    人脸识别模型:Arcface from insightfacev2

    Optimizers: Adam

    训一个包含相同ID图片对的batch,再训一个包含不同ID图片对的batch,交替进行

    部分效果展示


    结果展示

    相关文章

      网友评论

          本文标题:SimSwap

          本文链接:https://www.haomeiwen.com/subject/zfhbqrtx.html