引言:随着深度学习技术的发展进步,已经不再依赖强大的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运动小程序有哪些解决方案,如何进行选型?的更多相关文章

  1. [第一个自己做的C小程序]丧失求生文字小游戏

    丧失求生文字小游戏 编写原因: 我编写这个小程序是为了结合下我学习的知识并且做一个小游戏来看看我自己的能力,目前我已经学完了C语言的编程基础.马上就要学到指针,这个就是我的基础总结项目,希望大家可以都 ...

  2. 微信小程序 bug及解决方案

    1.小程序遮罩滚动穿透问题 解决方案: <view class="mask" wx:if="{{showVipRights}}" catchtap='hi ...

  3. 详解封装微信小程序组件及小程序坑(附带解决方案)

    一.序 上一篇介绍了如何从零开发微信小程序,博客园审核变智障了,每次代码都不算篇幅,好好滴一篇原创,不到3分钟从首页移出来了.这篇介绍一下组件封装和我的踩坑历程. 二.封装微信小程序可复用组件 首先模 ...

  4. 用Taro做个微信小程序Todo, 小白工作记录

    微信小程序框架: Taro 做微信小程序的框架, 几个比较主流的: 官方的WePY: https://tencent.github.io/wepy/document.html#/ 美团的mpvue: ...

  5. 关于小程序websocket全套解决方案,Nginx代理wss

    需求对话 提问 我在本地web能够使用ws协议去链接websocket,但是小程序不能使用. 回答 由于小程序使用的是SSL加密协议,所以需要使用wss.这里wss与ws的关系就相当于https于ht ...

  6. 微信小程序 textarea 简易解决方案

    微信小程序中textarea没有bindchange事件,所以无法在输入时给变量赋值. 虽然可以使用bindblur事件,但是绑定bindblur事件,如果再点击按钮,则先执行完按钮事件后,再去执行b ...

  7. 小程序session_key失效解决方案、后台解密个人数据信息

    目录 一.登录会话密钥 session_key 有效性 二.解决登录session_key 的问题 案例:解决session_key 过期问题,发送个人信息后台解密 后端解密信息,存入数据库 mysq ...

  8. 夏日葵电商:连锁零售店小程序o2o系统解决方案

    公众平台"附近小程序"功能上线后,一个主体账号可以同时绑定N+个门店,这对连锁零售店铺来说是重磅福利呀,无论你是通过搜索还是线下扫码进入小程序,线上与线下都完全贯通了,线上多种入口 ...

  9. DOM的利用冒泡做的一个小程序

    我们都知道DOM的事件流,有冒泡事件,如何有效的利用冒泡? 优化:应该尽量少的添加事件监听:原理:每添加一个事件监听事件,就会在浏览器中添加一个EventListener,如果数量过多,浏览器只能一个 ...

  10. Python-列表做的购物车小程序

    一.流程为,输入你有多少钱,然后循环购买商品,输入‘q’ 退出程序 goods=[['苹果',6500],['华为',4999],['小米',2999],['oppo',3599]] #初始化列表,填 ...

随机推荐

  1. 【Mac + Python + Selenium】之获取验证码图片code并进行登录

    自己新总结了一篇文章,对代码进行了优化,另外附加了静态图片提取文字方法,两篇文章可以结合着看:<[Python]Selenium自动化测试之动态识别验证码图片方法(附静态图片文字获取)> ...

  2. web 3d 技术预研及数据可视化技术

    web 3D 技术 白纸一张,先理一理概念: webGL 是low level 库,three.js 是high level 库,一般只要理解webGL里的概念,实际用thee.js 开发更容易 3D ...

  3. Vue配置代理(devServer)解决跨域问题

    1.作用: Vue官方文档的解释是: 如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器.这个问题可以通过 vue.config.j ...

  4. C++ : 仅添加一个引用& 就直接导致程序崩溃

    问题描述 在项目某次开发中,测试过程中出现了coredump问题.经过asan工具检测,报了heap-use-after-free内存错误,最终定位到竟是无意中添加了一个引用&导致的! 开发时 ...

  5. 补: Rest 风格请求处理的的内容补充(1)

    补: Rest 风格请求处理的的内容补充(1) Rest风格请求:注意事项和细节 客户端是PostMan 可以直接发送Put,delete等方式请求,可不设置Filter 如果哟啊SpringBoot ...

  6. 深度学习环境安装-conda-torch-Jupyter Notebook

    conda的安装 为什么要安装这个,它是什么? 它是一个管理环境的,当我们跑项目的时候,往往这些项目所需要的pickets库和环境是不同的,这时候如果自己的电脑里面只有一个版本的库的话,就运行不了,比 ...

  7. Angular Material 18+ 高级教程 – CDK Layout の Breakpoints

    前言 CDK Layout 主要是用于处理 Breakpoints,它底层是依靠 window.matchMedia 来实现的. Material Design 2 & 3 Breakpoin ...

  8. CSS – Design System

    介绍 这篇 Tailwind CSS 的教程:Translating a Custom Design System to Tailwind CSS 充分的体现了什么是 Design System. 设 ...

  9. 一款超级给力的弱网测试神器—Qnet(附视频)

    一.APP弱网测试背景 App在使用的过程中,难免会遇到不同的弱网络环境,像在公车上.在地铁.地下车库等.在这种情况下,手机常常会出现网络抖动.上行或下行超时,导致APP应用中出现丢包延迟,从而影响用 ...

  10. TEN Framework 入坑记

    TL;DR TEN Framework 最初叫 Astra,后改为 TEN,即 Transformative Extensions Network. 我第一次见到 TEN (那时还叫 Astra)是在 ...