網頁版臉部樣式化指南

您可以使用 MediaPipe 臉部樣式化工作,將臉部樣式化效果套用至圖片中的臉部。您可以使用這個工作,以各種風格建立虛擬人物。

您可以在 GitHub 上找到這些操作說明中所述的程式碼範例。如要進一步瞭解這項工作的功能、模型和設定選項,請參閱總覽

程式碼範例

Face Stylizer 的程式碼範例會在 JavaScript 中提供此工作的完整實作內容,供您參考。這個程式碼可協助您測試此工作,並開始建構自己的臉部風格化應用程式。您只需使用網路瀏覽器,即可查看、執行及編輯臉部風格化器範例程式碼

設定

本節將說明設定開發環境的關鍵步驟,特別是使用 Face Stylizer 的步驟。如要進一步瞭解如何設定網路和 JavaScript 開發環境,包括平台版本需求,請參閱網路設定指南

JavaScript 套件

您可以透過 MediaPipe @mediapipe/tasks-vision NPM 套件取得 Face Stylizer 程式碼。您可以按照平台設定指南中的操作說明,尋找並下載這些程式庫。

您可以使用下列指令,透過 NPM 安裝必要套件:

npm install @mediapipe/tasks-vision

如果您想透過內容傳遞網路 (CDN) 服務匯入工作程式碼,請在 HTML 檔案的 <head> 標記中加入以下程式碼:

<!-- You can replace JSDeliver with another CDN if you prefer -->
<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision/vision_bundle.js"
    crossorigin="anonymous"></script>
</head>

型號

MediaPipe Face Stylizer 工作需要與此工作相容的訓練模型。如要進一步瞭解 Face Stylizer 可用的訓練模型,請參閱工作總覽的「模型」一節。

選取並下載模型,然後將模型儲存在專案目錄中:

<dev-project-root>/app/shared/models/

建立工作

請使用其中一個 Face Stylizer createFrom...() 函式,為執行推論作業做好準備。使用 createFromModelPath() 函式搭配訓練模型檔案的相對或絕對路徑。如果模型已載入記憶體,您可以使用 createFromModelBuffer() 方法。

以下程式碼範例示範如何使用 createFromOptions() 函式設定工作。createFromOptions 函式可讓您使用設定選項自訂 Face Stylizer。

以下程式碼示範如何使用自訂選項建構及設定工作:

const vision = await FilesetResolver.forVisionTasks(
  // path/to/wasm/root
  "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm"
);
const facestylizer = await FaceStylizer.createFromOptions(
    vision,
    {
      baseOptions: {
        modelAssetPath: "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
      },
    });

準備資料

Face Stylizer 可處理主機瀏覽器支援的任何圖片格式,為圖片中的臉部加上特效。這項工作也會處理資料輸入預先處理作業,包括調整大小、旋轉和值標準化。

執行工作

Face Stylizer 會使用 stylize() 方法觸發推論。這項工作會處理資料、嘗試將臉部轉換為圖樣,然後回報結果。對 Face Stylizer stylize() 方法的呼叫會同步執行,並封鎖使用者介面執行緒。

以下程式碼示範如何使用工作模型執行處理作業:

const image = document.getElementById("image") as HTMLImageElement;
const faceStylizerResult = faceStylizer.stylize(image);

處理及顯示結果

臉部造型器會傳回 MPImage 物件,其中包含輸入圖片中最顯眼的臉部造型。

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

系統產生的特寫圖片,以鉛筆和馬克筆素描風格繪製的女子。

上方的輸出內容是將色彩素描模型套用至下列輸入圖片所產生:

使用前一個輸出內容的女性相片