【一步步开发AI运动APP】七、自定义姿态动作识别检测——之规则配置检测

简介: 本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用自定义姿态识别检测技术开发高性能的AI运动应用。核心内容包括:1) 自定义姿态识别检测,满足人像入镜、动作开始/停止等需求;2) Pose-Calc引擎详解,支持角度匹配、逻辑运算等多种人体分析规则;3) 姿态检测规则编写与执行方法;4) 完整示例展示左右手平举姿态检测。通过这些技术,开发者可轻松实现定制化运动分析功能。

之前我们为您分享了【一步步开发AI运动小程序】开发系列博文,通过该系列博文,很多开发者开发出了很多精美的AI健身、线上运动赛事、AI学生体测、美体、康复锻炼等应用场景的AI运动小程序;为了帮助开发者继续深耕AI运动领域市场,今天开始我们将为您分享新系列【一步步开发AI运动APP】的博文,带您开发性能更强、体验更好的AI运动APP。

一、什么是自定义姿态识别检测

您在开发AI运动小程序或APP时,可能会面这样的需求场景,比如:人像必须全部入镜、站立远近要求检查、用户做某个动作开始/停止运动识别、内置运动不满足场景需求需要扩展新运动项目等等,这些都需要用到自定义姿态动作识别检测,插件提供了基于规则配置姿态相似度比较两种姿态识别检测方案,本章将先为您介绍基于规则配置方案,姿态相似度比较方案和自定义运动扩展将在后续章节为您介绍。
115969-20250421203207313-701884138.png

二、Pose-Calc引擎介绍

插件姿态识别引擎pose-calc(原body-calc)实现了诸如⻆度匹配、垂直、⽔平、逻辑运算、姿态相似度⽐较、姿态旋转等常⽤的⼈体分析计算器;插件的内置运动分析器都基于此计算层实现,通过pose-calc只要配置好计算规则(⽆代码或代少量代码)即可实现自定义姿态动作检测或运动分析,也⽅便实现运动分析可配置化。
姿态计算引擎中的检测规则分为姿态计算逻辑计算两种类型,姿态计算类型主要包含全身入镜视角检测相对位置站立卧躺角度匹配等人体姿态计算规则;逻辑计算包含三个逻辑运算,用于实现姿态计算规则的组合运算,详情可以参考pose-calc指南文档。

三、编写姿态检测规则

姿态计算规则为方便持久化,采用类js匿名类型和JSON对象语法配置,定义语法如下:

let rule = {
   
    calc: 'stand',  //必填,要调用的计算规则
    name: '保持站立姿态' //必填,自定义规则名称
    ... //该计算规则所需的其它参数,具体参考文档
};

四、执行自定义姿态规则检测

定义好计算规则、检测出人体结构后,便可以调用计算规则执行对象Calculator进行检测了,代码如下:

import {
    createCalculator } from "@/uni_modules/yz-ai-sport";
const calculator = createCalculator();
let rule = {
   
    name: 'test',
    calc: '$and',
    rules: [{
   
        name: '正⾯视图',
        calc: 'camera-view',
        position: 'front'
        }, {
   
        name: '全身需⼊镜',
        calc: 'whole',
        relaxed: true
    }]
};
let human = ... //调用人体检测接口,得到实时人体结构
let pass = calculator.calculating(human, rule);
console.log(pass);
//Calculator还有calculatingAnd、calculatingOr、calculatingNot⽅法供快捷调⽤,详⻅API参考⽂档

五、完整示例

下面以左右手平举姿态检测的示例,为您演示插件的基于计算规则配置的自定义姿态动作检测能力:

import {
    createCalculator, createHumanDetector } from "@/uni_modules/yz-ai-sport";

let rules={
   
    name: '基本姿态',
    calc: '$and',
    rules: [{
   
        name: '全身需入镜',
        calc: 'whole'
    }, {
   
        name: '站立姿态',
        calc: 'stand'
    }, {
   
        name: '任一手平直',
        calc: '$or',
        rules: [{
   
            name: '左平直状态',
            calc: 'match-angle',
            angleKey: 'left_shoulder',
            secondKey: 'left_hip',
            thirdKey: 'left_wrist',
            angle: 90,
            offset: 20
        }, {
   
            name: '右平直状态',
            calc: 'match-angle',
            angleKey: 'right_shoulder',
            secondKey: 'right_hip',
            thirdKey: 'right_wrist',
            angle: 90,
            offset: 20
        }]
    }]
};

const calculator = createCalculator();
let options = {
   
    multiple: false,
    enabledGPU: true,
    highPerformance: false
};
const humanDetector = createHumanDetector(options);
humanDetector.startExtractAndDetect({
   
    onDetected(result){
   
        let humans = result.humans;
        let pass = calculator.calculating(humans[0], rule);
    }
});

115969-20250421202623502-216157057.png

相关文章
|
9月前
|
存储 人工智能 前端开发
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
本文介绍如何利用Qoder、阿里云ADB Supabase和通义千问图像编辑模型,快速搭建AI手办生图Flutter应用。无需传统后端,实现从前端生成到数据存储、AI服务集成的全链路敏捷开发,展现Vibe Coding的高效实践。
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
|
10月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
1934 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
10月前
|
人工智能 自然语言处理 供应链
从体验到系统工程丨上手评测国内首款 AI 电商 App
近期,1688 推出了 1688 AI App,这貌似是国内第一个电商领域的独立 AI App 应用(若不是,欢迎评论指正)。本文试图通过产品界面这一入口,窥探其背后的系统工程。
1370 70
|
9月前
|
人工智能 小程序 开发者
【一步步开发AI运动APP】十二、自定义扩展新运动项目03
继【一步步开发AI运动小程序】后,我们推出新系列【一步步开发AI运动APP】,助开发者打造高性能、优体验的AI运动应用。本文详解自定义扩展运动分析器的统一管理实现,提升代码复用性与可维护性,涵盖APP与小程序插件差异及完整代码示例,助力AI运动场景深度拓展。
|
9月前
|
人工智能 小程序 搜索推荐
【一步步开发AI运动APP】十二、自定义扩展新运动项目2
本文介绍如何基于uni-app运动识别插件实现“双手并举”自定义扩展运动,涵盖动作拆解、姿态检测规则构建及运动分析器代码实现,助力开发者打造个性化AI运动APP。
|
9月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1461 139
|
9月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
648 137
|
9月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
372 154
|
10月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
292 0

热门文章

最新文章