姿勢估計

姿勢估計是指使用機器學習模型,透過估計人體關鍵關節 (關鍵點) 的空間位置,從圖片或影片中估計人體姿勢的工作。

開始使用

如果您是 TensorFlow Lite 的新手,並且正在使用 Android 或 iOS,請瀏覽下列範例應用程式,這些應用程式可協助您開始使用。

Android 範例 iOS 範例

如果您熟悉 TensorFlow Lite API,請下載入門版 MoveNet 姿勢估計模型和支援檔案。

下載入門模型

如果您想在網頁瀏覽器上試用姿勢估計,請查看 TensorFlow JS 示範

模型說明

運作方式

姿勢估計是指偵測圖片和影片中的人體身形的電腦視覺技術,以便判斷,例如,某人的手肘在圖片中顯示的位置。務必注意,姿勢估計僅估計關鍵人體關節的位置,而不會辨識圖片或影片中的人物身分。

姿勢估計模型會將處理過的相機圖片做為輸入,並輸出關於關鍵點的資訊。偵測到的關鍵點會依部位 ID 建立索引,並具有介於 0.0 和 1.0 之間的信賴分數。信賴分數表示關鍵點存在於該位置的機率。

我們提供兩種 TensorFlow Lite 姿勢估計模型的參考實作

  • MoveNet:最先進的姿勢估計模型,提供兩種版本:Lighting 和 Thunder。請參閱以下章節中這兩種版本之間的比較。
  • PoseNet:2017 年發布的上一代姿勢估計模型。

下表列出姿勢估計模型偵測到的各種人體關節

ID 部位
0 鼻子
1 左眼
2 右眼
3 左耳
4 右耳
5 左肩
6 右肩
7 左手肘
8 右手肘
9 左手腕
10 右手腕
11 左髖
12 右髖
13 左膝
14 右膝
15 左腳踝
16 右腳踝

以下顯示範例輸出

Animation showing pose estimation

效能基準

MoveNet 提供兩種版本

  • MoveNet.Lightning 體積更小、速度更快,但準確度不如 Thunder 版本。它可以在現代智慧型手機上即時執行。
  • MoveNet.Thunder 是更準確的版本,但體積也更大、速度比 Lightning 慢。它適用於需要更高準確度的使用情境。

MoveNet 在各種資料集上的效能都優於 PoseNet,尤其是在包含健身動作圖片的資料集中。因此,我們建議使用 MoveNet 而非 PoseNet。

效能基準數字是使用此處說明的工具產生。準確度 (mAP) 數字是在 COCO 資料集的子集上測量,在該子集中,我們篩選並裁剪每張圖片,使其僅包含一個人。

模型 大小 (MB) mAP 延遲時間 (毫秒)
Pixel 5 - CPU 4 執行緒 Pixel 5 - GPU Raspberry Pi 4 - CPU 4 執行緒
MoveNet.Thunder (FP16 量化) 12.6MB 72.0 155 毫秒 45 毫秒 594 毫秒
MoveNet.Thunder (INT8 量化) 7.1MB 68.9 100 毫秒 52 毫秒 251 毫秒
MoveNet.Lightning (FP16 量化) 4.8MB 63.0 60 毫秒 25 毫秒 186 毫秒
MoveNet.Lightning (INT8 量化) 2.9MB 57.4 52 毫秒 28 毫秒 95 毫秒
PoseNet (MobileNetV1 主幹,FP32) 13.3MB 45.6 80 毫秒 40 毫秒 338 毫秒

延伸閱讀和資源

  • 查看這篇部落格文章,進一步瞭解如何使用 MoveNet 和 TensorFlow Lite 進行姿勢估計。
  • 查看這篇部落格文章,進一步瞭解網頁上的姿勢估計。
  • 查看這篇教學課程,瞭解如何使用 TensorFlow Hub 中的模型,在 Python 上執行 MoveNet。
  • Coral/EdgeTPU 可以讓姿勢估計在邊緣裝置上執行得更快。如需更多詳細資訊,請參閱EdgeTPU 最佳化模型
  • 按這裡閱讀 PoseNet 論文

另請查看這些姿勢估計的使用情境。