研究百度OCR的API,主要是向作對掃描版的各類PDF進行文字識別並轉Word文檔的需求。html
這裏用Postman客戶端進行測試和演示。由於Postman是對各類API操做的最佳入門方式。一旦在Postman裏實現了正確的調用,剩下的就只是一鍵生成代碼,和一些細節的修改了。git
參考百度雲官方文檔:文字識別API參考
下載官方文檔PDF:OCR.zh.pdfgithub
Token字符串
永遠是你使用別人API的第一步,簡單說,就是隻有你本身知道的密碼,在你每次向服務器發送的請求裏面加上這個字符串,就至關於完成了一次登陸。web
若是沒有Token受權認證,API的訪問可能會像瀏覽網頁同樣簡單。
Access Token
通常是調用API最重要也最麻煩的地方了:每一個公司都不同,各類設置安全問題讓你的Token複雜化。而百度雲的Token,真的是麻煩到必定地步了。安全
參考:百度API的鑑權認證機制 (建議你不要參考,由於它的流程圖會先把你鎮住的)服務器
簡單說,獲取百度雲token字符串的主要流程就是:網絡
https://aip.baidubce.com/oauth/2.0/token
app
其中,須要你向這個地址傳送三個參數:測試
grant_type = client_credentials
這個是固定的client_id = xxx
這個是你在百度雲管理後臺建立OCR應用的時候,那個應用的API Key
client_secret = xxx
這個是你的應用的Secret Key
來看看怎麼利用Postman操做,以下圖所示:
url
填好之後點擊Send發送,就會得到一個JSON數據,以下圖:
而後你用你的程序(Python, PHP, Node.js等,隨便),獲取這個JSON中的access_token
,
便可用到正式的API請求中,作爲受權認證。
API連接:https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic
提交方式:POST
調用方式有兩種:
直接把API所需的認證信息放在URL裏是最簡單最方便的。
建議忽略這種方式,須要填寫不少request的標準headers,太麻煩。
Headers設置:
Content-Type = application/x-www-form-urlencoded
只要填這一項就夠了。
Body數據傳送的各項參數:
access_token = xxx
把以前獲取到的token字符串填到這裏來image = xxx
把圖片轉成base64字符串填到這裏,不須要開頭的data:image/png;base64,
url = xxx
也能夠不用傳圖片而是傳一個圖片的連接。可是百年無效,不要用! language_type = CHN_ENG
識別語言類型。默認中英。Body的數據如圖所示:
而後就能夠點Send發送請求了。
成功後,能夠獲得百度雲返回的一個JSON數據,相似下圖:
返回的是一行一行的識別字符。百度雲的識別率是至關高的,幾乎100%吧。畢竟是國內本土的機器訓練出來的。
如下是百度雲的OCR經常使用API地址,每一個API所需的參數都差很少,略有不一樣。全部的API和地址以及詳細所需的參數,參考官方文檔,很簡單。一個弄明白了就其餘的都明白了。
API | 請求地址 | 調用量限制 |
---|---|---|
通用文字識別 | https://aip.baidubce.com/rest... | 50000次/天免費 |
通用文字識別(含位置信息版) | https://aip.baidubce.com/rest... | 500次/天免費 |
通用文字識別(高精度版) | https://aip.baidubce.com/rest... | 500次/天免費 |
通用文字識別(高精度含位置版) | https://aip.baidubce.com/rest... | 50次/天免費 |
網絡圖片文字識別 | https://aip.baidubce.com/rest... | 500次/天免費 |