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

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

相关文章
|
2天前
|
人工智能 小程序
【一步步开发AI运动小程序】十五、AI运动识别中,如何判断人体站位的远近?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,无需后台支持,具有快速、体验好、易集成等特点。本文介绍如何利用插件判断人体与摄像头的远近,确保人体图像在帧内的比例适中,以优化识别效果。通过`whole`检测规则,分别实现人体过近和过远的判断,并给出相应示例代码。
|
7天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十三、自定义一个运动分析器,实现计时计数02
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,详细解析了俯卧撑动作的检测规则构建与执行流程,涵盖卧撑和撑卧两个姿态的识别规则,以及如何通过继承`sports.SportBase`类实现运动分析器,适用于小程序开发者。
|
2天前
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】十四、主包超出2M大小限制,如何将插件分包发布?
本文介绍了如何从零开始开发一个AI运动小程序,重点讲解了通过分包技术解决程序包超过2M限制的问题。详细步骤包括在uni-app中创建分包、配置`manifest.json`和`pages.json`文件,并提供了分包前后代码大小对比,帮助开发者高效实现AI运动功能。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
转载:【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,探讨了AI在计算机视觉、自然语言处理、语音识别等领域的应用,以及在金融、医疗、教育、互联网等行业中的实践案例。随着技术进步,AI模型正从单一走向多样化,从小规模到大规模分布式训练,企业级AI系统设计面临更多挑战,同时也带来了新的研究与工程实践机遇。文中强调了AI基础设施的重要性,并鼓励读者深入了解AI系统的设计原则与研究方法,共同推动AI技术的发展。
转载:【AI系统】AI的领域、场景与行业应用
|
1天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
1天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
12月05日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·电子科技大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
|
6天前
|
机器学习/深度学习 人工智能 JSON
【实战干货】AI大模型工程应用于车联网场景的实战总结
本文介绍了图像生成技术在AIGC领域的发展历程、关键技术和当前趋势,以及这些技术如何应用于新能源汽车行业的车联网服务中。
|
2天前
|
人工智能 Kubernetes 安全
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
31 13
|
2天前
|
机器学习/深度学习 人工智能 边缘计算
24/7全时守护:AI视频监控技术的深度实现与应用分享
本文深入解析了AI视频监控系统在车间安全领域的技术实现与应用,涵盖多源数据接入、边缘计算、深度学习驱动的智能分析及高效预警机制,通过具体案例展示了系统的实时性、高精度和易部署特性,为工业安全管理提供了新路径。
|
8天前
|
机器学习/深度学习 人工智能 TensorFlow
探索AI技术在医疗健康领域的应用
随着人工智能技术的不断发展,其在医疗健康领域的应用也日益广泛。本文将介绍AI技术在医疗健康领域的应用,包括医学影像分析、智能诊断和治疗建议、药物研发等方面。通过代码示例,我们将展示如何使用Python和TensorFlow构建一个简单的神经网络模型来进行医学影像分析。
34 13