android 实时曲线_安卓Tensorflow Lite人体姿势跟踪上线:基于PosNet的实时人体姿态估计...

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~

来源:机器之心

怀着激动的心情,我们发布了一个「TensorFlow Lite」示例应用程序(https://www.tensorflow.org/lite),通过它在安卓设备上通过使用「PoseNet」模型来实现人体姿势估计。「PoseNet」是一种视觉模型,它可以通过检测关键身体部位的位置来估计图像或者视频中的人体姿势。例如,该模型可以估计图像中人的手肘和/或膝盖位置。这种姿势估计模型不会鉴别图像中的人是谁,只会找到关键身体部位的位置。 TensorFlow Lite 分享了一个安卓示例应用程序,该应用程序利用设备的摄像头来实时地检测和显示一个人的关键部位。

c7f78301-a11c-eb11-8da9-e4434bdf6706.gif

源码链接如下: 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 库的工作流。

c9f78301-a11c-eb11-8da9-e4434bdf6706.png

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 = listOf()  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 示例应用程序!我们希望这个应用程序能让设备内置的机器学习功能更触手可及。 原文链接: https://medium.com/tensorflow/track-human-poses-in-real-time-on-android-with-tensorflow-lite-e66d0f3e6f9e

-完-

*延伸阅读

  • CVPR2019|浙大CAD实验室:快速鲁棒的多视角多人三维姿态估计新方法(含直播回放)

  • MIT发明可以改变图中人姿态的模型,以后可以“假装在健身”了

  • 40万现金大奖+免费算力+英特尔神经棒,极市开发者榜单邀你来战!


添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~

caf78301-a11c-eb11-8da9-e4434bdf6706.jpeg

△长按添加极市小助手

cbf78301-a11c-eb11-8da9-e4434bdf6706.jpeg

△长按关注极市平台

觉得有用麻烦给个在看啦~  cdf78301-a11c-eb11-8da9-e4434bdf6706.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值