今天我們要學習的是在Python通過呼叫外部應用識別圖片中的文字(OCR)。我們並不需要探究艱深的影象識別的原理和演算法,只需要站在巨人的肩膀上知道如何呼叫百度的文字識別服務就可以用二三十行程式碼高效實現這個功能了。
首先,我們需要註冊百度AI開放平臺(ai.baidu.com),點選控制檯後找到人工智慧中的文字識別建立一個新應用,然後在應用詳情裡記下我們程式碼中所需的AppID、API Key、Secret Key。
接下來安裝SDK。CMD開啟命令提示符,輸入pip install baidu-aip即可,如果沒有安裝pip,會提示命令不存在,已安裝可以跳過下面兩步。
安裝pip包。到pypi.python.org/pypi/pip下載並解包,開啟命令提示符視窗,在pip的目錄下執行命令:python setup.py install。如果提示“ImportError: No module named setuptools”則說明缺少 “setuptools ”包。
安裝setuptools包。到pypi.org/project/setuptools下載並解包,開啟命令提示符視窗,在setuptools的目錄下執行命令:python setup.py install。
完成以上準備步驟後,開始程式設計。(圖1)
三個常量均為標示使用者,為訪問百度雲做簽名驗證。AipOcr是百度的Python SDK客戶端的功能之一,為我們提供了一系列的識別圖片文字的方法。
要呼叫這一功能非常簡單。只需要這一句即可將圖片中的文字識別並返回:
result = client.basicGeneral(image);
現在我們通過以下例項程式碼獲得本地圖片資訊,執行影象識別,結果用print 輸出看看。百度識別結果為每行文字一個大括號,再用兩行程式碼整理一下文字格式,程式如圖2。
執行程式,最基本的文字識別結果如圖3,這個應用流程應該是本地識別圖片資訊上傳至百度雲運算返回識別結果,經過測試識別效果優質高效。
當然這僅僅實現了最簡單的本地圖片文字的基本識別。這個介面還有多項引數可以支援多國語言和各類證照票據二維碼等特殊圖片的識別。有興趣的小朋友可以在
https://cloud.baidu.com/doc/OCR/s/Rjwvxzm3n檢視介面文件。
這項服務的特殊功能有每天500次的免費使用次數,對於個人學習是完全夠用了,如果作為公開應用超量的話還需要付費。
這次我們使用百度提供的服務直接跨進了OCR軟體的門檻,在百度AI開放平臺上還有語音識別、人臉識別、機器學習、影象識別等眾多高大上的功能,直接使用這些人工智慧的成果完成自己的應用是不是覺得程式設計更加有趣了?
# coding=gbk
from aip import AipOcr
# 定義常量
""" 你的 APPID AK SK """
APP_ID = '你的 APPID'
API_KEY = '你的 APP AK'
SECRET_KEY = '你的 APP SK'
# 初始化AipFace物件
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 讀取圖片
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('本地圖片地址')
# 呼叫通用文字識別, 圖片為本地圖片
result = client.basicGeneral(image);
print (result)
#將所有的文字都合併到一起
for item in result['words_result']:
print(item['words'])