文档简介:
通用型OCR接口说明
接口描述
针对图片中的文字,进行OCR检测,返回检测到的文字内容及坐标信息。
接口要求
图片格式:
1.图片单张大小不超过10MB,批量请求单次不超过50张
2.图片像素尺寸大于32x32 ,小于 5000x5000
3.图片格式支持png、jpg、jpeg、bmp格式
请求说明
-
请求示例
HTTP方法:POST
请求URL:https://ai.ctyun.cn/v1/aiop/api/[系统生成的服务码]/ocrdetect/ocr/v1/image.json
-
请求头说明
参数 |
值(说明) |
Content-Type |
application/json |
Sign |
MD5(AppKey + AppSecret + Timestamp+ Path + Http Body),32位小写的MD5加密串 |
Timestamp |
13位时间戳 |
AppKey |
平台分配给应用独立的AppKey |
-
请求参数
参数 |
是否必选 |
类型 |
可选值范围 |
说明 |
data |
true |
list |
- |
请求参数放置于http body中,一张或多张图像Base64编码数据构成的list。注意:图片需要使用常规base64编码方式 |
-
请求代码示例
Bash:
curl -X POST "https://ai.ctyun.cn/v1/aiop/api/[系统生成的服务码]/ocrdetect/ocr/v1/image.json" -H "Content-Type: application/json" -H 'Sign: XXXXX' -H 'Timestamp: XXXXX' -H 'AppKey: XXXXX' --data '{"data": ["9j_4AAQSkZJRgABAQAAAQABAAD_4QAwRXhpZgAATU0AKgAAA..."]}'
Python:
# -*- coding: utf-8 -*-
Import requests
Import base64
Import hashlib
Import time
Import json
'''
通用OCR
'''
def md5(key):
input_name = hashlib.md5()
input_name.update(key.encode("utf-8"))
return input_name.hexdigest()
request_url = "通用OCR的API URL"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = "{}".format(base64.b64encode(f.read()).decode())
params = {"data": [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/[系统生成的服务码]/ocrdetect/ocr/v1/image.json' + 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())
返回说明
-
返回参数
返回字段 |
是否必选 |
类型 |
字段说明 |
code |
true |
int |
请求响应状态码 |
message |
true |
object |
请求信息结构体,message["success"]代表请求list中的成功数量,message["fail"]代表请求list中的失败数量。 |
result |
true |
json array |
识别的结果,按照列表形式排列,每个元素为图片对应的鉴定结果键值对,元素排序按照传入顺序排列,元素中包括识别到的文本行数目,位置以及文本行内容 |
result[].text_line |
true |
int |
图片识别到的文字行数 |
result[].detail |
true |
json array |
按照列表形式排列,每个元素为图片中每一个识别到的文本行的具体信息,包含位置以及文本行内容 |
result[].detail[].name |
true |
string |
序号 |
result[].detail[].text |
true |
string |
识别到的文字 |
result[].detail[].box |
true |
array |
文字所在的坐标为8个浮点数构成的数组,8个浮点数依次分别表示左上、右上、右下、左下四个点的x坐标,y坐标。 |
result[].err_code |
true |
int |
若该张图片处理异常,则返回该图片的错误代码,错误代码参见错误码说明 |
result[].err_msg |
true |
int |
若该张图片处理异常,则返回该图片的错误消息,错误消息参见错误码说明 |
-
API调用失败返回值
返回字段 |
是否必选 |
类型 |
字段说明 |
code |
true |
int |
错误码,参见本文档错误码说明部分 |
message |
true |
string |
返回对应的可读消息,值为error |
details |
true |
string |
错误消息 |
-
返回示例
HTTP/1.1 200 OK
Content-Type: application/json
{
'code': 0,
'message': {'success' : 1, 'fail' : 0},
'result': [
{
'text_line': 4,
'detail': [
{
'name': '0',
'text': '社会主义核心价值观',
'box': [
43.3963039677,
157.3534469991,
610.5843128949,
169.5419591656,
609.1529514034,
236.1498488994,
41.9649424762,
223.9613367328
]
},
{
'name': '1',
'text': '富强、民主、文明、和谐',
'box': [
84.6885821036,
244.0079416001,
573.8530589198,
248.174096093,
573.4117596933,
299.9887625014,
84.2472828771,
295.8226080086
]
},
{
'name': '2',
'text': '自由、平等、公正、法治',
'box': [
86.4103425763,
313.3223554208,
573.5402803204,
313.3223589347,
573.5402799823,
360.1973589347,
86.4103422382,
360.1973554208
]
},
{
'name': '3',
'text': '爱国、敬业、诚信、友善',
'box': [
83.7507470394,
366.4181397844,
573.5945452571,
365.0787533799,
573.7328345036,
415.6542479109,
83.8890362859,
416.9936343154
]
}
]
}
]
}
错误码说明
错误码 |
错误信息 |
4001 |
请求JSON处理异常 |
4002 |
body传入的不是字典 |
4003 |
请求中未包data字段 |
4004 |
data字段图片数据不是list格式 |
4005 |
图片list内图片数量为0 |
4006 |
图片list内图片数量超过50张 |
4007 |
文件处理错误,请联系管理员 |
4008 |
base64数据处理异常 |
4009 |
请求文件格式不合法,仅支持 jpeg/png/jpg/bmp 格式 |
4010 |
单张图片大小超过10M |
4011 |
图片尺寸不符合要求,分辨率长宽尺寸应小于5000,大于32 |
4012 |
请求方法错误,请使用POST请求 |
4013 |
无效的请求路径,请确保请求路径正确 |
5000 |
OCR服务接口异常,请联系管理员 |