微信小程序原生AI运动(动作)检测识别解决方案

前几年受疫情影响,人员流动受限,反而让“AI运动”概念风靡一时、空前火爆。目前已经在AI运动锻炼、体育教学、线上运动主题活动等场景中,成功得到了应用,并获得了广大互联网用户的认可。

    一、AI运动锻炼

           足不出户,只需一部手机和家中几平方米的场地,也能确保锻炼达到可计数、计时、可纠正的效果,成了宅家一族的健康锻炼助理。

    二、体育教学辅导

       随着基础教育,对体育教学的重视程度越来越高,为了监督学生在家的锻炼情况,很多学校也利用AI运动识别技术,将学生的运动打卡搬上手机,进行云辅导。

    三、云上主题运动活动

      全民健步走,是前些年异常火热的线上主题活动,通过AI运动识别技术,现在可以开展如:跳绳、开合跳、平板撑、仰卧起坐、俯卧撑、深蹲、马步蹲等形式更多样的云上健身主动活动,还可以自动生成排行榜。适合单位开展“全民健身”、“团队健身”等主动活动。

      虽然AI运动概率异常火热,但是受小程序框架的制约,要想把AI运动识别搬上小程序,却难度不小。直接调用第三方运动识别API服务,成本高、即时性差;使用本地抽帧+后台识别的方案,成本稍低,但完整性、即时性较差。

      针对以上情况,经过我们的技术团队努力及不断偿试,我们把一套精简的人体识别深度学习模型搬上了微信小程序,并结合我们基于规则配置的运动识别计算引擎,可以轻松实现跳绳、开合跳、平板撑、俯卧撑、仰卧撑等多种运动的识别。方案具有以下特点:

     一、成本花费低

           经过我们的比对测试,大部分第三方运动识别、人体识别API服务,都是按秒数或图片帧数计费, 以时长5分钟左右的运动锻炼视频,识别大约要花费0.5元-1元之间,如此高昂的成本,对于一般应用难于承受。而我们的方案,每应 用只要一次性收取几千元的授权费即可,再无其它花费。

     二、易于集成

            本方案以微信小程序插件的形式发布,开箱即用;为了减少您开发团队的开发成本,我们还为您封装了摄像头取像、人体骨骼绘制等功能,您只要专注于UI开发即可。

     三、易于扩展

            我们的方案中,带有运动识别规则计算引擎,您只需按照文档说明,简单的配置规则即可实现一种新的运动识别,还可以将配置规则JSON化,放置于服务端,实现运动识别可配置化。

 

提供信息系统、公众号、小程序、APP订制开发服务

www.yztob.com

QQ:316455841

欢迎通过各种渠道咨询了解,免费提供信息系统建设咨询服务。

本文转载于网络 如有侵权请联系删除

相关文章

  • word转pdf的java实现_java实现word转pdf

    大家好,又见面了,我是你们的朋友全栈君。文章时间:2020-12-516:38:54解决问题:java实现word转pdf目前发现可用的实现方式有两种,一种是使用e-iceblue的免费版api,此方法最为简单但存在限制,导出页数不能超过三页。另一种是使用openoffice,但较上一种方法麻烦一些,需要安装openoffice的软件,但没有导出限制,请根据自身需求自行选用。方式一e-iceblue的免费版api官方文档https://www.e-iceblue.cn/spiredocforjavaconversion/java-convert-word-to-pdf.html第一步添加maven依赖及远程仓库…e-icebluespire.doc.free3.9.0……com.e-icebluehttp://repo.e-iceblue.cn/repository/maven-public/…第二步编写后台代码参考代码如下//模板文件路径StringtemplateUrl=“C:\\Users\\dev\\Desktop\\template.docx”;//word文件生成路径Str

  • 从Groovy到Java性能

    在去年年初换过工作开始专注做性能测试,其中有一项很大的挑战就是FunTester测试框架性能是否可以支撑公司现在的业务。之前有文章分享过如何突破职业瓶颈,其中讲到如何负责服务的QPS上升一个数量级是一个非常大的挑战。最近在这个问题上,我有了一些新的发现,分享一下自己对FunTester测试框架使用的Java+Groovy这对组合性能方面的认识。首先谈谈Java语言的性能,在此之前我在本地做过一系列的单机测试10万QPS,K6、Gatling和FunTester终极对决!、单机12万QPS——FunTester复仇记,对此我还是挺满意的。后来在工作用应用得到了单个进程6w的QPS,也算是符合预期了。为什么说是算是符合预期呢?因为在开始写FunTester性能测试框架决定使用Groovy时,就觉得这个脚本语言性能肯定是有限的,比Java肯定差得远。因为本质上Groovy启动的还是Java进程,可以通过优化JVM启动参数来提升性能,堆一些硬件也能获取非常不错的性能,再加上本机测试最高能达到12万QPS的情况来说,问题还是在可控范围内的。然后在某次单机性能测试QPS要求到了5万,出现了一些异常

  • 全球化多租户七层流量转发平台

    标题出现了三个关键词:全球化、多租户、七层流量转发。我们倒序介绍这三个词,最后再通过一张架构图展开理解所谓的全球化架构。本篇介绍的内容会比较浅显,目的是让大家通过阅读本篇文章能够对全球化架构有所了解,不会涉及到公司的内部技术。首先是七层流量转发,七层即七层网络模型中的第七层:应用层,如http协议、websocket协议、自定义协议。常见且大家熟悉的七层流量代理如Nginx。通常七层流量代理之前还会有一层四层流量代理实现负载均衡,如LVS、Nginx,Nginx可用作四层流量代理,也可用作七层流量代理。本篇的七层流量代理主角是BFE。那么什么是BFE?BFE(百度统一前端)是百度开源的七层流量接入转发平台。开源部分为BFE的核心转发引擎,因此很多功能还需要二次开发。BFE主要提供以下功能:接入和转发(仅支持主流协议)、流量调度(负载均衡、限流、路由)、安全防攻击、日记数据分析。为什么选择BFE而不是Nginx?相信大家都会有这样的疑问,我们带着这个问题阅读本篇内容。多租户,即一个七层流量转发平台支持多个用户使用,这些用户共享硬件资源,但每个租户都可以使用定制或自定义配置功能,相互之间不

  • automagica 调用windows画图以及登录qq

    一、概述automagica官方文档:https://automagica.readthedocs.io/get_started.html需求:1.使用automagica调用windows画图软件,画一个字母a2.调用qq.exe程序,登录qq。windows的画图软件,路径为:%windir%\system32\mspaint.exe手动用鼠标画一个字母a比较简单,但是要用automagica,需要准备一些知识点,下面会一一介绍。二、调用windows软件from automagica import * # 运行画图软件 run(r'mspaint.exe')复制执行之后,就会打开画图软件。注意:由于是系统自带的软件,可以直接调用。如果是第三方软件,需要写绝对路径才行。二、automagica坐标体系先来介绍一下,automagica坐标体系,因为需要鼠标定位,来进行画图。可以看到,屏幕的左上角,就是坐标起始点。如果屏幕分辨率比较高,那么鼠标移动的范围就越高。三、正式画图test1.py完整代码如下:#!/usr/bin/python # -*- coding:

  • IDEA 远程调试

    远程调试的原理本机和远程主机的两个VM之间使用Debug协议通过Socket通信,传递调试指令和调试信息。被调试程序的远程虚拟机:作为Debug服务端,监听Debug调试指令。jdwp是JavaDebugWireProtocol的缩写。调试程序的本地虚拟机:IDEA中配置的RemoteServer,指定Debug服务器的Host:Port,以供Debug客户端程序连接。如何进行远程调试idea设置在这里插入图片描述远程项目设置idea设置好了,复制命令行参数,我们需要去启动项目的地方设置,启动项目有通过tomcat启动的,也有通过springboot内置tomcat启动的,下面分别说springboot方式##注意新参数必须在-jar之前 jar-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005-jartest.jar复制Tomcat方式start.sh(windows下是start.bat)中添加如下,在这里插入图片描述##sudovim$CATALINA_HOME/bin/catalina.sh JA

  • 分布式系统、微服务架构的一致性和幂等性问题相关概念解析

    前言什么是分布式系统?关于这点其实并没有明确且统一的定义。在我看来,只要一个系统满足以下几点就可以称之为分布式系统系统由物理上不同分布的多个机器节点组成系统的多个节点通过网络进行通信,协调彼此之间的工作。系统作为整体统一对外提供服务,其分布式细节对客户端透明。要想更好的理解分布式系统,并正确使用甚至构建分布式系统,需要理解其中的两个关键概念——分布式系统的数据一致性和分布式系统的幂等性。1.分布式系统的数据一致性对于分布式系统,数据可能存在于不同的物理节点上,节点之间只能通过网络进行通信来协调彼此之间的状态,而网络通信需要时间并且其本身并不十分可靠,因而如何保持数据一致性成为了分布式系统的难题。对于不同的分布式系统,其一致性语义以及面对的一致性难题可能略有差别1.1分布式存储系统中的一致性问题在分布式存储系统中,为了保持系统的高可用,同时增加读操作的并发性,同一份数据会有多份副本,不同的副本存储于不同的节点上,如下图所示在并发环境下,因为存在多个客户端同时读取同一数据在不同节点上的副本,因而如何维护数据的一致性视图就非常重要,即对于使用该分布式系统的客户端而言,对于多副本数据的读写其表

  • 测试开发工程师and国企软开的面经

    逆来顺受,你说我的生命可惜,我自己却不在乎。你看着很危险,我却自以为得意。不得意怎样?人生是苦多乐少。——萧红《呼兰河传》菜鸡来还愿了,虽然之前也没有发许愿帖。18年应届非双水硕 帖主可能废话比较多不能忍的就别看了哈哈哈我的秋招充满曲折离奇,还有幸运,基本上面的都拿到了,当然肯定有些并没有,希望可以给各位后来者一些经验整个校招我只面试一个岗位:测试开发还有就是一些统一面试,内部分岗啥的基本上面的都拿到了,当然有一些还是没有的面试的互联网类公司:美团,华为,OPPO,招银网络,同城艺龙,深信服。。。。。国企:工商软开,农行软开,民生软开,中信银行。。。。。因为这些面试都有点久远了,所以可能存在缺漏,见谅秋招开始的晚,错过了很多投简历的机会,然后最后BATTMD就这个和滴滴进入面试了,后面滴滴太晚了,放弃了没面。美团一面:写单链表交叉的代码(一定要记住是个Y的造型)写完让你改进如何很快找到那个交叉的点会不停地提醒你找到更优解法结论写sql语句:好像是用到了count,具体记不清了问Linux指令,反正一些基本的都要懂吧,top,head,cd,cat等等等好像是问了tcp/ip协议讲项目好

  • 响铃:17173赵佳:媒体要呈现的价值,就是游戏圈寻找的用户价值

    文|曾响铃 来源|科技向令说(xiangling0815)游戏厂商、玩家、媒体及相关从业者的年度盛典ChinaJoy圆满结束了,除了精彩纷呈的热游新游、酷炫的游戏科技,CDEC会议上17173媒体群总经理赵佳在演讲中关于游戏及游戏媒体行业的全新理解也引人注目。赵佳阐述了她对整个行业的全新理解,在很多人抱怨游戏行业已经越来越艰难的时候,“玩家价值大于玩家呈现的数据价值”的新锐观点道出了游戏及游戏媒体寻找的价值真谛。这个知性且有着深刻洞察的女CEO,正在带领17173代表行业呈现真正的媒体价值,也为游戏媒体行业在此次寒冬中的困局找到可能性。三大问题横亘游戏媒体发展之路目前的游戏行业,以及游戏媒体行业,长期盘亘着三大症结:1市场萎缩、定位迷茫随着手游崛起PC游戏衰落,用户选择游戏门槛的降低带来了渠道和媒体角色的分化,游戏用户对常规的游戏媒体黏性越来越低,似乎需求也接近冰点,因此行业人口中称为“甲方”的游戏厂商,也对游戏媒体产生了困惑,在开源节流的大趋势下,该如何继续运用游戏媒体的传播优势。而游戏媒体如今除了常规的稿件发布、专业评测、用户社区外,还有没有能力为游戏拉新,甚至有的“甲方”会疑惑,

  • 基于curl 的zabbix API调用

    1,认证并取得加密字段curl-i-XPOST-H'Content-Type:application/json'-d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"admin","password":"zabbix"},"auth": null,"id":0}'http://192.168.1.222/zabbix/api_jsonrpc.php;2,获取指定或所有监控主机的hostidscurl-i-XPOST-H'Content-Type:application/json'-d'{"jsonrpc":"2.0","method":"host.get"

  • 《GO IN ACTION》读后记录:GO的并发与并行

    一、使用goroutine来运行程序1.Go的并发与并行Go的并发能力,是指让某个函数独立于其他函数运行的能力。当为一个函数创建goroutine时,该函数将作为一个独立的工作单元,被调度器调度到可用的逻辑处理器上执行。Go的运行时调度器是个复杂的软件,它做的工作大致是:管理被创建的所有goroutine,为其分配执行时间将操作系统线程与语言运行时的逻辑处理器绑定参考TheGoscheduler,这里较浅显地说一下Go的运行时调度器。操作系统会在物理处理器上调度操作系统线程来运行,而Go语言的运行时会在逻辑处理器上调度goroutine来运行,每个逻辑处理器都分别绑定到单个操作系统线程上。这里涉及到三个角色:M:操作系统线程,这是真正的内核OS线程P:逻辑处理器,代表着调度的上下文,它使goroutine在一个M上跑G:goroutine,拥有自己的栈,指令指针等信息,被P调度每个P会维护一个全局运行队列(称为runqueue),处于ready就绪状态的goroutine(灰色G)被放在这个队列中等待被调度。在编写程序时,每当gofunc启动一个goroutine时,runqueue便

  • 小程序可以使用公众号的UnionID,再次登录免授权?

    前言:微信公众平台在7月26号发文,更新了同一公众平台下的公众号、APP和小程序可以共用UnionID。详细是这样说的:“为保证良好的用户体验,方便开发者将小程序、公众号和App之间的用户信息进行互通,小程序获取用户信息和UnionID的方式将进行升级。”看到这篇发文之后,很多小程序开发者都兴奋了一把,我也小激动了一下,先看一下大家的评论:可以说是好评如潮呀!这个新功能好处在于,用户在一个公众平台账号体系下,只要被其中一个公众号、APP或者小程序授权了,在其他应用里面就不需要再授权了,直接可以获取到相同的UnionID。于是我家小程序也不能落伍呀,果断要把这么好的功能加上~(图片来源于网络)经过一翻折腾后,发现有问题呀,有些用户可以不用再弹出授权框,有些用户始终都会弹出授权框。于是再次查看了官方文档。以下是官方UnionID机智说明:(地址https://mp.weixin.qq.com/debug/wxadoc/dev/api/uinionID.html)同一个微信开放平台下的相同主体的App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,

  • 提升用户体验,微信小程序“授权失败”场景的优雅处理

    微信小程序中提供了相关API让开发者能获取到微信用户的相关信息,在首次去获取的时候会展示一个用户是否同意授权的对话框。Jeff发现有不少线上的小程序都没有处理好用户“拒绝授权”导致的“授权失败”场景。一个观点私认为,开发微信小程序在用户授权上有一个要点:除非非常有必要,不要一进入小程序就申请授权,而是仅需要授权的页面才申请——这样让用户的心理负担没那么大。站在用户的角度,有时候我是很讨厌这种一进入小程序就申请授权的行为,毕竟头像昵称这些本质上还是属于用户的隐私,你小程序不给个理由就要拿去,我还是很反感的。同时,也应该做好因用户拒绝授权导致的“授权失败”场景的优雅处理。分享解决方案现在就分享我在开发自己的微信小程序“DeveWork+”中针对“授权失败”场景的一种自认为还算优雅的处理方案。如果你有兴趣,可以通过下面的小程序码进入体验一下其用户授权流程。“DeveWork+”小程序有一个阅读记录页面,用来记录当前使用用户浏览文章的历史。下面是处理方案细节:1)阅读记录页面我是放在第三个TAB,用户首次进入及加载首页的过程并无申请授权的相关代码。2)当用户首次点击到阅读记录页面,如下图,除了

  • 创建ORACLE大文件表空间

    大家好,又见面了,我是你们的朋友全栈君。 目录创建普通表空间你可以创建多大的表空间?    创建bigfile表空间查看表空间的使用情况创建普通表空间 表空间不够报错ORA-01144:Filesize(26214400blocks)exceedsmaximumof4194303blocks你可以创建多大的表空间?     我们在前面提及,BFT还受到操作系统的文件系统的限制。 下面我们以Linux操作系统为例:    创建bigfile表空间 在oracle11g中引进了bigfile表空间,他充分利用了64位CPU的寻址能力,使oracle可以管理的数据文件总量达到8EB。单个数据文件的大小达到128TB,即使默认8K的db_block_size也达到了32TB。创建bigfile的表空间使用的sql语句也很简单。createbigfiletablespace…createbigfiletablespaceWH_BOOKdatafile‘/u01/app/oracle/oradata/WH_BOOK/WH_BOOK.DBF’size102400Mreuseautoextendonn

  • iOS屏幕旋转处理

    要翻转的时候,首先响应的方法:(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientationreturnYES则支持翻转,NO则不支持。紧接着-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientationduration:(NSTimeInterval)duration被调用。这个方法是发生在翻转开始之前。一般用来禁用某些控件或者停止某些正在进行的活动,比如停止视频播放。再来是-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientationduration:(NSTimeInterval)duration这个方法发生在翻转的过程中,一般用来定制翻转后各个控件的位置、大小等。可以用另外两个方法来代替:willAnimateFirstHalfO

  • 为什么Java有了synchronized之后还造了Lock锁这个轮子?

    众所周知,synchronized和Lock锁是java并发编程中两大利器,可以用来解决线程安全的问题。但是为什么Java有了synchronized之后还是提供了Lock接口这个api,难道仅仅只是重复造了轮子这么简单么?本文就来探讨一下这个问题。 谈到这个问题,其实很多同学第一反应都会说,Lock锁的性能比synchronized好,synchronized属于重量级的锁。但是在JDK1.6版本之后,JDK对synchronized进行了一系列性能的优化,synchronized的性能其实有了大大的提升(如果不清楚的同学可以看一下 synchronized真的很重么?这篇文章,文章内详细的说明JDK对synchronized做了哪些优化),那么既然性能不是问题,那么主要的问题是什么呢? synchronized抢占锁的特性 我们先来看一下synchronized抢占锁的特性。synchronized在抢占锁的时候,如果抢占不到,线程直接就进入阻塞状态了,而线程进入阻塞状态,其实什么也干不了,也释放不了线程已经占有的资源,并且也无法主动或者被动打断阻塞获取锁的操作,只有等别

  • centos为用户添加sudo功能

    su chmoda+w/etc/sudoers vim/etc/sudoers [找到rootALL=(ALL)ALL这行] 复制出新的一行,并且将root改为daniel(当前用户名) chmod0440/etc/sudoers exit 复制   

  • 什么情况下我应该使用 Vuex?

    Vuex可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对短期和长期效益进行权衡。 如果您不打算开发大型单页应用,使用Vuex可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用Vuex。一个简单的 store模式就足够您所需了。但是,如果您需要构建一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex将会成为自然而然的选择。引用Redux的作者DanAbramov的话说就是:  

  • 字符串常用方法

    字符串定义的两种方式 Stringstr="123";//直接在常量池中开辟一个空间,并将这个对象的地址给str Stringstr1=newString("123");//它相当于new了两个对象,一个在堆中,一个在常量池中 复制 两种创建字符串的区别 packageStringdemo; publicclassDemo01{ publicstaticvoidmain(String[]args){ Stringstr="123"; Stringstr1="123456";//相当于在方法区常量池中开辟了一个空间,存放着123对象 Stringstr3=str+"456"; Stringstr4="123"+"456"; System.out.println(str3==str1);//false System.out.println(str3==str4);//false System.out.println(str1==str4);//true System.out.println(str3.intern()==str4);//true } } 输出: false false t

  • java 文件的上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。   对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能就是基于这个实现的。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。 一、开发环境搭建   创建一个FileUploadAndDownLoad项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示:    二、实现文件上传 2.1、文件上传页面和消息提示页面   upload.jsp页面的代码如下: 1<%@pagelanguage="java"pageEncoding="UTF-

  • gorm连接mssql方法

    c.Database.Source格式:server=127.0.0.1;userid=SA;password=Pwd123456;port=1433;database=master;encrypt=disable复制 DB,err:=gorm.Open(sqlserver.Open(c.Database.Source),&gorm.Config{Logger:logger.New(log.New(os.Stdout,"\r\n",log.LstdFlags),//iowriterlogger.Config{SlowThreshold:time.Second,//慢SQL阈值LogLevel:logger.Info,//LoglevelColorful:true,//禁用彩色打印},),//常常使用gorm默认日志并设置日志级别})iferr!=nil{fmt.Println("err:",err)returnnil,err}复制

  • 0506Scrum项目1.0

    1.确定选题。 应用NABCD模型,分析你们初步选定的项目,充分说明你们选题的理由。 录制为演说视频,上传到视频网站,并把链接发到团队博客上。 截止日期:2016.5.6日晚10点 团队名称:虫洞 团队目标:复利计算与投资记录项目继续升级,开发定位明确、功能专注的工具类软件 团队口号:用代码构造出一个世界 团队成员: 蔡彩虹:http://www.cnblogs.com/caicaihong/ 蓝叶:http://www.cnblogs.com/blueYE00/ 曾治业:http://www.cnblogs.com/zzy999/  我们上传视频的平台是优酷,链接如下: http://v.youku.com/v_show/id_XMTU1OTk3NTI5Mg   演讲稿:我们做的是复利计算器的网页版,我们的目的主要是给客户提供便捷的金融工具,以给客户解决面对繁琐数据的困扰,我们不仅具有基本的计算功能之外,还具有投资计算 ,对于投资计算我们设置了登陆注册功能,以便给客户对于投资的个人私有权,客户可以查看自己的投资记录,我们还湖推荐一些投资方案给客户,这样加大了客户的

相关推荐

推荐阅读