姿勢偵測

ML Kit Pose Detection API 是一種輕巧的多功能解決方案,可讓應用程式開發人員即時從連續影片或靜態圖片偵測主題的姿勢。姿勢使用一組骨骼地標點,在一個時刻呈現身體的位置。這些地標對應不同的身體部位,例如肩膀和臀部。地標的相對位置可用來區分不同的姿勢。

iOS Android

機器學習套件的姿勢偵測機制可產生全身 33 點的骨骼比對結果,包含臉部地標 (耳朵、眼睛、嘴巴和鼻子) 以及手部與腳的點。下圖 1 顯示使用者查看相機時的地標,因此為鏡像圖片。畫面右側會顯示使用者的右側:

圖 1. 地標

機器學習套件的姿勢偵測不需要專業設備或機器學習專業知識,也能實現出色的成果。有了這項技術,開發人員只需撰寫幾行程式碼,就能為使用者打造獨一無二的體驗。

使用者的臉孔必須存在,才能偵測姿勢。當主體的整個主體可見於畫格中,但也會偵測到部分身體姿勢時,姿勢偵測效果最佳。在此情況下,系統無法辨識的地標會指派圖片以外的座標。

主要功能

  • 跨平台支援:在 Android 和 iOS 裝置上享有相同體驗。
  • 全身追蹤:模型傳回 33 個重要的骨骼地標點,包括手部和雙腳的位置。
  • InFrameLikelihood 分數:每個地標的測量結果,表示該地標位於圖片框內的可能性。該分數的範圍為 0.0 至 1.0,其中 1.0 表示可信度高。
  • 兩個最佳化的 SDK:基本 SDK 可在 Pixel 4 和 iPhone X 等新型手機上即時執行。傳回的結果分別約為 30 和 45 fps。但地標座標的精確度可能會有所不同。 精確的 SDK 會傳回緩慢影格速率的結果,但會產生較準確的座標值。
  • 深度分析的 Z 協調中心 這個值可協助您判斷使用者內文的某些部分是否位於使用者臀部或後方。詳情請參閱下方的 Z 協調中心一節。

Pose Detection API 與 Facial Recognition API 類似,差別在於它會傳回一組地標及其位置。不過,雖然臉部偵測功能也會嘗試辨識微笑或張開的眼睛,但姿勢偵測不會將任何含意附在姿勢或姿勢的地標中。您可以建立自己的演算法來解讀姿勢。如需相關範例,請參閱姿勢分類提示

姿勢偵測只能偵測到圖片中的人物。如果圖像中有兩人,該模型會將地標指派給偵測到最有把握的人。

Z 座標

Z 協調中心是按每個地標計算的實驗性值。它是以「X 和 Y 座標」等「圖片像素」進行測量,但不是真正的 3D 值。Z 軸垂直於相機,在主體的臀部之間傳遞。Z 軸的原點大約是臀部之間的左右中心點 (相對於相機的左/右和前/後)。Z 值會朝相機移動,正值則遠離相機。Z 座標沒有上或下邊界。

範例結果

下表列出右圖中幾個地標的座標和 InFrameLikelihood。請注意,使用者左手的 Z 座標為負數,因為它們位於主體臀部的中心前方,且朝向相機。

地標類型現狀頁框內可能性
11LEFT_SHOULDER(734.9671、550.7924、-118.11934)0.9999038
12 RIGHT_SHOULDER (391.27032、583.2485、-321.15836) 0.9999894
13 LEFT_ELBOW (903.83704、754.676、-219.67009) 0.9836427
14 右_ELBOW (322.18152、842.5973、-179.28519) 0.99970156
15 LEFT_WRIST 度 (1073.8956、654.9725、-820.93463) 0.9737737
16 右_WRIST (218.27956、1015.70435、-683.6567) 0.995568
17 LEFT_PINKY (1146.1635、609.6432、-956.9976) 0.95273364
18 RIGHT_PINKY (176.17755、1065.838、-776.5006) 0.9785348

深入解析

如要進一步瞭解這個 API 基礎機器學習模型的實作細節,請參閱我們的 Google AI 網誌文章

如要進一步瞭解我們的機器學習公平性做法和訓練模型的方式,請參閱模型資訊卡