热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

「人体分析」基于小程序的人体关键点及手势识别

基于微信小程序的图像识别前言:肢体及手势语言可以助于思想感情的表达,不同的手势亦可调节身体某些器官的平衡。那么屏幕后的你是否因为曾经不理解ta的手势动作

基于微信小程序的图像识别


前言:肢体及手势语言可以助于思想感情的表达,不同的手势亦可调节身体某些器官的平衡。那么屏幕后的你是否因为曾经不理解ta的手势动作而错过了某段美妙的故事呢。



目录

    • 一、功能效果
    • 二、效果图
    • 三、具体流程及准备
    • 四、开始实现
    • 五、代码块


一、功能效果

(1)人体关键点识别
   检测图片中的所有人体,输出每个人体的21个主要关键点,包含头顶、五官、脖颈、四肢等部位,同时输出人体的坐标信息和数量。
(2)手势识别
   识别图片中的手势类型,返回手势名称、手势矩形框、概率分数,可识别24种常见手势,适用于手势特效、智能家居手势交互等场景。


二、效果图

开放平台人体分析API主要有:人体关键点、人流量统计、手势识别、人像分割等。通过正确的操作步骤可以领取到非常富裕的体验额度次数,对于毕业设计及项目展示体验等场景来说绰绰有余,有想法的小伙伴们快去试试吧!






三、具体流程及准备

开发功能前的一些准备:
1、准备百度以及微信公众平台账号。
2、准备微信Web开发者工具。




四、开始实现

(1)注册百度开放平台账号



(2)在控制台点击左侧菜单,选择产品服务,搜索人体分析并创建应用



(3)用应用里面的API Key和Secret Key拼接参数调用接口获取Access Token



(4)小程序实现图片上传以及将图片格式转换



(5)查阅文档解析接口并拼接参数,最后调用图像识别接口
手势识别接口返回参数解析如下图
   1、目前主要是支持24类手势列表:拳头、OK、祈祷、作揖、作别、单手比心、点赞、Diss、我爱你、掌心向上、双手比心(3种)、数字(9种)、Rock、竖中指。
   2、主要适用于3米以内的自拍、他人拍摄,1米内识别效果最佳。
   3、大家可以根据这些返回的数据定义一个数组进行转换显示为中文标题。



在这里插入图片描述

在前期开发准备的过程中,有很多容易踩到的坑,在这里简单分享一下
1、注册账号时找错平台。
2、在申请接口的时候直接添加应用没有先去领取免费的额度资源导致得删掉再来。
3、在小程序调用平台开放API时没有配置可信任域名导致一直访问不了。
4、调用接口拼接access_token时直接放到请求的参数上,正确情况是需要拼接在url上的。


五、代码块

WXML部分

<view class&#61;"containerBox"><view class&#61;"leftBtn" bindtap&#61;"loadImage">上传图片</view><view class&#61;"rightBtn" bindtap&#61;"identify">手势识别</view>
</view>
<image src&#61;"{{imgSrc}}" class&#61;"showImg"></image>
<view class&#61;"result" wx:if&#61;"{{isShowDetail}}"><view class&#61;"resultTitle">识别结果:</view><view class&#61;"productDetailTable"><view class&#61;"productTableTr"><view class&#61;"leftTr"><view class&#61;"little leftTrText">手势名称</view></view><view class&#61;"rightTr little">所属概率</view></view><view class&#61;"productTableTr" wx:for&#61;"{{resultList}}"><view class&#61;"leftTr"><view class&#61;"little leftTrText">{{item.classname}}</view></view><view class&#61;"rightTr little">{{item.probability}}</view></view></view>
</view>

WXSS部分

.containerBox{width:750rpx;display:flex;height:62rpx;margin-top:20rpx;
}
.leftBtn{width:181rpx;height:62rpx;color:#4FAFF2;border:1rpx solid #4FAFF2;border-radius:10rpx;text-align: center;line-height:62rpx;font-size:28rpx;margin-left: 158rpx;
}
.rightBtn{width:181rpx;height:62rpx;color:white;border:1rpx solid #4FAFF2;border-radius:10rpx;text-align: center;line-height:62rpx;font-size:28rpx;margin-left: 73rpx;background:#4FAFF2;
}
.showImg{width:600rpx;height:600rpx;margin-left:75rpx;margin-top:25rpx;border-radius:20rpx;
}
.result{margin-top:20rpx;
}
.resultTitle{margin-left:75rpx;
}
.productTableTr{height: 80rpx;line-height: 80rpx;border-bottom: 1rpx solid #F8F8F8;display:flex;
}
.leftTr{width: 283rpx;height: 80rpx;line-height: 80rpx;
}
.rightTr{width: 419rpx;height: 80rpx;line-height: 80rpx;color: #FF2525;font-size: 26rpx;
}
.leftTrText{color: #2B79F5;font-size: 28rpx;margin-left: 15rpx;width: 283rpx;
}
.productDetailTable{width: 702rpx;margin-left: 24rpx;border:1rpx solid #F8F8F8;border-radius: 6rpx;
}

JS部分

wx.request({ url: &#39;https://aip.baidubce.com/rest/2.0/image-classify/v1/gesture?access_token&#61;&#39; &#43; that.data.token,//动物method: &#39;POST&#39;,header: {&#39;content-type&#39;: &#39;application/x-www-form-urlencoded&#39;},data:{image:that.data.baseData,scenes:[&#39;animal&#39;,&#39;plant&#39;,&#39;ingredient&#39;],},success: function (identify) {that.setData({isShowDetail:true,resultList:identify.data.result});}})

推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有