【云智AI运动识别小程序插件】,可以为您的小程序,赋于人体检测识别、运动检测识别、姿态识别检测AI能力。本地原生识别引擎,内置10余个运动,无需依赖任何后台或第三方服务,有着识别速度快、体验佳、扩展性强、集成快、成本低的特点,本篇实现需要使用此插件,请先行在微信服务市场官网了解详情。

一、引言

通过本系列博文的前16篇文章,您已了解通过插件开发一个完整的运动、健身、学生体测、云上运动会等小程序的完整流程了,但是系列之前的文章都是基于相机实时取像的,有的开发者就会问,既然可以实现基于摄像头实时识别,那么能否实现用户上传视频识别呢?今天我们就来看看如何实现基于用户上传视频的运动、动作、姿态检测识别。

二、要解决的关键问题



首先我们来看一下基于相机的运动识别流程,如上图所示,将图像来源改为用户上传视频,只要将第一个环节的相机取帧,改为从用户上传视频中取帧即可,而且其它环节由于只依赖图像数据,不依赖具体来源,所以后续环节都是通用的。由于用户上传视频文件,是一个常见操作,故不在这里赘述,本章重点讨论如何从视频抽帧问题。要对视频抽帧,先要对视频进行解码,再逐帧抽取图像。

三、相关API

微信小程序内置了视频码器VideoDecoder,我们使用此API即可实现抽帧功能,关于此API的更多细节,可以查看官方文档。

四、代码实现

const AiSports = requirePlugin("aiSport");//获取插件对象
const humanDetection = AiSports.humanDetection; //获取人体识别对象 function async decoding(){
//创建解码器
const decoder = wx.createVideoDecoder(); //启动解码
await decoder.start({
abortAudio: true, //识别不需要音频
source: tempFilePath, //通过wx.chooseMedia选择的视频tempPath
}); //循环抽帧,直到抽取完成
let frame = null;
do {
frame = decoder.getFrameData();
if(frame)
break; //对帧进行人体识别
let human = await humanDetection.detectionAsync(frame);
console.log(human);//此处可以将人体识别结果推入运动分析器 } while (!frame)
}

五、写在最后

到此就实现了基于录制视频的运动、人体、姿态识别的基本功能了,在实际产品应用中,可能还需实现帧图像预览、视频长度限制、跳帧抽取等功能,特别是视频长度大小限制,在实际应用中一定要实现,因为视频解码抽帧是非常消耗手机计算资源功能,上传过大过长的视频容易造成小程序卡顿、崩溃。

好了,本期为就为您介绍到这,下期继续为您基于相册图片上传的运动、人体、姿态识别...

【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?的更多相关文章

  1. 微信小程序踩坑日记3——上传照片至服务器

    0. 引言 主要解决将小程序端获取的图片保存在服务器上.亲测可用的服务端脚本. 1. 获取照片 通过wx.chooseImage()方法,获取到图片,使用wx.uploadFile()上传图片. wx ...

  2. 微信小程序环境下将文件上传到 OSS

    步骤 1: 配置 Bucket 跨域 客户端进行表单直传到 OSS 时,会从浏览器向 OSS 发送带有 Origin 的请求消息.OSS 对带有 Origin 头的请求消息会进行跨域规则(CORS)的 ...

  3. 微信小程序 springboot nginx 做图片存储 上传 浏览

    微信小程序前端-springboot后端-nginx图片存储 前言 本人小白一名,这是第一次学习微信小程序,特此做个记录. 首先准备nginx做图片存储 选择一个地址存放图片 #我的地址 [root@ ...

  4. 全栈开发工程师微信小程序-中(中)

    全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...

  5. 微信小程序_(校园视)开发上传视频业务

    微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...

  6. 开发一个微信小程序教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可. 2.注册成功后进入首页,在 小程序发布流程->小程序 ...

  7. 开发一个微信小程序项目教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...

  8. 微信小程序开发详解——小程序,大颠覆!

    微信小程序开发 联系 苏念 188.1414.7927  微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序  ...

  9. 如何快速地开发一个微信小程序

    如何快速地开发一个微信小程序呢?我觉得作为初学者,最好能有一个模板,然后改这个模板. 同样作为初学者,刚开始的时候我有下面的几个问题,后来通过问同学,我弄清楚了. 微信小程序可以连接MySQL或者Sq ...

  10. Java可视化日历(Date类、DATe Format类、Calendar类综合运用),开发可视化日历小程序

    Java时间日期类综合运用,开发可视化日历小程序 由键盘输入指定格式的日期,打印这个月的日历 1.代码 import java.text.DateFormat; import java.text.Pa ...

随机推荐

  1. 去除WinForm程序中的Devexpress弹窗

    去除WinForm程序中的Devexpress弹窗 /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static ...

  2. Linux 上的 AppImage、Snap、Flatpak 之间的区别和联系

    AppImage.Snap 和 Flatpak 是三种用于在 Linux 系统上分发和安装软件的包管理格式.它们都有助于解决软件依赖问题,使得应用程序可以在不同的 Linux 发行版上更容易地安装和运 ...

  3. 四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat

    四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat @ 目录 四,分析Spring Bo ...

  4. 怎样防止浏览器自动将http网址转变为https

    Chrome 浏览器 地址栏中输入 chrome://net-internals/#hsts 在 Delete domain security policies 中输入项目的域名,并 Delete 删 ...

  5. Redis实战11-实现优惠券秒杀下单

    本篇,咱们来实现优惠券秒杀下单功能.通过本篇学习,我们将会有如下收获: 1:优惠券领券业务逻辑: 2:分析在高并发情况下,出现超卖问题产生的原因: 3:解决超卖问题两种方案:版本号法及CAS法 4:乐 ...

  6. c++学习笔记(一):内存分区模型

    目录 内存分区模型 程序运行前 程序运行后 new操作符 内存分区模型 c++在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理(编写的所有代码都会存放到该处) ...

  7. 探索 Nuxt Devtools:功能全面指南

    title: 探索 Nuxt Devtools:功能全面指南 date: 2024/9/3 updated: 2024/9/3 author: cmdragon excerpt: 摘要:本文介绍了Nu ...

  8. 【YashanDB知识库】filter or改写问题

    问题现象 当filter中出现or的时候,会导致filter无法走索引或者走hash join,就需要进行改写,例如: create table test_tab1(col1 int, col2 in ...

  9. 【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到

    [问题分类]功能使用 [关键字]慢日志.绑定参数 [问题描述]应用下发的绑定参数的SQL,慢日志功能抓取不到查询耗时超过阈值的执行SQL [问题原因分析]慢日志的功能没有考虑绑定参数的情况 [解决/规 ...

  10. Linux (Debian) 安装MySQL 后如何获取登录密码

    树莓派安装MySQL后获取登录密码 树莓派基于Debian系统. 成功安装MySQL后 su root vim /etc/mysql/debian.cnf 其中 user 和 password 就是你 ...