MediaPipe Face Landmarker 工作可讓你偵測圖片和影片中的臉部特徵點和臉部表情。您可以使用這項工作識別人類臉部表情、套用臉部濾鏡和效果,以及建立虛擬分身。這項工作會使用機器學習 (ML) 模型,可處理單張圖片或連續圖片串流。這項工作會輸出 3D 臉部地標、混合形狀分數 (代表臉部表情的係數),即時推斷詳細的臉部表面,以及執行效果算繪所需轉換的轉換矩陣。
開始使用
如要開始使用這項工作,請按照目標平台的其中一個導入指南操作。這些平台專屬指南會逐步說明這項工作的基本實作方式,包括建議使用的模型,以及包含建議設定選項的程式碼範例:
任務詳細資料
本節說明這項工作的能力、輸入內容、輸出內容和設定選項。
功能
- 輸入圖片處理 - 處理包括圖片旋轉、調整大小、正規化和色彩空間轉換。
- 分數門檻:根據預測分數篩選結果。
| 工作輸入內容 | 工作輸出 |
|---|---|
臉部地標辨識器接受下列其中一種資料類型做為輸入:
|
Face Landmarker 會輸出下列結果:
|
設定選項
這項工作提供下列設定選項:
| 選項名稱 | 說明 | 值範圍 | 預設值 |
|---|---|---|---|
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 |
Face Landmarker 是否會輸出臉部混合形狀。 臉部混合形狀會用於算繪 3D 臉部模型。 | Boolean |
False |
output_facial_transformation_matrixes |
是否輸出臉部轉換矩陣。FaceLandmarker 會使用矩陣,將標準臉部模型中的臉部地標轉換為偵測到的臉部,讓使用者在偵測到的地標上套用特效。 | Boolean |
False |
result_callback |
設定結果事件監聽器,以便在 FaceLandmarker 處於即時串流模式時,以非同步方式接收地標結果。只有在執行模式設為 LIVE_STREAM 時才能使用 |
ResultListener |
N/A |
模型
臉部地標偵測器會使用一系列模型預測臉部地標。 第一個模型會偵測臉部,第二個模型會在偵測到的臉部上找出地標,第三個模型則會使用這些地標辨識臉部特徵和表情。
下列模型會封裝成可下載的模型套件:
- 臉部偵測模型:偵測臉部是否存在,並找出幾個重要的臉部特徵點。
- 臉部網格模型:新增臉部的完整對應。模型會輸出 478 個 3D 臉部特徵點的估計值。
- 混合形狀預測模型:接收臉部網格模型輸出內容,預測 52 個混合形狀分數,這些係數代表臉部不同表情。
臉部偵測模型是 BlazeFace 短距離模型,這款輕巧精準的臉部偵測器經過最佳化,可供行動 GPU 推論使用。詳情請參閱「臉部偵測器」工作。
下圖顯示模型套件輸出內容中,臉部特徵點的完整對應。
如要查看臉部地標的詳細資訊,請參閱全尺寸圖片。
| 模型套裝組合 | 輸入形狀 | 資料類型 | 模型資訊卡 | 版本 |
|---|---|---|---|---|
| FaceLandmarker | FaceDetector:192 x 192 FaceMesh-V2:256 x 256 Blendshape:1 x 146 x 2 |
float 16 |
FaceDetector FaceMesh-V2 Blendshape |
最新 |