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 |
最新 |