【一步步开发AI运动APP】十、微调优化内置运动分析器,灵活适配不同的应用场景

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

一、为什么要对内置运动进行微调优化

uni-APP版插件与小程序AI运动识别插件一样,当前都内置了跳绳、开合跳、俯卧撑、仰卧起坐、卷腹、深蹲(深蹲起)、平板支撑、马步蹲、坐位体前屈 等丰富的运动项目,所有运动项目都按相应的运动规范标准进行适配,足够应付AI键身、线上运动赛事活动、团建打卡、AI体测等多种应用场景。

但是不同的应用场景对运动检测的要求并不一致,比如云上运动赛事场景主要是提升全民的运动热情,并不是以竞技为目标,如果以标准动作规范进行检测,则动作通过率太低,会挫伤用户参赛热情;而像学生体测这种考评类的应用场景,需要更标准规范的动作检测要求,则可能要适度增加规范检测要求,满足考评要求;而用户自由AI健身,则用户自身的运动水平和偏好有很大的关系,运动素质较好的用可能喜欢标准 模式,初级用户开始可能喜欢选择宽松 ,更具有成就感,后期又可能以标准 模式发起挑战等等。

如前文所述,不同应用场景对检测规则的需求存在差异,插件若列举出典型场景进行适配,即难于满足无法预知的小众场景,更无法满足有微调需求开发者。鉴于此,我们为内置的运动分析器提供了统一的微调优化机制,以便开发者能除了开箱即用的使用标准模式进行运动检测外,还能对内置运动分析器的各项参数进行微调优化,灵活适应各种应用场景。

二、APP与小程序在运动微调上的差异

不同于小程序,页面层使用的是JS引擎,且插件也是工作在JS引擎层面的,利用javascript的弱类型特性,开发者可直接修改运动分析器Sport实例的属性;而APP则不同,插件为原生程序包,工作在页面渲染引擎之外,在uni-app下虽然渲染引擎为webview渲染引擎,但是得到的运动分析器是经过序列化的对象,并非原生对象的内存引用,无法直接操作实例对象的参数;且在uni-app x下则更为复杂,在android平台为原生引擎,在iOS仍为优化的webview引擎。

针对uni平台下APP的框架的差异,经过分析研究,我们为uni-app插件提供了一个统一的微调优化机制。

三、内置优化器ISportOptimizer

ISportOptimizer为插件统一的内置运动微调优化器,抹平了两个APP框架的微调优化调用差异,不管是uni-app还是uni-app x,统一使用此对象对内置运动分析器进行微调优化。ISportOptimizer对象可以获取更新内置运动的检测规则、动作样本、个性参数,以进行深度的优化定制。

四、微调优化示例代码

javascript 复制代码
import { ISportOptimizer, ISport, createSport } from "../uni_modules/yz-ai-sport";

function optimizeing(){
	//创建仰卧起坐动分析器
	const sport = createSport('high-knee');
	//创建运动的微调优化器
	const optimizer = sport.buildOptimizer();
	//获取运动的检测规则集
	const rules = optimizer.getRules();
	//获取运动可微调检测参数
	const options = optimizer.getOptions();

	//执行优化
	optimizer.setOption('liftLowest', 0.05);
	rules.leftPose.rules[0].offset = 55;
	rules.leftPose.rules[1].offset = 55;
	optimizer.setRule('leftPose', rules.leftPose);
}

五、微调优化的局限性

对内置运动分析器微调优化,只适合对标准动作进行适当的增减、放宽或收紧,如果动作变化太大,微调优化可能无法满足,比如花式跳绳,无法直接通过现有内置的跳绳微调优化适配。

当然,若微调优化无法满足应用场景需求,也无需担心,插件还支持自定义扩展新的运动项目,我们将在后续章节中介绍,敬请期待...

相关推荐
bug总结12 小时前
深入理解 uni-app 的 uni.createSelectorQuery()
uni-app
真上帝的左手12 小时前
25. 移动端-uni-app
uni-app
编程猪猪侠12 小时前
基于Uni-app+vue3实现微信小程序地图固定中心点范围内拖拽选择位置功能(分步骤详解)
uni-app
小徐_233315 小时前
Trae 辅助下的 uni-app 跨端小程序工程化开发实践分享
前端·uni-app·trae
斯~内克15 小时前
UniApp 页面传参方式详解
网络协议·udp·uni-app
大聪明了18 小时前
uniapp vue3 使用 pinia
javascript·vue.js·uni-app
有梦想的刺儿1 天前
uniapp手机端video标签层级过高问题
uni-app
&白帝&1 天前
Uniapp 获取系统信息:uni.getSystemInfo 与 uni.getSystemInfoSync
uni-app
熬耶2 天前
Uniapp之微信小程序自定义底部导航栏形态
微信小程序·小程序·uni-app
加蓓努力我先飞2 天前
小兔鲜儿-小程序uni-app(二)
uni-app