做AI运动小程序有哪些解决方案,如何进行选型?
引言:随着深度学习技术的发展进步,已经不再依赖强大的GPU算力,便可实现AI推理了,让AI技术渗透到了电脑、手机、智能设备等各类设备。体育、健身行业也不例外,阿里体育等IT大厂,推出的乐动力、天天跳绳、百分运动等AI运动APP,让云上运动会、线上运动会、健身打卡、AI体育指导、AI体测等概念空前火热。
那么AI运动这个应用场景,除了在原生APP上实现,能否搬上微信小程序呢,今天就带您探索几种可能的解决方案,并进行一些横向对比。
一、AI运动识别技术要点
要实现AI运动计时、计数,要解决主要技术问题有:视频抽帧、视频人体检测、姿态识别、计时计数算法,其中最主要的也是技术前提的便是人体识别检测,实现上面的技术,便是一个完整的AI运动解决方案了。

二、离线方案
所谓离线方案,即把整套的视频抽帧、视频人体检测、计时计数等环节放在后台服务端执行,由于在后台端执行,所以无法做到在小程序端根据视频或摄像头采集进度实时展示识别结果及进行互动,故叫离线方案。
1.1、全离线方案
全离线方案主要的技术方案在后端实现,运行在后台服务器,小程序端只负责上传运动视频或图片,等待服端返回识别结果即可。 后端实现的相关技术栈相对比较成熟,如视频抽帧可以选择采用ffmpeg、opencv等成熟开源组件实现;人体检测识别可以采用百度、阿里、腾讯等成熟的第三方服务或私有化部署相关模型。
1.2、半离线方案
所谓半离线方案,与全离线方案的区别在于,将视频抽帧放在小程序端执行,即可利用小程序的camera组件实时采集运动画面,调用相应的API进行实时抽帧向后台回传,后台反馈识别结果。
二、原生方案
所谓原生方案,也可叫本地原生方案,所有技术环节使用javascript在小程序端本地实现及运行,由于所有的计算在小程序端同步进行,所以实时体验会更好,后端压力也较轻,离线方案的后端压力会随着用户量增长上升。
1.1、自研AI引擎方案
微信小程序端本身提供了Camera组件及摄像头画面抽帧API,使用现成的即可,重点在于人体关键点识别检测的深度学习推理引擎的集成,这需要根据小程序的运行时,选择好相应的识别引擎及检测模型,进行适配集成。再编写人体姿态识别算法及运动分析器逻辑。
1.2、成熟的插件方案
相较于自研方案,也可以选择成熟的小程序插件解决方案,比如我们推出的【AI运动识别】微信小程序插件,可以为您的小程序提供人体检测、运动识别的AI能力,插件目前支持跳绳、开合跳、俯卧撑、仰卧起坐、卷腹、深蹲(深蹲起)、平板支撑、马步蹲等运动的识别检测计时、计数分析,更多的运动类型正在丰富中;插件运动识别引擎提供了基于规则配置的运动识别能力,您可以通过配置一些简单的规则,增加一项新的运动(动作)识别能力,若是复杂的运动种类,也可以通过代码扩展的方式进行。

三、方案对比
| 方案 | 难度 | 成本 | 体验 | 优缺点 |
|---|---|---|---|---|
| 全离线方案 | 低 | 高 | 差 | 实现简单,后台服务器、三方API调用成本高 |
| 半离线方案 | 中 | 高 | 中 | 实现简单,后台服务器、带宽要求高、三方API调用等成本高 |
| 自研原生方案 | 高 | 中 | 佳 | 实现难度比较高,上线稳定周期较长 |
| AI运动识别插件原生方案 | 低 | 低 | 佳 | 实现简单,成本低,且成熟稳定、开箱即用 |
根据上面的综合对比得知,离线方案投入的成本和体验不成正比,所以在新开发应用中不应将离线方案纳入考虑范围;无特殊的需求团队建议直接使用AI运动识别插件方案,投入成本小且能避免很多实现陷井。
做AI运动小程序有哪些解决方案,如何进行选型?的更多相关文章
- [第一个自己做的C小程序]丧失求生文字小游戏
丧失求生文字小游戏 编写原因: 我编写这个小程序是为了结合下我学习的知识并且做一个小游戏来看看我自己的能力,目前我已经学完了C语言的编程基础.马上就要学到指针,这个就是我的基础总结项目,希望大家可以都 ...
- 微信小程序 bug及解决方案
1.小程序遮罩滚动穿透问题 解决方案: <view class="mask" wx:if="{{showVipRights}}" catchtap='hi ...
- 详解封装微信小程序组件及小程序坑(附带解决方案)
一.序 上一篇介绍了如何从零开发微信小程序,博客园审核变智障了,每次代码都不算篇幅,好好滴一篇原创,不到3分钟从首页移出来了.这篇介绍一下组件封装和我的踩坑历程. 二.封装微信小程序可复用组件 首先模 ...
- 用Taro做个微信小程序Todo, 小白工作记录
微信小程序框架: Taro 做微信小程序的框架, 几个比较主流的: 官方的WePY: https://tencent.github.io/wepy/document.html#/ 美团的mpvue: ...
- 关于小程序websocket全套解决方案,Nginx代理wss
需求对话 提问 我在本地web能够使用ws协议去链接websocket,但是小程序不能使用. 回答 由于小程序使用的是SSL加密协议,所以需要使用wss.这里wss与ws的关系就相当于https于ht ...
- 微信小程序 textarea 简易解决方案
微信小程序中textarea没有bindchange事件,所以无法在输入时给变量赋值. 虽然可以使用bindblur事件,但是绑定bindblur事件,如果再点击按钮,则先执行完按钮事件后,再去执行b ...
- 小程序session_key失效解决方案、后台解密个人数据信息
目录 一.登录会话密钥 session_key 有效性 二.解决登录session_key 的问题 案例:解决session_key 过期问题,发送个人信息后台解密 后端解密信息,存入数据库 mysq ...
- 夏日葵电商:连锁零售店小程序o2o系统解决方案
公众平台"附近小程序"功能上线后,一个主体账号可以同时绑定N+个门店,这对连锁零售店铺来说是重磅福利呀,无论你是通过搜索还是线下扫码进入小程序,线上与线下都完全贯通了,线上多种入口 ...
- DOM的利用冒泡做的一个小程序
我们都知道DOM的事件流,有冒泡事件,如何有效的利用冒泡? 优化:应该尽量少的添加事件监听:原理:每添加一个事件监听事件,就会在浏览器中添加一个EventListener,如果数量过多,浏览器只能一个 ...
- Python-列表做的购物车小程序
一.流程为,输入你有多少钱,然后循环购买商品,输入‘q’ 退出程序 goods=[['苹果',6500],['华为',4999],['小米',2999],['oppo',3599]] #初始化列表,填 ...
随机推荐
- k8s新版本使用container而不是docker
使用 Harbor 仓库作为 Kubernetes 集群私有仓库 Harbor 仓库信息 内网地址:hub.rainsc.com IP 地址:192.168.66.100 问题背景 在许多版本的教程中 ...
- 使用 setResponseStatus 函数设置响应状态码
title: 使用 setResponseStatus 函数设置响应状态码 date: 2024/8/25 updated: 2024/8/25 author: cmdragon excerpt: 通 ...
- React挂载dom无效的问题
话不多说,先上代码. 根据我的猜测,ReactDOM.render()这个函数,也就是挂载的意思是将内容进行替换,所以我的vdom1在调试的时候没有展示出来. 然后我创建了两个div块,分别挂载vdo ...
- 一个.NET开源、免费的跨平台物联网网关
前言 今天大姚给大家分享一个基于.NET开源.免费的跨平台物联网网关:IoTGateway. 项目介绍 IoTGateway是一个基于.NET6的跨平台物联网网关.通过可视化配置,轻松的连接到你的任何 ...
- YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
前言 今天大姚给大家分享一款基于.NET8开源.免费(MIT License)功能强大的权限管理及快速开发框架,支持前后端分离,项目架构易于扩展,是中小企业的首选:YuebonNetCore. 核心设 ...
- Git使用经验总结6-删除远端历史记录
删除远端的历史记录但是不影响最新的仓库内容是笔者一直想实现的功能,有两个很不错的用处: 有的历史提交不慎包含了比较敏感的信息,提交的时候没注意,过了一段时间才发现.这个时候已经有了很多新的历史提交,无 ...
- C++性能优化——能用array就不要用unordered_map作为查询表
unordered_map需要哈希值计算和表查询的开销,当key值为整数且连续,直接用数组作为查询表具有更高的效率. #include <iostream> #include <ch ...
- 【基础知识】【转】彻底搞懂 async & defer
普通 script 先来看一个普通的 script 标签. <script src="a.js"></script> 浏览器会做如下处理 停止解析 docu ...
- Maven高级——依赖管理
依赖管理 依赖指向当前项目运行所需的jar包,一个项目可以设置多个依赖 依赖传递 依赖具有传递性 直接依赖:在当前项目中通过依赖配置建立的依赖关系 间接依赖:被依赖的资源如果依赖其他资源.当前项目间接 ...
- React的useId,现在Vue3.5终于也有了!
前言 React在很早之前的版本中加了useId,用于生成唯一ID.在Vue3.5版本中,终于也有了期待已久的useId.这篇文章来带你搞清楚useId有哪些应用场景,以及他是如何实现的. 关注公众号 ...