姿勢估計是指使用機器學習模型,透過估計人體關鍵關節 (關鍵點) 的空間位置,從圖片或影片中估計人體姿勢的工作。
開始使用
如果您是 TensorFlow Lite 的新手,並且正在使用 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 | 右腳踝 |
以下顯示範例輸出
效能基準
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 論文
另請查看這些姿勢估計的使用情境。