?? Solomon_Xie 簡書作者 0.7902018-06-02 09:23打開App 研究百度OCR的API,主要是向做對掃描版的各種PDF進(jìn)行文字識別并轉(zhuǎn)Word文檔的需求。 這里用Postman客戶端進(jìn)行測試和演示。因?yàn)镻ostman是對各種API操作的最佳入門方式。一旦在Postman里實(shí)現(xiàn)了正確的調(diào)用,剩下的就只是一鍵生成代碼,和一些細(xì)節(jié)的修改了。 參考百度云官方文檔:文字識別API參考 下載官方文檔PDF:OCR.zh.pdf 授權(quán)字符串 Access Token Token字符串永遠(yuǎn)是你使用別人API的第一步,簡單說,就是只有你自己知道的密碼,在你每次向服務(wù)器發(fā)送的請求里面加上這個字符串,就相當(dāng)于完成了一次登錄。 如果沒有Token授權(quán)認(rèn)證,API的訪問可能會像瀏覽網(wǎng)頁一樣簡單。 Access Token一般是調(diào)用API最重要也最麻煩的地方了:每個公司都不一樣,各種設(shè)置安全問題讓你的Token復(fù)雜化。而百度云的Token,真的是麻煩到一定地步了。 參考:百度API的鑒權(quán)認(rèn)證機(jī)制 (建議你不要參考,因?yàn)樗牧鞒虉D會先把你鎮(zhèn)住的) 簡單說,獲取百度云token字符串的主要流程就是: 創(chuàng)建一個應(yīng)用,獲得只有自己知道的id和密碼 用POST方式把id和密碼發(fā)給百度的一個鏈接: https://aip./oauth/2.0/token 其中,需要你向這個地址傳送三個參數(shù): grant_type = client_credentials 這個是固定的 client_id = xxx 這個是你在百度云管理后臺創(chuàng)建OCR應(yīng)用的時候,那個應(yīng)用的API Key client_secret = xxx 這個是你的應(yīng)用的Secret Key 等待服務(wù)器返還給你一個包含token字符串的數(shù)據(jù) 記住這個token字符串,并用來訪問每一次的API 來看看怎么利用Postman操作,如下圖所示: image 填好以后點(diǎn)擊Send發(fā)送,就會獲得一個JSON數(shù)據(jù),如下圖: image 然后你用你的程序(Python, PHP, Node.js等,隨便),獲取這個JSON中的access_token, 即可用到正式的API請求中,做為授權(quán)認(rèn)證。 正式調(diào)用API: 以"通用文字識別"為例 API鏈接:https://aip./rest/2.0/ocr/v1/general_basic 提交方式:POST 調(diào)用方式有兩種: 方式一:直接在URL填寫信息 直接把API所需的認(rèn)證信息放在URL里是最簡單最方便的。 方式二:Headers填寫信息方式 建議忽略這種方式,需要填寫很多request的標(biāo)準(zhǔn)headers,太麻煩。 Headers設(shè)置: Content-Type = application/x-www-form-urlencoded 只要填這一項(xiàng)就夠了。 Body數(shù)據(jù)傳送的各項(xiàng)參數(shù): access_token = xxx 把之前獲取到的token字符串填到這里來 image = xxx 把圖片轉(zhuǎn)成base64字符串填到這里,不需要開頭的data:image/png;base64, url = xxx 也可以不用傳圖片而是傳一個圖片的鏈接。但是百年無效,不要用! language_type = CHN_ENG 識別語言類型。默認(rèn)中英。 Body的數(shù)據(jù)如圖所示: image 然后就可以點(diǎn)Send發(fā)送請求了。 成功后,可以得到百度云返回的一個JSON數(shù)據(jù),類似下圖: image 返回的是一行一行的識別字符。百度云的識別率是相當(dāng)高的,幾乎100%吧。畢竟是國內(nèi)本土的機(jī)器訓(xùn)練出來的。 API常用地址 以下是百度云的OCR常用API地址,每個API所需的參數(shù)都差不多,略有不同。所有的API和地址以及詳細(xì)所需的參數(shù),參考官方文檔,很簡單。一個弄明白了就其他的都明白了。 API 請求地址 調(diào)用量限制 通用文字識別 https://aip./rest/2.0/ocr/v1/general_basic 50000次/天免費(fèi) 通用文字識別(含位置信息版) https://aip./rest/2.0/ocr/v1/general 500次/天免費(fèi) 通用文字識別(高精度版) https://aip./rest/2.0/ocr/v1/accurate_basic 500次/天免費(fèi) 通用文字識別(高精度含位置版) https://aip./rest/2.0/ocr/v1/accurate 50次/天免費(fèi) 網(wǎng)絡(luò)圖片文字識別 https://aip./rest/2.0/ocr/v1/webimage 500次/天免費(fèi) |
|