帮助与文档 > 产品文档 > 视觉智能服务 > API文档 > 通用OCR
通用OCR

通用文字识别 API 简介

概念解释

通用文字识别:将自然场景下图片上的文字内容,通过定位和检测,智能识别为可编辑的文本信息。

说明

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应用密钥;如果您还没有,请按照 新手指南 获取。
  • 平台向每个账户赠送50元的体验金,供用户集成前测试所用,具体资费规则详见 通用文字识别服务报价

接口能力

有道智云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需要向接口发送以下字段来访问服务。

字段名类型含义必填备注
imgtext要识别的图片,需要Base64编码True必须是Base64编码
langTypetext要识别的语言类型True目前支持八十余种语言的识别,具体参见支持的语种列表
detectTypetext识别类型,按行识别true按行识别:10012
imageTypetext图片类型,目前只支持Base64True目前只支持Base64:1,imageType的值为1
appKeytext应用IDTrue可在应用管理查看
salttext随机字符串,最好是UUID,和curtime一起防请求重放Trueuuid,唯一通用识别码
signtext签名,sha256(appKey+input+salt+curtime+密钥)TrueappKey+img+salt+curtime+应用密钥
docTypetext服务器响应类型,目前只支持jsonTruejson
signTypetext签名类型truev3
curtimetext当前UTC时间戳(秒)trueTimeStamp
angletext是否进行360角度识别false0:不识别,1:识别。默认不识别(0)
columntext是否按多列识别falseonecolumn:按单列识别;columns:按多列识别。默认按单列识别
rotatetext是否需要获得文字旋转角度falsedonot_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格式,具体说明如下:

字段类型字段说明
errorCodetext错误码,一定存在
Resulttext识别结果,查询成功一定存在
+orientationtext图片方向
+regionsjsonarray区域,查询正确一定存在
++langtext该行文本的语言
++dirtext方向;h:行;v:列,竖排识别
++linesjsonarray行,查询正确一定存在
+++wordsjsonarray字,查询正确一定存在
++++wordtext识别的字的结果
+++texttext行识别结果
boundingBoxtext段落、行、字的区域位置信息

即识别结果主要在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\bmp3600图像编码后大小必须小于2M,
建议不要超过1M;
(编码后大于1M的图像会被缩放,影响效果,
建议控制输入图像大小)
图片的长和宽要求最短边大于10px,
最长边小于2048 px。

错误代码列表

错误码含义
101缺少必填的参数,首先确保必填参数齐全,然后,确认参数书写是否正确。
102不支持的语言类型
103翻译文本过长
104不支持的API类型
105不支持的签名类型
106不支持的响应类型
107不支持的传输加密类型
108应用ID无效,注册账号,登录后台创建应用并完成绑定,可获得应用ID和应用密钥等信息
109batchLog格式不正确
110无相关服务的有效应用,应用没有绑定。注:某些服务的结果发音需要tts服务,需要在控制台创建语音合成实例绑定应用后方能使用。
111开发者账号无效
112请求服务无效
113q不能为空
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账户已经欠费停
402offlinesdk不可用
411访问频率受限,请稍后访问
412长请求过于频繁,请稍后访问
1001无效的OCR类型
1002不支持的OCR image类型
1003不支持的OCR Language类型
1004识别图片过大,超过最大限制
1005angle参数错误
1006图片不能为空
1007columns参数错误
1008rotate参数错误
1201图片base64解密失败
1301OCR段落识别失败
1411访问频率受限

常用语言 Demo

Java 示例

通用ocr Java demo

Python3 示例

通用ocr python3 demo

C#示例

通用ocr c# demo

PHP 示例

通用ocr php demo

go 示例

通用ocr go demo