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

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

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

二、抽帧

AI运动大部分的使用场景,都是通过相机实时取像进行识别,为了减少您的集成工作量,我们已为您实现好了抽帧、帧流控等功能,并在Demo中提供了相关源码,直接集成至新项目即可。

当然相机抽帧识别是常见的运动识别源,但不是为唯一,您也可以选择录制视频、图进行识别,具体可以参考十七十八两个章节。

三、帧流

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

四、人体识别

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

五、关于相机全屏问题。

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

全屏问题插件现已适配,请参考最新Demo及文档升级即可。

六、姿态检测接口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提示...
}

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

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

八、横屏如何适配

在不开启页面屏幕旋转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度,需要判断屏幕是否处于左侧向模屏
});

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

AI运动小程序开发常见问题集锦一的更多相关文章

  1. 微信小程序开发常见问题分析

    距离微信小程序内测版发布已经有十几天的时间了,网上对微信小程序的讨论也异常火爆,从发布到现在微信小程序一直占领着各种技术论坛的头条,当然各种平台也对微信小程序有新闻报道,毕竟腾讯在国内影响力还是很大的 ...

  2. 微信小程序开发常见问题

    1.不同页面之间的传值方式 通过URL问号传值 当前页面 wx.navigateTo({ url: '/pages/aaa/aaa?/userName=norma' }) 2. 另一个页面通过opti ...

  3. 微信小程序开发学习资料

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  4. timestamp时间戳的应用(微信小程序开发也一样)

    在微信小程序开发时发现一个timestamp的时间戳的变量 比如获取微信运动步数时候 timestamp是如何形成的在JS中 是这么形成的 var timestamp = Date.parse(new ...

  5. WordPress版微信小程序开发系列(二):安装使用问答

    自WordPress版微信小程序发布开源以来,受关注的程度超过我原来的想象.这套程序主要面对的用户是wordpress网站的站长,如果wordpress站想在微信的生态圈得到推广,小程序成为一种重要的 ...

  6. 微信小程序详细图文教程-10分钟完成微信小程序开发部署发布

    很多朋友都认为微信小程序申请.部署.发布很难,需要很长时间. 实际上,微信和腾讯云同是腾讯产品,已经提供了10分钟(根据准备资源情况,已完成小程序申请认证)完成小程序开发.部署.发布的方式.当然,实现 ...

  7. 微信小程序-开发入门(一)

    微信小程序已经火了一段时间了,之前一直也在关注,就这半年的发展来看,相对原生APP大部分公司还是不愿意将主营业务放到微信平台上,以免受制于腾讯,不过就小程序的应用场景(用完即走和二维码分发等)还是很值 ...

  8. 微信小程序开发参考资料汇总

    不错的微信小程序入门教程:微信小程序入门二: 条件.遍历.网络请求.获取本地图片http://blog.csdn.net/lecepin/article/details/54016701 微信小程序入 ...

  9. VueJS 开发常见问题集锦

    由于公司的前端开始转向 VueJS,最近开始使用这个框架进行开发,遇到一些问题记录下来,以备后用. 主要写一些 官方手册 上没有写,但是实际开发中会遇到的问题,需要一定知识基础. 涉及技术栈 CLI: ...

  10. 微信小程序开发资源整理

    有兴趣学习微信小程序开发的可以关注简书专题 微信小程序开发 由于微信已经开发文档和开发工具了,所以下面的内容用处不大了. 具体参考:http://mp.weixin.qq.com/wiki/ 这篇文章 ...

随机推荐

  1. Standard Quorum Intersection

    标准定足数交集 定义和背景 系统模型: 系统中有 \(n\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点(恶意节点). 为了保证容忍 \(f\) 个拜占庭节点,系统通常需要至少 \(3f ...

  2. 网站由http升级为https图文教程

    网站由http升级为https图文教程 本文是基于凯哥个人网站由http升级为https的记录. 前提说明:凯哥网站在AliYun备案的.所以基于此创建的.如果是腾讯云备案的域名也是类似的. 名词解释 ...

  3. SpringBoot 引入 WebSocket

    maven 添加websocket ,按照一篇博文引入 websocket https://www.cnblogs.com/likun10579/p/5450209.html 在浏览器控制台测试是否连 ...

  4. 【YashanDB知识库】使用select * 创建的物化视图无法进行查询重写

    问题现象 使用如下语句准备测试数据: alter system set query_rewrite_enabled=force scope=both; drop table test; create ...

  5. linux磁盘分区之后,lsblk没有显示

    可以看出  fdisk 创建一个 sda4 的分区  并保存退出, 但是 不管是使用 fdisk -l ,还是 lsblk 都无法显示出来, 那么导致问题的原因,主要是因为新创建了分区之后,系统没有重 ...

  6. 小tips:微信小程序登录后返回登录前的页面继续操作(保留参数)

    在app.js中添加如下两个方法即可: // 设置需要回调的地址 setCallbackUrl: function(mode) { return new Promise((resolve,reject ...

  7. CSS & JS Effect – Loading Button

    效果 一个按钮, 点击以后中间出现 loading, 然后旋转. 思路 1. 监听点击, hide text, show loading 2. loading 定位中心 3. loading 是通过 ...

  8. Nuxt Kit 中的上下文处理

    title: Nuxt Kit 中的上下文处理 date: 2024/9/16 updated: 2024/9/16 author: cmdragon excerpt: Nuxt Kit 提供的上下文 ...

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

    不知道你在开发过程中有没有遇到过这样的困惑:这个变量怎么值被改?这个值怎么没变? 今天就来和大家分享可能导致这个问题的根本原因值传递 vs 引用传递. 在此之前我们先回顾两组基本概念: 值类型 vs ...

  10. acme+cloudflare生成免费证书(自动续期)

    acme DNSapi acme DNSapi的作用是在申请证书时使用dns交易,acme可以通过dnsapi在对应的dns管理平台提交对应的dns记录.玩过证书的朋友都知道,证书申请时有三种验证方式 ...