臉部地標偵測指南

臉部地標任務

MediaPipe Face Marker 工作可讓您偵測圖片和影片中的臉孔地標和臉部表情。您可以使用這項工作來識別人臉表情、套用臉部濾鏡和特效,以及建立虛擬顯示圖片。這項工作使用的機器學習 (ML) 模型可與單一圖片或連續圖片串流搭配使用。這個工作會輸出 3D 臉部地標、混合形狀分數 (代表臉部表情的係數) 來即時推論出詳細臉部面,並轉換矩陣,執行轉譯效果所需的轉換。

試試看!

開始使用

如要開始使用這項工作,請按照目標平台的任一實作指南操作。下列平台專用指南將逐步引導您完成這項工作的基本實作方式,包括建議的模型,以及含有建議設定選項的程式碼範例:

任務詳細資料

本節說明這項工作的功能、輸入、輸出和設定選項。

功能

  • 輸入圖片處理 - 處理包括圖像旋轉、大小調整、正規化及色域轉換。
  • 分數門檻:根據預測分數篩選結果。
工作輸入內容 工作輸出內容
「臉孔地標」接受輸入下列任一資料類型:
  • 靜態圖片
  • 經解碼的影格數
  • 直播影片動態饋給
臉孔地標工具會輸出下列結果:
  • 圖片頁框中偵測到的臉孔的定界框。
  • 每個偵測到的臉孔都有對應的完整臉部網格,混和分數表示臉部地標的臉部表情和座標。

設定選項

這項工作有以下設定選項:

選項名稱 說明 值範圍 預設值
running_mode 設定工作的執行模式。共有三種模式:

IMAGE:單一圖片輸入的模式。

影片:影片已解碼影格的模式。

LIVE_STREAM:輸入資料串流 (例如攝影機) 的直播模式。在這個模式下,必須呼叫 resultListener 才能設定事件監聽器,以非同步方式接收結果。
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_faces FaceLandmarker 可以偵測的臉孔數量上限。只有在 num_faces 設為 1 時,系統才會套用平滑效果。 Integer > 0 1
min_face_detection_confidence 用於判定臉部偵測成功率的最低可信度分數。 Float [0.0,1.0] 0.5
min_face_presence_confidence 在臉部地標偵測中,臉孔存在分數的最低可信度分數。 Float [0.0,1.0] 0.5
min_tracking_confidence 臉部追蹤偵測結果的可信度下限。 Float [0.0,1.0] 0.5
output_face_blendshapes 是否將臉孔地標工具輸出的內容呈現在臉上。 臉部混合形狀是用來算繪 3D 臉部模型。 Boolean False
output_facial_transformation_matrixes 指定 FaceLandmarker 是否輸出臉部變形矩陣。FaceLandmarker 使用矩陣,將臉部地標從標準臉部模型轉換為偵測到的臉孔,讓使用者能對偵測到的地標套用效果。 Boolean False
result_callback 設定結果監聽器,在直播模式的 FaceLandMarker 處於直播模式時,以非同步方式接收地標結果。只能在執行模式設為 LIVE_STREAM 時使用 ResultListener N/A

模型

「臉孔地標」會使用一系列模型預測臉孔地標。 第一個模型會偵測臉部,第二個模型會在偵測到的臉孔上尋找地標,第三個模型則使用這些地標來識別臉部特徵和表情。

下列模型會封裝成可下載的模型套件:

  • 臉部偵測模型:用幾個重要臉部地標偵測是否有臉孔。
  • 臉部網格模型:新增臉部的完整對應。此模型會輸出 478 3D 臉部地標的估計值。
  • Blendshape 預測模型:接收臉部網格模型的輸出內容會預測 52 個混合形狀分數,這些分數是代表不同臉部表情的係數。

臉部偵測模型是 BlazeFace 短範圍模型,這是一種輕量且準確的臉部偵測器,已針對行動裝置 GPU 推論進行最佳化。詳情請參閱臉部偵測器工作。

下圖顯示模型套件輸出內容中的臉部地標完整對應。

臉孔地標關鍵點

如需詳細的臉孔地標檢視畫面,請參閱原尺寸圖片

模型套裝組合 輸入形狀 資料類型 Model Card 版本
FaceLandmarker 臉部偵測器:192 x 192
FaceMesh-V2:256 x 256
Blendshape:1 x 146 x 2
浮點值 16 臉部偵測器
FaceMesh-V2
Blendshape
最新