姿勢偵測

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

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 座標為負數,因為在主體的前面。

地標類型現狀InFrameLikelihood (內嵌頁框可能性)
11左移(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 右_右鍵 (322.18152、842.5973、-179.28519) 0.99970156
15 左邊緣 (1073.8956、654.9725、-820.93463) 0.9737737
16 Right_WRIST (218.27956、1015.70435、-683.6567) 0.995568
17 LEFT_PIN 碼 (1146.1635、609.6432、-956.9976) 0.95273364
18 right_PINKY (176.17755、1065.838、-776.5006) 0.9785348

深入解析

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

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