【一步步开发AI运动小程序】五、帧图像人体识别

简介: 随着AI技术的发展,阿里体育等公司推出的AI运动APP,如“乐动力”和“天天跳绳”,使云上运动会、线上健身等概念广受欢迎。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。文章分为四部分:初始化人体识别功能、调用人体识别功能、人体识别结果处理以及识别结果旋转矫正。下篇将继续介绍人体骨骼图绘制。

随着人工智能技术的不断发展,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让云上运动会、线上运动会、健身打卡、AI体育指导等概念空前火热。那么,能否将这些在APP成功应用的场景搬上小程序,分享这些概念的红利呢?本系列文章就带您一步一步从零开始开发一个AI运动小程序,本系列文章将使用“云智AI运动识别小程序插件”,请先行在微信服务市场官网了解详情。

一、初始化人体识别功能

人体识别能力调用前需要初始化(可多次初始化),插件的具有双人体识别引擎,默认不指定引擎将自动选择最优引擎,也可指定引擎,识别引擎的差别请参考集成文档。

const that = this;
humanDetection.initialize({
   
    //ve: 2,
    callback(err) {
   
        uni.hideLoading();

        if (!err) {
   
            console.log('人体检测能力初始化成功。', humanDetection.getVe());
            return;
        }

        uni.showModal({
   
            content: `初始化失败,详细信息:${
     err.message}`,
            showCancel: false
        });
    }
});

二、调用人体识别功能

//接上篇抽帧
const context = wx.createCameraContext();
const listener = context.onCameraFrame((frame) => {
   
    //frame.data图像数组将用于后续的人体识别
    const image = {
   
        width: Number(frame.width),
        height: Number(frame.height),
        data: new Uint8Array(frame.data)
    };
    humanDetection.detectionAsync(image).then(human=>{
   
        console.log(human);
    });
});
listener.start();

三、人体识别结果

{
   
  "score": 0.7251838252824896,
  "width": 480,
  "height": 640,
  "timestamp": 1684325583506,
  "keypoints": [
    {
   
      "y": 103.56424502483996,
      "x": 256.0109768927012,
      "score": 0.4570312798023224,
      "name": "nose"
    },
    {
   
      "y": 90.71574411931093,
      "x": 270.50707531981544,
      "score": 0.58251953125,
      "name": "left_eye"
    },
    {
   
      "y": 90.09307140499885,
      "x": 244.60145098668588,
      "score": 0.552734375,
      "name": "right_eye"
    },
    {
   
      "y": 95.37442872749463,
      "x": 286.88540601464354,
      "score": 0.75244140625,
      "name": "left_ear"
    },
    {
   
      "y": 93.90985185987653,
      "x": 231.85045311881774,
      "score": 0.7392578125,
      "name": "right_ear"
    },
    {
   
      "y": 162.78484030178413,
      "x": 311.0556351088547,
      "score": 0.919921875,
      "name": "left_shoulder"
    },
    {
   
      "y": 161.2381417518693,
      "x": 203.38841526521654,
      "score": 0.77197265625,
      "name": "right_shoulder"
    },
    {
   
      "y": 240.78316880186404,
      "x": 310.24842737472574,
      "score": 0.84912109375,
      "name": "left_elbow"
    },
    {
   
      "y": 242.12329664294745,
      "x": 201.77353663841666,
      "score": 0.833984375,
      "name": "right_elbow"
    },
    {
   
      "y": 281.9979693520591,
      "x": 352.673287407275,
      "score": 0.59765625,
      "name": "left_wrist"
    },
    {
   
      "y": 286.2878520237733,
      "x": 173.8384814716242,
      "score": 0.63427734375,
      "name": "right_wrist"
    },
    {
   
      "y": 307.2371714929637,
      "x": 273.4654390815558,
      "score": 0.82177734375,
      "name": "left_hip"
    },
    {
   
      "y": 305.7596342955926,
      "x": 222.0470940485152,
      "score": 0.84912109375,
      "name": "right_hip"
    },
    {
   
      "y": 417.72422545441424,
      "x": 267.0201893540119,
      "score": 0.6103515625,
      "name": "left_knee"
    },
    {
   
      "y": 414.7774591985668,
      "x": 204.46947287192143,
      "score": 0.8701171875,
      "name": "right_knee"
    },
    {
   
      "y": 481.8868752974563,
      "x": 280.1792094531294,
      "score": 0.74072265625,
      "name": "left_ankle"
    },
    {
   
      "y": 467.38751675509405,
      "x": 247.29222232381437,
      "score": 0.7451171875,
      "name": "right_ankle"
    }
  ],
  "bodyRange": {
   
    "x": 173.8384814716242,
    "y": 90.09307140499885,
    "width": 178.8348059356508,
    "height": 391.79380389245745
  }
}

四、识别结果旋转矫正

获得人体识别结果后,可以调用rotate()进行整体旋转,也可以调用rotateToUpright()自动旋转直立图,进行横、竖屏适配。

下一篇将为您介绍人体骨骼图绘制...

相关文章
|
6天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
281 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
9天前
|
人工智能 负载均衡 API
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
大家好,我是Immerse,独立开发者、AGI实践者。分享编程、AI干货、开源项目与个人思考。关注公众号“沉浸式趣谈”,获取独家内容。Vercel新推出的AI Gateway,统一多模型API,支持自动切换、负载均衡与零加价调用,让AI开发更高效稳定。一行代码切换模型,告别接口烦恼!
106 1
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
|
7天前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
88 7
|
9天前
|
人工智能 前端开发 JavaScript
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
|
9天前
|
人工智能 Rust 并行计算
AI大模型开发语言排行
AI大模型开发涉及多种编程语言:Python为主流,用于算法研发;C++/CUDA优化性能;Go/Rust用于工程部署;Java适配企业系统;Julia等小众语言用于科研探索。
110 0
|
6月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
499 12
|
9月前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
314 0
|
11月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
213 0
在线课堂+工具组件小程序uniapp移动端源码
|
12月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
1847 3
|
12月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
319 0
微信小程序更新提醒uniapp

热门文章

最新文章