接口地址:https://aip.baidubce.com/rest/2.0/image-classify/v1/body_analysis |
---|
返回格式:json |
请求方式:post |
请求示例:https://aip.baidubce.com/rest/2.0/image-classify/v1/body_analysis?access_token=test |
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
image | string | 必填 | 图像数据,Base64编码字符串,以图片文件形式请求时必填。图片的base64编码是不包含图片头的,(支持图片格式:jpg,bmp,png),图片Base64编码后大小不超过4M。最短边至少50px,最长边最大4096px |
名称 | 类型 | 说明 |
---|---|---|
person_num | uint32 | 人体数目 |
person_info | object[] | 人体姿态信息 |
+body_parts | object | 身体部位信息,包含14个关键点 |
++left_ankle | object | 左脚踝 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++left_elbow | object | 左手肘 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++left_hip | object | 左髋部 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++left_knee | object | 左膝 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++left_shoulder | object | 左肩 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++left_wrist | object | 左手腕 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++neck | object | 颈 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++nose | object | 鼻子 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++right_ankle | object | 右脚踝 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++right_elbow | object | 右手肘 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++right_hip | object | 右髋部 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++right_knee | object | 右膝 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++right_shoulder | object | 右肩 |
+++x | float | x坐标 |
+++y | float | y坐标 |
++right_wrist | object | 右手腕 |
+++x | float | x坐标 |
+++y | float | y坐标 |
+location | object | 人体坐标信息 |
++height | float | 人体区域的高度 |
++left | float | 人体区域离左边界的距离 |
++top | float | 人体区域离上边界的距离 |
++width | float | 人体区域的宽度 |
log_id | uint64 | 唯一的log id,用于问题定位 |
{
"person_num": 1,
"person_info": [{
"body_parts": {
"neck": {
"y": 288.7258911132812,
"x": 845.4238891601562
},
"left_shoulder": {
"y": 307.2262573242188,
"x": 949.0001831054688
},
"left_knee": {
"y": 582.1116333007812,
"x": 568.9564819335938
},
"left_ankle": {
"y": 593.6278076171875,
"x": 421.5616149902344
},
"right_elbow": {
"y": 0.0,
"x": 0.0
},
"right_shoulder": {
"y": 270.217529296875,
"x": 744.0525512695312
},
"left_hip": {
"y": 575.1278076171875,
"x": 776.3110961914062
},
"right_hip": {
"y": 505.7799377441406,
"x": 700.2752075195312
},
"left_wrist": {
"y": 586.6766357421875,
"x": 1001.920715332031
},
"left_elbow": {
"y": 468.8005676269531,
"x": 965.2022094726562
},
"nose": {
"y": 203.2225036621094,
"x": 792.3795776367188
},
"right_ankle": {
"y": 524.3399658203125,
"x": 393.8475036621094
},
"right_knee": {
"y": 339.5772399902344,
"x": 591.977783203125
},
"right_wrist": {
"y": 0.0,
"x": 0.0
}
},
"location": {
"width": 212.8609619140625,
"top": 105.8213119506836,
"height": 532.152587890625,
"left": 591.45361328125
}
}],
"log_id": 6900199721518695010
}
错误码 | 说明 |
---|---|
1 | 服务器内部错误,请再次请求, 如果持续出现此类错误,请通过QQ群(860337848)或提交工单联系技术支持团队。 |
2 | 服务暂不可用,请再次请求, 如果持续出现此类错误,请通过QQ群(860337848)或提交工单联系技术支持团队。 |
3 | 调用的API不存在,请检查请求URL后重新尝试,一般为URL中有非英文字符,如“-”,可手动输入重试 |
4 | 集群超限额,请再次请求, 如果持续出现此类错误,请通过QQ群(860337848)或提交工单联系技术支持团队。 |
6 | 无权限访问该用户数据,创建应用时未勾选相关接口 |
13 | 获取token失败 |
14 | IAM 鉴权失败 |
15 | 应用不存在或者创建失败 |
17 | 每天请求量超限额,可通过QQ群(860337848)联系群管、提交工单提升限额 |
18 | QPS超限额,可通过QQ群(860337848)联系群管、提交工单提升限额 |
19 | 请求总量超限额,可通过QQ群(860337848)联系群管、提交工单提升限额 |
100 | 无效的access_token参数,请检查后重新尝试 |
110 | access_token无效 |
111 | access token过期 |
282000 | 服务器内部错误,请再次请求, 如果持续出现此类错误,请通过QQ群(860337848)或提交工单联系技术支持团队。 |
216100 | 请求中包含非法参数,请检查后重新尝试 |
216101 | 缺少必须的参数,请检查参数是否有遗漏 |
216102 | 请求了不支持的服务,请检查调用的url |
216103 | 请求中某些参数过长,请检查后重新尝试 |
216110 | appid不存在,请重新核对信息是否为后台应用列表中的appid |
216200 | 图片为空,请检查后重新尝试 |
216201 | 上传的图片格式错误,现阶段我们支持的图片格式为:PNG、JPG、BMP,请进行转码或更换图片 |
216202 | 上传的图片大小错误,现阶段我们支持的图片大小为:base64编码后小于4M,分辨率不高于4096 * 4096,请重新上传图片 |
216203 | 上传的图片base64编码有误,请校验base64编码方式,并重新上传图片 |
216630 | 识别错误,请再次请求,如果持续出现此类错误,请通过QQ群(860337848)或提交工单联系技术支持团队。 |
216634 | 检测错误,请再次请求,如果持续出现此类错误,请通过QQ群(860337848)或提交工单联系技术支持团队。 |
282003 | 请求参数缺失 |
282005 | 处理批量任务时发生部分或全部错误,请根据具体错误码排查 |
282006 | 批量任务处理数量超出限制,请将任务数量减少到10或10以下 |
282114 | URL长度超过1024字节或为0 |
282808 | request id xxxxx 不存在 |
282809 | 返回结果请求错误(不属于excel或json) |
282810 | 图像识别错误 |
283300 | 入参格式有误,可检查下图片编码、代码格式是否有误 |
package com.xs.image;
import java.net.URLEncoder;
import com.alibaba.fastjson.JSON;
import com.xs.common.image.ImageAPI;
import com.xs.pojo.image.BodyAnalysisBean;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;
/**
* 人体关键点识别-JavaAPI示例代码(非官方)
* @author 小帅丶
*/
public class BodyAnalysisSample {
public static void main(String[] args) throws Exception {
//返回字符串
String result = getBodyAnalysisResult("本地图片路径", "自己的accesstoken");
System.out.println(result);
//返回java对象
//BodyAnalysisBean bodyAnalysisBean = getBodyAnalysisBean("本地图片路径", "自己的accesstoken");
//System.out.println("图中有"+bodyAnalysisBean.getPerson_num()+"个人");
}
/**
* 人体关键点识别Demo
* @param imagePath
* @param accessToken
* @return 字符串
* @throws Exception
*/
public static String getBodyAnalysisResult(String imagePath,String accessToken) throws Exception{
byte[] imgData = FileUtil.readFileByBytes(imagePath);
String imgStr = Base64Util.encode(imgData);
String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
// 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
String result = HttpUtil.post(ImageAPI.BODYANALYSIS_API, accessToken, param);
System.out.println(result);
return result;
}
/**
* 人体关键点识别Demo
* @param imagePath
* @param accessToken
* @return CarMode对象
* @throws Exception
*/
public static BodyAnalysisBean getBodyAnalysisBean(String imagePath,String accessToken) throws Exception{
byte[] imgData = FileUtil.readFileByBytes(imagePath);
String imgStr = Base64Util.encode(imgData);
String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
// 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
String result = HttpUtil.post(ImageAPI.BODYANALYSIS_API, accessToken, param);
BodyAnalysisBean bodyAnalysisBean = JSON.parseObject(result,BodyAnalysisBean.class);
System.out.println(result);
return bodyAnalysisBean;
}
}