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