【一步步开发AI运动APP】十三、如何进行运动开始前的站位预检,提升用户体验

简介: 本文介绍AI运动APP开发中站位预检的关键技术,涵盖远近、视角检测与语音提示等场景,通过pose-calc实现精准人体识别,提升检测通过率与用户体验。

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

本篇将为您介绍,如何实现正式运动检测前的远、近,视角预检、语音提示等典型应用场景。

一、为什么要进行站位预检

在运动检测时,用户无法手持和操作手机(或者是固定的终端设备),所以在放置好手机后,有必要进行人体远近、视角的预检查,这样的预检查一是有助手提升用户初次使用时的体验,在首次使用时不至于茫然不知道如何使用。二是有助于提升运动检测通过率,合适的距离、正确的视角是影响运动检测通过率两大关键因素,用户在运动开始前站位好距离、视角能极大的提高检测通过率,获得最佳的运动检测体验。
实现以上的预检查,需要使用到插件的pose-calc自定义姿态识别,可以参考本系的前面章节或插件的pose-calc文档了解pose-calc的使用。

二、如何进行站位远近检测

如下图所示,人距离设备过远或过近会影响取像中的人体范围,太远了人物太小关键点不清晰、太近了人无法全身入镜无法识别完整姿态,这都将影响运动的检测识别,我们建议识别范围为人居中占整个图像60%-85%之间为最佳。
image.png

要判断人站位的远、近,我们可以使用Pose-Calc中的Whole检查规则来进行判断,代码如下:

import {
    createCalculator } from "@/uni_modules/yz-ai-sport";
const calculator = createCalculator();

 //human受检人体姿态,调用抽帧、人体检测接口,得到实时人体结构

function farNearChcking(human){
   
    let range = 0.85;
    let rule = {
   
        name: '人太近检查',
        calc: 'whole',
        range: {
   
            top: human.height * (1 - range) / 2,
            left: human.width * (1 - range) / 2,
            width: human.width * range,
            height: human.height * range
        },
        relaxed: true
    };

    let pass = calculator.calculating(human, rule);
    if(!pass){
   
        console.log('您离相机太近了,请远离');
        return false;
        //进行UI显示,比如检测范围框闪动
        //建议进一步进行语音播放提醒
    }

    range = 0.65;
    rule = {
   
        name: '人太远检查',
        calc: 'whole',
        range: {
   
            top: human.height * (1 - range) / 2,
            left: human.width * (1 - range) / 2,
            width: human.width * range,
            height: human.height * range
        },
        relaxed: true
    };
    pass = calculator.calculating(human, rule);
    if(pass){
   
        console.log('您离相机太远了,请靠近些');
        return false;
        //进行UI显示,比如检测范围框闪动
        //建议进一步进行语音播放提醒
    }

    return true;
}

四、如何进行视角检查

为了保证能尽量完整的识别到运动姿态,不同的运动定义了不能的检查视角(可以通过运动分析器的实例的view属性获得),在定义的视角下进行相应的运动检测,检测效果为最佳,如下图所示:
image.png
image.png

pose-calc提供了camera-view检测规则,专门用来检测站位视角,应用代码如下:


import {
    createCalculator } from "@/uni_modules/yz-ai-sport";
const calculator = createCalculator();

 //human受检人体姿态,调用抽帧、人体检测接口,得到实时人体结构

function cameraViewChecking(human, view){
   

    let backOrFrontRule = {
   
        name: '前后视角预检查',
        calc: '$or',
        ruels: [{
   
            name: '正对摄像头检查',
            calc: 'camera-view',
            position: 'front'
        },{
   
            name: '背对摄像头检查',
            calc: 'camera-view',
            position: 'back'
        }]
    };

    let sideRule = {
   
        name: '侧身视角预检查',
        calc: '$or',
        ruels: [{
   
            name: '左对摄像头检查',
            calc: 'camera-view',
            position: 'left'
        },{
   
            name: '右对摄像头检查',
            calc: 'camera-view',
            position: 'right'
        }]
    };

    let pass = false;
    let msg = null;
    switch(view){
   
        case 'back_front':
            msg = '请背对或正对手机';
            pass = calculator.calculating(human, rule)
            break;
        case 'side':
            msg = '请背侧身对手机';
            pass = calculator.calculating(human, rule)
            break;
        //还进行更多的独立视角检查
    }

    if(!pass){
   
        console.log(msg);
        //进行UI显示,比如检测范围框闪动
        //建议进一步进行语音播放提醒
    }

    return pass;
}

五、预检完成后的过渡

为了让用户有一个缓冲反应时间,建议在所有预检查通过后,进行3-5秒的倒计时并请进行语音播报,再开始运动识别检查,让用户有充分的准备时间,以免让用措手不及。
image.png

好了,本篇就为您介绍到这,敬请继续关注更多典型场景实现

相关文章
|
15天前
|
人工智能 小程序 vr&ar
AR体感游戏,拓宽AI运动小程序的应用边界
AR体感游戏融合AI与AR技术,通过摄像头捕捉动作,将运动变为趣味互动。无需穿戴设备,手机即可畅玩,适合全年龄段,尤其激发低龄儿童运动兴趣。沉浸式体验让锻炼如游戏般上瘾,广泛应用于赛事、团建、校园及康复场景,借助AI运动识别插件,开发更高效便捷。
|
22天前
|
人工智能 数据挖掘 数据处理
构建AI智能体:五、Pandas常用函数介绍,CodeBuddy智能化处理Excel数据实例
Pandas是Python核心数据分析库,提供Series、DataFrame等灵活数据结构,支持高效的数据读写、清洗、筛选、合并与统计操作,广泛应用于数据处理与分析场景。
220 4
|
19天前
|
人工智能 网络协议 NoSQL
在性能优化时,如何避免盲人摸象
盲人摸象最早出自于《大般涅槃经》,讲述一群盲人触摸大象的不同部位,由于每人触及部位不同,却各自认为自己摸到的才是大象的全部,并为此争吵。比喻对事物了解不全面,以偏概全。
221 28
在性能优化时,如何避免盲人摸象
|
22天前
|
运维 监控 数据可视化
从巴比馒头的“洗菜流水线”,来看“telemetry pipeline”工具的火热兴起
以巴比馒头自动化洗菜为喻,探讨运维领域“数据清洗”难题。DataHub作为国产可视化遥测管道工具,支持多源数据接入与低代码编排,实现日志、指标、链路等数据的高效处理与统一管理,助力企业构建高质量可观测体系。(238字)
|
22天前
|
SQL 关系型数据库 MySQL
|
22天前
|
运维 监控 安全
如何搭建RWA代币化落地实操流程清单
系统化推进RWA代币化落地,从目标拆解、模块验收到资源盘点,构建可复用的流程模板。覆盖合约设计、合规审查、数据对接等关键环节,配套标准化操作蓝图与风险应对清单,支持快速迭代与跨团队协作,确保项目可控、可验、可持续交付。(238字)
|
27天前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
315 4
|
26天前
|
数据可视化 前端开发 JavaScript
智能开发平台-组件开发
JOKER平台支持在线组件开发,无需编译即可实时渲染。组件包含状态数据、生命周期、方法逻辑、事件处理与布局设计,通过可视化拖拽与响应式机制,提升开发效率与复用性。
|
22天前
|
弹性计算 监控 安全
如何通过阿里云服务器部署Web应用?
阿里云提供ECS与SAE一站式Web应用部署方案,支持弹性伸缩、安全防护与全球加速,助力电商、教育等高并发业务稳定运行。四步完成环境搭建、应用发布与智能运维,结合真实案例验证可靠性。
|
26天前
|
Python
LBA-ECO ND-02 巴西塔帕若斯国家森林土壤体积含水量
本数据集包含1999–2001年巴西塔帕若斯国家森林降雨排除实验中土壤体积含水量(VWC)的实测与模拟数据,旨在研究干旱对亚马逊森林的影响。提供实测及STELLA模型模拟的ASCII格式数据,支持通过Python工具访问与分析。
42 5