翼度科技»论坛 编程开发 JavaScript 查看内容

【一步步开发AI运动小程序】七、进行运动计时、计数

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
随着人工智能技术的不断发展,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让云上运动会、线上运动会、健身打卡、AI体育指导等概念空前火热。那么,能否将这些在APP成功应用的场景搬上小程序,分享这些概念的红利呢?本系列文章就带您一步一步从零开始开发一个AI运动小程序,本系列文章将使用“云智AI运动识别小程序插件”,请先行在微信服务市场官网了解详情。
一、插件运动检测分析的流程

1.1、相关核心命名空间

插件关于姿态、运动检测的能力,都包含在calc和sports两个命名空间下。其中sports命名空间下包含了所有的内置运动分析器类和运动检测相关计时、计数的核心逻辑抽象;calc命名空间下包含了人体姿态分析的角度、垂直、水平、视角等规则计算器、姿态相似度和关键点追踪等能力,sports也是基于此能力实现。
1.2、运动分析的过程

运动分析的过程,便是逐帧分析人体结果,当捕捉符合到要求的姿态动作,便触发计时、计数回调。UI便可以基于此回调与用户进行交互。
二、获取所有的内置运动

sports.SportBase是运动分析器抽象基类,实现了基本的计数、计时逻辑,其中SPORTS静态属性包含了所有的插件内置运动。
  1. const SportBase = AiSport.sports.SportBase;
  2. console.log(SportBase.SPORTS);
  3. //输出结果
  4. //0: {key: "Rope-Skipping", name: "跳绳"}
  5. //1: {key: "Jumping-Jack", name: "开合跳"}
  6. //2: {key: "Sit-Up", name: "仰卧起坐"}
  7. //3: {key: "Push-Up", name: "俯卧撑"}
  8. //4: {key: "Squat", name: "深蹲起"}
  9. //5: {key: "Plank", name: "平板支撑"}
  10. //6: {key: "Squat-Horse", name: "马步蹲"}
复制代码
二、创建一个指定的运动分析器
  1. //调用SportBase.create静态方法,创建一个俯卧撑运动分析器实例
  2. const AiSport = requirePlugin("aiSport");
  3. const SportBase = AiSport.sports.SportBase;
  4. const sport = SportBase.create('Push-Up');
  5. console.log(sport);
复制代码
三、执行运动分析检测
  1. //创建俯卧撑运动分析器
  2. const AiSport = requirePlugin("aiSport");
  3. const SportBase = AiSport.sports.SportBase;
  4. const sport = SportBase.create('Push-Up');
  5. sport.onTiCK = (cnt, times) => {
  6.         console.log('运动计数变化');
  7.         console.log(cnt, times);
  8. };
  9. //抽帧
  10. const context = wx.createCameraContext();
  11. const listener = context.onCameraFrame((frame) => {
  12.         const iamge = {
  13.                 width: Number(frame.width),
  14.                 height: Number(frame.height),
  15.                 rawData: frame.data
  16.         };
  17.        
  18.         //人体识别
  19.         humanDetection.detectionAsync(image).then(human=>{
  20.                
  21.                 //将人体识别结果推入运动分析器
  22.                 sport.pushing(human);
  23.                
  24.         });
  25. });
  26. listener.start();
复制代码
下篇将为您介绍姿态分析,敬请期待...

来源:https://www.cnblogs.com/alphaair/p/17428436.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具