0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于TensorFlow Lite的几项技术更新

Tensorflowers ? 来源:TensorFlow ? 作者:Yu-hui Chen ? 2021-09-23 15:38 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

自年初在 Google I/O 大会上宣布推出 MoveNet 以来,我们已经收到了众多积极反馈和功能请求。今天,我们很高兴能与大家分享以下几项技术更新:

MoveNet 的 TensorFlow Lite 版本现已在 TensorFlow Hub 上推出。我们对该版本进行了一些可提升准确率的更新,并使其与硬件加速器兼容,其中包括 GPU 和获得 Android NN API 支持的其他加速器。

TensorFlow Hub

http://hub.tensorflow.google.cn/s?deployment-format=lite&q=movenet

我们发布了可在 Android 环境下使用 Raspberry Pi 的全新姿态预测示例,可让您在移动设备和 IoT 设备上试用 MoveNet。(即将支持 iOS 系统)

Android

https://github.com/tensorflow/examples/tree/master/lite/examples/pose_estimation/android

Raspberry Pi

https://github.com/tensorflow/examples/tree/master/lite/examples/pose_estimation/raspberry_pi

同时,我们还发布了 Colab notebook,旨在教会您如何利用 MoveNet 对自定义姿势进行分类(例如,识别不同的瑜伽姿势)。您可以在上文提到的 Android、iOS 和 Raspberry Pi 应用中试用姿态分类。

notebook

https://tensorflow.google.cn/lite/tutorials/pose_classification

什么是姿态预测?

姿态预测是一项机器学习任务,即通过预测图像或视频中特定身体部位(关键点)的空间位置来预测人物姿态。MoveNet 是目前最先进的姿态预测模型,能够检测以下 17 个关键点:

鼻子

左眼和右眼

左耳和右耳

左肩和右肩

左肘和右肘

左腕和右腕

左臀和右臀

左膝和右膝

左脚踝和右脚踝

我们发布了以下两个 MoveNet 版本:

MoveNet.Lightning 模型体积更小、速度更快,但在准确性方面不如 Thunder 模型。该模型能在现代智能手机上实时运行。

MoveNet.Lightning

http://hub.tensorflow.google.cn/google/movenet/singlepose/lightning/

MoveNet.Thunder 模型准确性更高,但体积较 Lightning 模型而言更大,速度也相对较慢。

MoveNet.Thunder

http://hub.tensorflow.google.cn/google/movenet/singlepose/thunder/

各种基准数据集(参见下文表中的评估/基准结果)中的数据表明,MoveNet 模型的表现优于我们先前的 TensorFlow Lite 姿态预测模型 Posenet(论文、文章和模型)。

论文

https://arxiv.org/abs/1803.08225

文章

https://medium.com/tensorflow/track-human-poses-in-real-time-on-android-with-tensorflow-lite-e66d0f3e6f9e

模型

https://storage.googleapis.com/download.tensorflow.org/models/tflite/posenet_mobilenet_v1_100_257x257_multi_kpt_stripped.tflite

以上 MoveNet 模型支持 TensorFlow Lite FP16 和 INT8 量化格式,可最大限度与硬件加速器兼容。

此次 MoveNet 版本可识别输入图像中的单一姿态。如果图像中的人数超过一个,该模型会通过剪裁算法将尽可能地聚焦在离图像中心最近的人物身上。同时,我们还采用了智能剪裁算法,来提高视频检测的准确率。简而言之,该模型将放大前一帧中检测到姿态的区域,继而查看更细节的部分,然后根据当前帧做出更准确的预测。

如果您想深入了解 MoveNet 的实现过程,请查看之前发布的文章,其中包括 MoveNet 模型架构和其训练时用到的数据集。

Android 与 Raspberry Pi

的示例应用

我们发布了全新的姿态预测示例应用,便于您在所选平台上快速试用不同的姿态预测模型(MoveNet Lightning、MoveNet Thunder 和 Posenet)。

Android 示例

iOS 示例

Raspberry Pi 示例

在 Android 和 iOS 示例中,您也可以选择使用加速器(GPU、NNAPI 或 CoreML)来运行姿态预测模型。

Android 示例应用屏幕截图。图像来自 Pixabay

MoveNet 性能

我们已对 MoveNet 进行优化,使其能在由 TensorFlow Lite 提供支持的硬件加速器(包括 GPU 和获得 Android NN API 支持的加速器)上更好地运行。MoveNet 的性能基准结果可助您选择最适合您用例的运行时配置。

模型大小 (MB)mAP*延迟时间 (ms) **

Pixel 5 -

CPU 4 线程Pixel 5 - GPURaspberry Pi 4 -

CPU 4 线程

MoveNet.

Thunder

(FP16 量化)12.6MB72.0155ms45ms594ms

MoveNet.

Thunder

(INT8 量化)7.1MB68.9100ms52ms251ms

MoveNet.

Lightning

(FP16 量化)4.8MB63.060ms25ms186ms

MoveNet.

Lightning

(INT8 量化)2.9MB57.452ms28ms95ms

PoseNet(MobileNetV1

主干,FP32)13.3MB45.680ms40ms338ms

* 我们在 COCO 关键点数据集的子集上测量 mAP,并在其中筛选并裁剪每张图像,使其只包含一个人像。

** 在持续负载下,我们使用带有 TensorFlow 2.5 的 Android 和 Raspberry Pi 示例应用测量端到端的延迟时间。

选择 Lightning 或 Thunder 模型。首先,您应该了解 Lightning 模型的准确率能否满足您的用例。

对于您的用例而言,如果 Lightning INT8 模型的准确率足够高,则可以选择该模型,因为它是系列模型中体积最小、速度最快的模型。模型的越快则意味着其能耗越少。

如果准确率对于您的用例而言至关重要,Thunder FP16 模型则是理想之选。

选择加速器。加速器的性能会因不同的制造商制造的 Android 设备而异。

CPU 是最为安全便捷的选择,因为可以肯定的是,CPU 几乎可以在任何能运行 TensorFlow Lite 的 Android 设备上正常工作。但在通常情况下,相较于在加速器上运行模型,在 CPU 运行模型时速度更慢,且耗能更高。所有 MoveNet 模型都能在 CPU 上运行良好,因此您应该根据自身的准确率需求选择模型。

GPU 是应用最广泛的加速器,能够提供出色的性能提升。如果您想使用 GPU,FP16 量化模型则是理想之选。

Android NNAPI 是一种能在 Android 设备上支持其他 ML 加速器的便捷方式。如果您已经将 CPU 或 GPU 用于其他工作负载,并且用户设备运行版本为 Android 10 或更高版本,则您可以选择满足您准确率需求的模型,并让 NNAPI 选择最适合您模型的路径。

如果您是 IoT 开发者,不妨使用 Coral 来提升推理速度。请在此处查看 Coral 基准数据。

此处

https://coral.ai/models/pose-estimation/

对模型进行无线部署,而非将其捆绑在应用的二进制文件中。

由于 Android 生态系统的多元化,我们无法提供适用于所有用户的统一模型。对于使用低端设备的用户而言,Lightning INT8 模型是最佳选择,因为该模型速度最快,且能耗最少。然而对于使用高端设备的用户而言,不妨凭借 Thunder FP16 模型提供更为出色的性能。如果您想根据用户设备更改模型,则可以考虑使用免费版Firebase ML 托管您的模型,而非将所有打算使用的模型捆绑到应用中。如果用户开始使用需要 TFLite 模型的应用功能,则您可以编写逻辑,为每个用户设备下载最佳模型。

Firebase ML

https://firebase.google.com/docs/ml/manage-hosted-models

姿态分类

TensorBoard 是 TensorFlow 的可视化工具包。通过将 TensorFlow Quantum 模型与 TensorBoard 进行集成,您将获得许多开箱可用的模型可视化数据,例如训练损失和准确性、可视化模型图和程序分析。

为简化姿态分类流程,我们还发布了 Colab notebook,该工具能够教您如何通过结合 MoveNet 和 TensorFlow Lite,并根据自定义姿态数据集来训练自定义姿态分类模型。这表示如果您想要识别瑜伽姿势,您需要做的就是收集您想识别的姿态图像并为其添加标签,然后按照教程进行训练,接着将瑜伽姿势分类器部署到您的应用中。

姿态分类器由两个阶段构成:

1. 利用 MoveNet 检测输入图像中的关键点。

2. 利用小型 TensorFlow Lite 模型,对已检测到的关键点进行姿态分类。

利用 MoveNet 进行姿态分类的示例。输入图像来自 Pixabay

为训练自定义姿态分类器,您需要准备姿态图像,并将它们放入下图所示的文件夹结构中。您可以根据想要识别的类别为每个子文件夹命名。然后运行 notebook 来训练自定义姿态分类器,并将其转换为 TensorFlow Lite 格式。

yoga_poses

|__ downdog

|______ 00000128.jpg

|______ 00000181.bmp

|______ 。..

|__ goddess

|______ 00000243.jpg

|______ 00000306.jpg

|______ 。..

。..

TensorFlow Lite 姿态分类模型非常小,其大小只有 30KB 左右。该模型从 MoveNet 中获取标记点输出,使姿态坐标标准化,并将坐标传递至几个完全连接的层中。模型的输出是一个概率列表,即姿态为每个已知的姿态类别。

TensorFlow Lite 姿态分类模型概览

您可以在任何已发布的 Android 或 Raspberry Pi 姿态预测示例应用中试用姿态分类模型。

Android

https://github.com/tensorflow/examples/tree/master/lite/examples/pose_estimation/android

Raspberry Pi

https://github.com/tensorflow/examples/tree/master/lite/examples/pose_estimation/raspberry_pi#run-the-pose-classification-sample

未来计划

我们的目标是提供核心的姿态预测技术以及动作识别引擎,让开发者在此基础上构建创新性应用。以下是我们目前正在积极研究的一些方向:

对 MoveNet 当前版本做出改进,使其能在同一转接路径中检测多种姿态。

研发新型动作识别技术,使其能在多个帧上检测姿态。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3531

    浏览量

    50572
  • tensorflow
    +关注

    关注

    13

    文章

    330

    浏览量

    61240
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    26

    浏览量

    752

原文标题:MoveNet 技术更新|基于 TensorFlow Lite 的姿态模型预测及分类

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【Milk-V Duo S 开发板免费体验】开箱、介绍、系统更新

    地为张量处理单元核心提供高带宽数据流。 为用户提供了强大的深度学习模型编译器和软件 SDK 开发套件。 Caffe、Pytorch、ONNX、MXNet、TensorFlowLite)等主流深度学习
    发表于 06-28 09:18

    无法将Tensorflow Lite模型转换为OpenVINO?格式怎么处理?

    Tensorflow Lite 模型转换为 OpenVINO? 格式。 遇到的错误: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostP
    发表于 06-25 08:27

    客户说 为什么我们淘汰了某某某网关选择深控技术? ——某跨国食品集团数字化转型负责人访谈实录

    深控技术凭借其成熟的维护成本直降68%的奥秘成本对比数据表和无限可能的协议兼容性实测,解决某乳品产线的“七年之痒”,让企业从束手束脚到“无限可能”。此外,深控技术的边缘处理能力也远超某某品牌,支持TensorFlow
    的头像 发表于 04-21 14:39 ?181次阅读
    客户说 为什么我们淘汰了某某某网关选择深控<b class='flag-5'>技术</b>? ——某跨国食品集团数字化转型负责人访谈实录

    FlexBuild构建Debian 12,在“tflite_ethosu_delegate”上构建失败了怎么解决?

    /workspace/tn_debian_FlexBuild 构建/components_lsdk2412/apps/ml/tflite/tensorflow/lite/tools/cmake
    发表于 04-01 06:53

    用树莓派搞深度学习?TensorFlow启动!

    介绍本页面将指导您在搭载64位Bullseye操作系统的RaspberryPi4上安装TensorFlowTensorFlow是一个专为深度学习开发的大型软件库,它消耗大量资源。您可以在
    的头像 发表于 03-25 09:33 ?488次阅读
    用树莓派搞深度学习?<b class='flag-5'>TensorFlow</b>启动!

    可以使用OpenVINO?工具包将中间表示 (IR) 模型转换为TensorFlow格式吗?

    无法将中间表示 (IR) 模型转换为 TensorFlow* 格式
    发表于 03-06 06:51

    使用各种TensorFlow模型运行模型优化器时遇到错误非法指令怎么解决?

    使用各种 TensorFlow 模型运行模型优化器时遇到 [i]错误非法指令
    发表于 03-05 09:56

    TensorFlow saved_model格式转换为IR遇到错误怎么解决?

    TensorFlow saved_model格式转换为 IR。 遇到错误: FrontEnd API failed with OpConversionFailure: : No translator found for TensorListFromTensor node.
    发表于 03-05 09:12

    OpenVINO?是否与TensorFlow集成支持Raspberry Pi?

    无法确定OpenVINO?是否与 TensorFlow* 集成支持 Raspberry Pi。
    发表于 03-05 08:26

    EE-217:更新ADSP-TS101S TigerSHARC EZ-KIT Lite固件

    电子发烧友网站提供《EE-217:更新ADSP-TS101S TigerSHARC EZ-KIT Lite固件.pdf》资料免费下载
    发表于 01-14 16:39 ?0次下载
    EE-217:<b class='flag-5'>更新</b>ADSP-TS101S TigerSHARC EZ-KIT <b class='flag-5'>Lite</b>固件

    请问为ADC选Driver主要要看哪几项技术指标呢?

    to 20-Bit, Differential, High-Speed SAR Drivers,这时说THS4561就不适合做Delta-Sigma (ΔΣ) ADC Drivers吗?请问为ADC选Driver主要要看哪几项技术指标呢?
    发表于 12-16 06:00

    FLIR Ex Pro热像仪的OTA无线更新技术

    手机换代迅速,系统更新频繁 让人不禁遐想:若热像仪也能如此 检测人员是否就能随时掌握最新科技? 今日为您揭秘 FLIR Ex Pro热像仪的OTA无线更新技术 它让您的热像仪轻松升级至最新版 确保您
    的头像 发表于 12-04 11:39 ?545次阅读

    连接器选型的几项基本原则

    在连接器的领域连接器的选型是每个连接器人都必须要经历的事情,在连接器选型的道路上有很多需要注意的东西,稍有不慎就会导致最终选择的连接器无法投入使用。蓬生电子给大家整理了连接器选型的几项基本原则,来
    的头像 发表于 10-17 17:29 ?841次阅读

    快速部署Tensorflow和TFLITE模型在Jacinto7 Soc

    电子发烧友网站提供《快速部署Tensorflow和TFLITE模型在Jacinto7 Soc.pdf》资料免费下载
    发表于 09-27 11:41 ?0次下载
    快速部署<b class='flag-5'>Tensorflow</b>和TFLITE模型在Jacinto7 Soc

    第四章:在 PC 交叉编译 aarch64 的 tensorflow 开发环境并测试

    本文介绍了在 PC 端交叉编译 aarch64 平台的 tensorflow 库而非 tensorflow lite 的心酸过程。
    的头像 发表于 08-25 11:38 ?2769次阅读
    第四章:在 PC 交叉编译 aarch64 的 <b class='flag-5'>tensorflow</b> 开发环境并测试