Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/zh-cn/lite/examples/pose_estimation/overview.md
25118 views

姿态预测

PoseNet 能够通过预测图像或视频中人体的关键位置进行姿态的预测。

开始使用

如果您是 TensorFlow Lite 新用户,并且使用的是 Android 或 iOS,我们建议您研究以下可以帮助您入门的示例应用。

Android 示例 iOS 示例

如果您熟悉 TensorFlow Lite API,请下载入门 MoveNet 姿态预测模型和支持文件。

下载入门模型

如果你想在 Web 浏览器上尝试姿态预测,请查看 TensorFlow JS Demo

工作原理

使用案例

姿态预测是指检测图像和视频中人物的计算机视觉技术,以便确定某人的身体部位(如肘部)出现在图像中的位置。务必了解这样一个事实:姿态预测仅能预估关键身体关节的位置,而无法识别图像或视频中的人物。

姿态预测模型会将处理后的相机图像作为输入,并输出有关关键点的信息。检测到的关键点由部位 ID 索引,置信度分数介于 0.0 和 1.0 之间。置信度分数表示该位置存在关键点的概率。

我们提供了两个 TensorFlow Lite 姿态预测模型的参考实现:

  • MoveNet:最先进的姿态预测模型,有两个版本可供选择:Lightning 和 Thunder。在以下部分可以看到这两者之间的对比。

  • PoseNet:2017 年发布的上一代姿态预测模型。

姿态预测模型检测到的各种身体关节如下表所示:

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

输出示例如下所示:

Output stride and heatmap resolution

性能基准

MoveNet 有两种版本:

  • MoveNet.Lightning 比 Thunder 版更小、更快,但准确率较低。它可以在当下的智能手机上实时运行。

  • MoveNet.Thunder 是更准确的版本,但比 Lightning 版更大、更慢。对于需要更高准确率的用例,它非常有用。

MoveNet 在各种数据集上的表现都优于 PoseNet,尤其是在包含健身动作的图像上。因此,我们建议使用 MoveNet 而不是 PoseNet。

性能基准数值使用此处介绍的工具生成。准确率 (MAP) 数值在 COCO 数据集的子集上测得,在该数据集中,我们筛选并裁剪了每个图像,使其仅包含一个人。

模型 大小 (MB) mAP 延迟 (ms)
Pixel 5 - CPU 4 线程 Pixel 5 - GPU Raspberry Pi 4 - CPU 4 线程
MoveNet.Thunder(FP16 量化) 12.6MB 72.0 155ms 45ms 594ms
MoveNet.Thunder(INT8 量化) 7.1MB 68.9 100ms 52ms 251ms
MoveNet.Lightning(FP16 量化) 4.8MB 63.0 60ms 25ms 186ms
MoveNet.Lightning(INT8 量化) 2.9MB 57.4 52ms 28ms 95ms
PoseNet(MobileNetV1 主干,FP32) 13.3MB 45.6 80ms 40ms 338ms

补充阅读和资源

  • 请查看这篇博文,了解更多使用 MoveNet 和 TensorFlow Lite 进行姿态预测的信息。

  • 请查看这篇博文,了解更多关于 Web 姿态预测的信息。

  • 请查看此教程,了解如何使用 TensorFlow Hub 的模型在 Python 上运行 MoveNet。

  • Coral/EdgeTPU 可以加快姿态预测在边缘设备上的运行速度。有关更多详细信息,请参阅 EdgeTPU 优化模型

  • 请在此处阅读 PoseNet 论文。

另外,请查看以下姿态预测的用例。