SDK隐私政策
通用文字识别:将自然场景下图片上的文字内容,通过定位和检测,智能识别为可编辑的文本信息。
Hi,您好,欢迎使用有道智云通用文字识别 API接口服务。
如果您想快速体验服务,建议您前往 体验中心 或者在体验中心右下侧找到小程序二维码,扫描进行体验。
本文档主要针对需要集成HTTP API的技术开发工程师,详细描述OCR识别能力相关的技术内容。
如果您有与我们商务合作的需求,可以通过以下方式联系我们:
商务邮箱: AIcloud_Business@corp.youdao.com
如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:
客服QQ:1906538062
智云OCR技术交流QQ 1群: 654064748
智云OCR技术交流QQ 2群: 471638046
联系邮箱: zhiyun@corp.youdao.com
温馨提示:
应用ID
和应用密钥
;如果您还没有,请按照 新手指南 获取。有道智云OCR API接口提供有道的OCR文字识别服务,目前有道智云OCR支持八十种语言的文字识别。您只需要通过调用有道智云OCR API,传入经过Base64编码的图片,通过POST请求方式,就可以得到相应的文字识别结果。
有道智云OCR API HTTPS地址:
https://openapi.youdao.com/ocrapi
注:请求采用application/x-www-form-urlencoded,不用JSON。
调用方在集成通用文字识别 API时,请遵循以下规则。
规则 | 描述 |
---|---|
传输方式 | HTTPS |
请求方式 | POST |
字符编码 | 统一使用UTF-8编码 |
响应格式 | 统一采用application/x-www-form-urlencoded格式 |
调用API需要向接口发送以下字段来访问服务。
字段名 | 类型 | 含义 | 必填 | 备注 |
---|---|---|---|---|
img | text | 要识别的图片,需要Base64编码 | True | 必须是Base64编码 |
langType | text | 要识别的语言类型 | True | 目前支持八十余种语言的识别,具体参见支持的语种列表 |
detectType | text | 识别类型,按行识别 | true | 按行识别:10012 |
imageType | text | 图片类型,目前只支持Base64 | True | 目前只支持Base64:1,imageType的值为1 |
appKey | text | 应用ID | True | 可在应用管理查看 |
salt | text | 随机字符串,最好是UUID,和curtime一起防请求重放 | True | uuid,唯一通用识别码 |
sign | text | 签名,sha256(appKey+input+salt+curtime+密钥) | True | appKey+img+salt+curtime+应用密钥 |
docType | text | 服务器响应类型,目前只支持json | True | json |
signType | text | 签名类型 | true | v3 |
curtime | text | 当前UTC时间戳(秒) | true | TimeStamp |
angle | text | 是否进行360角度识别 | false | 0:不识别,1:识别。默认不识别(0) |
column | text | 是否按多列识别 | false | onecolumn:按单列识别;columns:按多列识别。默认按单列识别 |
rotate | text | 是否需要获得文字旋转角度 | false | donot_rotate:不需要旋转,返回angle倾斜角度,可自行旋转;rotate:根据angle旋转,不返回angle倾斜角度。默认旋转 |
签名生成方法如下:
signType=v3;
sign=sha256(应用ID
+input
+salt
+curtime
+应用密钥
)。
其中,input的计算方式为:input
=img前10个字符
+ img长度
+ img后十个字符
(当img长度大于20)或 input
=img字符串
(当img长度小于等于20)。
不同语言获取时间戳,请参看此链接
如果对签名有疑问,可以参看文档末尾各语言demo。
返回的结果是json格式,具体说明如下:
字段 | 类型 | 字段说明 |
---|---|---|
errorCode | text | 错误码,一定存在 |
Result | text | 识别结果,查询成功一定存在 |
+orientation | text | 图片方向 |
+regions | jsonarray | 区域,查询正确一定存在 |
++lang | text | 该行文本的语言 |
++dir | text | 方向;h:行;v:列,竖排识别 |
++lines | jsonarray | 行,查询正确一定存在 |
+++words | jsonarray | 字,查询正确一定存在 |
++++word | text | 识别的字的结果 |
+++text | text | 行识别结果 |
boundingBox | text | 段落、行、字的区域位置信息 |
即识别结果主要在Result中,输出结构为:regions->lines->words.一个文档可能有多个region,代表段落,一个段落有多行,一行有多个字。
每个段落、每行、每个字都有boundingBox,代表能够框住段落、行、字的最大box的位置信息。
boundingBox共八个值:分别是左上角坐标(x,y),右上角坐标(x,y),右下角坐标(x,y),左下角(x,y)。
具体可参见下面的参考示例。
识别的返回结果:
{
"errorCode": "0", //识别错误码
"Result": { //识别结果
"orientation": "UP",//图像方向
"regions": [ //段落
{
"boundingBox": "90,56,232,56,232,244,90,244", //段落区域位置信息
"dir": "h", //按行识别
"lang": "zh", //语种
"lines": [ //行
{
"boundingBox": "116,56,204,56,204,82,116,82", //行区域位置信息
"words": [ //字
{
"boundingBox": "124,54,148,54,148,86,124,86", //字区域位置信息
"word": "静" //字识别结果
},
{
"boundingBox": "156,54,172,53,172,85,156,86",
"word": "夜"
},
{
"boundingBox": "180,53,204,53,204,85,180,85",
"word": "思"
}
],
"text": "静夜思" //行识别结果
},
...
]
}
]
}
}
语言代码 | 语言 |
---|---|
sq | 阿尔巴尼亚语 |
az | 阿塞拜疆语 |
eu | 巴斯克语 |
be | 白俄罗斯语 |
bs | 波斯尼亚文(拉丁文) |
bg | 保加利亚文 |
ca | 加泰罗尼亚文(加泰隆语) |
ceb | 宿务语 |
ny | 齐切瓦语 |
zh-CHS | 中文 |
zh-CHT | 中文(繁体) |
co | 科西嘉语 |
hr | 克罗地亚文 |
cs | 捷克文 |
da | 丹麦文 |
nl | 荷兰文 |
en | 英文 |
eo | 世界语 |
et | 爱沙尼亚文 |
fi | 芬兰文 |
fr | 法文 |
gd | 苏格兰盖尔语 |
gl | 加利西亚语 |
de | 德文 |
ht | 海地文 |
ha | 豪萨语 |
haw | 夏威夷语 |
hi | 印地文 |
hu | 匈牙利文 |
is | 冰岛语 |
ig | 伊博语 |
id | 印度尼西亚文 |
ga | 爱尔兰语 |
it | 意大利文 |
ja | 日文 |
jw | 印尼爪哇语 |
ko | 韩文 |
ku | 库尔德语 |
la | 拉丁语 |
lv | 拉脱维亚文 |
lt | 立陶宛文 |
lb | 卢森堡语 |
mk | 马其顿语 |
mg | 马尔加什语 |
ms | 马来文 |
mt | 马耳他文 |
mi | 毛利语 |
mr | 马拉地语 |
mn | 蒙古语 |
ne | 尼泊尔语 |
no | 挪威文 |
pl | 波兰文 |
pt | 葡萄牙文 |
ro | 罗马尼亚文 |
ru | 俄文 |
sm | 萨摩亚语 |
sr-Latn | 塞尔维亚文(拉丁文) |
sn | 修纳语 |
sk | 斯洛伐克文 |
sl | 斯洛文尼亚文 |
so | 索马里语 |
st | 塞索托语 |
es | 西班牙文 |
su | 印尼巽他语 |
sw | 斯瓦希里文 |
sv | 瑞典文 |
tl | 菲律宾语 |
tg | 塔吉克语 |
tr | 土耳其文 |
uk | 乌克兰文 |
uz | 乌兹别克语 |
vi | 越南文 |
cy | 威尔士文 |
fy | 弗里斯兰语 |
yo | 约鲁巴语 |
zu | 南非祖鲁语 |
hmn | 苗族语 |
xh | 班图 |
af | 南非荷兰 |
ar | 阿拉伯文 |
bg | 保加利亚语 |
bn | 孟加拉语 |
bs | 波斯尼亚语 |
el | 希腊 |
gu | 古吉拉特 |
he | 希伯来 |
ht | 海地克里奥尔 |
ka | 格鲁吉亚 |
km | 高棉 |
kn | 卡纳达 |
ky | 柯尔克孜语(吉尔吉斯语) |
ml | 马拉雅拉姆语 |
mww | 白苗语 |
my | 缅甸 |
otq | 克雷塔罗奥托米语 |
pa | 旁遮普语 |
prs | 达里语 |
ps | 普什图语 |
rw | 卢旺达语 |
sr-Cyrl | 塞尔维亚语(西里尔文) |
te | 泰卢固语 |
th | 泰语 |
tk | 土库曼语 |
to | 汤加语 |
ur | 乌尔都语 |
yi | 意第绪语 |
yua | 尤卡坦玛雅语 |
auto | 自动识别 |
auto
支持所有语种的自动识别
支持图片格式 | 每小时最大请求次数 | 图片大小 | 图片分辨率 |
---|---|---|---|
jpg\png\bmp | 3600 | 图像编码后大小必须小于2M, 建议不要超过1M; (编码后大于1M的图像会被缩放,影响效果, 建议控制输入图像大小) | 图片的长和宽要求最短边大于10px, 最长边小于2048 px。 |
错误码 | 含义 |
---|---|
101 | 缺少必填的参数,首先确保必填参数齐全,然后,确认参数书写是否正确。 |
102 | 不支持的语言类型 |
103 | 翻译文本过长 |
104 | 不支持的API类型 |
105 | 不支持的签名类型 |
106 | 不支持的响应类型 |
107 | 不支持的传输加密类型 |
108 | 应用ID无效,注册账号,登录后台创建应用并完成绑定,可获得应用ID和应用密钥等信息 |
109 | batchLog格式不正确 |
110 | 无相关服务的有效应用,应用没有绑定。注:某些服务的结果发音需要tts服务,需要在控制台创建语音合成实例绑定应用后方能使用。 |
111 | 开发者账号无效 |
112 | 请求服务无效 |
113 | q不能为空 |
114 | 不支持的图片传输方式 |
201 | 解密失败,可能为DES,BASE64,URLDecode的错误 |
202 | 签名检验失败,如果确认应用ID和应用密钥的正确性,仍返回202,一般是编码问题。请确保 img 为 UTF-8 编码. |
203 | 访问IP地址不在可访问IP列表 |
205 | 请求的接口与应用的平台类型不一致,确保接入方式(Android SDK、IOS SDK、API)与创建的应用平台类型一致。如有疑问请参考入门指南 |
206 | 因为时间戳无效导致签名校验失败 |
207 | 重放请求 |
301 | 辞典查询失败 |
302 | 翻译查询失败 |
303 | 服务端的其它异常 |
304 | 会话闲置太久超时 |
401 | 账户已经欠费停 |
402 | offlinesdk不可用 |
411 | 访问频率受限,请稍后访问 |
412 | 长请求过于频繁,请稍后访问 |
1001 | 无效的OCR类型 |
1002 | 不支持的OCR image类型 |
1003 | 不支持的OCR Language类型 |
1004 | 识别图片过大,超过最大限制 |
1005 | angle参数错误 |
1006 | 图片不能为空 |
1007 | columns参数错误 |
1008 | rotate参数错误 |
1201 | 图片base64解密失败 |
1301 | OCR段落识别失败 |
1411 | 访问频率受限 |