手部关键点识别
更新时间:2022-11-15
接口描述
对于输入的一张图片(可正常解码,且长宽比适宜),检测图片中的手部,输出每只手的坐标框、21个骨节点坐标信息。
当前接口主要适用于图片中单个手部的情况,图片中同时存在多个手部时,识别效果可能欠佳。
21个关键点对应位置示意图:
在线调试
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
请求说明
请求示例
HTTP 方法:POST
请求URL:https://aip.baidubce.com/rest/2.0/image-classify/v1/hand_analysis
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考“Access Token获取” |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 类型 | 可选值范围 | 说明 |
---|---|---|---|---|
image | 是 | string | - | 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。图片的base64编码是不包含图片头的,如(data:image/jpg;base64, ),支持图片格式:jpg、bmp、png,最短边至少50px,最长边最大4096px。 |
返回说明
返回参数
字段 | 是否必选 | 类型 | 说明 |
---|---|---|---|
hand_num | 是 | uint32 | 检测到的人手数目 |
hand_info | 否 | object[] | 手部关节点信息 |
+location | 否 | object | 手部坐标信息 |
++left | 否 | int | 手部区域离左边界的距离 |
++top | 否 | int | 手部区域离上边界的距离 |
++width | 否 | int | 手部区域的宽度 |
++height | 否 | int | 手部区域的高度 |
++score | 是 | float | 置信度分数,当前取值范围0-21,应用时可除以21进行归一化处理,下一版服务会进行更新、修正 |
+hand_parts | 是 | object | 手部骨节点信息,包含21个关键点 |
++0 | 是 | object | 关键点的标签,0-20 |
+++x | 是 | uint32 | x坐标 |
+++y | 是 | uint32 | y坐标 |
+++score | 是 | float | 置信度分数,取值范围0-1。可基于置信度分数进行过滤,排除掉分数低的误识别“无效关键点”,推荐的过滤方案:置信度分数≥0.2。实际应用中,可根据对误识别、漏识别的容忍程度,调整阈值过滤方案,灵活应用 |
…… | …… | …… | …… |
++20 | 是 | object | 第20号关键点 |
+++x | 是 | uint32 | x坐标 |
+++y | 是 | uint32 | y坐标 |
+++score | 是 | float | 置信度分数 |
返回关键点对应位置示意图:
返回示例
{
"log_id": "4653273132348525916",
"hand_num": 1,
"hand_info": [
{
"hand_parts": {
"0": {
"y": 707,
"x": 829,
"score": 0.81601244211197
},
"1": {
"y": 620,
"x": 873,
"score": 0.6850221157074
},
"2": {
"y": 533,
"x": 916,
"score": 0.75532239675522
},
"3": {
"y": 467,
"x": 938,
"score": 0.79282909631729
},
"4": {
"y": 380,
"x": 993,
"score": 0.88114696741104
},
"5": {
"y": 424,
"x": 829,
"score": 0.90723776817322
},
"6": {
"y": 358,
"x": 862,
"score": 0.62833058834076
},
"7": {
"y": 391,
"x": 916,
"score": 0.77525424957275
},
"8": {
"y": 456,
"x": 927,
"score": 0.87964057922363
},
"9": {
"y": 402,
"x": 775,
"score": 0.91389346122742
},
"10": {
"y": 325,
"x": 786,
"score": 0.85947573184967
},
"11": {
"y": 249,
"x": 818,
"score": 0.88918441534042
},
"12": {
"y": 151,
"x": 840,
"score": 0.85277211666107
},
"13": {
"y": 424,
"x": 720,
"score": 0.81941932439804
},
"14": {
"y": 347,
"x": 720,
"score": 0.83918035030365
},
"15": {
"y": 282,
"x": 720,
"score": 0.84135395288467
},
"16": {
"y": 194,
"x": 731,
"score": 0.85115605592728
},
"17": {
"y": 489,
"x": 687,
"score": 0.84704375267029
},
"18": {
"y": 434,
"x": 644,
"score": 0.88782823085785
},
"19": {
"y": 391,
"x": 622,
"score": 0.86267304420471
},
"20": {
"y": 325,
"x": 567,
"score": 0.91110396385193
}
},
"location": {
"height": 556,
"width": 426,
"top": 151,
"score": 17.495880126953,
"left": 567
}
}
]
}