0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于TensorFlow Lite的幾項技術(shù)更新

Tensorflowers ? 來源:TensorFlow ? 作者:Yu-hui Chen ? 2021-09-23 15:38 ? 次閱讀

自年初在 Google I/O 大會上宣布推出 MoveNet 以來,我們已經(jīng)收到了眾多積極反饋和功能請求。今天,我們很高興能與大家分享以下幾項技術(shù)更新:

MoveNet 的 TensorFlow Lite 版本現(xiàn)已在 TensorFlow Hub 上推出。我們對該版本進行了一些可提升準確率的更新,并使其與硬件加速器兼容,其中包括 GPU 和獲得 Android NN API 支持的其他加速器。

TensorFlow Hub

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

我們發(fā)布了可在 Android 環(huán)境下使用 Raspberry Pi 的全新姿態(tài)預(yù)測示例,可讓您在移動設(shè)備和 IoT 設(shè)備上試用 MoveNet。(即將支持 iOS 系統(tǒng))

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

同時,我們還發(fā)布了 Colab notebook,旨在教會您如何利用 MoveNet 對自定義姿勢進行分類(例如,識別不同的瑜伽姿勢)。您可以在上文提到的 Android、iOS 和 Raspberry Pi 應(yīng)用中試用姿態(tài)分類。

notebook

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

什么是姿態(tài)預(yù)測?

姿態(tài)預(yù)測是一項機器學(xué)習(xí)任務(wù),即通過預(yù)測圖像或視頻中特定身體部位(關(guān)鍵點)的空間位置來預(yù)測人物姿態(tài)。MoveNet 是目前最先進的姿態(tài)預(yù)測模型,能夠檢測以下 17 個關(guān)鍵點:

鼻子

左眼和右眼

左耳和右耳

左肩和右肩

左肘和右肘

左腕和右腕

左臀和右臀

左膝和右膝

左腳踝和右腳踝

我們發(fā)布了以下兩個 MoveNet 版本:

MoveNet.Lightning 模型體積更小、速度更快,但在準確性方面不如 Thunder 模型。該模型能在現(xiàn)代智能手機上實時運行。

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/

各種基準數(shù)據(jù)集(參見下文表中的評估/基準結(jié)果)中的數(shù)據(jù)表明,MoveNet 模型的表現(xiàn)優(yōu)于我們先前的 TensorFlow Lite 姿態(tài)預(yù)測模型 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 版本可識別輸入圖像中的單一姿態(tài)。如果圖像中的人數(shù)超過一個,該模型會通過剪裁算法將盡可能地聚焦在離圖像中心最近的人物身上。同時,我們還采用了智能剪裁算法,來提高視頻檢測的準確率。簡而言之,該模型將放大前一幀中檢測到姿態(tài)的區(qū)域,繼而查看更細節(jié)的部分,然后根據(jù)當前幀做出更準確的預(yù)測。

如果您想深入了解 MoveNet 的實現(xiàn)過程,請查看之前發(fā)布的文章,其中包括 MoveNet 模型架構(gòu)和其訓(xùn)練時用到的數(shù)據(jù)集。

Android 與 Raspberry Pi

的示例應(yīng)用

我們發(fā)布了全新的姿態(tài)預(yù)測示例應(yīng)用,便于您在所選平臺上快速試用不同的姿態(tài)預(yù)測模型(MoveNet Lightning、MoveNet Thunder 和 Posenet)。

Android 示例

iOS 示例

Raspberry Pi 示例

在 Android 和 iOS 示例中,您也可以選擇使用加速器(GPU、NNAPI 或 CoreML)來運行姿態(tài)預(yù)測模型。

Android 示例應(yīng)用屏幕截圖。圖像來自 Pixabay

MoveNet 性能

我們已對 MoveNet 進行優(yōu)化,使其能在由 TensorFlow Lite 提供支持的硬件加速器(包括 GPU 和獲得 Android NN API 支持的加速器)上更好地運行。MoveNet 的性能基準結(jié)果可助您選擇最適合您用例的運行時配置。

模型大小 (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

主干,F(xiàn)P32)13.3MB45.680ms40ms338ms

* 我們在 COCO 關(guān)鍵點數(shù)據(jù)集的子集上測量 mAP,并在其中篩選并裁剪每張圖像,使其只包含一個人像。

** 在持續(xù)負載下,我們使用帶有 TensorFlow 2.5 的 Android 和 Raspberry Pi 示例應(yīng)用測量端到端的延遲時間。

選擇 Lightning 或 Thunder 模型。首先,您應(yīng)該了解 Lightning 模型的準確率能否滿足您的用例。

對于您的用例而言,如果 Lightning INT8 模型的準確率足夠高,則可以選擇該模型,因為它是系列模型中體積最小、速度最快的模型。模型的越快則意味著其能耗越少。

如果準確率對于您的用例而言至關(guān)重要,Thunder FP16 模型則是理想之選。

選擇加速器。加速器的性能會因不同的制造商制造的 Android 設(shè)備而異。

CPU 是最為安全便捷的選擇,因為可以肯定的是,CPU 幾乎可以在任何能運行 TensorFlow Lite 的 Android 設(shè)備上正常工作。但在通常情況下,相較于在加速器上運行模型,在 CPU 運行模型時速度更慢,且耗能更高。所有 MoveNet 模型都能在 CPU 上運行良好,因此您應(yīng)該根據(jù)自身的準確率需求選擇模型。

GPU 是應(yīng)用最廣泛的加速器,能夠提供出色的性能提升。如果您想使用 GPU,F(xiàn)P16 量化模型則是理想之選。

Android NNAPI 是一種能在 Android 設(shè)備上支持其他 ML 加速器的便捷方式。如果您已經(jīng)將 CPU 或 GPU 用于其他工作負載,并且用戶設(shè)備運行版本為 Android 10 或更高版本,則您可以選擇滿足您準確率需求的模型,并讓 NNAPI 選擇最適合您模型的路徑。

如果您是 IoT 開發(fā)者,不妨使用 Coral 來提升推理速度。請在此處查看 Coral 基準數(shù)據(jù)。

此處

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

對模型進行無線部署,而非將其捆綁在應(yīng)用的二進制文件中。

由于 Android 生態(tài)系統(tǒng)的多元化,我們無法提供適用于所有用戶的統(tǒng)一模型。對于使用低端設(shè)備的用戶而言,Lightning INT8 模型是最佳選擇,因為該模型速度最快,且能耗最少。然而對于使用高端設(shè)備的用戶而言,不妨憑借 Thunder FP16 模型提供更為出色的性能。如果您想根據(jù)用戶設(shè)備更改模型,則可以考慮使用免費版Firebase ML 托管您的模型,而非將所有打算使用的模型捆綁到應(yīng)用中。如果用戶開始使用需要 TFLite 模型的應(yīng)用功能,則您可以編寫邏輯,為每個用戶設(shè)備下載最佳模型。

Firebase ML

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

姿態(tài)分類

TensorBoard 是 TensorFlow 的可視化工具包。通過將 TensorFlow Quantum 模型與 TensorBoard 進行集成,您將獲得許多開箱可用的模型可視化數(shù)據(jù),例如訓(xùn)練損失和準確性、可視化模型圖和程序分析。

為簡化姿態(tài)分類流程,我們還發(fā)布了 Colab notebook,該工具能夠教您如何通過結(jié)合 MoveNet 和 TensorFlow Lite,并根據(jù)自定義姿態(tài)數(shù)據(jù)集來訓(xùn)練自定義姿態(tài)分類模型。這表示如果您想要識別瑜伽姿勢,您需要做的就是收集您想識別的姿態(tài)圖像并為其添加標簽,然后按照教程進行訓(xùn)練,接著將瑜伽姿勢分類器部署到您的應(yīng)用中。

姿態(tài)分類器由兩個階段構(gòu)成:

1. 利用 MoveNet 檢測輸入圖像中的關(guān)鍵點。

2. 利用小型 TensorFlow Lite 模型,對已檢測到的關(guān)鍵點進行姿態(tài)分類。

利用 MoveNet 進行姿態(tài)分類的示例。輸入圖像來自 Pixabay

為訓(xùn)練自定義姿態(tài)分類器,您需要準備姿態(tài)圖像,并將它們放入下圖所示的文件夾結(jié)構(gòu)中。您可以根據(jù)想要識別的類別為每個子文件夾命名。然后運行 notebook 來訓(xùn)練自定義姿態(tài)分類器,并將其轉(zhuǎn)換為 TensorFlow Lite 格式。

yoga_poses

|__ downdog

|______ 00000128.jpg

|______ 00000181.bmp

|______ 。..

|__ goddess

|______ 00000243.jpg

|______ 00000306.jpg

|______ 。..

。..

TensorFlow Lite 姿態(tài)分類模型非常小,其大小只有 30KB 左右。該模型從 MoveNet 中獲取標記點輸出,使姿態(tài)坐標標準化,并將坐標傳遞至幾個完全連接的層中。模型的輸出是一個概率列表,即姿態(tài)為每個已知的姿態(tài)類別。

TensorFlow Lite 姿態(tài)分類模型概覽

您可以在任何已發(fā)布的 Android 或 Raspberry Pi 姿態(tài)預(yù)測示例應(yīng)用中試用姿態(tài)分類模型。

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

未來計劃

我們的目標是提供核心的姿態(tài)預(yù)測技術(shù)以及動作識別引擎,讓開發(fā)者在此基礎(chǔ)上構(gòu)建創(chuàng)新性應(yīng)用。以下是我們目前正在積極研究的一些方向:

對 MoveNet 當前版本做出改進,使其能在同一轉(zhuǎn)接路徑中檢測多種姿態(tài)。

研發(fā)新型動作識別技術(shù),使其能在多個幀上檢測姿態(tài)。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3062

    瀏覽量

    48575
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    328

    瀏覽量

    60444
  • TensorFlow Lite
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    586

原文標題:MoveNet 技術(shù)更新|基于 TensorFlow Lite 的姿態(tài)模型預(yù)測及分類

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發(fā)環(huán)境并測試

    本文介紹了在 PC 端交叉編譯 aarch64 平臺的 tensorflow 庫而非 tensorflow lite 的心酸過程。
    的頭像 發(fā)表于 08-25 11:38 ?564次閱讀
    第四章:在 PC 交叉編譯 aarch64 的 <b class='flag-5'>tensorflow</b> 開發(fā)環(huán)境并測試

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發(fā)的一個開源深度學(xué)習(xí)框架,它允許開發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機器學(xué)習(xí)模型。TensorFlow憑借其高效的計算性能、靈活的架構(gòu)以及豐富的工具和庫,在學(xué)
    的頭像 發(fā)表于 07-12 16:38 ?475次閱讀

    使用TensorFlow進行神經(jīng)網(wǎng)絡(luò)模型更新

    使用TensorFlow進行神經(jīng)網(wǎng)絡(luò)模型的更新是一個涉及多個步驟的過程,包括模型定義、訓(xùn)練、評估以及根據(jù)新數(shù)據(jù)或需求進行模型微調(diào)(Fine-tuning)或重新訓(xùn)練。下面我將詳細闡述這個過程,并附上相應(yīng)的TensorFlow代碼
    的頭像 發(fā)表于 07-12 11:51 ?266次閱讀

    tensorflow和pytorch哪個更簡單?

    PyTorch更簡單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個易于使用、靈活且具有強大社區(qū)支持的框架,PyTorch可能是一個更好的選擇。如果您需要一個在
    的頭像 發(fā)表于 07-05 09:45 ?609次閱讀

    tensorflow和pytorch哪個好

    tensorflow和pytorch都是非常不錯的強大的框架,TensorFlow還是PyTorch哪個更好取決于您的具體需求,以下是關(guān)于這兩個框架的一些關(guān)鍵點: TensorFlow : 發(fā)布時間
    的頭像 發(fā)表于 07-05 09:42 ?562次閱讀

    tensorflow簡單的模型訓(xùn)練

    在本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓(xùn)練。TensorFlow是一個開源的機器學(xué)習(xí)庫,廣泛用于各種機器學(xué)習(xí)任務(wù),包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?413次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個高級神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡單、快速的方式來構(gòu)建
    的頭像 發(fā)表于 07-05 09:36 ?387次閱讀

    TensorFlow的定義和使用方法

    TensorFlow是一個由谷歌人工智能團隊谷歌大腦(Google Brain)開發(fā)和維護的開源機器學(xué)習(xí)庫。它基于數(shù)據(jù)流編程(dataflow programming)的概念,將復(fù)雜的數(shù)學(xué)運算表示為
    的頭像 發(fā)表于 07-02 14:14 ?604次閱讀

    微軟Office Outlook Lite服務(wù)升級,支持短信功能

    據(jù)報道,微軟于今日宣布更新 Outlook Lite 服務(wù),使其支持 SMS 短信功能。微軟稱,通過此項升級,用戶現(xiàn)可整合管理電子郵件及 SMS 短信,有效提升溝通效率。
    的頭像 發(fā)表于 05-28 11:41 ?478次閱讀

    如何使用TensorFlow構(gòu)建機器學(xué)習(xí)模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學(xué)習(xí)模型。
    的頭像 發(fā)表于 01-08 09:25 ?870次閱讀
    如何使用<b class='flag-5'>TensorFlow</b>構(gòu)建機器學(xué)習(xí)模型

    【飛騰派4G版免費試用】第四章:部署模型到飛騰派的嘗試

    使用; 使用 C++ 將 TensorFlow Lite 移植到飛騰派,分別在 PC 端和飛騰派上使用 sample/image_label 進行測試; 開發(fā)基于 TensorFlow Lit
    發(fā)表于 12-20 21:10

    HarmonyOS:使用MindSpore Lite引擎進行模型推理

    如果是第三方框架的模型,比如 TensorFlow、TensorFlow Lite、Caffe、ONNX 等,可以使用模型轉(zhuǎn)換工具轉(zhuǎn)換為.ms 格式的模型文件。 創(chuàng)建上下文,設(shè)置線程數(shù)、設(shè)備類型等參數(shù)
    發(fā)表于 12-14 11:41

    能量收集應(yīng)用的幾項技術(shù)挑戰(zhàn)

    電子發(fā)燒友網(wǎng)站提供《能量收集應(yīng)用的幾項技術(shù)挑戰(zhàn).doc》資料免費下載
    發(fā)表于 11-15 10:36 ?0次下載
    能量收集應(yīng)用的<b class='flag-5'>幾項</b><b class='flag-5'>技術(shù)</b>挑戰(zhàn)

    迅為iTOP-RK3568開發(fā)板npu手冊更新

    iTOP -RK3568開發(fā)板使用教程更新,后續(xù)資料會不斷更新,不斷完善,幫助用戶快速入門,大大提升研發(fā)速度。 為了滿足人工智能的需要,去年,迅為基于RK3568開發(fā)板編寫了對應(yīng)的手冊文檔&
    發(fā)表于 11-03 14:40

    PyTorch與TensorFlow的優(yōu)點和缺點

    轉(zhuǎn)載自:冷凍工廠 ? 深度學(xué)習(xí)框架是簡化人工神經(jīng)網(wǎng)絡(luò) (ANN) 開發(fā)的重要工具,并且其發(fā)展非常迅速。其中,TensorFlow 和 PyTorch 脫穎而出,各自在不同的機器學(xué)習(xí)領(lǐng)域占有一席之地
    的頭像 發(fā)表于 10-30 09:56 ?923次閱讀
    PyTorch與<b class='flag-5'>TensorFlow</b>的優(yōu)點和缺點