使用百度API进行关键点识别
在使用百度的AI开放平台时,不熟悉网页请求这类知识,遇到使用不畅的问题,借鉴了网上两个人的经验,最后实现了更直白的代码。
主程序:
'''
# 人体关键点识别
'''
import base64
import urllib
import urllib.request,sys,base64
import urllib.parse
import json
import joint
import cv2request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_analysis"
#使用不同的功能时在百度的相应说明文档处替换此处f = open('/home/zhengr/Documents/data/1.jpg', 'rb')
image = base64.b64encode(f.read())
image64 = str(image,'utf-8')
image_type = "BASE64"params = {'image': image64,'image_type':"BASE64"}params = urllib.parse.urlencode(params).encode("utf-8")access_token = '[24.fdd8df19e52da8ff449e1484aa582f42.2592000.1556250057.282335-15823849]'
request_url = request_url + "?access_token=" + access_token
#access token是每个人获得的,有效期30天?貌似request = urllib.request.urlopen(url=request_url, data=params) # 发送请求content = request.read() # 将返回结果读取出来
print(content) # 显示返回结果
result = str(content,'utf-8')
res = json.loads(result)
print(res['person_info'][0]['body_parts'])
ress = res['person_info'][0]['body_parts']
jo = (ress)
jo.xunhun('/home/zhengr/Documents/data/1.jpg')
直接用python执行该程序就可以获得关键点识别结果,access token获得需要的代码:
#!/bin/bash curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=QMLVBU3QbNA25XxawltynC1R&client_secret=GuwC9U5WTIbvWgo7ryolIB6Yy1e5H5Nx'
其中的client_id和client_secret分别是注册百度平台时获得的API Key和Secret Key。执行以上文件,得到"access_token":"24.fdd8df19e52da8ff449e1484aa582f42.2592000.1556250057.282335-15823849"格式的即为自己的access token。以上代码中的joint.Joint()是网上的,其代码如下:
import cv2
import os
class Joint(object):__circle_list = []def __init__(self,dic): self.dic = dicdef draw_line(self,img):#nose ---> neckcv2.line(img, (int(self.dic['nose']['x']),int(self.dic['nose']['y'])),(int(self.dic['neck']['x']),int(self.dic['neck']['y'])), (0,255,0), 2)#neck --> left_shouldercv2.line(img, (int(self.dic['neck']['x']),int(self.dic['neck']['y'])),(int(self.dic['left_shoulder']['x']),int(self.dic['left_shoulder']['y'])), (0,255,0), 2) #neck --> right_shouldercv2.line(img, (int(self.dic['neck']['x']),int(self.dic['neck']['y'])),(int(self.dic['right_shoulder']['x']),int(self.dic['right_shoulder']['y'])), (0,255,0), 2) #left_shoulder --> left_elbowcv2.line(img, (int(self.dic['left_shoulder']['x']),int(self.dic['left_shoulder']['y'])),(int(self.dic['left_elbow']['x']),int(self.dic['left_elbow']['y'])), (0,255,0), 2) #left_elbow --> left_wristcv2.line(img, (int(self.dic['left_elbow']['x']),int(self.dic['left_elbow']['y'])),(int(self.dic['left_wrist']['x']),int(self.dic['left_wrist']['y'])), (0,255,0), 2) #right_shoulder --> right_elbowcv2.line(img, (int(self.dic['right_shoulder']['x']),int(self.dic['right_shoulder']['y'])),(int(self.dic['right_elbow']['x']),int(self.dic['right_elbow']['y'])), (0,255,0), 2) #right_elbow --> right_wristcv2.line(img, (int(self.dic['right_elbow']['x']),int(self.dic['right_elbow']['y'])),(int(self.dic['right_wrist']['x']),int(self.dic['right_wrist']['y'])), (0,255,0), 2) #neck --> left_hipcv2.line(img, (int(self.dic['neck']['x']),int(self.dic['neck']['y'])),(int(self.dic['left_hip']['x']),int(self.dic['left_hip']['y'])), (0,255,0), 2) #neck --> right_hipcv2.line(img, (int(self.dic['neck']['x']),int(self.dic['neck']['y'])),(int(self.dic['right_hip']['x']),int(self.dic['right_hip']['y'])), (0,255,0), 2) #left_hip --> left_kneecv2.line(img, (int(self.dic['left_hip']['x']),int(self.dic['left_hip']['y'])),(int(self.dic['left_knee']['x']),int(self.dic['left_knee']['y'])), (0,255,0), 2) #right_hip --> right_kneecv2.line(img, (int(self.dic['right_hip']['x']),int(self.dic['right_hip']['y'])),(int(self.dic['right_knee']['x']),int(self.dic['right_knee']['y'])), (0,255,0), 2) #left_knee --> left_anklecv2.line(img, (int(self.dic['left_knee']['x']),int(self.dic['left_knee']['y'])),(int(self.dic['left_ankle']['x']),int(self.dic['left_ankle']['y'])), (0,255,0), 2) #right_knee --> right_anklecv2.line(img, (int(self.dic['right_knee']['x']),int(self.dic['right_knee']['y'])),(int(self.dic['right_ankle']['x']),int(self.dic['right_ankle']['y'])), (0,255,0), 2)def xunhun(self,img):im1 = cv2.imread(img,cv2.IMREAD_COLOR)#im2 = cv2.resize(im1, (1040,768), interpolation=cv2.INTER_CUBIC)for i in self.dic:cv2.circle(im1,(int(self.dic[i]['x']),int(self.dic[i]['y'])),5,(0,255,0),-1)self.draw_line(im1)cv2.imshow('image',im1)cv2.waitKey(0)
使用这个代码,会有不准的时候,试了几张图片都会出现,有部分关键点的坐标是(0,0),这种在返回值里有不正确、正确的关键点问题,应该不是我能解决的,所以就没有再追究了。
如有不对的地方,欢迎批评指正,如有侵权,请联系我删除。
转载于:https://www.cnblogs.com/xiaoheizi-12345/p/10658936.html
使用百度API进行关键点识别相关推荐
- 树莓派+百度api实现人脸识别
title: 树莓派+百度api实现人脸识别 tags: 树莓派 date: 2018-5-31 20:06:00 --- 树莓派对接百度api 我以前玩安卓的时候一直用的讯飞的平台和api,对于百度 ...
- 对接百度api之银行卡识别
对接百度api之银行卡识别 1. 成为开发者 2. 创建应用 3. 获取密钥 4. 配置图像识别sdk 5. 调用银行卡识别接口 详情步骤参考链接 1. 成为开发者 三步完成账号的基本注册与认证: S ...
- 百度api做文字识别
利用百度api进行文字识别 文章目录 利用百度api进行文字识别 前言 一.百度文字识别? 二.使用方法 1.参考官方文档自己写 2.我自己的代码记录 三.使用情况 当然也有一些问题: 四.总结 注意 ...
- 微信小程序编程(1)——使用百度API编写文字识别小程序
编写思路 要使用百度等第三方API,我们得使用微信小程序提供的wx.request来向第三方平台发起请求,我们看到wx.request的参数属性里面url是必填项,接着我们打开和百度AI平台里面的通用 ...
- Python调用百度API进行身份证识别
目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...
- python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜
https://ai.baidu.com/docs#/Face-Detect/top 这个是百度人脸识别api 参考博客:https://blog.csdn.net/qq_38412868/artic ...
- opencv+python机读卡识别(四)百度API进行数字识别
2019独角兽企业重金招聘Python工程师标准>>> 第一部分预处理:https://my.oschina.net/u/3268732/blog/1236298 第二部分图像切割: ...
- python实战篇(五)---百度api实现车型识别
十二年来,有笑泪,有阴晴,相伴一场,人来人往,只是日常.--蔡康永 前言 api全称为应用程序接口,说白了就是别人写好了一个可实现功能的函数接口,我们可以直接调用来实现功能,今天,我们一起来学习,用百 ...
- Python实例之调用百度API实现车牌识别
目录 1.作者介绍 2.车牌识别API介绍 3.实现过程 3.1 调用API 3.2 代码 参考 1.作者介绍 王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究 ...
最新文章
- SpringBoot项目集成Mybatis Plus(一)多数据源配置
- android 实现论坛界面,android界面开发之主流UI布局范例
- how to clear screen in python shell
- 什么叫侧面指纹识别_哪种指纹识别方式好?侧边指纹识别可能会成为主流
- 如何准备面试中算法问题
- matlab中emd未定义,EMD的Matlab程序
- Win10系统利用注册表完美设置桌面图标的技巧
- matlab 矩阵分行标准化,matlab如何将矩阵标准化 命令是什么?
- 触摸屏与TSC2005触摸屏控制器
- mysql消除冗余_mysql剔除冗余数据
- python中add方法_python中add函数怎么用
- [玩游戏]-罪案现场全集打包下载
- 计算机运用基础2020四川传媒学院考题,2020年计算机基础考试题EY[含答案](15页)-原创力文档...
- 国产替代风潮下,电子元器件B2B商城系统如何助力企业突围市场竞争
- 中国移动号码手机开机以及注册gprs流程(转载)
- 【salesforce Admin必备】-想到啥写点啥
- 算法之美——求两直线交点(三维叉积)——求四边形面积(二维叉积)
- 船桨数学模型matlab,船用螺旋桨负载特性数字仿真
- 金融时间序列分析: 10. ARMA模型实例(R,Python)
- Vivado识别Flash型号失败
热门文章
- mysql user表修复_Mysql user表root用户误删除后恢复
- 二元偏导数存在的条件_多元函数 可导、可微、连续、一阶偏导数连续 之间关系的总结...
- python计算单词长度_Python - 按长度打印单词
- mysql的数据类型可分为哪两种_mysql数据类型分为哪几种
- 使用SuperSocket打造逾10万长连接的Socket服务
- 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day5)
- 【深入JavaScript】3.JavaScript继承的实现总结
- 查看ubuntu版本
- c#实例-子线程查找另一线程模态对话框句柄(invoke测试)
- c#多线程同步之EventWaitHandle使用