接口地址:https://aip.baidubce.com/rest/2.0/image-classify/v1/gesture |
---|
返回格式:json |
请求方式:post |
请求示例:https://aip.baidubce.com/rest/2.0/image-classify/v1/gesture?access_token=test |
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
image | string | 必填 | 图像数据,Base64编码字符串,以图片文件形式请求时必填。图片的base64编码是不包含图片头的,(支持图片格式:jpg,bmp,png),图片Base64编码后大小不超过4M。最短边至少50px,最长边最大4096px |
名称 | 类型 | 说明 |
---|---|---|
result_num | int | 结果数量 |
result | object[] | 检测到的目标,手势、人脸 |
+classname | string | 目标所属类别,24种手势、other、face |
+top | int | 目标框上坐标 |
+width | int | 目标框的宽 |
+left | int | 目标框最左坐标 |
+height | int | 目标框的高 |
+probability | float | 目标属于该类别的概率 |
log_id | int64 | 唯一的log id,用于问题定位 |
{
"log_id": 4466502370458351471,
"result_num": 2,
"result": [{
"probability": 0.9844077229499817,
"top": 20,
"height": 156,
"classname": "Face",
"width": 116,
"left": 173
},
{
"probability": 0.4679304957389832,
"top": 157,
"height": 106,
"classname": "Heart_2",
"width": 177,
"left": 183
}
]
}
错误码 | 说明 |
---|---|
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 | 入参格式有误,可检查下图片编码、代码格式是否有误 |
import java.net.URLEncoder;
import com.alibaba.fastjson.JSON;
import com.xs.body.bean.GestureBean;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;
/**
* 手势识别Java-API调用示例代码
* Base64Util、FileUtil、HttpUtil工具类下载地址
* http://aixiaoshuai.mydoc.io/?t=234826
* @author 小帅丶
*/
public class GestureAPISample {
public static String GESTURE_URL = "https://aip.baidubce.com/rest/2.0/image-classify/v1/gesture";
public static void main(String[] args) throws Exception {
//返回字符串
// String result = getGestureResult("G:/gesture/摇滚.jpg", "自己的token");
// System.out.println(result);
//返回java对象
GestureBean gestureBean = getGestureBean("G:/ht.jpg", "自己的token");
System.out.println("识别个数:"+gestureBean.getResult_num());
String gestureName = "";
for (int i = 0; i < gestureBean.getResult().size(); i++) {
if(gestureBean.getResult().get(i).getClassname().equals("Face")){
System.out.println("此图中识别出人脸");
}else{
gestureName += GestureClassNameWorkBook.getGestureName(gestureBean.getResult().get(i).getClassname())+",";
}
}
System.out.println("识别的手势:"+gestureName.substring(0, gestureName.length()-1));
}
/**
* 识别图片中的手势类型,返回手势名称、手势矩形框、概率分数,可识别15种手势,支持动态手势识别,适用于手势特效、智能家居手势交互等场景;
* 支持的15类手势列表:手指、掌心向前、拳头、OK、祈祷、作揖、作别、单手比心、点赞、diss、rock、掌心向上、双手比心(3种)。
* @param imagePath 图片本地路径
* @param accessToken 应用AccessToken
* @return String
* @throws Exception
*/
private static String getGestureResult(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(GESTURE_URL, accessToken, param);
return result;
}
/**
* 识别图片中的手势类型,返回手势名称、手势矩形框、概率分数,可识别15种手势,支持动态手势识别,适用于手势特效、智能家居手势交互等场景;
* 支持的15类手势列表:手指、掌心向前、拳头、OK、祈祷、作揖、作别、单手比心、点赞、diss、rock、掌心向上、双手比心(3种)。
* @param imagePath 图片本地路径
* @param accessToken 应用AccessToken
* @return GestureBean
* @throws Exception
*/
private static GestureBean getGestureBean(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(GESTURE_URL, accessToken, param);
GestureBean gestureBean = JSON.parseObject(result,GestureBean.class);
return gestureBean;
}
}