音频视频aiai换脸热门ai项目

FaceSwap

FaceSwap,Face Swap视频AI换脸工具软件

标签:
爱站权重:PC 百度权重移动 百度移动权重

FaceSwap官网,Face Swap视频AI换脸工具软件

什么是FaceSwap?

FaceSwap是目前GitHub上开源的使用比较多的AI换脸工具,要求NVIDIA显卡CUDA计算能力在3.5以上;目前手里的RTX3080计算能力是8.6。Swapface AI工具是一个轻量级、超现实且实时的视频换脸的黑科技工具。

FaceSwap官网: https://faceswap.dev/

安装包下载地址: https://github.com/deepfakes/faceswap/releases

FaceSwap

FaceSwap怎么样?

它使用先进的人工智能和计算机视觉技术,可以在几秒内为你的视频生成逼真的面部替换效果。无需任何复杂的参数设置,你只需要上传视频和照片,点击一下按钮,Swapface AI工具就可以自动检测面部特征并将其映射到视频中。
目前仅支持win系统,后续有mac会及时更新。下载包有使用教程,大家有兴趣自行下载观看就可以了。

Swapface 生成的面部替换效果超级逼真和自然。它使用的人工智能与计算机视觉技术可以高精度检测面部特征并映射,创建高度精确的面部变形效果。这可以为你的作品带来剧院级的视觉体验。

FaceSwap 可以通过一张照片,创建三维人脸模型,然后再用这个3D模型,逼近现实中摄像头前面的人脸。其结果就是,三维人脸随着实验者的移动以及表情的变化而移动或变化。

整个过程的核心是根据照片形成3D人脸模型。主要用到了Candide3的3维人脸模型,DLib库的人脸二维特征点检测,和OpenGL的一些绘制方法

FaceSwap是目前GitHub上开源的使用比较多的AI换脸工具,要求NVIDIA显卡CUDA计算能力在3.5以上;目前手里的RTX3080计算能力是8.6。

下载安装包

  • https://github.com/deepfakes/faceswap/releases
$ wget https://github.com/deepfakes/faceswap/releases/download/v2.0.0/faceswap_setup_x64.exe

这个安装程序可以包办一切,如果安装失败则多尝试几次,可能是网络不顺畅导致的。

但也可以手动分步骤安装:

  • 安装Git
  • 安装Miniconda3
  • 创建Python3.10.6虚拟环境
  • 安装faceswap源码并安装
$ git clone https://github.com/deepfakes/faceswap.git
$ cd faceswap/

$ conda activate faceswap

$ pip3 install -r requirements/requirements_cpu.txt 
$ pip3 install -r requirements/requirements_amd.txt 
$ pip3 install -r requirements/requirements_nvidia.txt 

$ python faceswap.py -h
$ python faceswap.py gui # GUI方式

使用方法

它工作大致分为四个步骤:

  • 收集素材:包括图片和视频
  • 提取(Extraction):对素材进行人脸提取作为训练集
  • 训练(Training):根据提取的人脸进行训练
  • 转换(Convert):根据训练模型结果完成替换

可以通过命令行操作,也可以通过GUI操作,建议使用GUI。

提取(Extract)

准备几个目录:

  • src/video1.mp4: 用于被换脸的原始视频
  • src-extract/: 提取的原始人脸图片文件
  • dst/video2.mp4:用于换脸的替换视频
  • dst-extract/:用于替换人脸的替换图片文件
  • model/: 训练模型保存目录
  • result/: 转换结果保存目录
$ python faceswap.py extract -i ./src/video1.mp4 -o ./src-extract
$ python faceswap.py extract -i ./dst/video1.mp4 -o ./dst-extract

提取后的结果,不但会有大量根据每帧导出的人脸图片文件,还会有一个.fsa对齐文件,这个对齐文件记录了每个人脸信息在原始视频中的帧对应位置信息。

但刚才只是初步提取人脸,还需要人工参与进来进行微调,比如原始视频里面出现多个人脸,但我们只想替换某个人,那么:

  • 在GUI中的【Tools】选择【Sort】对人脸进行排序,因为图片文件可能很多,排序后删除不需要的人脸图片文件,保留在1000~10000个图片文件比较好
  • 在GUI中的【Tool】选择【Alignment】根据清理后的人脸图片文件来自动清理对齐文件,因为我们最终转换的时候是通过对齐文件对原始视频转换的

这样处理后,我们的人脸图片文件目录和对齐文件里面都应该是我们确实准备用来训练进行替换的信息了,但如果想要更好的替换效果,还需要人工介入:

  • 在GUI中【Tools】选择【Manual】根据原始视频和对齐文件,挨帧进行脸部信息微调,对某些自动人脸识别不到位的地方调整,保存对齐文件
  • 在删除之前生成的提取人脸图片文件,重新根据对齐文件再次提取出人脸图片文件,这就是最终的训练集图片文件了

对原始视频、目标替换视频两个都做同样的操作,目的是拿到我们满意的人脸图片文件,用于训练。

训练(Train)

$ python faceswap.py train -A ./src-extract -B ./dst-extract -m ./model/

这个过程可能会很久,在GUI中可以通过预览图片看到替换后的效果进行评估,当训练到缺失值(Loss)小于0.02时,效果已经比较好了,可以随时停止和再次启动训练,这个过程是可以反复进行的。

转换(Convert)

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

因为默认原始视频的对齐文件和它在同一个目录下,它会自动寻找这个对齐文件,然后根据训练的模型结果对原始视频进行替换,得到转换后的视频。

  • 视频转为图片与合成(ffmpeg):
$ python tools.py effmpeg -h
$ ffmpeg -i src/video.mp4 src-extract/video-frame-%d.png 
$ ffmpeg -i video-frame-%0d.png -c:v libx264 -vf "fps=25,format=yuv420p" src.mp4

在GUI中进行转换的时候选择effmpeg就自动完成视频的合成。

转载自这里:

https://mp.weixin.qq.com/s/Kh4roFAq5uOAw4VJRceDLQ

相关导航

暂无评论

暂无评论...