【一步步开发AI运动小程序】十八、如何识别用户上传图片中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】,可以为您的小程序,赋于人体检测识别、运动检测识别、姿态识别检测AI能力。本地原生识别引擎,内置10余个运动,无需依赖任何后台或第三方服务,有着识别速度快、体验佳、扩展性强、集成快、成本低的特点,本篇实现需要使用此插件,请先行在微信服务市场或官网了解详情。
一、引言
上一篇文章,为您分享了如何对用户选择(上传)的视频,进行人体检测识别,并进行姿态分析、运动计数等实现。今天我们继续为您分享如何对用户上传(选择)图片,进行人体检测及姿态运动分析。同视频识别检测原理相似,只要拿到用户上传或选择的图片RGBA数据,即可进一步进行人体识别、姿态、运动分析等,如下图所示:

二、解决方案
微信小程序并没有像视频解码一样,提供直接读取图片像素数据的API,所以需要我们自行实现像素数据读取部分。根据我们的经验,有两种方案可以实现选定图片的像素数据读取。一是通过Canvas画布绘制获得,一种是先读取图像文件二进行流,再进行解析。
代码实现
由于自行解析图像像素数据方案,需要针对不同的图像格式进行解析,专业性强、工作量大,不建议采用,当然在实际实现中也可以考虑将图像传至后端使用专业库进行解析再回传,就是效率偏低、成本偏高。所以推荐采用canvas方案,简单、快速,代码如下:
let res = await wx.chooseMedia({
mediaType: 'image',
count: 1
});
let path = res.tempFiles[0].tempFilePath;
res = await wx.getImageInfo({
src: path,
});
//写入图片
const img = canvas.createImage();
img.src = path;
img.width = res.width;
img.height = res.height;
img.onload = async () => {
context.drawImage(img, 0, 0, res.width, res.height);
const buffer = context.getImageData(0, 0, res.width, res.height);
const frame = {
data: new Uint8Array(buffer.data),
width: buffer.width,
height: buffer.height
};
let human = await humanDetection.detectionAsync(frame);
console.log(human);
};
好了,视频和图片人体检测、姿态和运动分析就为您介绍到这,更多插件的使用欢迎评论交流。
【一步步开发AI运动小程序】十八、如何识别用户上传图片中的人体、运动、动作、姿态?的更多相关文章
- 开发一个微信小程序教程
一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可. 2.注册成功后进入首页,在 小程序发布流程->小程序 ...
- 开发一个微信小程序项目教程
一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...
- 微信小程序开发详解——小程序,大颠覆!
微信小程序开发 联系 苏念 188.1414.7927 微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序 ...
- 如何快速地开发一个微信小程序
如何快速地开发一个微信小程序呢?我觉得作为初学者,最好能有一个模板,然后改这个模板. 同样作为初学者,刚开始的时候我有下面的几个问题,后来通过问同学,我弄清楚了. 微信小程序可以连接MySQL或者Sq ...
- Java可视化日历(Date类、DATe Format类、Calendar类综合运用),开发可视化日历小程序
Java时间日期类综合运用,开发可视化日历小程序 由键盘输入指定格式的日期,打印这个月的日历 1.代码 import java.text.DateFormat; import java.text.Pa ...
- 全栈开发工程师微信小程序-中(下)
全栈开发工程师微信小程序-中(下) 微信小程序视图层 wxml用于描述页面的结构,wxss用于描述页面的样式,组件用于视图的基本组成单元. // 绑定数据 index.wxml <view> ...
- 全栈开发工程师微信小程序-中(中)
全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...
- 全栈开发工程师微信小程序-中
全栈开发工程师微信小程序-中 多媒体及其他的组件 navigator 页面链接 target 在哪个目标上发生跳转,默认当前小程序,可选值self/miniProgram url 当前小程序内的跳转链 ...
- 全栈开发工程师微信小程序-上(下)
全栈开发工程师微信小程序-上(下) icon 图标 success, success_no_circle, info, warn, waiting, cancel, download, search, ...
- 全栈开发工程师微信小程序-上(中)
全栈开发工程师微信小程序-上(中) width: 750rpx; 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位. 小程序 ...
随机推荐
- 【测试平台开发】——04Flask后端api开发实战(一)
一.测试平台开发模式 要开发一套平台有两种开发模式,一个[大而全],一个[小而简]. 说道[大而全]想到目前大型项目都使用的语言[JAVA],[小而简]想到的是[Python]语言. 重武器(大而全) ...
- Seata 1.3.0 Oracle 回滚测试验证 报错 ORA-02289: 序列不存在
使用Seata 1.3.0版本,测试A服务调用B服务,且A方法中,手动写了一个异常,测试是否正常回滚(Mysql已经测试过) 发现报错:ORA-02289: 序列不存在 一看就是undo_log这张表 ...
- windows 误删除\AppData\Local\文件夹后 异常的修复
背景:清除Temp文件夹时,路径复制错误,少复制了Temp,导致删除了文件夹 C:\Users\username\AppData\Local\ 异常现象: 估计删除Local文件夹后,出现的问题应该会 ...
- Android 国际化:新增越南语语系(Java)
前提: 1. 在res文件夹中,新增values-vi文件夹(越南语文件夹) 2. 在步骤1的文件夹中,新增strings.xml 背景: 1. targetSdkVersion 29 2. Jdk ...
- Lucas定理入门
前置结论 如果 \(p\) 为素数,有以下结论: \(a^p \equiv a \pmod p\) 即费马小定理 \[C_{p}^i \equiv \begin{cases} 1 & i=0 ...
- LLM 写标书
云孚科技 有提到标书写作 https://www.sohu.com/a/726319389_121119682 https://www.aihub.cn/tools/writing/yfwrite/ ...
- Vue3——axios 安装和封装
axios 安装和封装 安装 npm install axios 最后通过 axios 测试接口!!! axios 二次封装 在开发项目的时候避免不了与后端进行交互,因此我们需要使用 axios 插件 ...
- Java 动态编译工具 Janino 和 Liquor 差别
如果你只要 Java7 及以下的语法支持,建议 Janino.如果要你想更全的 Java8.Java11.Java17.Java21 等语法,可以选 Liquor. 1.它们相同的地方 提供的相似的能 ...
- Nacos 开启鉴权设置
Nacos 开启鉴权设置 # 开启鉴权 nacos.core.auth.enabled=true nacos.core.auth.system.type=nacos # 开启鉴权之后,你可以自定义用于 ...
- 全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
全网最适合入门的面向对象编程教程:56 Python 字符串与序列化-正则表达式和 re 模块应用 摘要: Python 的 re 模块提供了强大的正则表达式操作功能,用于在字符串中搜索.匹配.替换等 ...