文档简介:
安全帽正确佩戴识别接口说明
接口描述
用于自动检测图片中的安全帽穿戴情况,并给出图像中安全帽的颜色及位置信息
接口要求
图片格式:
1. 图片单张大小不超过 5MB,支持单张请求
2. 图片格式支持 png、jpg、jpeg、bmp格式
请求说明
-
请求示例
HTTP方法:POST
请求URL:/v1/aiop/api/[系统生成的服务码]/SafeHat/base/hat_detect
-
请求头说明
参数 |
值(说明) |
Content-Type |
application/json |
Sign |
MD5(AppKey + AppSecret + Timestamp+ Path + Http Body),32位小写的MD5加密串 |
Timestamp |
13位时间戳 |
AppKey |
平台分配给应用独立的AppKey |
-
请求参数
参数 |
是否必选 |
类型 |
可选值范围 |
说明 |
image |
true |
string |
- |
单张图像Base64编码数据,注意:图片使用常规的base64编码方式,编码后,不包含前缀,剔除前缀例如” data:image/jpeg;base64,” |
-
请求示例代码
Bash:
curl -X POST /v1/aiop/api/[系统生成的服务码]/SafeHat/base/hat_detect -H "Content-Type: application/json" -H 'Sign: XXXXX' -H 'Timestamp: XXXXX' -H 'AppKey: XXXXX' --data '{"image": "AAAAAAAAAA...."}'
Python:
# -*- coding: utf-8 -*-
import requests
import base64
import hashlib
import time
import json
'''
安全帽检测
'''
def md5(key):
input_name = hashlib.md5()
input_name.update(key.encode("utf-8"))
return input_name.hexdigest()
request_url = "安全帽检测的API URL"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read()).decode()
params = {"image": img}
app_key = '平台分配的APP Key'
app_secret = '平台分配的APP Secret '
time_stamp = str(int(round(time.time() * 1000)))
headers = {
'content-type': 'application/json',
'Sign': md5(app_key + app_secret + time_stamp + '/v1/aiop/api/[系统生成的服务码]/SafeHat/base/hat_detect' + json.dumps(params)),
'Timestamp': time_stamp,
'AppKey': app_key
}
response = requests.post(request_url, data=json.dumps(params), headers=headers)
if response:
print(response.json())
返回说明
-
API调用成功返回值
返回字段 |
是否必选 |
类型 |
字段说明 |
code |
true |
int |
返回状态,返回0表示成功,返回错误代码参考下面的错误代码列表 |
message |
true |
string |
返回对应的可读消息 |
data |
true |
list |
返回安全帽检测到的结果主要包括位置信息、颜色信息以及置信度 |
data[0].box |
true |
int |
安全帽的位置信息,4个字分别对应top/left/bottom/right |
data[0].classname |
true |
string |
安全帽对应的颜色,支持蓝色,白色,黄色,红色,其他 |
data[0].score |
true |
float |
目标的置信度,在0到1区间。 |
-
API调用失败返回值
返回字段 |
是否必选 |
类型 |
字段说明 |
code |
true |
int |
错误码,参见本文档错误码说明部分 |
message |
true |
string |
返回对应的可读消息,值为error |
details |
true |
string |
错误消息 |
-
返回示例
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": 0,
"message": "success",
"result": [
{
"box": [
15,
72,
84,
129
],
"classname": "blue_hat",
"score": 0.9998
},
{
"box": [
44,
147,
104,
200
],
"classname": "blue_hat",
"score": 0.9984
}
]
}
错误码说明
错误代码 |
错误消息 |
错误可能原因 |
4001 |
请求未包含图片 |
请求关键词不正确或未正确包含请求数据 |
4002 |
图片文件大小不符合要求 |
该文件大小不符合要求,静态图片要求小于5M |
4003 |
base64数据处理异常 |
客户端传递的base64格式在处理时发生异常,可以尝试在本地转换base64是否有异常 |
4004 |
请求方法错误,请使用POST请求 |
需采用post提交 |
4005 |
body 内容为空 |
无body信息 |
4006 |
请求数据格式错误 |
post body非字典格式 |
5000 |
服务接口异常,请联系管理员 |
需要联系管理员处理 |