【一步步开发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()自动旋转直立图,进行横、竖屏适配。

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

相关文章
预约按摩小程序开发,为什么很多上门按摩平台根本招聘不到优秀技师?
上门按摩平台面临招不到优秀技师的问题,主要原因是平台众多,技师选择多样。为解决此问题,平台可引入技师等级制度,根据订单数量和好评率划分高、低等级技师。高等级技师可享受70%-90%的高提成及首页推荐,这不仅能激励技师的积极性,还能帮助平台筛选出优质技师,提升服务质量和口碑,形成良性循环。
|
22天前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
12天前
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
39 0
|
8天前
|
机器学习/深度学习 人工智能 算法
AI技术在医疗诊断中的应用及前景展望
本文旨在探讨人工智能(AI)技术在医疗诊断领域的应用现状、挑战与未来发展趋势。通过分析AI技术如何助力提高诊断准确率、缩短诊断时间以及降低医疗成本,揭示了其在现代医疗体系中的重要价值。同时,文章也指出了当前AI医疗面临的数据隐私、算法透明度等挑战,并对未来的发展方向进行了展望。
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
2024年,AI大模型在软件开发领域的应用正重塑传统流程,从自动化编码、智能协作到代码审查和测试,显著提升了开发效率和代码质量。然而,技术挑战、伦理安全及模型可解释性等问题仍需解决。未来,AI将继续推动软件开发向更高效、智能化方向发展。
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
AI在医疗领域的应用及其挑战
【10月更文挑战第34天】本文将探讨人工智能(AI)在医疗领域的应用及其面临的挑战。我们将从AI技术的基本概念入手,然后详细介绍其在医疗领域的各种应用,如疾病诊断、药物研发、患者护理等。最后,我们将讨论AI在医疗领域面临的主要挑战,包括数据隐私、算法偏见、法规合规等问题。
40 1
|
12天前
|
机器学习/深度学习 人工智能 算法
AI在医疗诊断中的应用
【10月更文挑战第42天】本文将探讨人工智能(AI)在医疗诊断中的应用,包括其优势、挑战和未来发展方向。我们将通过实例来说明AI如何改变医疗行业,提高诊断的准确性和效率。
|
13天前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
57 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
8天前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
34 4
|
18天前
|
机器学习/深度学习 人工智能 算法
AI在医疗领域的应用与挑战
本文探讨了人工智能(AI)在医疗领域的应用,包括其在疾病诊断、治疗方案制定、患者管理等方面的优势和潜力。同时,也分析了AI在医疗领域面临的挑战,如数据隐私、伦理问题以及技术局限性等。通过对这些内容的深入分析,旨在为读者提供一个全面了解AI在医疗领域现状和未来发展的视角。
55 10