今天我們要學(xué)習(xí)的是在Python/ target=_blank class=infotextkey>Python通過調(diào)用外部應(yīng)用識別圖片中的文字(OCR)。我們并不需要探究艱深的圖像識別的原理和算法,只需要站在巨人的肩膀上知道如何調(diào)用百度的文字識別服務(wù)就可以用二三十行代碼高效實(shí)現(xiàn)這個功能了。
首先,我們需要注冊百度AI開放平臺(ai.baidu.com),點(diǎn)擊控制臺后找到人工智能中的文字識別創(chuàng)建一個新應(yīng)用,然后在應(yīng)用詳情里記下我們代碼中所需的AppID、API Key、Secret Key。
接下來安裝SDK。CMD打開命令提示符,輸入pip install baidu-aip即可,如果沒有安裝pip,會提示命令不存在,已安裝可以跳過下面兩步。
安裝pip包。到pypi.python.org/pypi/pip下載并解包,打開命令提示符窗口,在pip的目錄下執(zhí)行命令:python setup.py install。如果提示“ImportError: No module named setuptools”則說明缺少 “setuptools ”包。
安裝setuptools包。到pypi.org/project/setuptools下載并解包,打開命令提示符窗口,在setuptools的目錄下執(zhí)行命令:python setup.py install。
完成以上準(zhǔn)備步驟后,開始編程。(圖1)
記下我們代碼中所需的AppID、API Key、Secret Key
三個常量均為標(biāo)示用戶,為訪問百度云做簽名驗(yàn)證。AipOcr是百度的Python SDK客戶端的功能之一,為我們提供了一系列的識別圖片文字的方法。
要調(diào)用這一功能非常簡單。只需要這一句即可將圖片中的文字識別并返回:
result = client.basicGeneral(image);
現(xiàn)在我們通過以下實(shí)例代碼獲得本地圖片信息,執(zhí)行圖像識別,結(jié)果用print 輸出看看。百度識別結(jié)果為每行文字一個大括號,再用兩行代碼整理一下文本格式,程序如圖2。
執(zhí)行程序,最基本的文字識別結(jié)果如圖3,這個應(yīng)用流程應(yīng)該是本地識別圖片信息上傳至百度云運(yùn)算返回識別結(jié)果,經(jīng)過測試識別效果優(yōu)質(zhì)高效。
識別效果優(yōu)質(zhì)高效
當(dāng)然這僅僅實(shí)現(xiàn)了最簡單的本地圖片文字的基本識別。這個接口還有多項(xiàng)參數(shù)可以支持多國語言和各類證照票據(jù)二維碼等特殊圖片的識別。有興趣的小朋友可以在
https://cloud.baidu.com/doc/OCR/s/Rjwvxzm3n查看接口文檔。
這項(xiàng)服務(wù)的特殊功能有每天500次的免費(fèi)使用次數(shù),對于個人學(xué)習(xí)是完全夠用了,如果作為公開應(yīng)用超量的話還需要付費(fèi)。
這次我們使用百度提供的服務(wù)直接跨進(jìn)了OCR軟件的門檻,在百度AI開放平臺上還有語音識別、人臉識別、機(jī)器學(xué)習(xí)、圖像識別等眾多高大上的功能,直接使用這些人工智能的成果完成自己的應(yīng)用是不是覺得編程更加有趣了?
# 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('本地圖片地址')
# 調(diào)用通用文字識別, 圖片為本地圖片
result = client.basicGeneral(image);
print (result)
#將所有的文字都合并到一起
for item in result['words_result']:
print(item['words'])






