1、接口描述
用于自动检测图片中的安全帽穿戴情况,并给出图像中安全帽的颜色及位置信息。
2、请求方法
POST
3、接口要求
- 目前仅支持 base64 编码方式请求,暂不支持 url 方式请求。一次请求仅支持一条数据
- 图片格式限制:目前仅支持 png、jpg、jpeg、bmp、gif、tif格式
- 图片大小限制:base64 编码后图片大小不超过 5 MB
4、URI
/v1/aiop/api/2f3uquanbrpc/SafeHat/base/hat_detect
5、请求参数
请求头header参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Content-Type | 是 | String | json格式 | application/json | |
appkey | 是 | String | 平台应用appkey | 562b89493b1a40e1b97ea05e50dd8170 | |
ctyun-eop-request-id | 是 | String | 用户请求 id,由用户构造,用户可以通过 uuid 等方法自行生成唯一字符串,用于日志请求追踪 详见文档:Python3调用示例 |
33dfa732-b27b-464f-b15a-21ed6845afd5 | |
eop-date | 是 | String | 请求时间,由用户构造,形如 yyyymmddTHHMMSSZ 详见文档:Python3调用示例 |
20211221T163014Z | |
host | 是 | String | 终端节点域名,固定字段 | ai-global.ctapi.ctyun.cn | |
Eop-Authorization | 是 | String | 由天翼云官网 accessKey 和 securityKey 经签名后生成,参与签名生成的字段包括天翼云官网 accessKey 、securityKey、平台应用的appkey(非必须),用户请求id(非必须),请求时间,终端节点域名(非必须)以及请求体内容 签名逻辑详见文档:认证鉴权和Python3调用示例 |
请求体body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
image | 是 | String | 一张图像Base64编码字符串。注意:图片需要使用常规safe base64编码方式,不包含前缀 "data:img/jpg;base64," | _9j_4AAQSkZJRg... |
6、请求代码示例
Curl -X POST
"https://ai-global.ctapi.ctyun.cn/v1/aiop/api/2f3uquanbrpc/SafeHat/base/hat_detect"
-H "Content-Type: application/json"
-H "ctyun-eop-request-id:33dfa732-b27b-464f-b15a-21ed6845afd5"
-H "appkey:XXX"
-H "Eop-Authorization:XXX"
-H "eop-date:20211109T104641Z"
-H "host:ai-global.ctapi.ctyun.cn"
--data '{"image":"AAAAAAAAA...."}'
7、返回值说明
请求成功返回响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
statusCode | 是 | Int | 返回状态,返回 0 表示成功,返回错误代码参考下面的错误代码列表 | 0 | |
message | 是 | String | 如果statusCode为 0,返回 success;如果statusCode 非 0,则返回对应的可读错误信息 | success | |
returnObj | 是 | List | 返回安全帽检测到的结果主要包括位置信息、颜色信息以及置信度 | returnObj |
表result
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
result[].box | 是 | List | 车辆的位置信息,4个值分别对应top/left/bottom/right | 15, 72, 84, 129 | |
result[].classname | 是 | String | 安全帽对应的颜色,支持蓝色,白色,黄色,红色,其他 | blue_hat | |
result[].score | 是 | Float | 目标的置信度,在0到1区间 | 0.9998 |
请求失败返回响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
code | 是 | Int | 错误码,放置API对应的错误码 | 4003 | |
message | 是 | String | 请求失败时返回值固定为"error" | error | |
details | 是 | String | 返回对应的错误信息 | base64数据处理异常 | |
error | 是 | String | 返回对应的错误码 | AI_OP_4003 |
8、返回值示例
请求成功返回值示例
{
"statusCode": 0
"message": "success",
"returnObj": [
{
"box": [15, 72, 84, 129],
"classname": "blue_hat",
"score": 0.9998
},
{
"box": [44, 107, 104, 200],
"classname": "blue_hat",
"score": 0.9984
}
]
}
请求失败返回值示例
{
"statusCode": 4003,
"details": "base64数据处理异常",
"message": "error",
"error":"AI_OP_4003"
}
9、状态码
http状态码 | 描述 |
---|---|
200 | 表示请求成功 |
10、错误码说明
4 位错误码。4 开头为业务错误码,5 开头为服务错误码。
错误码 | 错误信息 | 错误描述 |
---|---|---|
AI_OP_4001 | 请求未包含图片 | 请求关键词不正确或未正确包含请求数据 |
AI_OP_4002 | 图片文件大小不符合要求 | 该文件大小不符合要求,静态图片要求小于5M |
AI_OP_4003 | base64数据处理异常 | 客户端传递的base64格式在处理时发生异常,可以尝试在本地转换base64是否有异常 |
AI_OP_4005 | body内容为空 | post body非字典格式 |
AI_OP_4006 | 请求数据格式错误 | 请求体json解析错误 |
11、base64 编码规则:使用常规的 safe base64 编码方式
- python 中推荐使用
base64.urlsafe_b64encode()
函数进行编码 - java 中推荐使用
BASE64.getUrlEncoder().encodeToString()
函数进行编码