简单介绍SimSwap(类似DeepFaceLab)单张图视频换脸的项目 您所在的位置:网站首页 视频人物换脸视频教程 简单介绍SimSwap(类似DeepFaceLab)单张图视频换脸的项目

简单介绍SimSwap(类似DeepFaceLab)单张图视频换脸的项目

2023-08-27 21:53| 来源: 网络整理| 查看: 265

DeepFaceLab相关文章

一:《简单介绍DeepFaceLab(DeepFake)的使用以及容易被忽略的事项》 二:《继续聊聊DeepFaceLab(DeepFake)不断演进的2.0版本》 三:《如何翻译DeepFaceLab(DeepFake)的交互式合成器》 四:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(一)》 五:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(二)》 六:《友情提示DeepFaceLab(DeepFake)目前与RTX3080和3090的兼容问题》 七:《高效使用DeepFaceLab(DeepFake)提高速度和质量的一些方法》 八:《支持DX12的DeepFaceLab(DeepFake)新版本除了CUDA也可以用A卡啦》

文章目录 (一)关于SimSwap(二)安装SimSwap2.1 克隆代码2.2 安装Anaconda2.3 准备Simswap环境2.4 RTX3000系列显卡的CUDA版本问题 (三)使用SimSwap3.1 简单替换已经脸部对齐的图片3.2 视频换脸 (四)小结

(一)关于SimSwap

💬从DeepFaceLab官网看到一个相关的项目: 【SimSwap】:Swapping face using ONE single photo 一张图免训练换脸。 在这里插入图片描述

感觉很神奇,百度了解到是上海交通大学和腾讯联合研发的一个框架。 知乎上有介绍,论文链接:Arxiv,ACM DOI。 SimSwap的意思就是Simple Swap,简易的换脸。

似乎没有更多的介绍,于是自己试了一下没有那么完美但似乎还挺有意思, 我放了一个自己做的视频到优酷上面,对比了一下原版DFL和SimSwap的区别:

SimSwap对比视频

(二)安装SimSwap

我不确定这个应该叫安装么……

2.1 克隆代码

首先你得安装了git,准备好目录然后:

git clone [email protected]:neuralchen/SimSwap.git

当然也可以通过其他可视化工具来克隆项目代码,比如Sourcetree,TortoiseGit。 记得pull看是否有新代码提交。

项目依赖:

python3.6+pytorch1.5+torchvisionopencvpillownumpyimageiomoviepyinsightface

官方推荐用Anaconda来管理。

2.2 安装Anaconda

Anaconda官网 | The World’s Most Popular Data Science Platform。 是个管理基于Python的开发环境管理平台。主要用于管理和切换多套不同项目环境,主要是解决不同的项目依赖不同版本库的问题。

我下载了Windows的版本:Anaconda3-2021.05-Windows-x86_64.exe。 安装过程就略过吧,懒得写了……

2.3 准备Simswap环境

⭐️打开Anaconda控制台,按照官方写的步骤:

conda create -n simswap python=3.6 #创建名为simwap的环境 conda activate simswap #激活这个环境 conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch (option): pip install --ignore-installed imageio pip install insightface==0.2.1 onnxruntime moviepy

⚠️:使用conda或pip安装时可能会很慢或者失败,请多试几次,或者在更好的网络条件时进行,必要时可以手动用迅雷下载一些实在难以下载的文件……emmm…… 😨

⭐️然后需要下载和放置一些预训练的模型:

1)项目使用了insightface 来做脸部识别和对其,进行图像预处理。 需要下载antelope.zip文件解压到./insightface_func/models 目录中,微软网盘。 不要使用其他版本的 insightface 。 更新:应大家要求我也放这里了。

2)项目使用face-parsing.PyTorch进行脸部解析和图像后期处理。 需要下载79999_iter.pth文件到 ./parsing_model/checkpoint 目录中,谷歌网盘。 谷歌咱难以下载,所以我传了一份文件到这里了。

3)还需要两个预训练模型: 拷贝 arcface_checkpoint.tar 到 ./arcface_model 中。 解压 checkpoints.zip 到项目的根目录中 ./ 谷歌网盘 或者 百度网盘,密码: jd2v

PS:前面提到的./目录也就是根目录,就是你克隆下来的项目目录,最终目录结构大概如下: 在这里插入图片描述

2.4 RTX3000系列显卡的CUDA版本问题

如果你有个新30系列显卡,那么按前面的步骤完成后,执行命令时会报CUDA版本错误。 那么重新执行一下前面的句,关于cuda和pytorch的安装语句,小改如下:

conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge

顺便提一句,可以通过Nvidia控制面板->系统信息->组件查看你的显卡的CUDA版本。 在这里插入图片描述

(三)使用SimSwap

官方给了一些例子如下。 PS:执行命令前,别忘了用Anaconda控制台,并且激活simswap配置,不要在base下就执行命令。

conda activate simswap

确认是在simswap环境配置下,而不是在base下,进入克隆下来的目录,执行代码。

3.1 简单替换已经脸部对齐的图片 (simswap) C:\SimSwap>python test_one_image.py --isTrain false --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path crop_224/6.jpg --pic_b_path crop_224/ds.jpg --output_path output/

上面的命令,将莱昂纳多的脸,换到了发哥的头上。 是官方的例子,当然自己执行也一样效果。

在这里插入图片描述

3.2 视频换脸

只换一张脸 (the one with highest confidence by face detection).

(simswap) C:\SimSwap>python test_video_swapsingle.py --isTrain false --use_mask --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --video_path ./demo_file/multi_people_1080p.mp4 --output_path ./output/multi_test_swapsingle.mp4 --temp_path ./temp_results

换视频中所有的脸(非常诡异的效果)

(simswap) C:\SimSwap>python test_video_swapmulti.py --isTrain false --use_mask --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --video_path ./demo_file/multi_people_1080p.mp4 --output_path ./output/multi_test_swapmulti.mp4 --temp_path ./temp_results

在这里插入图片描述 等进度条走完,基本上就完成了。

还可以多种方式,指定脸换脸,去掉logo等,请看原文吧。 大概效果和官方的介绍是一样的。 在这里插入图片描述

(四)小结

的确很神奇,大幅度转动头部都可以……

最困难的部分居然是下载那些预训练模型文件(什么是谷歌网盘?微软也不行啊)。 用conda安装各种组件也慢得离谱,经常超时出错,呵呵呵,多试几次就习惯了。

没有Deepfacelab效果那么好,不过速度很快…… 没有训练过程嘛。

和DeepFaceLab相比较,效果不佳大概有两方面原因:

😕仅仅替换了五官而不是整个脸部。😯用到的脸部训练数据大抵也许似乎都是欧美人的数据,不适合咱亚洲人的脸型。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有