人体关键点检测
一、接口描述
1. 功能描述
人体关键点检测API能够准确地估计出图片或视频中的人体14个主要关键点,包括:左右手肘、左右手腕、左右肩膀、头、脖子、左右脚踝、左右膝盖和左右臀等。进而能够在多个场景形式下,对站立、坐姿、运动多个姿态进行估计,从而实现对动作姿态的检测识别。可以用于游戏互动、视频直播、AR/VR、便携式可穿戴设备等场景下的人体姿态识别。
2. 能力说明:
人体的矩形框边长建议不小于图片最短边边长的 1 / 10。例如图片为 1080*960 像素,则建议的最小人体框最短边尺寸为 96 像素。如果不满足此要求,则可能会影响识别精度。
3. 接口数据要求:
- 图片格式:jpg/jfif/jpeg、png
- 图片像素尺寸:最小 256*256 像素,最大 4096*4096 像素
- 图片文件大小:小于2M
4. 接口使用:
平台为每个API提供试用体验服务,您在AI市场选择“免费试用”规格下单后,即可开始体验业内领先的人工智能API服务。 免费试用服务具有调用量、QPS限制,如需更高性能的API服务,可以提交咨询工单,联系京东AI扩容购买。
在获得使用权限后,您可使用已经封装好的SDK/参照接口鉴权规则进行相应开发,整体流程详见 接入流程
二、请求说明
1. 接口地址 :
https://aiapi.jd.com/jdai/pose_estimation
2. 请求方式:
post
3. 请求参数
(1)query请求参数
公共请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
appkey | string | 是 | 80d2b762ecb86593f9668526920f46c | 您的appkey,可在买家中心控制台中获 |
timestamp | long | 是 | 1541491668060 | 请求的时间戳,精确到毫秒,timestamp有效期5分钟 |
sign | string | 是 | 2e148773a0337a8f2200ba90d445f083 | 签名,根据规则MD5(sectetkey+timestamp) |
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
muti_det | int | 是 | 2 | 单人姿态预测或多人姿态预测;当值为1时,实现单人姿态预测;当值为2时,实现多人姿态预测 |
(2)body请求参数
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
无 | binary | 必选 | 无 | 图片内容,传入图片 |
4、请求代码示例
建议您使用我们提供的SDK进行调用,SDK获取及调用方式详见本页一接口描述中的4接口使用
三、返回说明
1、返回参数
(1)公共返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | string | 1000 | 参见下方错误码-系统级错误码 |
charge | boolean | false 或 true | false:不扣费, true:扣费 |
remainTimes | long | 1305 | 剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1 |
remainSeconds | long | 1223456 | 剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1 |
msg | string | 查询成功 | 参见下方错误码-系统级错误码数 |
result | object | {...} | 查询结果 |
(2)业务返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
status | int | 0 | 参照四、错误码-业务错误码 |
message | string | OK | 参照四、错误码-业务错误码 |
request_id | string | 12345678 | 便于双方定位问题 |
det_num | int | 14 | 检测的关键点数,暂时支持14点检测;默认输出值为14 |
used_time | int | 198 | 整个请求花费的时间,单位为毫秒 |
det_info | array | [{"person_num":1,"node_info":[...]},{"person_num":2,"node_info":[...]}] | 检测点的信息数组,详情见det_info字段说明。当没有检测到人时,会返回[] |
det_info字段说明
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
person_num | int | 4 | 多人检测时,图中检测人员的编号,按照检测出的头部关键点位置,从左往右依次从1开始编号;单人检测时,该值为1 |
node_info | list列表 | [x,y,score,node,x,y,score,node,……] | x为关键点的横坐标,类型为int,y为关键点的纵坐标,类型为int,score为置信度,类型为float,node为节点名,类型为str。 node的值为: head(头部)、neck(脖子)、r_shoulder(右肩膀)、r_elbow(右手肘)、r_wrist(右手腕)、l_shoulder(左肩膀)、l_elbow(左手肘)、l_wrist(左手腕)、r_hip(右臀部)、r_knee(右膝盖)、r_ankle(右脚踝)、l_hip(左臀部)、l_knee(左膝盖)、l_ankle(左脚踝) |
2、返回示例
{
"code": "10000",
"charge": false,
"remainTimes": 1305,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"request_id ": "1543813615.443506",
"message":"ok ",
"det_num": 14,
"status": 0,
"used_time": 306,
"det_info": [
{
"person_num": 1,
"node_info": [
58,
276,
0.9998019337654114,
"head",
60,
323,
0.9998019337654114,
"neck",
16,
337,
0.9998019337654114,
"r_shoulder",
33,
407,
0.9998019337654114,
"r_elbow",
82,
439,
0.9998019337654114,
"r_wrist",
100,
331,
0.9998019337654114,
"l_shoulder",
112,
391,
0.9998019337654114,
"l_elbow",
119,
433,
0.9998019337654114,
"l_wrist",
34,
433,
0.9237196964835981,
"r_hip",
70,
460,
0.9998019337654114,
"r_knee",
90,
558,
0.9998019337654114,
"r_ankle",
96,
413,
0.9946802868011275,
"l_hip",
150,
432,
0.9998019337654114,
"l_knee",
185,
514,
0.9998019337654114,
"l_ankle"
]
}
]
}
}
四、错误码
1.系统级错误码
2.业务错误码
业务错误码(status) | message | 说明 |
---|---|---|
12001 | "param 'muti_det' must be 1 or 2" | 参数'muti_det'必须为1或者2 |
12002 | "not enough param" | 参数缺失,muti_det参数未被获取到 |
12002 | "not enough param,an image is needed" | 参数缺失,未传入图片,与上方情况共用一个错误码 |
12003 | "image type error" | 解析参数错误,图片格式不支持 |
12004 | "image size exceeds 2M" | 图片大小超过限制,图像超过2M |
12004 | "image size must be between 256X256 and 4096X4096" | 图片大小超过限制,图片尺寸不在支持范围内,与上方情况共用一个错误码 |