AI数字人:换脸模型Faceswap

Faceswap是一种基于深度学习和人脸识别的换脸技术,它使用Encoder-Decoder架构和GAN提升效果。该技术广泛应用于娱乐、艺术创作和影视制作,但也带来隐私和安全问题。文章详细介绍了Faceswap的环境构建、换脸步骤以及如何通过预训练模型进行人脸数据提取和转换。
摘要由CSDN通过智能技术生成

 1 Faceswap介绍

Faceswap利用深度学习算法和人脸识别技术,可以将一个人的面部表情、眼睛、嘴巴等特征从一张照片或视频中提取出来,并将其与另一个人的面部特征进行匹配。

Faceswap在 Encoder-Decoder自编解码架构之上又引入GAN技术,显著提升换脸效果,Encoder-Decoder自编解码换脸:通过将任意扭曲的人脸进行还原,整个过程包含:

  • 获取正常人脸照片
  • 扭曲变换人脸照片
  • Encoder编码向量
  • Decoder解码向量
  • 还原正常人脸照片

总体上,Faceswap换脸主要分为以下三个过程:

  • 人脸检测
  • 特征提取
  • 人脸转换

2 Faceswap的应用场景

Faceswap的应用非常广泛,既可以用于娱乐和艺术创作,也可以用于影视制作和特效产生。下面是Faceswap技术在不同领域的应用示例:

  1. 娱乐和艺术创作:Faceswap可以用于制作有趣的照片和视频,使用户能够将自己的脸部特征与名人、角色或动物等进行交换。这种技术可以用于制作搞笑的图片、制作创意艺术作品或生成有趣的社交媒体内容。

  2. 影视制作:Faceswap在影视制作中扮演着重要的角色。它可以用于数字特效和妆容效果,例如将一个演员的面部特征与替身演员进行交换,使得观众无法察觉到替身的存在。这种技术还可以用于恢复历史上的人物形象,使他们在电影中复活或重新出现。

  3. 隐私保护和安全:Faceswap技术也引发了隐私和安全方面的担忧。它可以被用于欺骗系统,例如通过伪造身份进行非法活动或诈骗。为了应对这些问题,研究人员和开发者也在努力提供相应的解决方案,例如开发检测和对抗Faceswap技术的方法。

 3 Faceswap运行环境构建

3.1 conda环境准备

        conda环境准备详见:annoconda

3.2 运行环境安装

git clone https://github.com/deepfakes/faceswap.git
cd faceswap
conda create -n faceswap python=3.9
conda activate faceswap 
python setup.py
选择的选项如下:
Enable ROCm Support? [y/N] n
Enable AMD Support? [y/N] n
Enable  Docker? [y/N] n
Enable  CUDA? [Y/n] y
Continue? [y/N] y

也可以执行如下命令替代:

Nvidia GPU: pip install -r ./requirements/requirements_nvidia.txt
CPU       : pip install -r ./requirements/requirements_cpu.txt

安装完成后,查看命令列表

python faceswap.py -h


显示如下:
  {extract,train,convert,gui}
    extract             Extract the faces from pictures or a video
    train               Train a model for the two faces A and B
    convert             Convert source pictures or video to a new one with the face swapped
    gui                 Launch the Faceswap Graphical User Interface

optional arguments:
  -h, --help            show this help message and exit

4 Faceswap执行换脸

使用两个视频,名称分别为video1.mp4和video2.mp4,两个视频存放在根目录的src文件夹下,本次执行模型的目标是把video2.mp4中的人脸替换到video1.mp4视频中,命令执行如下:

4.1 预训练模型下载

预训练模型下载:下载地址

下载完成后,移动到faceswap根目录的.fs_cache/文件夹下

也可以选择让程序自动下载,但下载较慢,而且经常会断开

4.2 提取人脸数据(以下方式三选一)

(1)从视频中提取人脸图片
  • 抽取video1.mp4中的人脸,抽取的图片保存到根目录下的./faces/f1目录下,执行命令如下:
python faceswap.py extract -i src/video1.mp4 -o faces/f1/
  •  抽取video2.mp4中的人脸,抽取的图片保存到根目录下的./faces/f2目录下,执行命令如下:
python faceswap.py extract -i src/video2.mp4 -o faces/f2/
(2)从图片中提取人脸图片

p1和p2文件夹中存放这多张携带人脸的图片,分别属于A用户和B用户,命令如下:

python faceswap.py extract -i src/p1 -o faces/f1

python faceswap.py extract -i src/p2 -o faces/f2
(3)通过ffmpeg工具提取人脸数据
ffmpeg -i src/video1.mp4 faces/f1/video1-%d.png

ffmpeg -i src/video2.mp4 faces/f2/video2-%d.png

然后再通过(2)中的命令提取人脸数据

4.3 开启训练

模型文件保存在根目录的f1_to_f2_model目录下

python faceswap.py train -A faces/f1 -B faces/f2 -m f1_to_f2_model/

训练完成后通过ll命令查看如下:

总用量 641232
-rw-r--r-- 1 root root 328305920 6月  29 19:08 original.h5
-rw-r--r-- 1 root root 328305920 6月  29 19:07 original.h5.bk
drwxr-xr-x 3 root root        23 6月  29 17:49 original_logs
-rw-r--r-- 1 root root      2757 6月  29 19:08 original_state.json
-rw-r--r-- 1 root root      2756 6月  29 19:07 original_state.json.bk

4.4 基于训练好的模型进行换脸

(1)基于训练后的模型进行图像转换

python faceswap.py convert -i src/video1.mp4 -o converted/ -m f1_to_f2_model/

(2)将转换后的图像合成视频

ffmpeg -i video1-%6d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4

其中fps与原视频中的fps相同,可以通ffmpeg -i video1.mp4查看

4.5 效果展示

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
在使用faceswap进行换脸时,可能会出现模糊的情况。这个问题可能是由于以下几个原因导致的: 1. 图片质量不佳:如果原始图片的分辨率较低或者存在模糊等问题,那么换脸后的结果也会受到影响。建议使用高质量的图片作为输入,以获得更清晰的换脸效果。 2. 人脸边缘处理不当:在进行脸部融合时,如果没有正确处理人脸边缘,就会导致明显的痕迹。使用faceswap时,可以尝试使用-S参数来使用泊松融合的方式进行脸部融合,这种方式可以产生更自然的融合效果。 3. 训练集筛选问题:在使用deepfake进行训练时,需要对抽取出的人脸进行质量筛选,剔除不属于该人物的人脸、脸部有遮挡物的人脸以及分辨率低的人脸。这样可以确保训练集的纯净度和丰富度,从而提高换脸效果。 总结起来,要改善faceswap换脸模糊的问题,可以尝试使用高质量的输入图片,正确处理人脸边缘并使用泊松融合方式进行脸部融合,以及对训练集进行质量筛选。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用deepfakes时如何让替换的人脸更自然](https://blog.csdn.net/sinat_15706663/article/details/89278464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧医疗探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值