通用文字識(shí)別 API 簡(jiǎn)介
概念解釋
通用文字識(shí)別:將自然場(chǎng)景下圖片上的文字內(nèi)容,通過(guò)定位和檢測(cè),智能識(shí)別為可編輯的文本信息。
說(shuō)明
Hi,您好,歡迎使用有道智云通用文字識(shí)別 API接口服務(wù)。
如果您想快速體驗(yàn)服務(wù),建議您前往 體驗(yàn)中心 或者在體驗(yàn)中心右下側(cè)找到小程序二維碼,掃描進(jìn)行體驗(yàn)。
本文檔主要針對(duì)需要集成HTTP API的技術(shù)開發(fā)工程師,詳細(xì)描述OCR識(shí)別能力相關(guān)的技術(shù)內(nèi)容。
如果您有與我們商務(wù)合作的需求,可以通過(guò)以下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對(duì)文檔內(nèi)容有任何疑問(wèn),可以通過(guò)以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云OCR技術(shù)交流QQ 1群: 654064748
智云OCR技術(shù)交流QQ 2群: 471638046
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
- 本文檔主要針對(duì)開發(fā)人員,接入測(cè)試前需要獲取
應(yīng)用ID
和應(yīng)用密鑰
;如果您還沒(méi)有,請(qǐng)按照 新手指南 獲取。
- 平臺(tái)向每個(gè)賬戶贈(zèng)送50元的體驗(yàn)金,供用戶集成前測(cè)試所用,具體資費(fèi)規(guī)則詳見 通用文字識(shí)別服務(wù)報(bào)價(jià) 。
接口能力
有道智云OCR API接口提供有道的OCR文字識(shí)別服務(wù),目前有道智云OCR支持八十種語(yǔ)言的文字識(shí)別。您只需要通過(guò)調(diào)用有道智云OCR API,傳入經(jīng)過(guò)Base64編碼的圖片,通過(guò)POST請(qǐng)求方式,就可以得到相應(yīng)的文字識(shí)別結(jié)果。
有道智云OCR API HTTPS地址:
https://openapi.youdao.com/ocrapi
注:請(qǐng)求采用application/x-www-form-urlencoded,不用JSON。
協(xié)議須知
調(diào)用方在集成通用文字識(shí)別 API時(shí),請(qǐng)遵循以下規(guī)則。
規(guī)則 |
描述 |
傳輸方式 |
HTTPS |
請(qǐng)求方式 |
POST |
字符編碼 |
統(tǒng)一使用UTF-8編碼 |
響應(yīng)格式 |
統(tǒng)一采用application/x-www-form-urlencoded格式 |
接口調(diào)用參數(shù)
調(diào)用API需要向接口發(fā)送以下字段來(lái)訪問(wèn)服務(wù)。
字段名 |
類型 |
含義 |
必填 |
備注 |
img |
text |
要識(shí)別的圖片,需要Base64編碼 |
True |
必須是Base64編碼 |
langType |
text |
要識(shí)別的語(yǔ)言類型 |
True |
目前支持八十余種語(yǔ)言的識(shí)別,具體參見支持的語(yǔ)種列表 |
detectType |
text |
識(shí)別類型,按行識(shí)別 |
true |
按行識(shí)別:10012 |
imageType |
text |
圖片類型,目前只支持Base64 |
True |
目前只支持Base64:1,imageType的值為1 |
appKey |
text |
應(yīng)用ID |
True |
可在應(yīng)用管理查看 |
salt |
text |
隨機(jī)字符串,最好是UUID,和curtime一起防請(qǐng)求重放 |
True |
uuid,唯一通用識(shí)別碼 |
sign |
text |
簽名,sha256(appKey+input+salt+curtime+密鑰) |
True |
appKey+img+salt+curtime+應(yīng)用密鑰 |
docType |
text |
服務(wù)器響應(yīng)類型,目前只支持json |
True |
json |
signType |
text |
簽名類型 |
true |
v3 |
curtime |
text |
當(dāng)前UTC時(shí)間戳(秒) |
true |
TimeStamp |
angle |
text |
是否進(jìn)行360角度識(shí)別 |
false |
0:不識(shí)別,1:識(shí)別。默認(rèn)不識(shí)別(0) |
column |
text |
是否按多列識(shí)別 |
false |
onecolumn:按單列識(shí)別;columns:按多列識(shí)別。默認(rèn)按單列識(shí)別 |
rotate |
text |
是否需要獲得文字旋轉(zhuǎn)角度 |
false |
donot_rotate:不需要旋轉(zhuǎn),返回angle傾斜角度,可自行旋轉(zhuǎn);rotate:根據(jù)angle旋轉(zhuǎn),不返回angle傾斜角度。默認(rèn)旋轉(zhuǎn) |
簽名生成方法如下:
signType=v3;
sign=sha256(應(yīng)用ID
+input
+salt
+curtime
+應(yīng)用密鑰
)。
其中,input的計(jì)算方式為:input
=img前10個(gè)字符
+ img長(zhǎng)度
+ img后十個(gè)字符
(當(dāng)img長(zhǎng)度大于20)或 input
=img字符串
(當(dāng)img長(zhǎng)度小于等于20)。
不同語(yǔ)言獲取時(shí)間戳,請(qǐng)參看此鏈接
如果對(duì)簽名有疑問(wèn),可以參看文檔末尾各語(yǔ)言demo。
輸出結(jié)果
返回的結(jié)果是json格式,具體說(shuō)明如下:
字段 |
類型 |
字段說(shuō)明 |
errorCode |
text |
錯(cuò)誤碼,一定存在 |
Result |
text |
識(shí)別結(jié)果,查詢成功一定存在 |
+orientation |
text |
圖片方向 |
+regions |
jsonarray |
區(qū)域,查詢正確一定存在 |
++lang |
text |
該行文本的語(yǔ)言 |
++dir |
text |
方向;h:行;v:列,豎排識(shí)別 |
++lines |
jsonarray |
行,查詢正確一定存在 |
+++words |
jsonarray |
字,查詢正確一定存在 |
++++word |
text |
識(shí)別的字的結(jié)果 |
+++text |
text |
行識(shí)別結(jié)果 |
boundingBox |
text |
段落、行、字的區(qū)域位置信息 |
即識(shí)別結(jié)果主要在Result中,輸出結(jié)構(gòu)為:regions->lines->words.一個(gè)文檔可能有多個(gè)region,代表段落,一個(gè)段落有多行,一行有多個(gè)字。
每個(gè)段落、每行、每個(gè)字都有boundingBox,代表能夠框住段落、行、字的最大box的位置信息。
boundingBox共八個(gè)值:分別是左上角坐標(biāo)(x,y),右上角坐標(biāo)(x,y),右下角坐標(biāo)(x,y),左下角(x,y)。
具體可參見下面的參考示例。
參考示例
識(shí)別的返回結(jié)果:
{
"errorCode": "0", //識(shí)別錯(cuò)誤碼
"Result": { //識(shí)別結(jié)果
"orientation": "UP",//圖像方向
"regions": [ //段落
{
"boundingBox": "90,56,232,56,232,244,90,244", //段落區(qū)域位置信息
"dir": "h", //按行識(shí)別
"lang": "zh", //語(yǔ)種
"lines": [ //行
{
"boundingBox": "116,56,204,56,204,82,116,82", //行區(qū)域位置信息
"words": [ //字
{
"boundingBox": "124,54,148,54,148,86,124,86", //字區(qū)域位置信息
"word": "靜" //字識(shí)別結(jié)果
},
{
"boundingBox": "156,54,172,53,172,85,156,86",
"word": "夜"
},
{
"boundingBox": "180,53,204,53,204,85,180,85",
"word": "思"
}
],
"text": "靜夜思" //行識(shí)別結(jié)果
},
...
]
}
]
}
}
支持語(yǔ)言
語(yǔ)言代碼 |
語(yǔ)言 |
sq |
阿爾巴尼亞語(yǔ) |
az |
阿塞拜疆語(yǔ) |
eu |
巴斯克語(yǔ) |
be |
白俄羅斯語(yǔ) |
bs |
波斯尼亞文(拉丁文) |
bg |
保加利亞文 |
ca |
加泰羅尼亞文(加泰隆語(yǔ)) |
ceb |
宿務(wù)語(yǔ) |
ny |
齊切瓦語(yǔ) |
zh-CHS |
中文 |
zh-CHT |
中文(繁體) |
co |
科西嘉語(yǔ) |
hr |
克羅地亞文 |
cs |
捷克文 |
da |
丹麥文 |
nl |
荷蘭文 |
en |
英文 |
eo |
世界語(yǔ) |
et |
愛沙尼亞文 |
fi |
芬蘭文 |
fr |
法文 |
gd |
蘇格蘭蓋爾語(yǔ) |
gl |
加利西亞語(yǔ) |
de |
德文 |
ht |
海地文 |
ha |
豪薩語(yǔ) |
haw |
夏威夷語(yǔ) |
hi |
印地文 |
hu |
匈牙利文 |
is |
冰島語(yǔ) |
ig |
伊博語(yǔ) |
id |
印度尼西亞文 |
ga |
愛爾蘭語(yǔ) |
it |
意大利文 |
ja |
日文 |
jw |
印尼爪哇語(yǔ) |
ko |
韓文 |
ku |
庫(kù)爾德語(yǔ) |
la |
拉丁語(yǔ) |
lv |
拉脫維亞文 |
lt |
立陶宛文 |
lb |
盧森堡語(yǔ) |
mk |
馬其頓語(yǔ) |
mg |
馬爾加什語(yǔ) |
ms |
馬來(lái)文 |
mt |
馬耳他文 |
mi |
毛利語(yǔ) |
mr |
馬拉地語(yǔ) |
mn |
蒙古語(yǔ) |
ne |
尼泊爾語(yǔ) |
no |
挪威文 |
pl |
波蘭文 |
pt |
葡萄牙文 |
ro |
羅馬尼亞文 |
ru |
俄文 |
sm |
薩摩亞語(yǔ) |
sr-Latn |
塞爾維亞文(拉丁文) |
sn |
修納語(yǔ) |
sk |
斯洛伐克文 |
sl |
斯洛文尼亞文 |
so |
索馬里語(yǔ) |
st |
塞索托語(yǔ) |
es |
西班牙文 |
su |
印尼巽他語(yǔ) |
sw |
斯瓦希里文 |
sv |
瑞典文 |
tl |
菲律賓語(yǔ) |
tg |
塔吉克語(yǔ) |
tr |
土耳其文 |
uk |
烏克蘭文 |
uz |
烏茲別克語(yǔ) |
vi |
越南文 |
cy |
威爾士文 |
fy |
弗里斯蘭語(yǔ) |
yo |
約魯巴語(yǔ) |
zu |
南非祖魯語(yǔ) |
hmn |
苗族語(yǔ) |
xh |
班圖 |
af |
南非荷蘭 |
ar |
阿拉伯文 |
bg |
保加利亞語(yǔ) |
bn |
孟加拉語(yǔ) |
bs |
波斯尼亞語(yǔ) |
el |
希臘 |
gu |
古吉拉特 |
he |
希伯來(lái) |
ht |
海地克里奧爾 |
ka |
格魯吉亞 |
km |
高棉 |
kn |
卡納達(dá) |
ky |
柯爾克孜語(yǔ)(吉爾吉斯語(yǔ)) |
ml |
馬拉雅拉姆語(yǔ) |
mww |
白苗語(yǔ) |
my |
緬甸 |
otq |
克雷塔羅奧托米語(yǔ) |
pa |
旁遮普語(yǔ) |
prs |
達(dá)里語(yǔ) |
ps |
普什圖語(yǔ) |
rw |
盧旺達(dá)語(yǔ) |
sr-Cyrl |
塞爾維亞語(yǔ)(西里爾文) |
te |
泰盧固語(yǔ) |
th |
泰語(yǔ) |
tk |
土庫(kù)曼語(yǔ) |
to |
湯加語(yǔ) |
ur |
烏爾都語(yǔ) |
yi |
意第緒語(yǔ) |
yua |
尤卡坦瑪雅語(yǔ) |
auto |
自動(dòng)識(shí)別 |
auto
支持所有語(yǔ)種的自動(dòng)識(shí)別
服務(wù)配置
支持圖片格式 |
每小時(shí)最大請(qǐng)求次數(shù) |
圖片大小 |
圖片分辨率 |
jpg\png\bmp |
3600 |
圖像編碼后大小必須小于2M, 建議不要超過(guò)1M; (編碼后大于1M的圖像會(huì)被縮放,影響效果, 建議控制輸入圖像大?。?/td>
| 圖片的長(zhǎng)和寬要求最短邊大于10px, 最長(zhǎng)邊小于2048 px。 |
錯(cuò)誤代碼列表
錯(cuò)誤碼 |
含義 |
101 |
缺少必填的參數(shù),首先確保必填參數(shù)齊全,然后,確認(rèn)參數(shù)書寫是否正確。 |
102 |
不支持的語(yǔ)言類型 |
103 |
翻譯文本過(guò)長(zhǎng) |
104 |
不支持的API類型 |
105 |
不支持的簽名類型 |
106 |
不支持的響應(yīng)類型 |
107 |
不支持的傳輸加密類型 |
108 |
應(yīng)用ID無(wú)效,注冊(cè)賬號(hào),登錄后臺(tái)創(chuàng)建應(yīng)用并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 |
109 |
batchLog格式不正確 |
110 |
無(wú)相關(guān)服務(wù)的有效應(yīng)用,應(yīng)用沒(méi)有綁定。注:某些服務(wù)的結(jié)果發(fā)音需要tts服務(wù),需要在控制臺(tái)創(chuàng)建語(yǔ)音合成實(shí)例綁定應(yīng)用后方能使用。 |
111 |
開發(fā)者賬號(hào)無(wú)效 |
112 |
請(qǐng)求服務(wù)無(wú)效 |
113 |
q不能為空 |
114 |
不支持的圖片傳輸方式 |
201 |
解密失敗,可能為DES,BASE64,URLDecode的錯(cuò)誤 |
202 |
簽名檢驗(yàn)失敗,如果確認(rèn)應(yīng)用ID和應(yīng)用密鑰的正確性,仍返回202,一般是編碼問(wèn)題。請(qǐng)確保 img 為 UTF-8 編碼. |
203 |
訪問(wèn)IP地址不在可訪問(wèn)IP列表 |
205 |
請(qǐng)求的接口與應(yīng)用的平臺(tái)類型不一致,確保接入方式(Android SDK、IOS SDK、API)與創(chuàng)建的應(yīng)用平臺(tái)類型一致。如有疑問(wèn)請(qǐng)參考入門指南 |
206 |
因?yàn)闀r(shí)間戳無(wú)效導(dǎo)致簽名校驗(yàn)失敗 |
207 |
重放請(qǐng)求(接口salt+curtime來(lái)防重放(即一個(gè)請(qǐng)求不可以被請(qǐng)求2次),所以salt最好為UUID。) |
301 |
辭典查詢失敗 |
302 |
翻譯查詢失敗 |
303 |
服務(wù)端的其它異常 |
304 |
會(huì)話閑置太久超時(shí) |
401 |
賬戶已經(jīng)欠費(fèi)停 |
402 |
offlinesdk不可用 |
411 |
訪問(wèn)頻率受限,請(qǐng)稍后訪問(wèn) |
412 |
長(zhǎng)請(qǐng)求過(guò)于頻繁,請(qǐng)稍后訪問(wèn) |
1001 |
無(wú)效的OCR類型 |
1002 |
不支持的OCR image類型 |
1003 |
不支持的OCR Language類型 |
1004 |
識(shí)別圖片過(guò)大,超過(guò)最大限制 |
1005 |
angle參數(shù)錯(cuò)誤 |
1006 |
圖片不能為空 |
1007 |
columns參數(shù)錯(cuò)誤 |
1008 |
rotate參數(shù)錯(cuò)誤 |
1201 |
圖片base64解密失敗 |
1301 |
OCR段落識(shí)別失敗 |
1411 |
訪問(wèn)頻率受限 |
常用語(yǔ)言 Demo
Java 示例
通用ocr Java demo
Python3 示例
通用ocr python3 demo
C#示例
通用ocr c# demo
PHP 示例
通用ocr php demo
go 示例
通用ocr go demo