手部地標偵測指南

MediaPipe 地標工具工作可讓你偵測圖片中手部的地標。 您可以使用這項工作找出重點,並對其呈現視覺效果。這項工作會使用機器學習 (ML) 模型做為靜態資料或連續串流處理圖片資料,並輸出圖片座標中的手繪地標、世界座標中的手界地標,以及偵測到的多隻手(左側/右側)。

試試看!

開始使用

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

任務詳細資料

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

功能

  • 輸入圖片處理 - 處理包括圖片旋轉、大小調整、正規化和色域轉換。
  • 分數門檻:根據預測分數篩選結果。
工作輸入內容 工作輸出內容
手持地標接受下列任一資料類型:
  • 靜態圖片
  • 經解碼的影格數
  • 直播影片動態饋給
《Handmarker》會輸出下列結果:
  • 偵測到的手掌
  • 圖像座標中偵測到的手部地標
  • 以世界座標偵測的手掌地標

設定選項

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

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

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

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

LIVE_STREAM:輸入資料串流 (例如攝影機) 的直播模式。在這個模式下,必須呼叫 resultListener 才能設定事件監聽器,以非同步方式接收結果。
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_hands 手部地標偵測器偵測到的手數量上限。 Any integer > 0 1
min_hand_detection_confidence 在手掌偵測模型中,系統判定手部偵測成功的最低信心分數。 0.0 - 1.0 0.5
min_hand_presence_confidence 在手部地標偵測模型中,手持狀態分數的最低可信度分數。在影片模式和直播模式下,如果手持位置標記模型的信心分數低於這個門檻,手寫地標就會觸發手掌偵測模型。否則,為了後續的地標偵測,系統會透過輕量追蹤演算法判斷手部的位置。 0.0 - 1.0 0.5
min_tracking_confidence 系統判定手機追蹤成功時的最低可信度分數。這是目前影格和最後一個影格之間的定界框 IoU 門檻。在影片模式和手持地標的「串流」模式中,如果追蹤失敗,手地標就會觸發手部偵測。否則,會略過手部偵測。 0.0 - 1.0 0.5
result_callback 設定結果監聽器,在手標位置處於直播模式時,以非同步方式接收偵測結果。只有在執行模式設為 LIVE_STREAM 時適用 不適用 不適用

模型

手稱地標使用兩個封裝模型:手掌偵測模型和手部地標偵測模型。您需要同時具備這兩種模型的模型組合才能執行這項工作。

模型名稱 輸入形狀 量化類型 Model Card 版本
手寫標記 (完整版) 192 x 192、224 x 224 浮點值 16 資訊 最新

手部地標模型組合會偵測偵測到的手部區域內 21 個手腳座標的本地化關鍵點。這個模型使用約 3 萬張真實世界圖像,以及多個背景的算繪合成手模型訓練而成。

手部地標模型套件包含手掌偵測模型和手部地標偵測模型。手掌偵測模型會在輸入圖片中找出手部,手部地標偵測模型則會在手掌偵測模型定義的裁剪手圖片上,識別特定手部地標。

由於執行手掌偵測模型相當耗時,因此在影片或直播執行模式下,「手鍊」會使用手地標模型在一個影格中定義的定界框,將後續影格的手部區域本地化。只有手地標模型無法確認手部是否存在,或無法在影格內追蹤手部時,才會重新觸發手掌偵測模型。這樣可以減少手持地標偵測模型的次數。

工作基準

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

模型名稱 CPU 延遲時間 GPU 延遲時間
手部標記 (完整版) 17.12 毫秒 12.27 毫秒