基於百度雲的OCR識別(Python)

東小東發表於2019-07-05

2019年7月3日早上,在百度AI開發者大會上,一個來自山西的青年,將一瓶礦泉水澆在了同樣來自山西的李彥巨集身上。

可以回顧一下 https://b23.tv/av57665929/p1 ,著實讓人一驚,這麼大的會議上既然讓人這麼容易接近大佬。

(圖片來源網路)

OCR識別準備工作

百度雲真的是測試介面的天堂,免費介面很多,當然有量的限制,但個人使用是完全夠用的,什麼人臉識別、MQTT伺服器、語音識別等等,應有盡有吧

看看OCR識別免費的量

第一步:

建立一個文字識別的應用,也就是向百度雲申請一個文字識別的使用者介面

 

第二步:

開啟技術文件,基本涵蓋了當今流行的程式語言

https://cloud.baidu.com/doc/OCR/s/ejwvxzls6/

第三步:

安裝OCR Python SDK,OCR Python SDK目錄結構

├── README.md
├── aip                   //SDK目錄
│   ├── __init__.py       //匯出類
│   ├── base.py           //aip基類
│   ├── http.py           //http請求
│   └── ocr.py //OCR
└── setup.py              //setuptools安裝

支援Python版本:2.7.+ ,3.+

安裝命令:

在win10環境下通過cmd安裝後需要關掉當前cmd視窗,重新開啟cmd視窗進行命令執行python程式方可正確實現

pip install baidu-aip

測試程式碼

通用文字識別

from aip import AipOcr

#更換為自己的註冊資訊
APP_ID = '---'
API_KEY = '---'
SECRET_KEY = '---'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)#建立連線
fp=open("tu2.png","rb").read()#開啟並讀取檔案內容
res=client.basicGeneral(fp)#普通
#print(res)

#將所有的文字都合併到一起
strx=""
for tex in res["words_result"]:#遍歷結果
    strx+=tex["words"]#每一行
print(strx)#輸出內容

通用文字識別(高精度版)

from aip import AipOcr

#更換為自己的註冊資訊
APP_ID = '---'
API_KEY = '---'
SECRET_KEY = '---'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)#建立連線
fp=open("tu2.png","rb").read()#開啟並讀取檔案內容
#res=client.basicGeneral(fp)#普通
res=client.basicAccurate(fp)#高精度
#print(res)

#將所有的文字都合併到一起
strx=""
for tex in res["words_result"]:#遍歷結果
    strx+=tex["words"]#每一行
print(strx)#輸出內容

 URL圖片地址方式

from aip import AipOcr

#更換為自己的註冊資訊
APP_ID = '----'
API_KEY = '----'
SECRET_KEY = '-----'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)#建立連線
url = "https://i.iter01.com/images/7de543328be90f4ce32c84bea1fa1181b8c9e445363f4ee9e619498942b69fbe.png"
res=client.basicGeneralUrl(url)#普通
#print(res)

#將所有的文字都合併到一起
strx=""
for tex in res["words_result"]:#遍歷結果
    strx+=tex["words"]
print(strx)#輸出內容

注意

圖片格式(image):

影象資料,base64編碼,要求base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支援jpg/png/bmp格式

URL格式(url):

圖片完整URL,URL長度不超過1024位元組,URL對應的圖片base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支援jpg/png/bmp格式,當image欄位存在時url欄位失效

語言設定(language_type)

識別語言型別,預設為CHN_ENG

可設定:- CHN_ENG:中英文混合;- ENG:英文;- POR:葡萄牙語;- FRE:法語;- GER:德語;- ITA:義大利語;- SPA:西班牙語;- RUS:俄語;- JAP:日語;- KOR:韓語;

影象倒置設定(detect_direction)

是否檢測影象朝向,預設不檢測,即:false。朝向是指輸入影象是正常方向、逆時針旋轉90/180/270度。可選值包括:- true:檢測朝向;- false:不檢測朝向

是否檢測語言(detect_language)

是否檢測語言,預設不檢測。當前支援(中文、英語、日語、韓語),值為flase或者true

是否返回識別結果中每一行的置信度(probability)

值為flase或者true

引數新增舉例

""" 如果有可選引數 """
options = {}
options["detect_direction"] = "true"
options["detect_language"] = "true"

""" 帶引數呼叫網路圖片文字識別, 圖片引數為遠端url圖片 """
client.webImageUrl(url, options)

 更多參考:

https://cloud.baidu.com/doc/OCR/s/Rjwvxzm3n

相關文章