【一步步开发AI运动小程序】八、利用body-calc进行姿态识别

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 随着AI技术的发展,各大厂商推出的如“乐动力”、“天天跳绳”等AI运动APP,使得云上运动会、线上健身等概念风靡一时。本文将引导读者从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”,介绍人体姿态检测规则、规则编写语法、执行检测规则运算及姿态检测实战等内容,助力开发者轻松实现AI运动小程序的开发。

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

一、支持的检测规则

人体姿态检测能力是插件的核心功能之一,插件为您封装好了基本的人体检测及逻辑运算检测规则。

1.1、基本人体检测规则

插件提供了:肢体角度匹配平行检测垂直检测视角检查站立检查卧躺检查人体范围检查点位碰撞等检测规则,详情参考api-docs文档。

1.1、逻辑运算规则

插件提供了:$or$and两个逻辑运算器,详情参考api-docs文档。

二、规则编写语法

每条检测规则都是一个Object对象,其中namecalc属性为必填,其它参数参考具体的检测规则,如:

//这是一个检查人体是否的检测
const rule = {
   
    name: '人体站立状态要求', //必填,本规则自定义名称
    calc: 'stand', //必填,要执行的规则计算器名称
    offset : 15 //选填,规则的允许偏差范围
};

//规则嵌套,利用$or和$and逻辑规则进行多规嵌套
const rules = {
   
  name: '右侧站立检查',
  calc: '$and',
  rules: [{
   
      name: '侧面视角',
    calc: 'camera-view',
    position: 'right'
  }, rule]
};

三、执行检测规则运算

所有的人体检测规则,有calc.Calculator负责执行。

const AiSport = requirePlugin("aiSport");
const humanDetection = AiSport.humanDetection;
const Calculator = AiSport.calc.Calculator;

const rule = {
   
    name: '人体站立状态要求',
    calc: 'stand',
    offset : 15
};
const calculator = new Calculator();

//抽帧
const context = wx.createCameraContext();
const listener = context.onCameraFrame((frame) => {
   
    const iamge = {
   
        width: Number(frame.width),
        height: Number(frame.height),
        rawData: frame.data
    };

    //人体识别
    humanDetection.detectionAsync(image).then(human=>{
   

        //对人体识别结果,进行单规则姿态检测
        console.log(calculator.calculating(human, rule));

        //返回值:true-通过;false-不通过

    });
});
listener.start();

四、姿态检测实战

下面带您来做一个马步蹲的姿态检查实战,如下图所示:
image

const AiSport = requirePlugin("aiSport");
const humanDetection = AiSport.humanDetection;
const Calculator = AiSport.calc.Calculator;

//下肢要求
const foot = {
   
    name: '脚90度检测',
    calc: '$or',
    rules: [{
   
        name: '左脚90度弯曲',
        calc: 'match-angle',
        angleKey: 'left_knee',
        secondKey: 'left_hip',
        thirdKey: 'left_ankle',
        angle: 90,
        offset: 25
    }, {
   
        name: '右脚90度弯曲',
        calc: 'match-angle',
        angleKey: 'right_knee',
        secondKey: 'right_hip',
        thirdKey: 'right_ankle',
        angle: 90,
        offset: 25
    }]
};

const arm = {
   
    name: '手臂180度检测',
    calc: '$or',
    rules: [{
   
        name: '左手180度伸直',
        calc: 'match-angle',
        angleKey: 'left_elbow',
        secondKey: 'left_shoulder',
        thirdKey: 'left_wrist',
        angle: 180,
        offset: 25
    }, {
   
        name: '右手180度伸直',
        calc: 'match-angle',
        angleKey: 'right_elbow',
        secondKey: 'right_shoulder',
        thirdKey: 'right_wrist',
        angle: 180,
        offset: 25
    }]
};

const shoulder = {
   
    name: '腋下夹角90度检测',
    calc: '$or',
    rules: [{
   
        name: '左腋90度',
        calc: 'match-angle',
        angleKey: 'left_shoulder',
        secondKey: 'left_elbow',
        thirdKey: 'left_hip',
        angle: 90,
        offset: 25
    }, {
   
        name: '右腋90度',
        calc: 'match-angle',
        angleKey: 'right_shoulder',
        secondKey: 'right_elbow',
        thirdKey: 'right_hip',
        angle: 90,
        offset: 25
    }]
};

const rule = {
   
    name: '马步蹲姿势检查',
    calc: '$and',
    rules: [{
   
        name: '全身进入图像范围内检查',
        calc: 'whole'
    }, foot, arm, shoulder]
};
const calculator = new Calculator();

//抽帧
const context = wx.createCameraContext();
const listener = context.onCameraFrame((frame) => {
   
    const iamge = {
   
        width: Number(frame.width),
        height: Number(frame.height),
        rawData: frame.data
    };

    //人体识别
    humanDetection.detectionAsync(image).then(human=>{
   

        //执行检测
        console.log(calculator.calculating(human, rule));

    });
});
listener.start();

五、后记

body-calc的检测规则都是对象化,所以开发者实际应用中可以考虑采用JSON方式持久化,放置在后端,便于运动、姿态的检测更新、配置化等。

下篇将为您介绍运动调试分析工具的使用,敬请期待...

相关文章
|
9天前
|
人工智能 自然语言处理 Java
【100%好礼】诚邀体验SoFlu-JavaAl开发助手,重塑AI编码价值
在这个数字化时代,软件开发任务繁重,飞算科技推出SoFlu-JavaAl开发助手,诚邀您体验AI编码新境界。它不仅生成代码,还通过自然语言理解需求,精准生成完整工程源码,大幅缩短设计工期,提升效率。SoFlu-JavaAl支持一键构建Java Maven工程,轻松合并老项目,快速响应需求变更。参与体验还有机会获多重好礼!
|
2天前
|
人工智能 移动开发 JavaScript
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
|
4天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
1天前
|
存储 人工智能 开发框架
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
Eliza 是一个开源的多代理模拟框架,支持多平台连接、多模型集成,能够快速构建智能、高效的AI系统。
24 8
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
|
17天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
10天前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
194 0
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
师资研修|AI技术赋能教材建设和课程开发——乌鲁木齐某教育部门
近日,TsingtaoAI派出AI专家为乌鲁木齐中职院校的教师团队,举办“AI技术赋能教材建设与课程开发”的师资研修。此次培训由TsingtaoAI的AI专家高寒和教育专家刘建老师亲自授课,面对的是来自乌鲁木齐的教育工作者,特别是中职院校的教学骨干。整个活动不仅涉及人工智能技术本身的深度解析,还深入探讨了如何将这些前沿技术高效应用于教材和课程体系的创新。
29 0
|
6天前
|
机器学习/深度学习 人工智能 自动驾驶
企业内训|AI大模型在汽车行业的前沿应用研修-某汽车集团
本课程是TsingtaoAI为某汽车集团高级项目经理设计研发,课程全面系统地解析AI的发展历程、技术基础及其在汽车行业的深度应用。通过深入浅出的理论讲解、丰富的行业案例分析以及实战项目训练,学员将全面掌握机器学习、深度学习、NLP与CV等核心技术,了解自动驾驶、智能制造、车联网与智能营销等关键应用场景,洞悉AI技术对企业战略布局的深远影响。
135 97
|
11天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——湖南大学站圆满结营
12月14日,由中国软件行业校园招聘与实习公共服务平台携手魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·湖南大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——湖南大学站圆满结营
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
CogAgent-9B 是智谱AI基于 GLM-4V-9B 训练的专用Agent任务模型,支持高分辨率图像处理和双语交互,能够预测并执行GUI操作,广泛应用于自动化任务。
36 12
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务

热门文章

最新文章