如何使用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 工具可以激發創造力,但必須謹慎使用。

評論留言