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

时间:2019-09-03 来源: 历史

AiChinaTech2019.8.12我想分享作者:曾志连科技

前言

随着前端生态系统的发展,Java不仅限于Web开发,而且还越来越活跃于服务器开发,例如服务器端和移动端applet。即使使用Electron等封装工具,您甚至可以开发多系统桌面应用程序。涉及的广泛领域也使得可以实现的功能不再是简单的UI控制生产和内容显示。它在互动娱乐和小游戏领域也有很大的发展前景。本文以Java中基于浏览器摄像头的实时角色动作捕捉小程序为例,介绍了该领域前端的可行性。

什么是TensorFlow

TensorFlow最初由Google Brain Group的研究人员和工程师开发,使用数据流图来开源软件库,用于机器学习和深度神经网络的数值计算。其高可移植性和多语言使其可以在各种通用编程语言的各种平台上轻松运行。它是一个功能强大的开源库,结合了性能,可靠性,多功能性和易用性。

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

l tfjs-models/posenet:机器学习模型,对图像或视频中的字符执行动作捕捉,并输出人体各部分的关键点(坐标集)。具有单字符分析和多人分析功能。

l tfjs-models/body-pix:一种机器学习模型,用于分析图像或视频中的字符和背景,并从背景中去除字符。输出是图中身体24个部分的像素位置。有能力将人与背景分开。

实施原则

本文中基于浏览器和网络摄像头的实时动作捕捉方法是通过Java调用网页,通过浏览器调用网络摄像头,并通过TensorFlow的JS传递网络摄像头获取的视频流的每一帧来实现的。模型库(tfjs-models/posenet或tfjs-models/body-pix)分析图像,并输出相机人体的关键点数据分析结果,并呈现HTML5元素。开发人员可以根据项目的需要分析和处理获得的人体关键点数据,实现程序功能。

*它不是基本原理中的必要部分,但在下文中将简要介绍一种图像绘制方法,以提高字符捕获的准确性。

通过tfjs-models/posenet模型库捕获角色移动

l基本配置

导入JS

HTML

初始化网络摄像头

生成一个posenet对象

参数说明:

架构:分为两个系统,MobileNetV1和ResNet50,其中ResNet50具有更高的精度但处理速度更慢。

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

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

乘数:仅在MobileNetV1系统中使用的卷积操作的深度(通道数)。数字越大,层数越准确,但处理的成本和时间越多。

l进行实时分析

l结果

多人捕获:当多人捕获时,他们可以获得屏幕中人物的关键点,并且它们之间存在一些干扰,但影响不是特别大。

单人捕获:很容易受到背景及其周围人的干扰,导致人体关键点的定位不准确。

l缺点

从实际效果可以看出,在多个角色的情况下,模型可以准确地捕捉各种角色的运动和身体部位的关键点。虽然存在一些干扰和不稳定性,但它们基本上是可以接受的,并且实时效果很好,但主要区别是无法区分的。字符和次要字符要求开发人员处理结果数据。

基于形状精度计算得分的产生,并且没有对场景深度的分析,因此不能判断字符之间的位置关系。

由于上述问题,该方法在捕获单个字符时受到周围环境干扰的影响很大。当背景中还有其他字符时,无法判断主要字符和次要字符之间的关系,这大大降低了准确性。单个角色捕获效果并需要改进是非常不令人满意的。

改进计划

单个字符的运动捕获受外部干扰的影响太大,导致结果不令人满意。因此,首先要考虑的是屏蔽周围的干扰物体并突出显示主要特征。这介绍了tfjs-models/body-pix模型库。

** tfjs-models/body-pix模型库的主要功能:**实时分析字符结构并从背景中去除字符。它的对象是单个捕获对象,适用于上述单个捕获结果不理想的情况。

l基本配置

导入JS

生成bodyPixNet对象

l tfjs-models/body-pix与tfjs-models/posenet

混合

l结果

tfjs-models/body-pix和tfjs-models/posenet的组合增加了画布处理的负担并增加了渲染和图像处理的次数,但由于tfjs-models/body-pix首先使用了字符和背景剥离,仅使用最有效但低精度的参数配置的tfjs-models/posenet也可以比使用高精度但消耗大量处理能力的配置产生更高的精度。这可实现高效,高精度,平滑的实时单动作动作捕捉。

结论

使用TensorFlow的开源库,您可以通过浏览器上的网络摄像头轻松捕获角色移动的实时捕获。

由于图像分析,性能能力很大程度上取决于画布的描绘性能。由于浏览器画布渲染能力和硬件性能限制,移动终端表现不佳,并且不能长时间实时捕获。甚至一些浏览器也限制了网络摄像头的呼叫。移动端的性能不佳。

tfjs-models/body-pix和tfjs-models/posenet的组合可以极大地提高单个角色的动作捕捉的准确性。

由于需要描绘画布,结合其他画布的JS库,您可以与UI,互动游戏和其他场合进行交互。

收集报告投诉

作者:曾志连科技

前言

随着前端生态系统的发展,Java不仅限于Web开发,而且还越来越活跃于服务器开发,例如服务器端和移动端applet。即使使用Electron等封装工具,您甚至可以开发多系统桌面应用程序。涉及的广泛领域也使得可以实现的功能不再是简单的UI控制生产和内容显示。它在互动娱乐和小游戏领域也有很大的发展前景。本文以Java中基于浏览器摄像头的实时角色动作捕捉小程序为例,介绍了该领域前端的可行性。

什么是TensorFlow

TensorFlow最初由Google Brain Team的研究人员和工程师开发。数据流图被用作机器学习和深度神经网络中的数值计算的开源软件库。其高可移植性和多语言性使其可以通过各种通用编程语言轻松在各种平台的设备上运行。它是一个功能强大的开源库,集成了性能,可靠性,多功能性和易用性。

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

Tfjs-models/posenet:是一种机器学习模型,它可以捕捉人物在图像或视频中的动作,并输出人体各个部分的关键点(坐标集)。它具有单字符分析和多字符分析的特点。

Tfjs-models/body-pix:是一种机器学习模型。它的功能是分析图像或视频中的字符和背景,并从背景中剥离字符。输出结果是图片中人体24个部分的像素位置。它具有从背景中分离字符的功能。

实现原则

本文介绍了一种基于浏览器和网络摄像头的实时动作捕捉方法。这种方法的原理是通过Java调用元素和浏览器调用网络摄像头。由网络摄像头捕获的每帧视频流通过TensorFlow.- Pix的JS模型库(tfjs-models/posenet或tfjs-models/body)来分析图像,输出由人体捕获的关键点数据分析结果。相机,并呈现HTML5的元素。根据项目要求,开发人员可以分析和处理人体关键点数据,实现程序功能。

*它不是基本原理中的必要部分,但在下文中将简要介绍一种图像绘制方法,以提高字符捕获的准确性。

通过tfjs-models/posenet模型库捕获角色移动

l基本配置

导入JS

HTML

初始化网络摄像头

生成一个posenet对象

参数说明:

架构:分为两个系统,MobileNetV1和ResNet50,其中ResNet50具有更高的精度但处理速度更慢。

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

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

乘数:仅在MobileNetV1系统中使用的卷积操作的深度(通道数)。数字越大,层数越准确,但处理的成本和时间越多。

l进行实时分析

l结果

多人捕获:当多人捕获时,他们可以获得屏幕中人物的关键点,并且它们之间存在一些干扰,但影响不是特别大。

单人捕获:很容易受到背景及其周围人的干扰,导致人体关键点的定位不准确。

l缺点

从实际效果可以看出,在多个角色的情况下,模型可以准确地捕捉各种角色的运动和身体部位的关键点。虽然存在一些干扰和不稳定性,但它们基本上是可以接受的,并且实时效果很好,但主要区别是无法区分的。字符和次要字符要求开发人员处理结果数据。

基于形状精度计算得分的产生,并且没有对场景深度的分析,因此不能判断字符之间的位置关系。

由于上述问题,该方法在捕获单个字符时受到周围环境干扰的影响很大。当背景中还有其他字符时,无法判断主要字符和次要字符之间的关系,这大大降低了准确性。单个角色捕获效果并需要改进是非常不令人满意的。

改进计划

单个字符的运动捕获受外部干扰的影响太大,导致结果不令人满意。因此,首先要考虑的是屏蔽周围的干扰物体并突出显示主要特征。这介绍了tfjs-models/body-pix模型库。

** tfjs-models/body-pix模型库的主要功能:**实时分析字符结构并从背景中去除字符。它的对象是单个捕获对象,适用于上述单个捕获结果不理想的情况。

l基本配置

导入JS

生成bodyPixNet对象

l tfjs-models/body-pix与tfjs-models/posenet

混合

l结果

tfjs-models/body-pix和tfjs-models/posenet的组合增加了画布处理的负担并增加了渲染和图像处理的次数,但由于tfjs-models/body-pix首先使用了字符和背景剥离,仅使用最有效但低精度的参数配置的tfjs-models/posenet也可以比使用高精度但消耗大量处理能力的配置产生更高的精度。这可实现高效,高精度,平滑的实时单动作动作捕捉。

结论

使用TensorFlow的开源库,您可以通过浏览器上的网络摄像头轻松捕获角色移动的实时捕获。

由于图像分析,性能能力很大程度上取决于画布的描绘性能。由于浏览器画布渲染能力和硬件性能限制,移动终端表现不佳,并且不能长时间实时捕获。甚至一些浏览器也限制了网络摄像头的呼叫。移动端的性能不佳。

tfjs-models/body-pix和tfjs-models/posenet的组合可以极大地提高单个角色的动作捕捉的准确性。

由于需要描绘画布,结合其他画布的JS库,您可以与UI,互动游戏和其他场合进行交互。

新闻排行
  1. 在今年夏天,谈论最华丽的综艺节目,它肯定是不可或缺的《这!就是街舞》第二季,以和平,爱,尊重和战斗为

    在今年夏天,谈论最华丽的综艺节目,它肯定是不可或缺的《这!就是街舞》第二季,以和平,爱,尊重和战斗为...

  2. 目前,仍然是自由球员的林书豪(JeremyLin)仍然没有得到NBA球队投掷的橄榄枝。北京时间8月13日,根据篮球?

    目前,仍然是自由球员的林书豪(JeremyLin)仍然没有得到NBA球队投掷的橄榄枝。北京时间8月13日,根据篮球?...

  3. 在多重因素作用下,定期开放债券基金正成为基金公司重点发力的赛道。Wind统计显示,7月以来已有12只定开债?

    在多重因素作用下,定期开放债券基金正成为基金公司重点发力的赛道。Wind统计显示,7月以来已有12只定开债?...

  4. 18:18:35RedDustJunPPD从专业玩家下来后,转换到锚点可以说是技术和技术。玩得开心,不追求所谓的风格,知道如何做锚的工作也很有趣。朋友们彼此相爱多年。但我没想到我的朋友会在世界各地参

    18:18:35RedDustJunPPD从专业玩家下来后,转换到锚点可以说是技术和技术。玩得开心,不追求所谓的风格,知道如何做锚的工作也很有趣。朋友们彼此相爱多年。但我没想到我的朋友会在世界各地参...

  5. 为了更好地为大家提供更好的服务,日照新澳微信平台的在线支付服务模块正式上线!也就是说,在原有的天然气

    为了更好地为大家提供更好的服务,日照新澳微信平台的在线支付服务模块正式上线!也就是说,在原有的天然气...

  6. 当今年2月底的供暖没有完成时,住宅区的供暖管因腐蚀严重泄漏,在使用之前必须更换管道。但是,当遇到住房?

    当今年2月底的供暖没有完成时,住宅区的供暖管因腐蚀严重泄漏,在使用之前必须更换管道。但是,当遇到住房?...

  7.   11:43:38玲珑鉴史  俄罗斯提大胆建议:伊朗迎转机,中方鼎力相助!白宫“阴谋”破灭  在美国与伊朗

      11:43:38玲珑鉴史  俄罗斯提大胆建议:伊朗迎转机,中方鼎力相助!白宫“阴谋”破灭  在美国与伊朗...

  8. 120X1778190X177811酿酒史古人常说“乱世英雄”讲的是男人真实性格的传奇故事,“不必做眉毛”讲的是软弱女

    120X1778190X177811酿酒史古人常说“乱世英雄”讲的是男人真实性格的传奇故事,“不必做眉毛”讲的是软弱女...

  9. ?俗话说,世界的宴会最终会分散,甚至最好的事情也将面临结束。如果你进入手机界,最新的事情可以反映在这句话中,iPhone6已经停产。作为Apple历史上最受欢迎的型号之一,iPhone6系列所有型号的

    ?俗话说,世界的宴会最终会分散,甚至最好的事情也将面临结束。如果你进入手机界,最新的事情可以反映在这句话中,iPhone6已经停产。作为Apple历史上最受欢迎的型号之一,iPhone6系列所有型号的...

  10. ?本文来自AIFinance的医疗健康品牌“健康与信息局”,未经许可,严禁转载康业源与广州药业的差距继续扩大。日前(7月29日),北京康业源投资咨询有限公司(“康业源”)官方微博重新发表声明,回复了G

    ?本文来自AIFinance的医疗健康品牌“健康与信息局”,未经许可,严禁转载康业源与广州药业的差距继续扩大。日前(7月29日),北京康业源投资咨询有限公司(“康业源”)官方微博重新发表声明,回复了G...