Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能實(shí)例
簡(jiǎn)介
Python免費(fèi)調(diào)用百度AI實(shí)現(xiàn)圖片上面的文字識(shí)別
步驟
安裝百度AI庫(kù)
!pip install baidu-aip
注冊(cè)百度AI開放平臺(tái)
先注冊(cè)百度AI,獲得ID和密鑰。注冊(cè)方法可參考:注冊(cè)方法 只需走到 “1.6 獲取密鑰” 即可。然后記錄下自己的APP_ID、API_KEY、SECRET_KEY,就可以開始了。

調(diào)用glob庫(kù)
glob庫(kù)用于獲得指定路徑下的指定后綴的文件,圖片使用的是《數(shù)學(xué)模型》pdf掃描版,部分如下:

import glob path = "數(shù)學(xué)模型\\" glob.glob(path+"*.png")
指定文件夾中的指定的.png后綴的文件,全部提取出來(lái)了:

選取第一張圖片 “數(shù)學(xué)模型1.png” 做測(cè)試:
files = glob.glob(path+"*.png") file = files[0]
調(diào)用AipOcr庫(kù)識(shí)別文字
導(dǎo)入AipOcr模塊,這個(gè)模塊是用于做文字識(shí)別的(OCR即Optical Character Recognition,光學(xué)字符識(shí)別)。填入你申請(qǐng)的ID和KEY,client = AipOcr()是固定寫法。先用二進(jìn)制方式rb打開,然后讀取,再調(diào)用百度AI進(jìn)行識(shí)別,并將識(shí)別結(jié)果存入message變量。
from aip import AipOcr #導(dǎo)入AipOcr模塊,用于做文字識(shí)別 import glob APP_ID = '*********' # 你申請(qǐng)的 API_KEY = '*********'# 你申請(qǐng)的 SECRET_KEY = '*********'# 你申請(qǐng)的 client = AipOcr(APP_ID, API_KEY, SECRET_KEY) pic = open(file,'rb')# 以二進(jìn)制(rb)打開 img = pic.read() # 讀取 message = client.basicGeneral(img) # 調(diào)用百度AI識(shí)別圖片中的文字
查看message參數(shù),結(jié)果如下:

可見(jiàn),message參數(shù)的結(jié)果為 “大字典” 形式,其中的鍵 words_result 所對(duì)應(yīng)的值為一個(gè) “大列表” ,這個(gè)列表里又有很多鍵值對(duì),鍵都是words,值就是AI從圖片上識(shí)別出來(lái)的內(nèi)容。使用語(yǔ)句message['words_result'][0...n]['words']可以篩選出該頁(yè)的標(biāo)題:
message['words_result'][1]['words']

for循環(huán)逐行提取:
for words in message['words_result']:
word = words['words'] # 提取文字
print(word)
識(shí)別效果圖:

識(shí)別也不是完美的,有很多識(shí)別錯(cuò)誤與未識(shí)別出的文字。當(dāng)然,原圖字體越清晰,識(shí)別度越高。
可能會(huì)遇到的問(wèn)題
識(shí)別過(guò)程中可能會(huì)遇到類似識(shí)別錯(cuò)誤(無(wú)法識(shí)別)問(wèn)題,原因是未領(lǐng)取免費(fèi)識(shí)別次數(shù),解決過(guò)程如下:
百度OCR API識(shí)別失?。篛pen api qps request limit reached 錯(cuò)誤 解決方法
幾個(gè)月前,用Python寫了個(gè)小工具,主要是用到了百度的OCR API做了個(gè)文字識(shí)別的小工具,前面一直能用,然而今天,在使用的時(shí)候,報(bào)錯(cuò)了。
錯(cuò)誤如下:Open api qps request limit reached
最后終于找到了解決方法,原來(lái),現(xiàn)在要自己去領(lǐng)取免費(fèi)的測(cè)試額度了!??!
領(lǐng)取免費(fèi)測(cè)試額度的地址:(或者你在你原來(lái)那個(gè)調(diào)用的那個(gè)項(xiàng)目里也可以找到免費(fèi)領(lǐng)取測(cè)試額度,見(jiàn)下圖)
https://console.bce.baidu.com/ai/#/ai/ocr/overview/resource/getFree
領(lǐng)取完之后,還是用原來(lái)項(xiàng)目的appID,apiKey,secretKey即可。
然后等領(lǐng)取額度到賬后,重新運(yùn)行就行了。

批量操作
批量操作的核心為for循環(huán),txt_file = open('數(shù)學(xué)模型.txt', 'a')指打開名字為“數(shù)學(xué)模型”的文本文件(若不存在則自動(dòng)新建),模式為添加模式,即'a'模式。添加模式是指,如果文本中已經(jīng)有一些內(nèi)容,則接著往下寫,不會(huì)影響原來(lái)的內(nèi)容。如果是'w'模式,則會(huì)將之前的內(nèi)容全部覆蓋。然后遍歷待處理的圖片,逐個(gè)處理:
from aip import AipOcr #導(dǎo)入AipOcr模塊,用于做文字識(shí)別
import glob
APP_ID = '*********' # 你申請(qǐng)的
API_KEY = '*********'# 你申請(qǐng)的
SECRET_KEY = '*********'# 你申請(qǐng)的
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
path = "數(shù)學(xué)模型\\"
files = glob.glob(path+"*.png")
txt_file = open('數(shù)學(xué)模型.txt', 'a')
for file in files:
pic = open(file,'rb')# 以二進(jìn)制(rb)打開
img = pic.read() # 讀取
message = client.basicGeneral(img) # 調(diào)用百度AI識(shí)別圖片中的文字
for words in message['words_result']:
word = words['words'] # 提取文字
print(word)
txt_file.write(word) # 將文字寫入文本文件
txt_file.close() # 關(guān)閉文本文件
總結(jié)
到此這篇關(guān)于Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能的文章就介紹到這了,更多相關(guān)Python圖片上文字識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python調(diào)用文字識(shí)別OCR輕松搞定驗(yàn)證碼
- python 百度aip實(shí)現(xiàn)文字識(shí)別的實(shí)現(xiàn)示例
- Python 實(shí)現(xiàn)任意區(qū)域文字識(shí)別(OCR)操作
- python PaddleOCR庫(kù)用法及知識(shí)點(diǎn)詳解
- python3.7中安裝paddleocr及paddlepaddle包的多種方法
- Python3使用騰訊云文字識(shí)別(騰訊OCR)提取圖片中的文字內(nèi)容實(shí)例詳解
- Python圖像處理之圖片文字識(shí)別功能(OCR)
- Python 圖片文字識(shí)別的實(shí)現(xiàn)之PaddleOCR
相關(guān)文章
Python字符串格式化str.format()方法的實(shí)現(xiàn)
字符串的格式化是一個(gè)非常重要的功能,用于創(chuàng)建包含變量值的字符串,本來(lái)就來(lái)介紹一下Python字符串格式化str.format()方法的實(shí)現(xiàn),感興趣的可以了解一下2023-11-11
matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小
在撰寫論文時(shí)常常會(huì)用到matplotlib來(lái)繪制三維散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
python 爬蟲一鍵爬取 淘寶天貓寶貝頁(yè)面主圖顏色圖和詳情圖的教程
今天小編就為大家分享一篇python 爬蟲一鍵爬取 淘寶天貓寶貝頁(yè)面主圖顏色圖和詳情圖的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python簡(jiǎn)單實(shí)現(xiàn)獲取當(dāng)前時(shí)間
最近項(xiàng)目中經(jīng)常需要python去取當(dāng)前的時(shí)間,雖然不是很難,但是老是忘記,用一次丟一次,為了能夠更好的記住,我今天特意寫下python 當(dāng)前時(shí)間這篇文章,如果你覺(jué)的對(duì)你有用的話,可以收藏下。2016-08-08
Python環(huán)境搭建以及Python與PyCharm安裝詳細(xì)圖文教程
PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語(yǔ)言開發(fā)時(shí)提高其效率的工具,這篇文章主要給大家介紹了關(guān)于Python環(huán)境搭建以及Python與PyCharm安裝的詳細(xì)圖文教程,需要的朋友可以參考下2024-03-03
Python通過(guò)90行代碼搭建一個(gè)音樂(lè)搜索工具
這篇文章主要介紹了Python通過(guò)90行代碼搭建一個(gè)音樂(lè)搜索工具,需要的朋友可以參考下2015-07-07

