使用deepfakes时如何让替换的人脸更自然

1-deepfakes介绍

最近突然很火的换脸视频是一种利用深度学习手段来做到面部替换的功能。
项目地址:https://github.com/deepfakes/faceswap
原版项目使用教程:https://github.com/deepfakes/faceswap/blob/master/USAGE.md
详细的原理介绍及使用教程:https://blog.csdn.net/weixin_41965898/article/details/84930788
所以本文并不介绍如何使用,仅介绍deepfake在使用上的一些问题和技巧。

2-效果图

使用deepfakes时如何让替换的人脸更自然_第1张图片

3-deepfakes的不足及提升技巧

事实上,使用deepfake做人脸替换并不成熟,网上可以看到的效果图都是从很多的效果图当中挑选了最好的几张,或者是故意压制成较低分辨率,从而让人忽略掉不自然的地方。从目前的使用来看,deepfake还有很多不足之处,使用过后可能会发现如脸部边缘明显,人物不眨眼,除了正脸以外的角度替换不自然等问题。这些问题可以通过一些技巧来改善,但并不能彻底解决。
如果想要将人物A很自然地转为人物B,下面的技巧可以帮助你提升效果。

3-1 尽量使用高清的单人视频做为人物B的图片来源

因为B人物是你想要转换成功的目标,B的素材必须非常丰富才能得到比较好的效果,素材丰富是指必须包含:
1、各种角度的面部图片
2、各种表情的面部图片
3、各种眼部状态的图片,如睁眼、闭眼、半睁眼等
如果你使用收集的图片作为人物B的训练材料,即使你收集的再多,在素材丰富度上必然存在问题,而直接使用视频则可以获取丰富度很高的图片集。而人物A的素材要求则相对较低。也即是说,人物B的素材分辨率一定要高于人物A的素材分辨率才能获得较好的效果

3-2 对抽取的人脸做质量筛选

deepfake是需要先分别抽取出A和B图片中的人脸,再使用人脸图片进行训练,因此再抽取完人脸后,一定要对抽取出的人脸质量做筛选,筛选标准如下:
1、不属于该人物的人脸剔除
2、脸部有遮挡物的剔除
3、分辨率低的人脸剔除
这样就同时保证了训练集的纯净度和丰富度
使用deepfakes时如何让替换的人脸更自然_第2张图片

3-3 训练好模型后,在做图片转换时,加入-S参数

转换的命令是
python faceswap.py convert
但是默认的融合方式融合出来的结果并不自然,脸部边缘有明显痕迹,加入-S参数表示使用泊松融合的方式进行脸部融合,融合效果要优于默认参数,具体的说明可以输入python faceswap.py convert -h来获取。

后话

当然了,尽可能多地去迭代模型,让损失降到足够低,也是可以提升效果的,但是前提是你得有足够好的GPU或者极大的耐心。
在这里插入图片描述

你可能感兴趣的:(使用教程,deepfake,faceswap,AI换脸,替换人脸,技巧)