Python 的臉部風格化指南

MediaPipe 臉部風格化工具工作可讓您為圖片中的臉孔套用臉部樣式。您可以使用這項工作建立各種樣式的虛擬顯示圖片。

您可以前往 GitHub 取得這些操作說明中提及的程式碼範例。如要進一步瞭解這項工作的功能、模型和設定選項,請參閱總覽

程式碼範例

Face Stylizer 的範例程式碼提供這項工作在 Python 中的完整實作,供您參考。這段程式碼可協助您測試這項工作,並開始建構自己的臉部樣式器。您可以只使用網路瀏覽器查看、執行及編輯 Face Stylizer 程式碼範例

設定

本節說明設定開發環境的重要步驟,以及專門針對使用臉部樣式工具的程式碼專案。如需瞭解如何使用 MediaPipe 工作設定開發環境的一般資訊,包括平台版本需求,請參閱 Python 設定指南

套裝組合

MediaPipe Face Stylizer 工作需要 mediapipe PyPI 套件。您可以透過下列程式碼安裝並匯入這些依附元件:

$ python -m pip install mediapipe

匯入

匯入下列類別即可存取臉部樣式工具工作函式:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

型號

MediaPipe 臉部風格化工具工作所需的已訓練模型與這項工作相容。如要進一步瞭解臉部風格工具可用的已訓練模型,請參閱工作總覽的「模型」部分

選取並下載模型,然後儲存至本機目錄:

model_path = '/absolute/path/to/face_stylizer.task'

使用 BaseOptions 物件 model_asset_path 參數指定要使用的模型路徑。如需程式碼範例,請參閱下一節。

建立工作

MediaPipe Face Stylizer 工作會使用 create_from_options 函式設定工作。create_from_options 函式可接受設定選項值來處理。

下列程式碼示範如何建構及設定這項工作。

import mediapipe as mp

BaseOptions = mp.tasks.BaseOptions
Facestylizer = mp.tasks.vision.face_stylizer
FacestylizerOptions = mp.tasks.vision.FaceStylizerOptions

# Create a face stylizer instance with the image mode:
options = FacestylizerOptions(
    base_options=BaseOptions(model_asset_path=model_path),
with Facestylizer.create_from_options(options) as stylizer:
  # The stylizer is initialized. Use it here.
  # ...

準備資料

將輸入內容準備為圖片檔或 numpy 陣列,然後再將其轉換為 mediapipe.Image 物件。如果輸入內容是來自網路攝影機的影片檔案或直播,可以使用外部程式庫 (例如 OpenCV) 將輸入影格載入為 numpy 陣列。

import mediapipe as mp

# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')

# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)

執行工作

臉部風格化工具會使用 stylize 函式觸發推論。以臉部風格設計時,這包括預先處理輸入資料,以及在圖片中將臉孔設定樣式。

下列程式碼示範如何使用工作模型執行處理。

# Perform face stylization on the provided single image.
# The face stylizer must be created with the image mode.
face_stylizer_result = stylizer.stylize(mp_image)

處理並顯示結果

臉部風格化工具會傳回 Image 物件,其風格化為輸入圖片中最顯眼的臉孔。

以下為這項工作的輸出資料範例:

上述輸出是將色彩草圖模型套用至下列輸入圖片所建立: