MediaPipe Face Detector 工作可偵測圖片或影片中的臉孔。您可以使用這項工作,在影格中找出臉部和臉部特徵。這項工作會使用機器學習 (ML) 模型,處理單張圖片或連續圖片串流。這項工作會輸出臉部位置,以及下列臉部關鍵點:左眼、右眼、鼻尖、嘴巴、左眼耳屏和右眼耳屏。
開始使用
請按照目標平台的其中一份導入指南,開始使用這項工作。這些平台專屬指南會逐步說明這項工作的基本實作方式,包括建議使用的模型,以及包含建議設定選項的程式碼範例:
任務詳細資料
本節說明這項工作的能力、輸入內容、輸出內容和設定選項。
功能
- 輸入圖片處理 - 處理包括圖片旋轉、調整大小、正規化和色彩空間轉換。
- 分數門檻:根據預測分數篩選結果。
| 工作輸入內容 | 工作輸出內容 |
|---|---|
臉部偵測器接受下列其中一種資料類型做為輸入:
|
臉部偵測器會輸出下列結果:
|
設定選項
這項工作提供下列設定選項:
| 選項名稱 | 說明 | 值範圍 | 預設值 |
|---|---|---|---|
running_mode |
設定工作執行模式。共有三種模式: IMAGE:單一圖片輸入模式。 影片:影片解碼影格的模式。 LIVE_STREAM:直播輸入資料的模式,例如來自攝影機的資料。在此模式下,必須呼叫 resultListener 來設定事件監聽器,以非同步方式接收結果。 |
{IMAGE, VIDEO, LIVE_STREAM} |
IMAGE |
min_detection_confidence |
臉部偵測成功所需的最低信賴分數。 | Float [0,1] |
0.5 |
min_suppression_threshold |
臉部偵測的非最大抑制門檻下限,超過這個門檻即視為重疊。 | Float [0,1] |
0.3 |
result_callback |
設定結果事件監聽器,在 Face Detector 處於即時串流模式時,非同步接收偵測結果。只有在執行模式設為 LIVE_STREAM 時才能使用。 |
N/A |
Not set |
模型
臉部偵測模型會因預定用途而異,例如近距離和遠距離偵測。模型通常也會在效能、準確度、解析度和資源需求之間取捨,有時還會包含額外功能。
本節列出的模型是 BlazeFace 的變體,這款輕量級且準確的臉部偵測器經過最佳化,可進行行動 GPU 推論。BlazeFace 模型適用於 3D 臉部關鍵點估算、表情分類和臉部區域分割等應用程式。BlazeFace 使用的輕量型特徵擷取網路與 MobileNetV1/V2 類似。
BlazeFace (短距離)
輕量型模型,可偵測智慧型手機相機或網路攝影機拍攝的自拍式圖片中,是否有一或多張臉孔。這個模型專為近距離拍攝的前置手機鏡頭圖像進行最佳化,模型架構採用 Single Shot Detector (SSD) 卷積網路技術,搭配自訂編碼器。詳情請參閱單次多框偵測器研究論文。
| 模型名稱 | 輸入形狀 | 量化類型 | 模型資訊卡 | 版本 |
|---|---|---|---|---|
| BlazeFace (短距離) | 128 x 128 | 浮點數 16 | 資訊 | 最新 |
BlazeFace (全範圍)
這個模型相對輕量,可偵測智慧型手機相機或網路攝影機圖片中的單一或多張臉孔。這個模型已針對全範圍影像進行最佳化,例如使用手機後置鏡頭拍攝的影像。模型架構使用的技術與 CenterNet 卷積網路類似,但採用自訂編碼器。
| 模型名稱 | 輸入形狀 | 量化類型 | 模型資訊卡 | 版本 |
|---|---|---|---|---|
| BlazeFace (全範圍) | 128 x 128 | float 16 | 資訊 | 最新 |
BlazeFace Sparse (全範圍)
這是 BlazeFace 一般全範圍模型的輕量版,大小約縮減 60%。這個模型已針對全範圍圖像進行最佳化,例如使用手機後置鏡頭拍攝的圖像。模型架構使用的技術與 CenterNet 卷積網路類似,但採用自訂編碼器。
| 模型名稱 | 輸入形狀 | 量化類型 | 模型資訊卡 | 版本 |
|---|---|---|---|---|
| BlazeFace Sparse (全範圍) | 128 x 128 | float 16 | 資訊 | 最新 |
工作基準
以下是根據上述預先訓練模型,整個管線的任務基準。延遲時間結果是使用 CPU / GPU 的 Pixel 6 平均延遲時間。
| 模型名稱 | CPU 延遲 | GPU 延遲時間 |
|---|---|---|
| BlazeFace (短距離) | 2.94 毫秒 | 7.41 毫秒 |