通用文字識別 API 簡介
概念解釋
通用文字識別:將自然場景下圖片上的文字內(nèi)容,通過定位和檢測,智能識別為可編輯的文本信息。
說明
Hi,您好,歡迎使用有道智云通用文字識別 API接口服務。
如果您想快速體驗服務,建議您前往 體驗中心 或者在體驗中心右下側(cè)找到小程序二維碼,掃描進行體驗。
本文檔主要針對需要集成HTTP API的技術開發(fā)工程師,詳細描述OCR識別能力相關的技術內(nèi)容。
如果您有與我們商務合作的需求,可以通過以下方式聯(lián)系我們:
商務郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云OCR技術交流QQ 1群: 654064748
智云OCR技術交流QQ 2群: 471638046
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
- 本文檔主要針對開發(fā)人員,接入測試前需要獲取
應用ID和應用密鑰;如果您還沒有,請按照 新手指南 獲取。
- 平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見 通用文字識別服務報價 。
接口能力
有道智云OCR API接口提供有道的OCR文字識別服務,目前有道智云OCR支持八十種語言的文字識別。您只需要通過調(diào)用有道智云OCR API,傳入經(jīng)過Base64編碼的圖片,通過POST請求方式,就可以得到相應的文字識別結(jié)果。
有道智云OCR API HTTPS地址:
https://openapi.youdao.com/ocrapi
注:請求采用application/x-www-form-urlencoded,不用JSON。
協(xié)議須知
調(diào)用方在集成通用文字識別 API時,請遵循以下規(guī)則。
| 規(guī)則 |
描述 |
| 傳輸方式 |
HTTPS |
| 請求方式 |
POST |
| 字符編碼 |
統(tǒng)一使用UTF-8編碼 |
| 響應格式 |
統(tǒng)一采用application/x-www-form-urlencoded格式 |
接口調(diào)用參數(shù)
調(diào)用API需要向接口發(fā)送以下字段來訪問服務。
| 字段名 |
類型 |
含義 |
必填 |
備注 |
| 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 |
是否需要獲得文字旋轉(zhuǎn)角度 |
false |
donot_rotate:不需要旋轉(zhuǎn),返回angle傾斜角度,可自行旋轉(zhuǎn);rotate:根據(jù)angle旋轉(zhuǎn),不返回angle傾斜角度。默認旋轉(zhuǎn) |
簽名生成方法如下:
signType=v3;
sign=sha256(應用ID+input+salt+curtime+應用密鑰)。
其中,input的計算方式為:input=img前10個字符 + img長度 + img后十個字符(當img長度大于20)或 input=img字符串(當img長度小于等于20)。
不同語言獲取時間戳,請參看此鏈接
如果對簽名有疑問,可以參看文檔末尾各語言demo。
輸出結(jié)果
返回的結(jié)果是json格式,具體說明如下:
| 字段 |
類型 |
字段說明 |
| errorCode |
text |
錯誤碼,一定存在 |
| Result |
text |
識別結(jié)果,查詢成功一定存在 |
| +orientation |
text |
圖片方向 |
| +regions |
jsonarray |
區(qū)域,查詢正確一定存在 |
| ++lang |
text |
該行文本的語言 |
| ++dir |
text |
方向;h:行;v:列,豎排識別 |
| ++lines |
jsonarray |
行,查詢正確一定存在 |
| +++words |
jsonarray |
字,查詢正確一定存在 |
| ++++word |
text |
識別的字的結(jié)果 |
| +++text |
text |
行識別結(jié)果 |
| boundingBox |
text |
段落、行、字的區(qū)域位置信息 |
即識別結(jié)果主要在Result中,輸出結(jié)構(gòu)為:regions->lines->words.一個文檔可能有多個region,代表段落,一個段落有多行,一行有多個字。
每個段落、每行、每個字都有boundingBox,代表能夠框住段落、行、字的最大box的位置信息。
boundingBox共八個值:分別是左上角坐標(x,y),右上角坐標(x,y),右下角坐標(x,y),左下角(x,y)。
具體可參見下面的參考示例。
參考示例
識別的返回結(jié)果:
{
"errorCode": "0", //識別錯誤碼
"Result": { //識別結(jié)果
"orientation": "UP",//圖像方向
"regions": [ //段落
{
"boundingBox": "90,56,232,56,232,244,90,244", //段落區(qū)域位置信息
"dir": "h", //按行識別
"lang": "zh", //語種
"lines": [ //行
{
"boundingBox": "116,56,204,56,204,82,116,82", //行區(qū)域位置信息
"words": [ //字
{
"boundingBox": "124,54,148,54,148,86,124,86", //字區(qū)域位置信息
"word": "靜" //字識別結(jié)果
},
{
"boundingBox": "156,54,172,53,172,85,156,86",
"word": "夜"
},
{
"boundingBox": "180,53,204,53,204,85,180,85",
"word": "思"
}
],
"text": "靜夜思" //行識別結(jié)果
},
...
]
}
]
}
}
支持語言
| 語言代碼 |
語言 |
| 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支持所有語種的自動識別
服務配置
| 支持圖片格式 |
每小時最大請求次數(shù) |
圖片大小 |
圖片分辨率 |
| jpg\png\bmp |
3600 |
圖像編碼后大小必須小于2M, 建議不要超過1M; (編碼后大于1M的圖像會被縮放,影響效果, 建議控制輸入圖像大小) |
圖片的長和寬要求最短邊大于10px, 最長邊小于2048 px。 |
錯誤代碼列表
| 錯誤碼 |
含義 |
| 101 |
缺少必填的參數(shù),首先確保必填參數(shù)齊全,然后,確認參數(shù)書寫是否正確。 |
| 102 |
不支持的語言類型 |
| 103 |
翻譯文本過長 |
| 104 |
不支持的API類型 |
| 105 |
不支持的簽名類型 |
| 106 |
不支持的響應類型 |
| 107 |
不支持的傳輸加密類型 |
| 108 |
應用ID無效,注冊賬號,登錄后臺創(chuàng)建應用并完成綁定,可獲得應用ID和應用密鑰等信息 |
| 109 |
batchLog格式不正確 |
| 110 |
無相關服務的有效應用,應用沒有綁定。注:某些服務的結(jié)果發(fā)音需要tts服務,需要在控制臺創(chuàng)建語音合成實例綁定應用后方能使用。 |
| 111 |
開發(fā)者賬號無效 |
| 112 |
請求服務無效 |
| 113 |
q不能為空 |
| 114 |
不支持的圖片傳輸方式 |
| 201 |
解密失敗,可能為DES,BASE64,URLDecode的錯誤 |
| 202 |
簽名檢驗失敗,如果確認應用ID和應用密鑰的正確性,仍返回202,一般是編碼問題。請確保 img 為 UTF-8 編碼. |
| 203 |
訪問IP地址不在可訪問IP列表 |
| 205 |
請求的接口與應用的平臺類型不一致,確保接入方式(Android SDK、IOS SDK、API)與創(chuàng)建的應用平臺類型一致。如有疑問請參考入門指南 |
| 206 |
因為時間戳無效導致簽名校驗失敗 |
| 207 |
重放請求(接口salt+curtime來防重放(即一個請求不可以被請求2次),所以salt最好為UUID。) |
| 301 |
辭典查詢失敗 |
| 302 |
翻譯查詢失敗 |
| 303 |
服務端的其它異常 |
| 304 |
會話閑置太久超時 |
| 401 |
賬戶已經(jīng)欠費停 |
| 402 |
offlinesdk不可用 |
| 411 |
訪問頻率受限,請稍后訪問 |
| 412 |
長請求過于頻繁,請稍后訪問 |
| 1001 |
無效的OCR類型 |
| 1002 |
不支持的OCR image類型 |
| 1003 |
不支持的OCR Language類型 |
| 1004 |
識別圖片過大,超過最大限制 |
| 1005 |
angle參數(shù)錯誤 |
| 1006 |
圖片不能為空 |
| 1007 |
columns參數(shù)錯誤 |
| 1008 |
rotate參數(shù)錯誤 |
| 1201 |
圖片base64解密失敗 |
| 1301 |
OCR段落識別失敗 |
| 1411 |
訪問頻率受限 |
常用語言 Demo
Java 示例
通用ocr Java demo
Python3 示例
通用ocr python3 demo
C#示例
通用ocr c# demo
PHP 示例
通用ocr php demo
go 示例
通用ocr go demo