| 接口地址: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;
}