| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 换脸论文----《SimSwap An Efficient Framework For High Fidelity Face Swapping》解析 -> 正文阅读 |
|
[人工智能]换脸论文----《SimSwap An Efficient Framework For High Fidelity Face Swapping》解析 |
ABSTRACT:提出了新的换脸模型,Simple Swap(SimSwap),可以融合任意的source face跟target face,并且保存source face的身份及target face的属性特征。模型克服了以往模型的缺陷,通过两个创新点,1,提出了ID Injection Module(IIM)模块,通过这个模块,将针对特定的source face的框架扩展到适用任意的source face。2,提出了Weak Feature Matching Loss损失函数,他能帮助我们模型更好的隐性保留面部属性特征。 1 INTRODUCTION:face swapping主要分为两种方法,包括在图像级别上处理source face的source-oriented方法和在特征级别上处理target face的target-oriented方法。source-oriented方法是将target face的属性(表情和姿态)转移到source face,并将source face映射到target face上,这个方法对source face的姿态和光照都比较敏感,并且难以复现target face的表情。target-oriented直接修改目标图像的特征,能够很好地适应source face的变化。基于gan的方法是在特征级别上对source face的身份特征及target face的属性特征进行融合,并能适应任何source face。最近采用了两阶段框架,并取得了高保真度的结果。然而,这些方法过于注重身份的迁移。它们在属性保存上应用了弱约束,导致经常遇到表情或姿态不匹配的问题(不理解的话可以继续往下看详解)。 为了解决泛化跟属性保留问题,提出了高效的SimSwap。分析了针对特定身份特征的算法(类似deepfake算法),发现是由于将身份信息融合进解码器,导致缺乏泛化能力,为了解决这个问题,提出了IIM模块,通过使用source face的身份信息对target image的特征层面上做修改,从而解耦了身份信息跟解码器的权重,因此可以应用于任意身份。此外,身份和属性信息在特征级高度耦合。直接对整个特征进行修改,会导致属性的表现能力下降,因此需要使用loss减缓这种影响。如果使用强约束,针对每个result image的属性去匹配target image,这会比较难以处理。因此提出了Weak Feature Matching Loss,弱特征匹配损失函数使生成的结果与输入目标在高语义水平上保持一致,并隐式地帮助我们的体系结构保持目标的属性。(不理解的继续往下看对应详解) 2 RELATED WORK:Source-oriented Methods,早期方法是使用3d模型转换source face的姿势和光照,从需要人工干预,到自动转换,再到泛化到任何source face,但由于3d数据集的表情数据有限,导致生成的表情精度不理想。于是便提出了二阶段的FSGAN,第一阶段先进行姿势表情的生成,第二阶段再将生成的face映射到target image。但Source-oriented方法有个缺点,就是对source image敏感,如果source face的表情或者姿势过于夸张,那将会导致不理想的结果。 Target-oriented Methods,提出了DeepFakes,只要经过训练,便可以特定的两张人脸进行换脸,IPGAN通过提取source face的身份向量跟target face的属性向量,传递到解码器实现换脸,虽然在source face的身份保存中,效果很好,但对于target face的姿势,表情,却并不理想。最顶级的两阶段模型FaceShifter,效果很好,但由于对属性的弱约束,往往导致表情的不匹配。 3 METHOD3.1 Limitation of the DeepFakesDeepFakes包括两部分,一个共同的编码器Enc和两个特定身份的解码器Decs和Dect,在训练阶段,Enc-Decs输入扭曲的source image并将其复原,Enc-Dect输入扭曲的target image并将其复原。在测试阶段,target image会被输入Enc-Decs中,并被Enc-Decs误以为扭曲的souce image并将其生成具有source image身份信息和target image属性的新image。 其中,Enc用于提取身份信息及特征,而Decs则设法将特征合成具有source image身份信息的新image,而source image的身份信息被整合在了Decs的权重中,因此,Deepfake只适用于特定人物。 3.2 Generalization to Arbitrary Identity为了克服上述问题,于是要设法将身份信息从解码器中分离出来,于是在编码器与解码器之间,插入一个ID Injection Module,结构如下图。 为了将source face变换成target face,并保存source face的身份信息及target face的属性,于是,通过编码器提取target face的特征向量(包括了身份信息和属性信息),然后直接将其全部传递给IIM模块,同时传入source face的身份特征,由训练损失去学习修改特征向量,将其target face的身份信息修改为source face 的身份信息。 IIM模块包括两部分,第一部分是source face的身份特征提取,采用的是一个人脸识别网络进行特征提取。第二部分是特征嵌入,使用的是ID-Blocks将source face的身份信息注入特征向量中,ID-Blocks是对残差模块的改进,将其BN层修改为Adaptive Instance Normalization(AdaIN)(这个没记错的话是styleGanV2里面用到),公式如下: ?其中𝜇(𝐹𝑒𝑎) and 𝜎(𝐹𝑒𝑎)分别是输入向量Fea分通道channel-wish的均值和标准差,而𝜎S 和𝜇S是vS经过全连接层生成的变量。其中总共有9个ID-Blocks。 经过IIM模块,再将输出特征向量输入解码器,生成新的图片IR。 训练过程中,提取IR的身份向量vR,并使用身份损失函数计算vR跟vS,为了避免生成图片丧失target的属性特征,于是便加了对抗性损失,并能很好的提高图片质量,其中鉴别器使用的是patchGAN。 3.3 Preserving the Attributes of the Target由于在IIM模块中,我们是对target face提取的向量进行修改,所以特征向量中提取的属性特征也很容易受到影响,于是需要通过损失函数来约束,防止target face的属性特征受到影响,然而,如果要强制约束每个属性都不受影响,那么需要对每个特征都单独训练一个网络,这是不切实际的,于是提出了Weak Feature Matching Loss。 Feature Matching的想法来源于pix2pixHD,它使用判别器分别提取生成的图片和真实图片的多层特征,损失函数如下: ?D为鉴别器,M为特征层数,Ni为第i层特征的元素个数,Ir为生成的图片,IGT为真实的图片。 在我们模型中,使用target image代替真实图片,并只使用后面少数几层的特征层进行计算。公式如下: ?对于原来的Feature Matching损失函数,Weak Feature Matching区别在于只取后面几层的特征层,原因在于,在浅层特征,往往包含的是像素级别的信息,如纹理,如果加入,会使生成的图片趋向于target image,而难于学习source image的身份信息,于是只提取包含语义信息的深层特征。 3.4 Overall Loss Function损失函数包含五个部分,Identity Loss,Reconstruction Loss, Adversarial Loss, Gradient Penalty 和 Weak Feature Matching Loss。 Identity Loss,计算vR和vS的距离,公式如下: ? Reconstruction Loss(这个类似FaceShifter里面提到),如果source face跟target face是同个人,那么生成的图片应该与target image一致,公式如下,如果source face跟target face不是同一个人,则下面损失值为0. ? ?Adversarial Loss and Gradient Penalty,对抗损失采用的是Hinge版本,使用的是多尺寸的判别器,对于大角度的姿势有更好的效果表现,并使用了梯度惩罚项防止梯度损失。 Weak Feature Matching Loss,由于使用的是多尺度的判别器,于是Feature Matching Loss也应该在所有判别器上做计算,公式如下: ?最终公式如下: ? 4 EXPERIMENTSImplementation Detail,使用VGGFace2数据集,为了保证图片质量,去除了小于250*250的图片,并将其统一缩放到224*224,并使用了与训练好的Arcface模型。 4.1 Qualitative Face Swapping Results4.2 Comparison with Other Methods?可以看出,deepfakes生成的的光照,姿势并不匹配,而FaceShifter生成的脸的表情和注视方向不完全符合目标脸的表情和注视方向。 Additional Comparison with FaceShifter,更多的比较结果如下图: ?faceshiffter具有很强的身份修改能力,然而,它过于关注身份部分,往往无法保持表情和注视方向等属性。如第二行中的结果。 4.3 Analysis of SimSwap使用消融实验去验证换脸中,对人物身份特征与人物属性保持平衡的表现能力。 Efficient Id Embedding,随机从Forensics++中在每一张人脸中随机抽选十帧,使用另外一个人脸识别网络去提取生成的frame跟original frame的特征向量。对于生成的每一frame,在原来的frames中去寻找最相似的人脸,来判断是否为用于合成的original frame,这个正确率称为ID retrieval,可以用于衡量身份信息注入的表现能力。并且使用pose estimator对合成的frame和original frame的姿势进行L2距离计算。 为了进一步比较,训练另外2个网络,叫做SimSwap-oFM使用了原始的Feature Matching,和SimSwap-nFM没有使用Feature Matching。对这两个网络进行了相同的定量实验。对比结果见。 可以看出,SimSwap-oFM具有较小的ID retrieval,因为正如上文分析,采用了浅层特征,使身份信息难以注入。而SimSwap-nFM有很接近FaceShifter的ID retrieval准确率,SimSwap对比FaceShifter在身分信息保存略弱,但在属性信息的表现更优。 Keeping a Balance between Identity and Attribute,在我们的框架中,有两种方法来调整身份和属性之间的平衡,第一种,通过修改𝜆ID的权重,第二种。就是通过修改在Feature Matching Loss选择的层数。 我们又训练了四个网络,SimSwap-𝑤𝐹𝑀,SimSwap-oFM-FM-,SimSwap-oFM-id+和SimSwap-wFM-id+,对于wFM,在原始Feature Matching中,保持前几层,但去掉最后的几层特征。对于oFM-FM-,保持原始的Feature Matching,但将𝜆𝑜𝐹𝑀减小的5。对于oFM-id+,则保持原始的Feature Matching,但将𝜆𝑜𝐹𝑀增加到20。对于wFM-id+,使用Weak Featture Matching Loss并将 𝜆𝐼𝑑提高到20,实验结果如下图: ? 可以看到,第三四列结果相似,可以得出,提高𝜆𝐼𝑑对结果的影响是有限的,nFM也有更好的身份属性,但也渐渐失去了属性信息,比如眼神方向偏离。 5 CONCLUSION? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 10:40:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |