快速上手百度大脑人体关键点识别
作者:wangwei8638
人体关键点识别能够检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶、五官、颈部、四肢主要关节部位,支持多人检测、大动作等复杂场景。本文以瑜伽动作为例,根据人体关键点信息,分析人体姿态、动作是否标准,辅助人体塑形。
一.平台接入
此步骤比较简单,不多阐述。可参照之前文档:
https://ai.baidu.com/forum/topic/show/943162
二.分析接口文档
1.打开API文档页面,分析接口要求
https://ai.baidu.com/docs#/Body-API/b717c300
(1)接口描述
对于输入的一张图片(可正常解码,且长宽比适宜),检测图片中的所有人体,输出每个人体的21个主要关键点,包含头顶、五官、脖颈、四肢等部位,同时输出人体的坐标信息和数量。
支持多人检测、人体位置重叠、遮挡、背面、侧面、中低空俯拍、大动作等复杂场景。
21个关键点的位置:头顶、左耳、右耳、左眼、右眼、鼻子、左嘴角、右嘴角、脖子、左肩、右肩、左手肘、右手肘、左手腕、右手腕、左髋部、右髋部、左膝、右膝、左脚踝、右脚踝。
(2)请求说明
需要用到的信息有:
请求URL:https://aip.baidubce.com/rest/2.0/image-classify/v1/body_analysis
Header格式:Content-Type:application/x-www-form-urlencoded
Body中放置请求参数,参数详情如下:
(3)返回参数
2.获取access_token
# encoding:utf-8import base64import urllibimport urllib2request_url = " https://aip.baidubce.com/rest/2.0/image-classify/v1/body_analysis "# 二进制方式打开视频文件f = open('[本地文件]', 'rb')img = base64.b64encode(f.read()) params = {"data": data }params = urllib.urlencode(params)access_token = '[调用鉴权接口获取的token]'request_url = request_url + "?access_token=" + access_tokenrequest = urllib2.Request(url=request_url, data=params)request.add_header('Content-Type', 'application/x-www-form-urlencoded')response = urllib2.urlopen(request)content = response.read()if content:print content
三.识别结果
单人正面
识别结果:正确多人正面
识别结果:正确单人侧面
返回结果:
{ “person_num”: 2, “person_info”: [ { “body_parts”: { “left_hip”: { “y”: 595.5, “x”: 386.21875, “score”: 0.66870158910751 }, “top_head”: { “y”: 340.21875, “x”: 325.4375, “score”: 0.68663144111633 },……}
多人侧面
识别结果:正确单人背面
返回结果:
{ “person_num”: 2, “person_info”: [ { “body_parts”: { “left_hip”: { “y”: 513.1875, “x”: 510.6875, “score”: 0.75093376636505 }, “top_head”: { “y”: 318.9375, “x”: 510.6875, “score”: 0.78111505508423 },……}
6.多人复杂情况
返回结果:
{ “person_num”: 5, “person_info”: [ { “body_parts”: { “left_hip”: { “y”: 715.875, “x”: 212.6875, “score”: 0.51720798015594 }, “top_head”: { “y”: 556.125, “x”: 285.90625, “score”: 0.73297417163849 },……}
返回结果:
{ “person_num”: 6, “person_info”: [ { “body_parts”: { “left_hip”: { “y”: 254.15625, “x”: 259.8125, “score”: 0.61026680469513 }, “top_head”: { “y”: 92.0625, “x”: 321.5625, “score”: 0.80025953054428 },……}
结论:
识别结果方面:分别从前方、侧方、后方几个角度拍摄的照片进行测试,人体关键点识别标注结果比较准确。存在问题是侧方、后方拍摄角度和多人情况下,识别返回人数有错误。
四.源码共享
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import urllib
import urllib.parse
import urllib.request
import base64
import json
import time
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id = '*******************'
client_secret = '*****************************'#获取token
def get_token():host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secretrequest = urllib.request.Request(host)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib.request.urlopen(request)token_content = response.read()if token_content:token_info = json.loads(token_content.decode("utf-8"))token_key = token_info['access_token']return token_key# 读取图片
def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()#获取人体关键点信息
def get_license_plate(path):request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_analysis"f = get_file_content(path)access_token=get_token()img = base64.b64encode(f)params = {"custom_lib": False, "image": img}params = urllib.parse.urlencode(params).encode('utf-8')request_url = request_url + "?access_token=" + access_tokentic = time.clock()request = urllib.request.Request(url=request_url, data=params)request.add_header('Content-Type', 'application/x-www-form-urlencoded')response = urllib.request.urlopen(request)content = response.read()toc = time.clock()print('处理时长: '+'%.2f' %(toc - tic) +' s')if content:license_plates = json.loads(content.decode("utf-8"))strover = '识别结果:'print (license_plates)return contentelse:return ''image_path='F:\paddle\man\s1.jpg'
get_license_plate(image_path)
快速上手百度大脑人体关键点识别相关推荐
- 详细功能描述及代码带您快速接入百度大脑通用文字识别
作者:才能我浪费99 1.功能描述: 基于深度学习及大规模图像训练,准确识别图片中的物体.场景信息.可以应用于: 相关内容及广告推荐:对用户浏览网页中图片进行分析,识别图片内容给出相关内容推荐或广告展 ...
- 快速接入百度大脑出租车票识别
作者:才能我浪费99 1.功能描述: 支持识别全国各大城市出租车票的6个关键字段,包括发票号码.代码.车号.日期.时间.金额.使用出租车票识别技术,实现对发票号码.日期.时间.金额等信息的自动识别和录 ...
- 快速上手百度大脑驾驶行为分析
作者:wangwei8638 针对车载场景,识别驾驶员使用手机.抽烟.不系安全带.双手离开方向盘等动作姿态,分析预警危险驾驶行为,提升行车安全性. 一.平台接入 此步骤比较简单,不多阐述.可参照之前文 ...
- 【百度大脑新品体验】人体关键点识别
[百度大脑新品体验]人体关键点识别 作者:才能我浪费99 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等 ...
- 百度AI攻略:人体关键点识别
第四期[百度大脑新品体验]人体关键点识别 1.功能描述: 检测图像中的人体并返回人体矩形框位置,精准定位21个核心关键点,包含头顶.五官.颈部.四肢主要关节部位,支持多人检测.大动作等复杂场景 2.平 ...
- 百度大脑人体分析服务3月上新盘点
近期百度大脑人体分析服务3月上新盘点,多个产品上线.升级,欢迎新老开发者体验.选购: 1. 人体检测与属性识别API及私有化服务升级 新增face_mask字段,增加口罩检测功能,正面.侧面角度抓拍均 ...
- 使用百度API进行关键点识别
在使用百度的AI开放平台时,不熟悉网页请求这类知识,遇到使用不畅的问题,借鉴了网上两个人的经验,最后实现了更直白的代码. 主程序: ''' # 人体关键点识别 ''' import base64 im ...
- 国航APP接入百度大脑OCR身份证识别技术,让机票购买更便捷!
价值成果 中国国航APP通过接入百度大脑OCR身份证识别技术,实现了旅客线上自助修正错购机票信息的功能.购票信息错误的旅客只需在中国国航APP上传身份证照片,即可进行购票身份认证,并立即修正错误信息. ...
- MMPose姿态估计+人体关键点识别效果演示
MMPose--开源姿态估计算法库(附人体关键点识别效果演示) 一.简介 1.1 背景 首先姿态估计属于计算机视觉领域的一个基础研究方向.MMPose是基于Pytorch的姿态估计开源算法库,功能全, ...
最新文章
- 智能车竞赛技术报告 | 智能车视觉 - 宜宾学院- 平头哥1组
- 052_CSS3 appearance属性
- PIC单片机 电容式触摸检测
- 学习笔记Hadoop(二)—— Hadoop介绍(2)——Hadoop 核心组件
- python居中对齐代码end_Python tkinter.END属性代码示例
- javascript中的继承方式
- 基于发起源判断CSRF***的方法
- scrapy生成json中文为ASCII码解决
- 用栈实现计算器c语言报告,利用栈实现c语言计算器
- android手机 ipad 同屏,iphone和ipad
- nvidia驱动和CUDA的安装
- 标准差和标准误的区别
- 阳历和农历互相转换的js代码
- 地震应急综合解决方案
- Oracle数据库CPU使用率过高处理记录
- 机器学习算法系列(七)-对数几率回归算法(一)(Logistic Regression Algorithm)
- ForgivingExceptionHandler: An unexpected connection driver error occured (Exception message: Socket
- java: java mina ——基于TCP/IP、UDP/IP协议栈的通信框架
- PHP 实现word在线预览
- (附源码)计算机毕业设计SSM旅游足迹分享系统