【一步步开发AI运动小程序】二十、AI运动小程序如何适配相机全屏模式?

简介: 本文探讨了小程序`camera`组件在全屏模式下的适配问题及其解决方案。由于`camera`组件存在预览图像裁切特性,可能导致入镜检测与预览不一致、骨骼图与人体不重合等问题。通过分析其裁剪逻辑(长边按比缩放,短边居中裁切),我们提供了计算裁剪比例和留白的适配方法,并优化了插件特性以支持全屏应用。同时,文章还讨论了全屏模式可能带来的副作用,如人体可视区域变小、检测范围变化及抽帧帧率下降等,并给出了改进建议。该方案适用于云上赛事、健身锻炼、AI体测、AR互动等场景,助力提升用户体验和UI布局合理性。

引言 受小程序camera组件预览和抽帧图像不一致的特性影响,一直未全功能支持全屏模式,详见本系列文件第四节[小程序如何抽帧];随着插件在云上赛事、健身锻炼、AI体测、AR互动场景的深入应用,各开发者迫切的希望能在全屏模式下应用,以便获得更合理的UI布局和更佳的用户体验,经过我们的努力摸索小程序camera组件的预览处理逻辑,优化更新插件特性,现在已完美支持相机全屏模式应用。

一、全屏模式下产生的问题?

1.1、入镜检测与预览不一致。

camera组件的宽高比与相机输出的图像不一致时,会对预览图像进行裁切,这便有可能会导致检测到了人体,但是预览图像看不到人体的现象。

1.2、骨骼图与人体不重合。

还是由于camera对相机输出图像进行裁切预览的问题,可能会导致输出的骨骼图,人体关键点点位与预览图像不重合的现象。

二、camera如何裁剪预览图像?

经过我们的实测分析,小程序camera组件在宽高比与相机输出图像宽高比不一致时,采用的是长边按比缩放,短边居中裁切的模式进行缩放,如下图所示:
115969-20241008192207312-313004681.jpg

这是在相机输出帧大小640px480px/480px640px,camera组件在iPhone 8 plus(屏大小414px*736px)横竖屏下的裁切效果。

三、如何适配处理全屏模式的问题?

根据上面camera的预览裁切模式效果观察,我们只要计算出被裁剪缩放比例及短边两边的留白,并进行相应的缩放及偏移即可,代码如下:

function fullScreenFit(width, height) {
   
    const winfo = uni.getWindowInfo();

    this.previewWidth = winfo.windowWidth;
    this.previewHeight = winfo.windowHeight;

    if (winfo.windowHeight > winfo.windowWidth) {
   
        //竖屏
        console.log('竖屏');
        this.previewRate = winfo.windowHeight / height;
        this.previewOffsetX = winfo.windowWidth - width * this.previewRate;
        this.previewOffsetX /= 2;
        this.previewOffsetY = 0;
    } else {
   
        //横屏
        console.log('横屏');
        this.previewRate = winfo.windowWidth / width;
        this.previewOffsetX = 0;
        this.previewOffsetY = winfo.windowHeight - height * this.previewRate;
        this.previewOffsetY /= 2;
    }
}

//配置骨骼图偏移,需升级插件版本至1.5.5以上
this.poseGraphs = new PoseGraphs(ctx, canvas.width, canvas.height, that.previewRate);
this.poseGraphs.offsetX = that.previewOffsetX;
this.poseGraphs.offsetY = that.previewOffsetY;

当然实际使用中,还需要适配横竖屏的样式等,完整代码代码请参考我们提供的Demo项目。

三、全屏模式的副作用及建议。

上面便适配处理好了全屏模式,当然在此模式也可能会带来一些副作用,具体跟相机的输出帧图像和屏幕大小有关。

3.1、人体可视区域变小

由于全屏模式下,会对短边进行裁切,而用户根据的是可视区域进行调整人体站位,所以人体区域便变小了,可能会降低人体识别效果;建议提高camera的分辨率和帧大小至中级,将人体检测范围提高,具体请参考本系列文章相关章节。

3.2、人体检测范围变化

若您在运动时进行了人体远、近站位预检,那相应的range坐标也需进行偏移。

3.2、抽帧帧率下降

由于提高了分辨率和帧大小来应对可视区域变小的问题,在一些偏老机型可能会导致帧率下降问题。

当然以上问题,根据我们的实测,大部分情况和机型不会影响使用。

好了,全屏适配问题就为您介绍到这里,未尽问题可以联系我们进行咨询,插件将致力为您提供全面的AI运动识别解决方案,助力您快速落地AI运动AI体育AI健身AI体测AR互动等运动应用。

相关文章
|
1月前
|
人工智能 JSON 前端开发
Agentic AI崛起:九大核心技术定义未来人机交互模式​
本文系统梳理AI智能体架构设计的九大核心技术,涵盖智能体基础、多智能体协作、知识增强、模型优化、工具调用、协议标准化及人机交互等关键领域,助力构建高效、智能、协同的AI应用体系。建议点赞收藏,持续关注AI架构前沿技术。
444 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
AI进化论:从识别模式到创造世界的“数字大脑”
AI进化论:从识别模式到创造世界的“数字大脑”
180 63
|
人工智能 Java Serverless
【MCP教程系列】搭建基于 Spring AI 的 SSE 模式 MCP 服务并自定义部署至阿里云百炼
本文详细介绍了如何基于Spring AI搭建支持SSE模式的MCP服务,并成功集成至阿里云百炼大模型平台。通过四个步骤实现从零到Agent的构建,包括项目创建、工具开发、服务测试与部署。文章还提供了具体代码示例和操作截图,帮助读者快速上手。最终,将自定义SSE MCP服务集成到百炼平台,完成智能体应用的创建与测试。适合希望了解SSE实时交互及大模型集成的开发者参考。
10013 60
|
4月前
|
人工智能 小程序 JavaScript
【一步步开发AI运动APP】十、微调优化内置运动分析器,灵活适配不同的应用场景
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用`ISportOptimizer`对内置运动分析器进行微调优化。相比小程序,APP框架(如uni-app)因技术差异,无法直接修改运动分析器参数,因此提供了统一的优化机制。开发者可通过`ISportOptimizer`获取和更新检测规则、动作样本等,灵活适应不同场景需求,如全民运动赛事的宽松模式或学生体测的严格模式。文中还提供了示例代码,展示如何对具体运动项目(如仰卧起坐)进行优化。需要注意的是,微调优化适用于标准动作的小范围调整,若动作变化过大(如花式跳绳),可期待后续自定义扩展功能。
|
1月前
|
人工智能 JSON 算法
向量嵌入的天花板与AI检索的模式更迭
本文提出突破传统“单向量嵌入+ANN”检索范式,构建多结构协同的下一代AI检索框架。通过多通道嵌入、组合键兜底、知识图推理、程序化计划与生成-校验闭环,实现高可信、可解释、可验证的智能检索,应对复杂任务中的信息漏检与推理难题,推动RAG迈向结构化、可编程的认知系统。
105 12
|
5月前
|
人工智能 自然语言处理 前端开发
Trae插件Builder模式深度测评:从编程助手到AI工程师的进化
Trae插件最新推出的Builder模式标志着AI辅助编程工具从简单的代码补全向“AI工程师”角色的转变。该模式允许开发者通过自然语言描述项目需求,自动生成完整的项目结构、代码文件和开发流程,支持VSCode、JetBrains IDE及在线Web版本。Builder模式的核心功能包括自然语言项目初始化、智能项目架构设计和多文件协调代码生成,显著提升了开发效率,降低了技术门槛。然而,它在处理复杂业务逻辑和高度定制化需求方面仍有局限。未来,Builder模式将集成云部署、测试套件生成和DevOps流水线等功能
1216 2
|
6天前
|
人工智能 小程序 搜索推荐
【一步步开发AI运动APP】十二、自定义扩展新运动项目2
本文介绍如何基于uni-app运动识别插件实现“双手并举”自定义扩展运动,涵盖动作拆解、姿态检测规则构建及运动分析器代码实现,助力开发者打造个性化AI运动APP。
|
27天前
|
人工智能 算法 数据挖掘
AI Agent工作流实用手册:5种常见模式的实现与应用,助力生产环境稳定性
本文介绍了五种AI Agent结构化工作流模式,帮助解决传统提示词方式在生产环境中输出不稳定、质量不可控的问题。通过串行链式处理、智能路由、并行处理、编排器-工作器架构和评估器-优化器循环,可提升任务执行效率、资源利用和输出质量,适用于复杂、高要求的AI应用。
255 0
AI Agent工作流实用手册:5种常见模式的实现与应用,助力生产环境稳定性
|
1月前
|
人工智能 安全 数据库
构建可扩展的 AI 应用:LangChain 与 MCP 服务的集成模式
本文以LangChain和文件系统服务器为例,详细介绍了MCP的配置、工具创建及调用流程,展现了其“即插即用”的模块化优势,为构建复杂AI应用提供了强大支持。

热门文章

最新文章