臉部偵測指南

MediaPipe 臉部偵測器工作可讓你偵測圖片或影片中的臉孔。您可以使用這項工作找出影格中的臉孔和臉部特徵。這項工作使用的機器學習 (ML) 模型搭配單一圖片或連續圖片串流。這項工作會輸出臉部位置和下列臉部關鍵點:左眼、右眼、鼻子小費、嘴巴、左眼腹部和右眼對焦。

試試看!

開始使用

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

任務詳細資料

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

功能

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

設定選項

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

選項名稱 說明 值範圍 預設值
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 設定結果事件監聽器,在臉部偵測器處於直播模式時,以非同步方式接收偵測結果。只能在執行模式設為 LIVE_STREAM 時使用。 N/A Not set

模型

臉部偵測模型會根據預期用途 (例如短範圍和長範圍偵測) 而有所差異。另外,模型通常也會在效能、準確率、解析度和資源需求之間取得取捨,在某些情況下還包括其他功能。

本節列出的模型是 BlazeFace 的變化版本,這是針對行動裝置 GPU 推論最佳化的輕量級臉部偵測工具。BlazeFace 模型非常適合用於 3D 臉部關鍵點估算、運算式分類和臉部區域區隔等應用程式。BlazeFace 會使用與 MobileNetV1/V2 類似的輕量功能擷取網路。

BlazeFace (短範圍)

這個輕量模型用於在智慧型手機相機或網路攝影機中,偵測類似自拍圖片中的單張或多張臉孔。此模型經過最佳化調整,適合在短範圍內的前置手機相機圖片。模型架構搭配自訂編碼器使用單一鏡頭偵測器 (SSD) 卷積網路技術。詳情請參閱 Single Shot MultiBox Detector 的研究論文。

模型名稱 輸入形狀 量化類型 Model Card 版本
Blaze (短範圍) 128 x 128 浮點值 16 資訊 最新

BlazeFace (全範圍)

相對輕量的模型,用於在智慧型手機的相機或網路攝影機偵測圖片中的單一或多個臉孔。模型會針對全範圍的圖片進行最佳化,例如使用後置鏡頭相機拍攝的圖片。此模型架構使用的技術,與可自訂編碼器的 CenterNet 卷積網路類似。

模型名稱 輸入形狀 量化類型 Model Card 版本
BlazeFace (全範圍) 128 x 128 浮點值 16 資訊 即將推出

BlazeFace Sparse (完整範圍)

一般全範圍 BlazeFace 模型輕量版,大小約 60%。模型會針對全範圍的圖片進行最佳化,例如使用後置鏡頭相機拍攝的圖片。此模型架構使用的技術,與使用自訂編碼器的 CenterNet 卷積網路類似。

模型名稱 輸入形狀 量化類型 Model Card 版本
BlazeFace Sparse (完整範圍) 128 x 128 浮點值 16 資訊 即將推出

工作基準

以下為整個管道根據上述預先訓練模型所產生的工作基準。延遲時間結果是 Pixel 6 使用 CPU / GPU 的平均延遲時間。

模型名稱 CPU 延遲時間 GPU 延遲時間
BlazeFace (短範圍) 2.94 毫秒 7.41 毫秒