2021 年 8 月 16 日 - 发布者 Khanh LeViet,TensorFlow 开发者倡导者和 Yu-hui Chen,软件工程师MoveNet iOS 示例已发布。在 GitHub 上查看。自从 MoveNet 在今年早些时候的 Google I/O 上发布以来,我们收到了很多积极的反馈和功能请求。今天,我们很高兴与大家分享几个更新:MoveNet 的 TensorFlow Lite 版本现已在 … 上可用。
发布者 Khanh LeViet,TensorFlow 开发者倡导者和 Yu-hui Chen,软件工程师
MoveNet iOS 示例已发布。在 GitHub 上查看。
自从 MoveNet 在今年早些时候的 Google I/O 上发布以来,我们收到了很多积极的反馈和功能请求。今天,我们很高兴与大家分享几个更新。
姿势估计是一个机器学习任务,它通过估计特定身体部位(关键点)的空间位置,从图像或视频中估计一个人的姿势。MoveNet 是一种最先进的姿势估计模型,可以检测这些 17 个关键点。
我们发布了 MoveNet 的两个版本。
MoveNet 模型在各种基准数据集上优于 Posenet(论文、博客文章、模型),我们之前的 TensorFlow Lite 姿势估计模型,(见下表中的评估/基准测试结果)。
这些 MoveNet 模型在 TensorFlow Lite FP16 和 INT8 量化格式中都可用,最大限度地提高了与硬件加速器的兼容性。
此版本的 MoveNet 可以识别输入图像中的单个姿势。如果图像中有多个人,模型以及裁剪算法将尽力集中在最靠近图像中心的一个人。我们还实现了一种智能裁剪算法来提高视频的检测准确率。简而言之,模型将放大在之前帧中检测到姿势的区域,以便模型可以看到更精细的细节并在当前帧中做出更好的预测。
如果您有兴趣深入了解 MoveNet 的实现细节,请查看一篇早期博客文章,包括其模型架构和训练它的数据集。
我们发布了针对这些平台的新的姿势估计示例应用程序,以便您可以在选择的平台上快速试用不同的姿势估计模型(MoveNet Lightning、MoveNet Thunder、Posenet)。
在 Android 和 iOS 示例中,您还可以选择加速器(GPU、NNAPI、CoreML)来运行姿势估计模型。
Android 示例应用程序的屏幕截图。图像来自 Pixabay。 |
我们优化了 MoveNet,使其在 TensorFlow Lite 支持的硬件加速器(包括 GPU 和通过 Android NN API 可用的加速器)上运行良好。此性能基准测试结果可以帮助您选择最适合您的用例的运行时配置。
模型 |
大小(MB) |
mAP* |
延迟(毫秒)** |
||
Pixel 5 - |
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 |
13.3MB |
45.6 |
80毫秒 |
40毫秒 |
338毫秒 |
* mAP 是在 COCO 关键点数据集的子集上测量的,我们过滤并裁剪每个图像以仅包含一个人。
** 延迟是在持续负载下使用 Android 和 Raspberry Pi 示例应用程序和 TensorFlow 2.5 进行端到端测量的。
以下是一些关于如何选择使用哪种模型和加速器的提示。
虽然姿势估计模型告诉您姿势关键点的位置,但在许多健身应用程序中,您可能希望更进一步,对姿势进行分类,例如,它是瑜伽女神姿势还是平板支撑姿势,以便向您的用户提供相关信息。
为了使姿势分类更容易实现,我们还发布了一个 Colab 笔记本,教你如何使用 MoveNet 和 TensorFlow Lite 从自定义姿势数据集训练自定义姿势分类模型。这意味着,如果你想识别瑜伽姿势,你只需要收集你想要识别的姿势的图像,对它们进行标注,然后按照教程训练并部署一个瑜伽姿势分类器到你的应用程序中。
姿势分类器包含两个阶段
使用 MoveNet 进行姿势分类的示例。输入图像来自 Pixabay。 |
为了训练一个自定义姿势分类器,你需要准备姿势图像并将它们放入以下文件夹结构中。每个子文件夹名称是你想要识别的类别的名称。然后你可以运行 笔记本 来训练一个自定义姿势分类器并将其转换为 TensorFlow Lite 格式。
yoga_poses |__ downdog |______ 00000128.jpg |______ 00000181.bmp |______ ... |__ goddess |______ 00000243.jpg |______ 00000306.jpg |______ ... ...
姿势分类 TensorFlow Lite 模型非常小,只有大约 30KB。它获取 MoveNet 输出的特征点,对姿势坐标进行归一化,并将其馈送到几个全连接层。模型输出是一个概率列表,表示姿势是每个已知姿势类型的概率。
姿势分类 TensorFlow Lite 模型概述。 |
你可以在我们刚刚发布的任何姿势估计示例应用程序中尝试你的姿势分类模型,例如适用于 Android 或 Raspberry Pi 的应用程序。
我们的目标是提供姿势估计和动作识别的核心引擎,以便开发人员可以在其基础上构建创意应用程序。以下是我们正在积极开发的一些方向
如果你有任何反馈或建议,请通过 [email protected] 或 TensorFlow 论坛 告知我们!
我们要感谢 MoveNet 的其他贡献者:Ronny Votel、Ard Oerlemans、Francois Belletti,以及 TensorFlow Lite 的相关人员:Tian Lin、Lu Wang。
2021 年 8 月 16 日 — 发布者:Khanh LeViet,TensorFlow 开发者倡导者和 Yu-hui Chen,软件工程师MoveNet iOS 示例已发布。在 GitHub 上查看。自 MoveNet 在今年早些时候的 Google I/O 大会上发布以来,我们收到了很多积极的反馈和功能请求。今天,我们很高兴与大家分享一些更新:MoveNet 的 TensorFlow Lite 版本现在已在 … 上提供。