AI换脸与虚拟摄像机

分享一款开源的AI换脸项目,结合OBS的“虚拟摄像机”功能,可以实现直播、视频聊天等实时换脸能力。

免责声明

本教程仅用于教育和研究目的,旨在介绍AI换脸技术的操作方法。我们强烈反对任何滥用AI换脸技术的行为,尤其是将其用于侵犯他人隐私、名誉、肖像权或任何其他形式的非法或不道德用途。

使用AI换脸技术可能涉及到侵犯个人隐私和其他法律问题。我们提醒用户在使用本教程中的技术时,务必遵守所在国家和地区的相关法律法规,确保获得相关人员的明确同意和授权。对于因滥用AI换脸技术而导致的任何法律责任或争议,本教程的编写者及发布者概不承担任何责任。

请用户谨慎使用本教程中的信息,尊重他人的权利和隐私,共同维护一个健康和谐的网络环境。

效果展示

demo

demo

demo

开始

0、基础依赖

  • git

管理代码的,用于管理代码仓库以及克隆项目。 官方下载地址

  • PyCharm

看代码的以及能帮助你运行代码的。(Python) 官方下载地址

1、下载项目

项目地址: Deep-Live-Cam

1
git clone https://github.com/hacksider/Deep-Live-Cam.git

2、配置环境

项目中已经明确说明了运行环境所需依赖,我在这里在补充一下。

  • python3.10

项目中推荐用3.10,虽然最新版本以经到了3.13,但是建议还是听从建议,就用3.10。
官方下载地址

  • pip

pip是一个以Python计算机程序语言写成的软件包管理系统,他可以安装和管理软件包,
如果是从官方下载安装的python,默认安装会自动安装pip,无需额外下载。

  • ffmpeg

简单来说就是用于处理音视频的。
官方下载地址

  • visual studio 2022 runtimes (windows)

Microsoft C++ 生成工具 官方下载地址

这本身是一个安装工具,我们需要安装的是
Microsoft C++ 生成工具

3、Download Models

下载下面两个模块,下载完成后拷贝到项目的”models“ 文件夹中。

  1. GFPGANv1.4
  2. inswapper_128_fp16.onnx (Note: Use this replacement version if an issue occurs on your computer)

4、打开项目&配置依赖

完成上面操作之后,用pycharm打开下载好的项目,第一次使用需要设置Python环境。
完成之后安装依赖包。

1
pip install -r requirements.txt

5、运行

1
python run.py

到这里,几乎成功了一大半了,现在项目可以跑起来了,但是没有使用GPU,会很卡。

6、GPU加速

以N卡为例:

  • 安装 CUDA Toolkit 11.8

CUDA(Compute Unified Devices Architectured,统一计算架构)是由英伟达NVIDIA所推出的一种软硬件集成技术,是该公司对于GPGPU的正式名称。透过这个技术,用户可利用NVIDIA的GPU进行图像处理之外的运算,亦是首次可以利用GPU作为C-编译器的开发环境。
官方下载地址

  • 安装 NVIDIA cuDNN

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。

注意对应上面的CUDA版本,cuDNN下载完成是一个压缩包,没有安装工具,解压后覆盖到上面的CUDA安装地址即可。
官方下载地址

都安装完成后,重新安装下面依赖

1
2
pip uninstall onnxruntime onnxruntime-gpu
pip install onnxruntime-gpu==1.16.3

使用下面命令运行项目

1
python run.py --execution-provider cuda

其他系统或显卡的使用方法就不详细说明了,项目作者的文档中都有,可以自行查阅。

运行项目

图片换脸

1、点击Select a face选择一张要换的脸

2、点击Select a target选择目标

3、点击Start进行换脸

输入

swap_face

效果图

output

实时换脸

1、点击Select a face选择一张脸

2、点击live会使用摄像头实时换脸

instruction
demo

虚拟摄像机

  • OBS

Open Broadcaster Software(OBS)是由OBS Project开发的自由开源跨平台流媒体和录影程序。
我们使用OBS来做虚拟摄像机。 官方下载地址

添加场景&来源

OBS

OBS默认会有一个场景,如果没有则点击 + 添加一个场景,然后再来源处点击 +选择窗口采集-> 新建 -> 确定,选择窗口,然后再 确定

注意:在采集之前要打开上面的项目,以便能够采集到窗口。

然后你可以自由的在OBS面板上进行拉伸控制窗口大小以及位置了,以上都完成后点击启用虚拟摄像机

应用

  • 直接修改视频源

以腾讯会议为例,可以在设置中修改摄像头,选择 OBS Virtual Camera,这样视频时对方看到的就是你虚拟摄像头的内容了,大多数程序都可以这么修改。

v_OBS

  • 微信

微信比较特殊,不支持修改摄像头,通常有两种做法,一就是通过修改注册表,把我们的虚拟摄像头改成系统默认的摄像头,骗过微信。另一种方法就是使用低版本的微信(方法来源)。

点击OBS右下角的设置,选择视频,修改视频(缩放)分辨率640x480,完成后点击右下角的确定应用

obs_setting

安装低版本的微信,我这里选择的是3.9.0.28版本,下载地址

以上完成后选择点击启用虚拟摄像机,微信视频时如果看不到画面点击一下切换摄像头

  • 本地效果
    vx_live

  • 对方效果

phone_live

END

  • 如果觉得这个项目环境搭建起来困难,可以选择使用另一个开源的项目DeepFaceLive,DeepFaceLive提供了exe安装包,并将环境做了完整的打包,无需安装Python及GPU运行环境,DeepFaceLive具体使用教程可以自行去网络搜索,教程非常多。