Tensorflow Lite人体姿势跟踪功能上线:基于PosNet的实时人体姿态估计
点击我爱计算机视觉标星,更快获取CVML新技术
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载。
选自medium
作者:TensorFlow
机器之心编译
参与:陈韵莹、Geek AI
Tensowflow Lite 是移动端计算机视觉应用程序中的明星产品。这个夏天,Tensorflow Lite 再度进化,加入了 PosNet 人体姿态估计模块,性能再度加强!
怀着激动的心情,我们发布了一个「TensorFlow Lite」示例应用程序(https://www.tensorflow.org/lite),通过它在安卓设备上通过使用「PoseNet」模型来实现人体姿势估计。「PoseNet」是一种视觉模型,它可以通过检测关键身体部位的位置来估计图像或者视频中的人体姿势。例如,该模型可以估计图像中人的手肘和/或膝盖位置。这种姿势估计模型不会鉴别图像中的人是谁,只会找到关键身体部位的位置。
TensorFlow Lite 分享了一个安卓示例应用程序,该应用程序利用设备的摄像头来实时地检测和显示一个人的关键部位。
源码链接如下:https://github.com/tensorflow/examples/tree/master/lite/examples/posenet/android
这为什么会令人感到兴奋呢?
通过姿势估计可以实现多种可能性。举几个例子,开发者可以在身体图像上进行增强现实,动画化计算机图形人物,以及分析运动员在运动中的步态。在 Google I/O』19 上,TensorFlow Lite 展示了应用程序 Dance Like,该程序通过使用 PoseNet 帮助用户学习如何跳舞。
这个示例应用程序将会让应用程序的开发者和机器学习的专家们更易于探索轻量级移动端模型的可能性。
PoseNet 示例应用程序
与现有的以 JAVA 写的安卓示例相反,PoseNet 示例应用程序是在 Kotlin 上开发的。开发此应用程序的目的为了让所有人都能以最小的支出轻松地使用 PoseNet 模型。这个示例应用程序包括了一个 PoseNet 库,它抽离了模型中的复杂性。以下的图表展示了应用程序、PoseNet 库和 TensorFlow Lite 库的工作流。
PoseNet 应用程序工作流
PoseNet 库
PoseNet 库提供了一个接口,它以经过处理的摄像头图像作为输入,并返回人像关键身体部位的位置信息。此功能由「estimateSinglePose()」实现,此方法会在处理过的 RGB 位图上运行 TensorFlow Lite 解释器,返回一个 Person 对象。
对 PoseNet 的输入和输出的解释如下:https://www.tensorflow.org/lite/models/pose_estimation/overview
「Person」类包含了关键身体部位的位置和它们对应的置信度。人像的置信度是各个关键点置信度的均值,这表明了该位置存在关键点的概率。
// Person class holds a list of key points and an associated confidence score.
class Person {var keyPoints: List<KeyPoint> = listOf<KeyPoint>()var score: Float = 0.0f
}
每个关键点包含了某个身体部位的位置信息和该关键点的置信度。
所有可以找到的已定义关键点的列表如下:https://www.tensorflow.org/lite/models/pose_estimation/overview#how_it_works。
PoseNet 应用程序示例
这里展示的是一款摄像头设备内置(on-device)的 PoseNet 示例应用程序,它捕捉摄像头拍摄的帧,并实时覆盖图像上的关键点。
该应用程序对每张传入的摄像头图像执行以下操作:
从摄像头预览中获取图像数据并将它从「YUV_420_888」转换成「ARGB_888」格式。
创建一个位图对象来保存来自 RGB 格式帧数据的像素。将位图裁剪并缩放到模型输入的大小,以便将其传递给模型。
从 PoseNet 库中调用「estimateSinglePose()」函数来获取「Person」对象。
将位图缩放回屏幕大小,在「Canvas」对象上绘制新的位图。
使用从「Person」对象中获取的关键点位置在画布上绘制骨架。显示置信度超过特定阈值(默认值为 0.2)的关键点。
为了将姿势渲染与摄像头帧同步。我们用单个「SurfaceView」来显示输出而不是对姿势和摄像头分别建立「View」实例。「SurfaceView」通过获取、锁定和在「View」画布上绘图,无延时地将安卓的 surface 对象显示在屏幕上。
在设备上运行
我们鼓励读者从 Github 上下载源码,参考其中 Readme 文件的引导,自己动手测试一下这个应用程序。
Github地址:https://github.com/tensorflow/examples/tree/master/lite/examples/posenet/android
未来的工作路线
在未来,我们希望为这个示例应用程序探索更多的功能,包括:
多姿态估计
通过 GPU delegate 进行 GPU 加速
通过 NNAPI delegate 进行 NNAPI 加速
通过训练后(post-training quantization)量化模型来减少延迟
更多的模型选项,如 ResNet PoseNet 模型
很开心能在这个夏天开发 PoseNet 示例应用程序!我们希望这个应用程序能让设备内置的机器学习功能更触手可及。如果你在使用这个应用程序,请通过 #TFLite、#TensorFlow 和 #PoweredByTF 与我们分享.
原文链接:https://medium.com/tensorflow/track-human-poses-in-real-time-on-android-with-tensorflow-lite-e66d0f3e6f9e
推荐阅读:
推荐!京东开源姿态跟踪新框架LightTrack!
人体姿态估计与跟踪群
学习交流最新最前沿的人体姿态估计与跟踪技术,欢迎加入专属交流群,扫码添加CV君拉你入群,如已为CV君其他账号好友请直接私信,
(请务必注明:姿态):
喜欢在QQ交流的童鞋可以加52CV官方QQ群:805388940。
(不会时时在线,如果没能及时通过还请见谅)
长按关注我爱计算机视觉
Tensorflow Lite人体姿势跟踪功能上线:基于PosNet的实时人体姿态估计相关推荐
- 项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人
本文已在[飞桨PaddlePaddle]公众号平台发布,详情请戳链接:项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人 皮影戏是一种以兽皮或纸板做成的人物剪影以表 ...
- 基于深度学习的三维姿态估计
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|计算机视觉工坊 三维重建领域主要的数据格式有四种: • ...
- 视觉伺服控制工具Visual Servoing Platform---VISP(6)----基于4个平面点的姿态估计
本教程重点介绍平面或非平面点的姿势估计.从它们在图像平面中的二维坐标以及在对象坐标系中指定的相应三维坐标,ViSP能够估计相机和对象坐标系之间的相对姿势.此姿势作为齐次矩阵cMo返回.请注意,要估计姿 ...
- 基于Part Affinity Fields的姿态估计后处理笔记
文章目录 openpose论文 Confidence Maps for Part Detection Part Affinity Fields for Part Association 代码解析 关键 ...
- 利用深度学习进行人体姿势估计--概述
本文转载于原文链接 什么是姿势估计? 人体姿势估计和跟踪是一项计算机视觉任务,包括检测.关联和跟踪语义关键点.语义关键点的例子是 "右肩"."左膝 "或 &qu ...
- TensorFlow Lite(实战系列一):TFLite Android 迁移训练构建自己的图像识别APP
摘要 人工智能想要从实验室走向大众,一个必不可少的途径就是朝着智能终端.嵌入式产品等边缘设备发展.谷歌基于TFMobile推出了TFLite,我们只需要把训练好的模型按照一定规则转换成拥有.tflit ...
- 卷积神经网络精确率不增反降_姿态跟踪论文研读--(1)利用卷积神经网络学习人体姿态估计特征...
摘要 本文介绍了一种新的结构,就是利用多层卷积神经网络结构和模块化学习技术来习得低维特征和高维弱空间模型,以此来进行人体姿态估计.无约束的人体姿态估计是计算机视觉领域中最困难,最棘手的问题之一,而我们 ...
- 案例分享 | CEVA 使用 TensorFlow Lite 在边缘设备部署语音识别引擎及前端
客座博文 / Ido Gus,来自 CEVA CEVA 是无线连接和智能传感技术的领先授权商.我们的产品可帮助原始设备制造商 (OEM) 为移动设备.消费者.汽车.机器人.工业和物联网等多种终端市场, ...
- 科研笔记-无线感知第1篇(基于WIFI CSI进行人体行为识别调查)
基于WIFI CSI进行人体行为识别调查 目录 基于WIFI CSI进行人体行为识别调查 人体姿态识别研究现状: 无线感知相关知识点: WIFI系统的局限性: 基于 Wi-Fi CSI 的行为识别: ...
最新文章
- 如何用两个小时入门 Docker?
- WPS 导致 EXCEL 文件下载问题
- Python 知识点笔记:走进面向对象
- VTK:图片之ImageDivergence
- 替换url部分_MOCTF部分Web题攻略
- java jdbc分页_使用JDBC进行分页查询
- vbs向指定的日志文件添加日志
- c#进阶(6)—— 网络通信基础知识
- HighGUI参考手册
- tesseract 提升 速度_京东研发效能提升,从正确地实施度量开始
- rtsp简介(ZT)之消息流程-转
- javascript 继承、子类化
- “OSPF” DR与BDR
- SuperIndicator开源库源码分析
- 20200515每日一句
- excel按季度分类汇总_巧用excel进行分类汇总的五种方法
- ROC曲线面积AUC详解
- 进军AR领域,这一次罗永浩能成吗?
- 奥克兰大学 计算机硕士 GPA,奥克兰大学GPA
- 在vue项目中使用骨架屏
热门文章
- SpringMVC 文件上传及下载
- java构建工具 gradle_Java构建工具
- php html5 案例,35个非常好的HTML5+CSS3实例
- 学mysql需要学python吗_python 学习 第六篇 mysql
- 查看硬件配置的Linux命令,LINUX 查看硬件配置命令的教程
- linux循环处理脚本命令,后端开发必须掌握的Linux命令[Shell脚本篇]
- mysql timestamp_详解mysql三大时间函数now()、current_timestamp() 和sysdate()
- php 判断用户是否刷新,ajax php 实现无刷新用户检查是否存在
- ccie计算机网络英语,最新版CCIE Voice 语音方向 WOLF实验全套语音课程(含版本)...
- 多些时间能少写些代码