API Path
/aipaas/cv/v1/image/gloveCheck
请求协议
HTTP
请求方法
POST
标签
公网
请求头部 :
| 头部标签 | 必填 | 说明 | 类型 | 数据字典 | 限制 | 头部内容 | 示例 |
|---|---|---|---|---|---|---|---|
| Content-Type | 是 | application/json | [string] | application/json | application/json | ||
| X-APP-ID | 是 | 买家中心-已购能力-【X-APP-ID】,公网鉴权,公网调用时必传 | [string] | ||||
| Device-Uuid | 是 | 设备管理-设备uuid,公网鉴权,公网调用时必传 | [string] | ||||
| Authorization | 是 | 公网鉴权,公网调用时必传 | [string] |
请求参数 Json:
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| project_id | 项目用户编码,待集团分配。 | 否 | [string] | |||
| province_code | 省份编码,填写3.6-标准地域编码 | 否 | [string] | |||
| subscribe_level | 订阅等级 (默认免费) 付费:a1 免费:b1 | 否 | [string] | |||
| uid | 身份识别码。能力接入方对接口调用方的身份认证,分配给数据EOP平台的身份识别码. | 否 | [string] | |||
| timestamp | 时间戳。距离1970-01-01毫秒数 | 否 | [long] | |||
| seqid | 请求序列号,usid,请求的唯一标识 | 是 | [string] | |||
| image | 待分析图像的base64编码,图像中文字倾斜较小,图像清晰度较高,数据不大于2M。 | 是 | [string] | |||
| image_url | 待分析图像的url链接。(url与base64编码中至少必填一个,默认优先imagebase64编码) | 否 | [string] | |||
| width | 图片宽 | 否 | [int] | |||
| height | 图片高 | 否 | [int] | |||
| DID | 设备编码,不可以传:空、1、-1 | 否 | [string] | |||
| Imagetype | 手套检测必传入["008"] | 否 | [array] | |||
| Area | 当前版本不支持,默认全图;矩形区域[x1,y1,x2,y2] | 否 | [array] | 旧版本兼容使用 | ||
| area_alarm | 当前版本不支持,默认全图;区域限定坐标点集合列表,按顺时针或逆时针方向提供,最少提供3个点,最多11个点。(如果没有默认全图) | 否 | [array] | |||
| area_alarm>>x | 区域限定的坐标点横坐标 | 否 | [int] | |||
| area_alarm>>y | 区域限定的坐标点纵坐标 | 否 | [int] |
响应内容 :
返回结果
> 成功 (200)
> Json
> Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| seqid | 请求序列号,usid,请求的唯一标识 | 是 | [string] | |||
| code | 状态响应码。参考错误编码规范 | 是 | [string] | |||
| message | 调用结果描述。参考错误编码规范 | 是 | [string] | |||
| flag | 业务上成功或失败:1成功,0失败 | 是 | [int] | |||
| data | 识别结果列表 | 否 | [array] | |||
| data>>bbox | 对象框bbox[x,y,w,h],int型长度4数组,x,y为检出框左上角点横、纵坐标,w为检出框宽度,h为检出框高度 | 否 | [array] | |||
| data>>type | 识别类型 见识别类型编码表 | 否 | [string] | |||
| data>>score | 置信度0~1 | 否 | [double] |
成功示例[Mock API] :
{
"seqid": "8f43ee27",
"code": "10000",
"message": "success",
"flag": 1,
"data": [{
"score": 0.7484423518180847,
"type": "10801",
"bbox": [1081, 566, 69, 70]
}, {
"score": 0.5421700477600098,
"type": "10801",
"bbox": [1281, 611, 39, 41]
}]
}
1.服务接口调用时需要严格遵循服务鉴权规则。
公网服务调用鉴权规则请参见:开发指南 - 接口签名认证。
{
"seqid": "8f43ee27",
"timestamp": 123112121,
"uid":"1717",
"DID ": "ABCDEFG",
"project_id":100,
"province_code":900,
"Imagetype":["008"],
"image": "'$base64_data'"
}
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpPostRequestSender {
public static void sendPostRequest() {
HttpURLConnection connection = null;
try {
String url = "your_url"; // 这里替换为实际的的接口
String appId = "appid";
String deviceUuid = "deviceUuid";
String base64Data = "$base64_data";
URL urlObj = new URL(url);
connection = ((HttpURLConnection) (urlObj.openConnection()));
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
//公网调用鉴权,与内网鉴权必传其一
connection.setRequestProperty("X-APP-ID", appId);
connection.setRequestProperty("Device-Uuid", deviceUuid);
connection.setRequestProperty("Authorization", "yourAuthorization");
connection.setDoOutput(true);
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode requestBody = objectMapper.createObjectNode();
requestBody.put("seqid", "8f43ee27");
requestBody.put("timestamp", 123112121);
requestBody.put("uid", "1717");
requestBody.put("DID", "ABCDEFG");
requestBody.put("project_id", 100);
requestBody.put("province_code", 900);
requestBody.putArray("Imagetype").add("008");
requestBody.put("image", base64Data);
try (OutputStream os = connection.getOutputStream()) {
byte[] input = requestBody.toString().getBytes("utf-8");
os.write(input, 0, input.length);
}
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
try (BufferedReader br =
new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
String responseString = response.toString();
JsonNode jsonResponse = objectMapper.readTree(responseString);
JsonNode data = jsonResponse.get("data");
}
} else {
System.out.println("POST request not worked");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
}
import requests
import json
import logging
# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def send_post_request_enhanced():
try:
# 配置参数
url = "your_url"
app_id = "appid"
device_uuid = "deviceUuid"
authorization = "yourAuthorization"
base64_data = "$base64_data"
# 构建请求头
headers = {
"Content-Type": "application/json",
"X-APP-ID": app_id,
"Device-Uuid": device_uuid,
"Authorization": authorization
}
# 构建JSON请求体
request_body = {
"seqid": "8f43ee27",
"timestamp": 123112121,
"uid": "1717",
"DID": "ABCDEFG",
"project_id": 100,
"province_code": 900,
"Imagetype": ["008"],
"image": base64_data
}
logger.info(f"准备发送POST请求到: {url}")
logger.debug(f"请求体: {json.dumps(request_body, indent=2)}")
# 发送POST请求
response = requests.post(
url=url,
headers=headers,
json=request_body,
timeout=30
)
# 记录响应状态
logger.info(f"响应状态码: {response.status_code}")
# 处理响应
if response.status_code == 200:
response_data = response.json()
data = response_data.get("data", {})
logger.info("请求成功完成")
logger.debug(f"响应数据: {json.dumps(response_data, indent=2)}")
return data
else:
logger.error(f"POST请求失败,状态码: {response.status_code}")
logger.error(f"响应内容: {response.text}")
return None
except requests.exceptions.Timeout:
logger.error("请求超时")
except requests.exceptions.ConnectionError:
logger.error("连接错误")
except requests.exceptions.HTTPError as e:
logger.error(f"HTTP错误: {e}")
except json.JSONDecodeError as e:
logger.error(f"JSON解析错误: {e}")
except Exception as e:
logger.error(f"未预期的错误: {e}")
# 调用函数
if __name__ == "__main__":
send_post_request_enhanced()
| 识别对象编码 | 名称 | 备注 |
|---|---|---|
| 001 | 口罩检测 | |
| 002 | 厨师帽检测 | |
| 003 | 老鼠检测 | |
| 004 | 抽烟检测 | |
| 005 | 厨师服检测 | |
| 006 | 打电话检测 | |
| 007 | 垃圾桶未盖检测 | |
| 008 | 手套检测 | |
| 010 | 地面垃圾检测 | |
| 011 | 地面积水检测 | |
| 012 | 遗物置物检测 |
| 识别类型编码 | 中文描述 | 备注 |
|---|---|---|
| 10101 | 戴口罩 | |
| 10102 | 未戴口罩 | |
| 10201 | 戴厨师帽 | |
| 10202 | 未戴厨师帽 | |
| 10301 | 老鼠 | |
| 10401 | 抽烟 | |
| 10402 | 未抽烟 | |
| 10501 | 穿厨师服 | |
| 10502 | 未穿厨师服 | |
| 10601 | 打电话 | |
| 10602 | 未打电话 | |
| 10701 | 垃圾桶已盖 | |
| 10702 | 垃圾桶未盖 | |
| 10801 | 戴手套 | |
| 10802 | 未戴手套 | |
| 11001 | 垃圾 | |
| 11101 | 积水 | |
| 11201 | 遗物置物 |
| 序号 | 地域编码(3位数字) | 地域名称 |
|---|---|---|
| 1 | 800 | 集团 |
| 2 | 811 | 北京市 |
| 3 | 812 | 天津市 |
| 4 | 813 | 河北省 |
| 5 | 814 | 山西省 |
| 6 | 815 | 内蒙古自治区 |
| 7 | 821 | 辽宁省 |
| 8 | 822 | 吉林省 |
| 9 | 823 | 黑龙江省 |
| 10 | 831 | 上海市 |
| 11 | 832 | 江苏省 |
| 12 | 833 | 浙江省 |
| 13 | 834 | 安徽省 |
| 14 | 835 | 福建省 |
| 15 | 836 | 江西省 |
| 16 | 837 | 山东省 |
| 17 | 841 | 河南省 |
| 18 | 842 | 湖北省 |
| 19 | 843 | 湖南省 |
| 20 | 844 | 广东省 |
| 21 | 845 | 广西壮族自治区 |
| 22 | 846 | 海南省 |
| 23 | 850 | 重庆市 |
| 24 | 851 | 四川省 |
| 25 | 852 | 贵州省 |
| 26 | 853 | 云南省 |
| 27 | 854 | 西藏自治区 |
| 28 | 861 | 陕西省 |
| 29 | 862 | 甘肃省 |
| 30 | 863 | 青海省 |
| 31 | 864 | 宁夏回族自治区 |
| 32 | 865 | 新疆维吾尔自治区 |
| 返回编码 | 返回信息 | 说明 |
|---|---|---|
| 10000 | 成功 | |
| 10301 | 服务必填参数缺失 | 服务必填参数缺失或未填写 |
| 10304 | 请求参数格式错误 | 服务入参格式错误,输入图片格式需为base64位编码的数据 |
| 10305 | 请求参数范围错误 | 上传的图片大小错误,现阶段我们支持的图片大小为:base64编码后小于4M,请重新上传图片 |
| 10503 | 服务连接超时 | 连接第三方服务发生超时时,返回服务连接超时错误 |
| 10903 | 服务执行失败 | 服务执行失败 |