如何使用Deep Live Cam工具进行实时换脸?

如何使用Deep Live Cam工具进行实时换脸?

Deepfake 和换脸技术在日常数字内容中越来越常见。Deep Live Cam 是一款开源工具,只需使用一张图片,就能进行实时人脸互换并制作 Deepfake 视频。该工具的设计简单易用,可提供保持面部表情、光线和头部运动的自然效果。它支持多种硬件,对内容创作者、教育工作者和从事视觉媒体工作的开发人员非常有用。在本文章中,我将探讨 Deep Live Cam 的工作原理、如何设置它,以及在负责任地使用实时换脸工具时应注意的事项。

什么是Deep Live Cam?

Deep Live Cam 是一款基于人工智能的应用程序,可在实时视频源上实现实时换脸,并支持一键生成 Deepfake视频。它使用机器学习模型将一个人的脸映射到另一个人的脸上,同时保留自然的表情、光线和角度。该工具设计简单,只需一张源图像即可生成逼真的效果。

主要功能

  • 实时换脸:在视频源上快速更换人脸,将延迟降到最低。
  • 轻松深度伪造:只需一张图片,即可轻松生成深度伪造视频。
  • 可在多种系统上运行:可在 CPU、NVIDIA CUDA 和 Apple Silicon 硬件上运行。
  • 更佳画质:使用 GFPGAN 等模型使交换后的人脸看起来更真实。这增强了实时换脸的视觉效果。
  • 安全措施:包括检查以阻止使用不良内容。这支持法律和道德标准。

Deep Live Cam的内部工作原理是什么?

Deep Live Cam 使用几个关键的人工智能模型。这些模型为实时换脸功能提供动力:

  • inswapper:InsightFace开发了这个模型。它在数百万张面部图像上进行训练。该模型可从二维图像中推断出三维面部结构。它将身份特征与姿势特征分离开来。这样就能顺利进行面部替换。
  • GFPGAN:换脸后,GFPGAN 可提高图像质量。它可以完善细节并纠正图像错误。这一过程可确保生成的深度伪造视频具有逼真的外观。

Deep Live Cam 支持各种硬件。其中包括 CPU、英伟达 CUDA 和苹果 Silicon。软件采用模块化设计。这种结构便于更新。一旦出现新模型,即可添加。

入门:安装和设置

本节将指导您安装 Deep Live Cam。请仔细按照这些步骤进行安装,以便成功安装。正确安装可为实时人脸交换和深度伪造视频生成做好准备。

安装Python 3.10

Deep Live Cam 建议使用 Python 3.10 版本。较新版本(如 3.12 或 3.13)可能会导致错误。如果使用比 3.10 更新的 Python 版本,可能会出现以下错误: ModuleNotFoundError: 没有名为 ‘distutils’ 的模块。出现此错误的原因是 distutils 并不是较新 Python 版本的一部分。使用 Python 3.10 可以避免这种情况。

点击此处访问 Python 官方发布页面。

安装FFmpeg

Deep Live Cam 的视频处理由 FFmpeg 处理。

下载 FFmpeg:我们在 Linux 上运行此系统,因此

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Make a directory in your home for FFmpeg
mkdir -p ~/apps/ffmpeg && cd ~/apps/ffmpeg
# Download a static build of FFmpeg for Linux
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
# Extract it
tar -xf ffmpeg-release-amd64-static.tar.xz
# Enter the extracted directory
cd ffmpeg-*-amd64-static
# Test it
ffmpeg -version
# Make a directory in your home for FFmpeg mkdir -p ~/apps/ffmpeg && cd ~/apps/ffmpeg # Download a static build of FFmpeg for Linux wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz # Extract it tar -xf ffmpeg-release-amd64-static.tar.xz # Enter the extracted directory cd ffmpeg-*-amd64-static # Test it ffmpeg -version
# Make a directory in your home for FFmpeg
mkdir -p ~/apps/ffmpeg && cd ~/apps/ffmpeg
# Download a static build of FFmpeg for Linux
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
# Extract it
tar -xf ffmpeg-release-amd64-static.tar.xz
# Enter the extracted directory
cd ffmpeg-*-amd64-static
# Test it
ffmpeg -version

它会打印出你安装的 ffmpeg 版本。现在在路径中添加 ffmpeg:

在路径中添加 ffmpeg

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
export PATH="$HOME/apps/ffmpeg/ffmpeg-*-amd64-static:$PATH"
export PATH="$HOME/apps/ffmpeg/ffmpeg-*-amd64-static:$PATH"
export PATH="$HOME/apps/ffmpeg/ffmpeg-*-amd64-static:$PATH"

克隆Deep Live Cam代码库

接下来,获取 Deep Live Cam 项目文件。

用 Git 克隆: 打开终端或命令提示符。使用 cd your\desired\path 导航到所需目录。然后运行

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git clone https://github.com/hacksider/Deep-Live-Cam.git
git clone https://github.com/hacksider/Deep-Live-Cam.git
git clone https://github.com/hacksider/Deep-Live-Cam.git

终端将显示克隆进度。现在使用:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cd Deep-Live-Cam
cd Deep-Live-Cam
cd Deep-Live-Cam

下载人工智能模型

Deep Live Cam 需要特定的 AI 模型才能运行。

1. 下载这两个模型文件:

2. 将下载的两个文件放到 Deep-Live-Cam 项目目录下的“models”文件夹中:

“models”文件夹

使用venv安装依赖项

建议使用虚拟环境 (venv)。venv 是一个 Python 工具。它能创建隔离的 Python 环境。这可以防止项目之间的软件包冲突。每个项目都可以有自己的软件包版本。它能保持主要 Python 安装的整洁。

创建虚拟环境 在 Deep-Live-Cam 根目录下打开终端。运行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python -m venv deepcam
python -m venv deepcam
python -m venv deepcam

如果有多个 Python 版本,请使用完整路径指定 Python 3.10:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/path/to/your/python3.10 -m venv deepcam
/path/to/your/python3.10 -m venv deepcam
/path/to/your/python3.10 -m venv deepcam

1. 激活虚拟环境:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
On macOS/Linux
source deepcam/bin/activate
On macOS/Linux source deepcam/bin/activate
On macOS/Linux
source deepcam/bin/activate

2. 现在,命令行提示符开头应显示 (deepcam):

安装所需软件包: 启动虚拟环境后,运行

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip install -r requirements.txt
pip install -r requirements.txt
pip install -r requirements.txt

运行此过程可能需要几分钟,它将下载应用程序所需的所有库。

运行应用程序(CPU初始运行)

安装完成后,就可以运行程序了。

在终端中执行以下命令(确保 venv 处于活动状态):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python run.py
python run.py
python run.py

注意:首次运行时,程序会下载额外的模型文件(约 300MB)。

现在,您的 Deep Live Cam 应该可以在 CPU 上运行了:

CPU初始运行

测试Deep Live Cam

上传源面部和目标面部,然后点击“Start”,它就会开始将你的面部从源图像切换到目标图像。

上传源面部和目标面部

输出:

Deep Live Cam换脸测试

我们可以看到,该模型运行良好,为我们提供了很好的输出结果。

测试实时功能

要测试实时功能,请选择一个人脸,然后从可用选项中点击 Live。

要测试实时功能,请选择一个人脸

输出:

测试实时换脸

实时功能中的模型输出也值得称赞,尽管由于后台计算耗资巨大,camara 时刻非常低。

最终效果

我们还注意到,在使用眼镜时,模型的精确度并没有降低。即使有任何物体挡在脸部和摄像头之间,它也能交换脸部。

使用GPU加速(可选)

如果您的硬件支持 GPU 加速,您可以使用它来获得更快的性能。

Nvidia CUDA 加速

安装 CUDA 工具包:确保已从 NVIDIA 网站安装 CUDA 工具包 11.8。

安装依赖项:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip uninstall onnxruntime onnxruntime-gpu
pip install onnxruntime-gpu==1.16.3
pip uninstall onnxruntime onnxruntime-gpu pip install onnxruntime-gpu==1.16.3
pip uninstall onnxruntime onnxruntime-gpu
pip install onnxruntime-gpu==1.16.3

使用 CUDA 运行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python run.py --execution-provider cuda
python run.py --execution-provider cuda
python run.py --execution-provider cuda

如果程序窗口打开时没有错误,说明 CUDA 加速正在运行。

如何使用Deep Live Cam?

执行 python run.py 启动应用程序窗口。

  • 视频/图像换脸模式:
    • 选择源人脸图像(要使用的人脸)。
    • 选择目标图像或视频(人脸将被替换的地方)。
    • 选择输出目录。
    • 点击“Start”。
    • 帧将被处理并保存在所选输出位置的子目录中。处理完成后会出现最终视频。
  • 网络摄像头模式:
    • 选择源人脸图像。
    • 点击“Live”。
    • 等待几秒钟(一般为 10 至 30 秒),预览窗口就会出现。
    • 面部增强器: 该选项可提高图像清晰度。如果硬件性能不足,可能会导致视频不流畅。

故障排除

面部区域显示黑色块?如果遇到此问题,请在激活的 venv 环境中尝试执行以下命令:

面部区域显示黑色块

针对 Nvidia GPU 用户:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip uninstall onnxruntime onnxruntime-gpu
pip install onnxruntime-gpu==1.16.
pip uninstall onnxruntime onnxruntime-gpu pip install onnxruntime-gpu==1.16.
pip uninstall onnxruntime onnxruntime-gpu
pip install onnxruntime-gpu==1.16.

然后,再次尝试运行程序:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python run.py
python run.py
python run.py

一键Deepfake

  1. 选择源照片: 选择一张清晰的人脸照片。高分辨率图片最适合实时换脸。
  2. 选择目标视频: 选择一段视频或使用网络摄像头。换脸将在这里进行。
  3. 设置选项: 调整设置以匹配你的电脑硬件。这包括帧处理选项和输出路径。
  4. 开始换脸 点击“Start”按钮。此操作将开始 deepfake 视频生成过程。
  5. 观察和调整: 在屏幕上查看实时结果。必要时更改设置,以获得良好的结果。

我使用Deep Live Cam的测试结果

我使用名人 Sam Altman 和 Elon Musk 的清晰照片对 Deep Live Cam 进行了测试,并将实时换脸功能应用到我的实时网络摄像头馈送中。结果相当不错:

  • 看起来真实: 交换后的脸部表情自然。光线与目标视频非常匹配。
  • 运行良好: 程序在中端英伟达™(NVIDIA®)图形处理器上运行流畅。几乎没有延迟。
  • 一些问题 头部快速移动会导致一些视觉错误。极端角度也会出现一些小问题。这些方面还有待改进。

涉及的风险

深度实时摄像机提供了令人兴奋的用途。它也带来了重大风险。它的实时人脸互换功能需要慎重考虑。其中包括

  • 身份盗窃: 该工具可以有效地冒充个人。这引发了对身份盗窃的严重担忧。可能会侵犯隐私。
  • 金融欺诈: 该技术可为诈骗提供便利。例如,伪造高管视频通话以批准不良交易。
  • 信任危机: 随着换脸技术的发展,真假难辨。这会损害人们对数字通信的信任。
  • 法律问题: 未经同意使用此类技术可能会导致问题。不同司法管辖区的法律各不相同。用户可能会因生成深度伪造视频而面临诉讼或监管行动。

用户必须了解这些危险。他们应该负责任地使用 Deep Live Cam。实施保护措施会有所帮助。为 deepfake 内容添加水印是一个步骤。在使用肖像前征得同意至关重要。这些措施可以减少潜在的滥用。

另请阅读: 深度伪造应用和简介

小结

Deep Live Cam 让实时换脸和 Deepfake 视频的创建变得简单,即使只需最低限度的技术技能。虽然这对创作者和教育工作者来说是一个强大的工具,但它的易用性也引发了严重的担忧。滥用的可能性是真实存在的,如身份盗窃、错误信息或隐私侵犯。因此,负责任地使用这项技术非常重要。一定要征得同意,添加水印等保障措施,避免欺骗性使用。Deepfake 工具可以激发创造力,但必须谨慎使用。

评论留言