AI运动小程序开发常见问题集锦一

news/2024/12/28 13:12:06/文章来源:https://www.cnblogs.com/alphaair/p/18264308

截止到现在写博文时,我们的AI运动识别小程序插件已经迭代了23个版本,成功应用于健身、体育、体测、AR互动等场景;为了让正在集成或者计划进行功能扩展优化的用户,少走弯路、投入更少的开发资源,我们归集了一部分集中的常见问题,供大家参考。

一、关于文档、Demo项目的使用。

在技术支持资料包中,提供有指南、API参考等文档,建议在集成工作开始前,通读文档并结合Demo项目熟悉基本的应用流程。

二、抽帧

AI运动大部分的使用场景,都是通过相机实时取像进行识别,为了减少您的集成工作量,我们已为您实现好了抽帧、帧流控等功能,并在Demo中提供了相关源码,直接集成至新项目即可。
当然相机抽帧识别是常见的运动识别源,但不是为唯一,您也可以选择录制视频、图进行识别,具体可以参考十七十八两个章节。

二、帧流

不管是从相机或视频中抽帧进行识别,图像都是流形式的,即从相机预览或视频中的提取一帧帧图像,调用插件进行识别。如下图所示,连续提取的多张图像,有可能是同一个动作,特别是高帧数的视频和相机,同一动作的帧会更多,因此,在计数运动自定义运动适配时,需要做好标记,同一个动作只捕捉一次,否则便出现重复计数问题。
image

三、人体识别

要进行运动和姿态识别,首先要拿到人体识别结果,插件的人体识别接口是可以单独调用的,无须经过运动分析器。拿到人体识别结果也可以进行其它场景的拓展,如动作交互、AI带教、语音交互等。

四、关于相机全屏问题。

运动是支持将camera组件全屏下进行识别的,但是受制于小程序抽尺寸与预览尺寸不一致的问题,可能会现骨骼图和人体位置不一致的情况,如果一定要使用全屏模式,建议关闭骨骼图展示。
image

五、姿态检测接口Body-Calc可单调用。

插件的人体姿态分析检测能力Body-Calc支持单独调用,不必经过运动分析器。比如进行人体站位调整、语音互动、AR互动,直接调用相应的接口即可。

const AiSport = requirePlugin("aiSport");
const Calculator = AiSport.calc.Calculator;//也可参考此实现左右视角检查
const rule = {name: '正或背对摄像头检查',calc: '$or',ruels: [{name: '正对摄像头检查',calc: 'camera-view',position: 'front'},{name: '背对摄像头检查',calc: 'camera-view',position: 'back'}]
};
const calculator = new Calculator();//执行检测
if(!calculator.calculating(human, rule)){console.log('请面或背朝摄像头');//播放语音、UI提示...
}

六、运动识别的视角和站位。

为了更精准的识别到人体动作,在适配运动时建议指定一个可以清晰检测到动作关键点的视角,视角和站位的预检实现可以参考十五十六章节。
image

七、横屏如何适配

在不开启页面屏幕旋转pageOrientation支持的情况下,直接将手机横放,将导致运动无法正确识别,开启屏幕旋转支持后,camera的图像方向将自动旋转,无需进行其它处理,详情请参考文档https://developers.weixin.qq.com/miniprogram/dev/framework/view/resizable.html

{"pageOrientation": "auto"
}

若不开启屏幕旋支持,仍要支持手机横竖,可以调用人体识别结果BodyDetectionResultrotate(angle)rotateToUpright()方法对人体结构姿态进行旋转。

const AiSport = requirePlugin("aiSport");
const humanDetection = AiSport.humanDetection;
humanDetection.detectionAsync(image).then(human=>{human.rotate(-90); //顺时针旋转90度,需要判断屏幕是否处于左侧向模屏
});

image

好了,本次就为您梳理到,更多问题请继续关注我们的更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799678.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware Live Site Recovery 9.0.2 发布下载,新增功能概览

VMware Live Site Recovery 9.0.2 发布下载,新增功能概览VMware Live Site Recovery 9.0.2 - 数据中心灾难恢复 (DR) VMware Site Recovery Manager, VMware SRM 现已更名为 VMware Live Site Recovery 请访问原文链接:https://sysin.org/blog/vmware-live-site-recovery-9/,…

标准预处理指令 可变参数 #与## 的基本用法

目录举例一些的宏和预处理指令C99引入的特性 VA_ARGS__##__VA_ARGS__说明:#line#error#pragmaMessage参数#warning#和##前置:相邻字符串具有自动连接特性#运算符#运算符的功能:在宏定义中,将宏参数转化成字符串用法举例:使用场景:##运算符功能:用法举例: 举例一些的宏和预处理指…

代码整洁之道--读书笔记(13)

代码整洁之道简介: 本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更…

读构建可扩展分布式系统:方法与实践08微服务

微服务1. 微服务 1.1. 微服务的起源可以追溯到2008年左右1.1.1. 在Amazon,​“两个比萨原则”成为一个单系统组件团队规模的管理原则,后来被称为微服务1.1.1.1. 每个内部团队都应该小到可以用两个比萨饼喂饱1.1.2. Amazon和Netflix是微服务架构的先驱,他们在2009年左右大规模…

C#|.net core 基础 - 值传递 vs 引用传递

文章探讨了C#中值传递与引用传递的概念及其对值类型和引用类型变量的影响。值传递创建参数副本,不影响原变量;引用传递共享内存地址,方法内修改影响原变量。特别提到string视为值类型处理,C#中ref、out等修饰符可实现引用传递。不知道你在开发过程中有没有遇到过这样的困惑…

浅谈舞蹈链(DLX)

名字: \(DL\),\(Dancing\space Link\),舞蹈链,是由\(Donald\space Knuth\)提出的数据结构,用来优化 \(X\) 算法,所以叫\(DLX\) \(X\)算法详解 用于求解精确覆盖问题,精确覆盖问题的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一…

java基础 -IO流笔记

610,文件的基础知识 文件流 输入流和输出流都是相对 java程序内存 而言611,创建文件 在D盘下创建文件。package com.hspedu.file;import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException;//演示创建文件 public class FileCreate {public sta…

2024软件工程个人作业(第二次)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253这个作业的目标 学会使用aigc编写学习代码,明白aigc能做哪些不能做哪些学号 1022014251. 项目展示 1.1. GitHub 仓库链接 ruang…

Kubernetes Ingress

目录一、为什么需要 Ingress二、什么是Ingress,Ingress Controller三、Ingress 的工作原理四、Ingress 配置资源模版五、实例1、搭建 Ingress 环境1.1、Ingress-Nginx官网地址1.2、master 节点下载 deploy.yaml1.3、所有节点提前 pull 必须的镜像1.4、修改并应用 deploy.yaml 文…

JVM--解析运行期优化与JIT编译器

JVM开发团队一直在努力,缩小Java与C/C++语言在运行效率上的差距。 本篇博客,我们来谈一谈JVM(HotSpot)为了提高Java程序的运行效率,都实现了哪些激动人心的技术~ 1 JIT编译器的引入 首先我们这篇文章中所说的编译器都是指JVM的组成部分之一---即时编译器(JIT),与生成J…

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) @目录十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)1. Spring Boot 配置 MyBatis 的详细步骤2. 最后:MyBatis 的官方文档:https://mybatis.p2hp.com/ 关于 MyBatis 的学习的详细内容,大家可以移步至:✏️✏️…