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

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

3天内不再提示

基于TensorFlow的开源JS库的网页前端人物动作捕捉的实现

张康康 2019-08-13 20:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:极链科技 曾启澔


前言


随着前端生态的发展,Java已经不仅仅局限于作为网页开发,也越来越活跃于服务器端,移动端小程序等应用开发中。甚至通过Electron等打包工具,甚至能够开发多系统的桌面应用。其涉足的领域宽泛也使得能够实现的功能也不再是简单的UI控件制作和内容的展示,在互动娱乐,小游戏领域也有着极大的发展前景。本文以通过Java开发一个基于浏览器摄像头的实时人物动作捕捉小程序为例,介绍一下前端在这一领域的可行性。

什么是TensorFlow

TensorFlow 最初是由Google大脑小组的研究员和工程师们开发出来,采用数据流图(Data Flow Graphs)用于机器学习和深度神经网络方面数值计算的开源软件库。其高度的可移植性和多语言性使得它可以通过各种常用编程语言编写,轻松的运行在多种平台的设备上。是一个集性能,可靠性,通用性,易用性为一体的强大开源库。

本文所使用的开源Java模型库:

l tfjs-models/posenet: 一个机器学习模型,功能为对图像或者视频中的人物进行动作捕捉,输出人体各个部位的keypoints(坐标集)。具有单一人物分析和多人物分析的特点。

l tfjs-models/body-pix: 一个机器学习模型,功能为对图像或者视频中人物和背景进行分析,将人物从背景中剥离出来,输出结果为人体24个部位在画面中的像素位置。具有将人物与背景分离的功能。

实现原理

本文所介绍的基于浏览器和网络摄像头的人物实时动作捕捉方法,其实现原理是通过Java调用

*在基本的原理中并不是必须的组成部分,但在下文中会简单介绍一种通过的图像绘制功能,提升人物捕捉精度的方法。

通过tfjs-models/posenet模型库实现人物动作捕捉

l基本配置

· 导入JS

7675f2c6ea9e411eb9c9f4a422b25b54.png

· HTML

df7c716bcb814e79b1bb2ce4d48390d3.png

· 初始化网络摄像头

3daaf70911944b1982171be31591868f.png

· 生成posenet对象

1c91cb128c464aa1b19d50ccc7471fdf.png

参数说明:

architecture:分为MobileNetV1和ResNet50两个体系,其中ResNet50精度更高但处理速度较慢。

outputStride:输出结果每个像素占用字节数,数字越小结果越精确,但处理的成本和时间更多。

inputResolution:输入图像压缩后的尺寸,数字越大越精确,但处理的成本和时间更多。

multiplier:仅在MobileNetV1体系中使用,卷积运算的深度(通道数),数字越大层数越多越精确,但处理的成本和时间更多。

l执行实时分析

2833e7c75f6e4c68a1248417a053378a.png

l结果

· 多人捕捉:多人捕捉时能够获得画面中人物的keypoints,互相之间有一定的干扰但影响并不是特别大。

· 单人捕捉:很容易被背景及身边人物干扰,导致人体keypoint定位不准确。

l缺点

通过实际的效果可以看到,该模型可以在多人物的时候准确捕捉到各个人物的动作和身体部位的keypoints,虽然存在若干干扰和不稳定但基本能够接受,实时性效果好,但是无法区分主要人物和次要人物,需要开发者对结果数据进行处理。

其score的生成是根据形状准确度来计算,没有场景深度的分析,因此无法判断人物前后位置关系。

由于以上的问题,该方法在单一人物动作捕捉时被周围环境干扰的影响极大。在背景存在其他人物时会因无法判断主次人物关系,极大的降低准确率。对单一人物动作捕效果非常的不理想,需要进行改进。

改进方案

单一人物的动作捕捉被外界干扰的影响太大导致结果并不理想,因此首先要考虑的就是屏蔽掉周围干扰物体,突出主体人物。由此引入了tfjs-models/body-pix模型库。

**tfjs-models/body-pix模型库的主要功能:**实时分析人物结构,将人物从背景中剥离。其作用对象为单一捕捉对象,正好适用于上述单人捕捉结果不理想的情况。

l基本配置

· 导入JS

f97f879121b0461b9654597f91a20dd5.png

· 生成bodyPixNet对象

dca1c4f005984c13b5dc878a7d3c88bd.png

ltfjs-models/body-pix与tfjs-models/posenet的混合使用

298fe16954534859a253e6fb7c148c89.png

l结果

tfjs-models/body-pix与tfjs-models/posenet的混合使用,虽然加大了canvas处理的负担,加大了描绘和图像处理的次数,但是由于tfjs-models/body-pix已经先将人物与背景剥离,在tfjs-models/posenet只使用用最高效但低准确度的参数配置下,也能够产生远高于使用高精确度但消耗处理性能极大的配置所不能达到的准确度。从而实现了高效,高准确度,流畅的实时单人动作捕捉功能。

结论

通过TensorFlow的开源库,能够轻松的在浏览器上通过网络摄像头实现人物动作的实时捕捉。

由于基于图像分析,因此表现能力极大的依赖于对canvas的描绘性能,移动端由于浏览器canvas描绘能力以及硬件性能限制的原因,表现并不出色,无法做到长时间实时捕捉。甚至部分浏览器限制了网络摄像头的调用。在移动端的表现并不出色。

在单一人物的动作捕捉时,tfjs-models/body-pix与tfjs-models/posenet的混合使用能够使精确度大大提升。

由于需要对canvas进行描绘,结合其他canvas的JS库可以进行交互UI,交互小游戏等不同场合APP的开发。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    动作捕捉和盲人导航眼镜的接合与应用,web的开发代码和调试步骤

    MediaPipe Holistic 完成头部姿态(偏航 / 俯仰)+ 上肢动作(摸脸 / 抬手 / 摆手) 捕捉,同时对接导航核心接口(地图 / POI / 避障),实现动作指令解
    发表于 02-02 07:10

    从纳伏信号到精准数据:多功能炭素材料电阻率测试仪的前端与算法

    炭素材料的电阻率测试,往往始于微弱的纳伏级电信号—— 这一信号承载着材料的导电本质,却极易被干扰淹没、被噪声扭曲。多功能炭素材料电阻率测试仪实现从微弱信号到精准数据的跨越,核心在于前端信号捕捉与后端
    的头像 发表于 01-15 09:26 283次阅读
    从纳伏信号到精准数据:多功能炭素材料电阻率测试仪的<b class='flag-5'>前端</b>与算法

    恒讯科技解析:如何安装MySQL并创建数据

    管理系统(RDBMS),使用结构化查询语言(SQL)高效地组织和管理数据。它是全球最受欢迎的开源数据系统之一,广泛应用于网页开发、电子商务和商业应用。 常见用例  MySQL 是多种应用的可靠选择,包括: 网络应用:管理用户认
    的头像 发表于 01-14 14:25 457次阅读

    OpenTenBase核心贡献者分享开源数据的破局之路

    “在开源数据已成一片‘红海’的当下,单纯比拼‘快’或‘省’,已很难在开发者心中建立独特的护城河。”OpenTenBase核心贡献者、腾讯云数据专家工程师李晋钢这样阐述他对当前数据
    的头像 发表于 12-29 14:00 600次阅读

    基于开源鸿蒙的星鸿EOS电网移动作业终端解决方案

    应用场景 以开源鸿蒙为技术底座的星鸿EOS电网移动作业终端可应用于(不限于)以下多种作业场景: 低压营配融合作业场景:低压营配融合作业要求一线人员从单一工种向复合工种转型,这对原本分专业配置的作业
    的头像 发表于 12-17 16:16 906次阅读
    基于<b class='flag-5'>开源</b>鸿蒙的星鸿EOS电网移<b class='flag-5'>动作</b>业终端解决方案

    人工智能AI必备的5款开源软件推荐!

    在技术浪潮汹涌的当下,越来越多的企业与开发者开始意识到:“开源”已经不只是一个口号,而是创新的源泉。 从算法研究到智能应用落地,无数项目的起点,都是一个个免费的开源工具。今天,我们就来盘点五款在智能
    的头像 发表于 11-19 15:35 923次阅读
    人工智能AI必备的5款<b class='flag-5'>开源</b>软件推荐!

    【上海晶珩睿莓1开发板试用体验】TensorFlow-Lite物体归类(classify)

    目前尚未得知睿莓1开发板上面有NPU或者DPU之类的额外处理器,因此使用树莓派系列使用最广泛的TensorFlow-Lite进行物体归类,使用CPU运行代码,因此占用的是CPU的算力。在
    发表于 09-12 22:43

    普华基础软件亮相2025 CCF中国开源大会

    作为中国车用操作系统开源领域的领航者,受邀参会并发表主题演讲,与来自学术界和产业界的一线专家及开源领域领军人物深度探讨开源技术的前沿进展和协同路径,共绘
    的头像 发表于 08-11 09:21 1345次阅读

    鸿蒙非侵入式弹窗新解法,企查查正式开源“QuickDialog”弹窗组件

    近日,企查查将其自研的鸿蒙弹窗组件“QuickDialog”开源,并上线至 OpenHarmony 三方中心仓。这是鸿蒙生态首个支持“弹窗堆栈暂存能力”的非侵入式弹窗解决方案,凭借其灵活、高效
    的头像 发表于 07-31 10:40 902次阅读
    鸿蒙非侵入式弹窗新解法,企查查正式<b class='flag-5'>开源</b>“QuickDialog”弹窗组件<b class='flag-5'>库</b>

    ESP32-运行网页服务器(Web Server)-实用篇

    在前一篇文章《ESP32-运行网页服务器(WebServer)-入门篇》,我们介绍了ESP32运行网页服务器(WebServer)的原理,然后我们基于ESP32实现了一个demo代码;看到很多同学都留言发表了自己的看法,有很多同
    的头像 发表于 07-28 18:05 4172次阅读
    ESP32-运行<b class='flag-5'>网页</b>服务器(Web Server)-实用篇

    100%开源!行业首个企业级智能体

    近日,京东云正式开源JoyAgent智能体。作为行业首个100%开源的企业级智能体,实现了产品级开源,包括前端、后端、框架、引擎和核心子智能
    的头像 发表于 07-26 09:26 1373次阅读

    2025 CCF中国开源大会即将开幕:RT-Thread睿赛德邀您共同见证中国开源新征程

    8月2日至3日,由中国计算机学会主办的2025CFF中国开源大会将于上海召开。本届大会将依托上海国际化创新生态与科技产业集聚优势,汇聚一众顶尖专家学者及开源领军人物,共同探索开源操作系
    的头像 发表于 07-17 14:40 1226次阅读
    2025 CCF中国<b class='flag-5'>开源</b>大会即将开幕:RT-Thread睿赛德邀您共同见证中国<b class='flag-5'>开源</b>新征程

    飞书富文本组件RichTextVista开源

    近日,飞书正式将其自研的富文本组件 RichTextVista(简称“RTV”)开源,并上线OpenHarmony 三方中心仓。该组件以领先的性能、流畅的渲染体验与高度的开放性,为鸿蒙生态提供了更高效的富文本解决方案。
    的头像 发表于 07-16 16:47 1218次阅读

    请问EZ-Serial固件是否使用任何OSS(开源软件)或软件?

    EZ-Serial 固件是否使用任何 OSS(开源软件)或软件?
    发表于 07-02 08:14

    基于STM32 HAL与标准的esp8266接入机智云方案(二)

    ,我们还将讨论如何移植HAL和标准实现与机智云的兼容,帮助开发者更高效地完成项目的云平台接入。代码下载注意:此时手机app端的该设备为网页端的虚拟设备仅仅是
    的头像 发表于 05-28 18:02 1761次阅读
    基于STM32 HAL<b class='flag-5'>库</b>与标准<b class='flag-5'>库</b>的esp8266接入机智云方案(二)