接口地址:https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num |
---|
返回格式:json |
请求方式:post |
请求示例:https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num?access_token=test |
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
image | string | 必填 | 图像数据,Base64编码字符串,以图片文件形式请求时必填。图片的base64编码是不包含图片头的,(支持图片格式:jpg,bmp,png),图片Base64编码后大小不超过4M。最短边至少50px,最长边最大4096px |
area | string | 选填 | 特定框选区域坐标,逗号分隔,如‘x1,y1,x2,y2,x3,y3...xn,yn',默认尾点和首点相连做闭合,此参数为空或无此参数默认识别整个图片的人数 |
show | string | 选填 | 是否输出渲染的图片,默认不返回,选true时返回渲染后的图片(base64),其它无效值或为空则默认false |
名称 | 类型 | 说明 |
---|---|---|
person_num | uint64 | 识别出的人体数目 |
image | string | 渲染后的图片,输入参数show=true时输出该字段 |
{
"log_id": 716033439,
"person_num": 16,
"image": "/9j/4AAoFS2P/9k="
}
错误码 | 说明 |
---|---|
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.alibaba.fastjson.JSONObject;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;
/**
* 人流统计-JavaAPI示例代码
* @author 小帅丶
* @date 2018年3月30日
*/
public class BodyNumSample {
//接口地址
private static final String BODY_NUM = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num";
//更换为自己应用的AccessToken
static String token= "自己应用的AccessToken";
//调用示例代码
public static void main(String[] args) {
//图片本地路径
String imagePath = "图片本地路径";
String result = CountBodyNum(imagePath, token);
JSONObject jsonObject = JSON.parseObject(result);
//拿到接口返回的渲染图片的base64数据
String image = jsonObject.getString("image");
//建议使用JDK1.8以上 来使用自带的BASE64Decoder
BASE64Decoder decoder = new BASE64Decoder();
byte [] imageByte = decoder.decodeBuffer(image);
System.out.println("图中的人脸个数为:"+jsonObject.getString("person_num"));
//对图片进行保存操作
OutputStream outputStream = new FileOutputStream("G:/mallrender.jpg");
InputStream inputStream = new ByteArrayInputStream(imageByte);
byte[] buff = new byte[1024];
int len = 0;
while((len=inputStream.read(buff))!=-1){
outputStream.write(buff, 0, len);
}
inputStream.close();
outputStream.close();
}
/**
* 对于输入的一张图片(可正常解码,且长宽比适宜),识别和统计图像中的人体个数,以俯拍角度为主要识别视角,支持特定框选区域的人数统计,并可以输出渲染图片(人体头顶热力图)
* @param path 图片路径
* @param token AccessToken
* @return
*/
public static String CountBodyNum(String path,String token) {
String result="";
try {
String filePath = path;
byte[] imgData = FileUtil.readFileByBytes(filePath);
String imgStr = Base64Util.encode(imgData);
String imgParam = URLEncoder.encode(imgStr, "UTF-8");
//image图像数据+show是否输出渲染的图片,默认不返回,选true时返回渲染后的图片(base64),其它无效值或为空则默认false
String param = "image=" + imgParam+"&show=true";
result = HttpUtil.post(BODY_NUM, token, param);
} catch (Exception e) {
result = e.getMessage();
}
return result;
}