引言:随着深度学习技术的发展进步,已经不再依赖强大的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运动识别插件方案,投入成本小且能避免很多实现陷井。