1、接口描述
对图片中的车牌(仅限中国大陆境内的蓝牌、黄牌(单层)、新能源绿牌),进行OCR检测,返回检测到的车牌内容及车牌位置坐标。
2、请求方法
POST
3、接口要求
- 图片格式限制:目前仅支持 jpg、jpeg、png、bmp 等常见格式
- 图片大小限制:图片单张大小不超过 10MB,批量请求单次不超过 50张
- 图片尺寸限制:图片像素尺寸应大于 32x32,小于 5000x5000
4、URI
/v1/aiop/api/2gt54ed8660w/driven-plate-ocr/platelicense.json
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参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
data | 是 | List | 一张或多张图像Base64编码字符串构成的list。注意:图片需要使用常规safe base64编码方式 | _9j_4AAQSkZJRg... |
6、请求代码示例
Curl -X POST
"https://ai-global.ctapi.ctyun.cn/v1/aiop/api/2gt54ed8660w/driven-plate-ocr/platelicense.json"
-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 '{"data":["_9j_4AAQSkZJRg..."]}'
7、返回值说明
请求成功返回响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
statusCode | 是 | Int | 请求响应状态码,返回 0 表示成功,返回错误代码参考下面的错误代码列表 | 0 | |
message | 是 | Object | 请求信息结构体,message["success"]代表请求list中的成功数量,message["fail"]代表请求list中的失败数量 | success | |
returnObj | 是 | Object | 识别的结果,按照列表形式排列,每个元素为图片对应的鉴定结果键值对,元素排序按照传入顺序排列,元素中包括识别到的车牌数目,位置以及车牌内容及其识别的置信度 | returnObj |
表message
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
success | 否 | Int | 成功标识 | 1 | |
fail | 否 | Int | 错误标识 | 0 |
表returnObj
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
number of plate licenses | 是 | Int | 图片中识别到的车牌数量 | ||
detail | 是 | Int | 图片内识别到的车牌list的具体信息,list内每一项包括车牌位置、牌照类型、车牌内容、置信度等 | detail |
表detail
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
box | 是 | List | 识别到的车牌8坐标位置信息,包含四个数组元素,依次分别对应车牌左上、右上、右下、左下四个点,每个数组元素包含两个整数,代表坐标点的x坐标,y坐标 | ||
plate_type | 是 | String | 识别到的车牌种类信息,现阶段只支持中国大陆境内的蓝牌、黄牌(单层)、新能源绿牌 | 蓝牌 | |
platelicense | 是 | String | 识别到的车牌内容 | 冀D137G5 | |
confidence | 是 | Float | 识别到的车牌置信度 | 1.0 |
请求失败返回响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
statusCode | 是 | Int | 错误码,放置API对应的错误码 | 4003 | |
message | 是 | String/Object | 请求失败时返回值为'error'或{'success':0,'fail':1} | error | message |
details | 否 | String | 返回对应的错误描述 | 请求中未包data字段 | |
returnObj | 否 | Object | 返回对应的错误编码和错误信息 | returnObj | |
error | 是 | String | 返回对应的错误码 | AI_OP_4003 |
表message
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
success | 否 | Int | 成功标识 | 0 | |
fail | 否 | Int | 错误标识 | 1 |
表returnObj
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
errorCode | 是 | String | 错误码 | 4008 | |
errorMessage | 是 | String | 错误信息 | base64数据处理异常 |
8、返回值示例
请求成功返回值示例
{
"statusCode": 0,
"message": {"success" : 1, "fail" : 0},
"returnObj": [{
"number of plate licenses": 1,
"detail": [{
"box": [
[123, 191],[214, 195],[213, 226],[122, 222]
],
"plate_type": "蓝牌",
"platelicense": "浙C80000",
"confidence": 0.99
}]
}]
}
请求失败返回值示例
示例1:
{
"statusCode": 4004,
"message": "error",
"details": "data字段图片数据不是list格式",
"error":"AI_OP_4004"
}
示例2:处理失败返回值示例
{
'statusCode': 0,
'message': {'success': 0, 'fail': 1},
'returnObj': [{'err_code': 4008, 'err_msg': 'base64数据处理异常'}]
}
9、状态码
http状态码 | 描述 |
---|---|
200 | 表示请求成功。 |
10、错误码说明
4 开头为业务错误码,5 开头为服务错误码。全局请求返回错误码请参考章节API概览>状态码
错误码 | 错误信息 | 错误描述 |
---|---|---|
AI_OP_4001 | 请求JSON处理异常 | 请求JSON处理异常 |
AI_OP_4002 | body传入不是字典 | body传入不是字典 |
AI_OP_4003 | 请求中未包data字段 | 请求中未包data字段 |
AI_OP_4004 | data字段图片数据不是list格式 | data字段图片数据不是list格式 |
AI_OP_4005 | 图片list内图片数量为0 | 图片list内图片数量为0 |
AI_OP_4006 | 图片list内图片数量超过50张 | 图片list内图片数量超过50张 |
AI_OP_4008 | base64数据处理异常 | base64数据处理异常 |
AI_OP_4009 | 请求文件格式不合法,仅支持 jpeg/png/jpg/bmp 格式 | 请求文件格式不合法,仅支持 jpeg/png/jpg/bmp 格式 |
AI_OP_4010 | 单张图片大小超过10M | 单张图片大小超过10M |
AI_OP_4011 | 图片尺寸不符合要求,分辨率长宽尺寸应不高于5000不低于32 | 图片尺寸不符合要求,分辨率长宽尺寸应不高于5000不低于32 |
AI_OP_5000 | OCR服务接口异常,请联系管理员 | OCR服务接口异常,请联系管理员 |
11、base64 编码规则:使用常规的 safe base64 编码方式
- python 中推荐使用
base64.urlsafe_b64encode()
函数进行编码 - java 中推荐使用
BASE64.getUrlEncoder().encodeToString()
函数进行编码