通用文字識(shí)別 API 簡介
概念解釋
通用文字識(shí)別:將自然場景下圖片上的文字內(nèi)容,通過定位和檢測,智能識(shí)別為可編輯的文本信息。
說明
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ù)合作的需求,可以通過以下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對(duì)文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云OCR技術(shù)交流QQ 1群: 654064748
智云OCR技術(shù)交流QQ 2群: 471638046
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
- 本文檔主要針對(duì)開發(fā)人員,接入測試前需要獲取應(yīng)用ID和應(yīng)用密鑰;如果您還沒有,請(qǐng)按照 新手指南 獲取。
- 平臺(tái)向每個(gè)賬戶贈(zèng)送50元的體驗(yàn)金,供用戶集成前測試所用,具體資費(fèi)規(guī)則詳見 通用文字識(shí)別服務(wù)報(bào)價(jià) 。
接口能力
有道智云OCR API接口提供有道的OCR文字識(shí)別服務(wù),目前有道智云OCR支持八十種語言的文字識(shí)別。您只需要通過調(diào)用有道智云OCR API,傳入經(jīng)過Base64編碼的圖片,通過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ā)送以下字段來訪問服務(wù)。
| 字段名 | 類型 | 含義 | 必填 | 備注 | 
| img | text | 要識(shí)別的圖片,需要Base64編碼 | True | 必須是Base64編碼 | 
| langType | text | 要識(shí)別的語言類型 | True | 目前支持八十余種語言的識(shí)別,具體參見支持的語種列表 | 
| 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長度 + img后十個(gè)字符(當(dāng)img長度大于20)或 input=img字符串(當(dāng)img長度小于等于20)。
不同語言獲取時(shí)間戳,請(qǐng)參看此鏈接
如果對(duì)簽名有疑問,可以參看文檔末尾各語言demo。
輸出結(jié)果
返回的結(jié)果是json格式,具體說明如下:
| 字段 | 類型 | 字段說明 | 
| errorCode | text | 錯(cuò)誤碼,一定存在 | 
| Result | text | 識(shí)別結(jié)果,查詢成功一定存在 | 
| +orientation | text | 圖片方向 | 
| +regions | jsonarray | 區(qū)域,查詢正確一定存在 | 
| ++lang | text | 該行文本的語言 | 
| ++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",	//語種
            "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é)果
        },
        ...
        ]
        }
        ]
    }
}
支持語言
| 語言代碼 | 語言 | 
| sq | 阿爾巴尼亞語 | 
| az | 阿塞拜疆語 | 
| eu | 巴斯克語 | 
| be | 白俄羅斯語 | 
| bs | 波斯尼亞文(拉丁文) | 
| bg | 保加利亞文 | 
| ca | 加泰羅尼亞文(加泰隆語) | 
| ceb | 宿務(wù)語 | 
| 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 | 卡納達(dá) | 
| ky | 柯爾克孜語(吉爾吉斯語) | 
| ml | 馬拉雅拉姆語 | 
| mww | 白苗語 | 
| my | 緬甸 | 
| otq | 克雷塔羅奧托米語 | 
| pa | 旁遮普語 | 
| prs | 達(dá)里語 | 
| ps | 普什圖語 | 
| rw | 盧旺達(dá)語 | 
| sr-Cyrl | 塞爾維亞語(西里爾文) | 
| te | 泰盧固語 | 
| th | 泰語 | 
| tk | 土庫曼語 | 
| to | 湯加語 | 
| ur | 烏爾都語 | 
| yi | 意第緒語 | 
| yua | 尤卡坦瑪雅語 | 
| auto | 自動(dòng)識(shí)別 | 
auto支持所有語種的自動(dòng)識(shí)別
服務(wù)配置
| 支持圖片格式 | 每小時(shí)最大請(qǐng)求次數(shù) | 圖片大小 | 圖片分辨率 | 
| jpg\png\bmp | 3600 | 圖像編碼后大小必須小于2M, 建議不要超過1M;
 (編碼后大于1M的圖像會(huì)被縮放,影響效果,
 建議控制輸入圖像大小)
 | 圖片的長和寬要求最短邊大于10px, 最長邊小于2048 px。
 | 
錯(cuò)誤代碼列表
| 錯(cuò)誤碼 | 含義 | 
| 101 | 缺少必填的參數(shù),首先確保必填參數(shù)齊全,然后,確認(rèn)參數(shù)書寫是否正確。 | 
| 102 | 不支持的語言類型 | 
| 103 | 翻譯文本過長 | 
| 104 | 不支持的API類型 | 
| 105 | 不支持的簽名類型 | 
| 106 | 不支持的響應(yīng)類型 | 
| 107 | 不支持的傳輸加密類型 | 
| 108 | 應(yīng)用ID無效,注冊(cè)賬號(hào),登錄后臺(tái)創(chuàng)建應(yīng)用并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 | 
| 109 | batchLog格式不正確 | 
| 110 | 無相關(guān)服務(wù)的有效應(yīng)用,應(yīng)用沒有綁定。注:某些服務(wù)的結(jié)果發(fā)音需要tts服務(wù),需要在控制臺(tái)創(chuàng)建語音合成實(shí)例綁定應(yīng)用后方能使用。 | 
| 111 | 開發(fā)者賬號(hào)無效 | 
| 112 | 請(qǐng)求服務(wù)無效 | 
| 113 | q不能為空 | 
| 114 | 不支持的圖片傳輸方式 | 
| 201 | 解密失敗,可能為DES,BASE64,URLDecode的錯(cuò)誤 | 
| 202 | 簽名檢驗(yàn)失敗,如果確認(rèn)應(yīng)用ID和應(yīng)用密鑰的正確性,仍返回202,一般是編碼問題。請(qǐng)確保 img為 UTF-8 編碼. | 
| 203 | 訪問IP地址不在可訪問IP列表 | 
| 205 | 請(qǐng)求的接口與應(yīng)用的平臺(tái)類型不一致,確保接入方式(Android SDK、IOS SDK、API)與創(chuàng)建的應(yīng)用平臺(tái)類型一致。如有疑問請(qǐng)參考入門指南 | 
| 206 | 因?yàn)闀r(shí)間戳無效導(dǎo)致簽名校驗(yàn)失敗 | 
| 207 | 重放請(qǐng)求(接口salt+curtime來防重放(即一個(gè)請(qǐng)求不可以被請(qǐng)求2次),所以salt最好為UUID。) | 
| 301 | 辭典查詢失敗 | 
| 302 | 翻譯查詢失敗 | 
| 303 | 服務(wù)端的其它異常 | 
| 304 | 會(huì)話閑置太久超時(shí) | 
| 401 | 賬戶已經(jīng)欠費(fèi)停 | 
| 402 | offlinesdk不可用 | 
| 411 | 訪問頻率受限,請(qǐng)稍后訪問 | 
| 412 | 長請(qǐng)求過于頻繁,請(qǐng)稍后訪問 | 
| 1001 | 無效的OCR類型 | 
| 1002 | 不支持的OCR image類型 | 
| 1003 | 不支持的OCR Language類型 | 
| 1004 | 識(shí)別圖片過大,超過最大限制 | 
| 1005 | angle參數(shù)錯(cuò)誤 | 
| 1006 | 圖片不能為空 | 
| 1007 | columns參數(shù)錯(cuò)誤 | 
| 1008 | rotate參數(shù)錯(cuò)誤 | 
| 1201 | 圖片base64解密失敗 | 
| 1301 | OCR段落識(shí)別失敗 | 
| 1411 | 訪問頻率受限 | 
常用語言 Demo
Java 示例
通用ocr Java demo
Python3 示例
通用ocr python3 demo
C#示例
通用ocr c# demo
PHP 示例
通用ocr php demo
go 示例
通用ocr go demo