目录
- 1. 作者介绍
- 2. 调用腾讯API实现人体关键点分析
- 2.1 API的简介
- 2.2 腾讯API使用工具
- 2.4 MPII数据集介绍
- 3. 实验流程与结果
- 3.1调用百度API流程
- 3.2完整代码
- 3.3测试结果
1. 作者介绍
张思怡,女,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:981664791@qq.com
王泽宇,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:2717124491@qq.com
2. 调用腾讯API实现人体关键点分析
2.1 API的简介
1.API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
2.说得更加通俗易懂一些,别人写好的代码,或者编译好的程序,提供给客户使用,就叫做API。使用了别人代码(或者程序)中的某个函数、类、对象,就叫做使用了某个API。
常见第三方API:
The Twitter API:允许在网站上展示最近的推文等。
The Google Maps API :允许在网页上对地图进行很多操作(这很有趣,它也是Google地图的驱动器)。现在它是一整套完整的,能够胜任广泛任务的API。其能力已经被Google Maps API Picker见证。
The Facebook suite of API :允许将很多Facebook生态系统中的功能应用到app,使之受益,比如说它提供了通过Facebook账户登录、接受应用内支付、推送有针对性的广告活动等功能。
The YouTube API:允许将Youtube上的视频嵌入到网站中去,同时提供搜索Youtube,创建播放列表等众多功能。
腾讯API:通过云 API,只需少量代码即可快速操作云产品。快速轻松调用云 API 来管理腾讯云资源,云 API 提供了 API Explorer、腾讯云命令行工具 TCCLI、SDK、云 API 平台及 API Inspector 工具。
华为API、百度API等。
2.2 腾讯API使用工具
2.4 MPII数据集介绍
MPII(MPII Human Pose Dataset)
单人/多人人体关键点检测数据集,MPII人体姿势数据集是人体姿势预估的一个 benchmark,数据集包括了超过 40k 人的 25000 张带标注图片,这些图片是从 YouTube video 中抽取出来的。在测试集中还收录了身体部位遮挡、3D 躯干、头部方向的标注。16个关键点坐标及其是否可见的信息,样本数25K,是单人人体关键点检测的主要数据集。标注数据的格式:使用mat的struct格式,对于人体关键点检测有用的数据如下:行人框:使用center和scale标注,人体尺度关于200像素高度,也就是除过了200。
MPII 人体姿势数据集官网:MPII Human Pose Database
3. 实验流程与结果
3.1调用百度API流程
1.进入腾讯云进行注册登录。
2、进入人体分析界面,选择人体关键点分析。
3、进入关键点分析界面,选择点击调试。
4、获取源码和密钥。
3.2完整代码
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.bda.v20200324 import bda_client, models
import base64
img_dir = "/data/Users/zhangsy/myProject/datasets/API-Tencent/2.jpg"
with open(img_dir, 'rb') as f:
base64_data = base64.b64encode(f.read())
base64_code = base64_data.decode()
try:
# 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
# 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
# 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
cred = credential.Credential("AKID0udDbkkV3MbdR1MglcFgAUeZMyMWSCnB", "zoSs43nLflfLn5EBvRhiV9o4EIDwVrzt")
# 实例化一个http选项,可选的,没有特殊需求可以跳过
httpProfile = HttpProfile()
httpProfile.endpoint = "bda.tencentcloudapi.com"
# 实例化一个client选项,可选的,没有特殊需求可以跳过
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
# 实例化要请求产品的client对象,clientProfile是可选的
client = bda_client.BdaClient(cred, "ap-beijing", clientProfile)
# 实例化一个请求对象,每个接口都会对应一个request对象
req = models.DetectBodyJointsRequest()
# params = {
# "Image": "1"
# }
req.Image = base64_code
# req.from_json_string(json.dumps(params))
# 返回的resp是一个DetectBodyJointsResponse的实例,与请求对象对应
resp = client.DetectBodyJoints(req)
# 输出json格式的字符串回包
print(resp.to_json_string())
except TencentCloudSDKException as err:
print(err)
3.3测试结果
3.3.1测试结果一
3.3.2测试结果二