利用百度文字識別API識別圖像中的文字

??本文將會介紹如何使用百度AI開放平臺中的文字識別服務(wù)來識別圖片中的文字。百度AI開放平臺的訪問網(wǎng)址為:http://ai.baidu.com/,為了能夠使用該平臺提供的AI服務(wù),你需要事先注冊一個百度賬號。

創(chuàng)建百度AI文字識別應(yīng)用

??在百度AI開放平臺中,登錄自己的百度賬號,點擊“文字識別”服務(wù)中的“通用場景文字識別”,選擇“創(chuàng)建應(yīng)用”,填好應(yīng)用名稱,選擇應(yīng)用類型,填好應(yīng)用描述,這樣就創(chuàng)建好了“通用場景文字識別”服務(wù),如下圖:

創(chuàng)建百度文字識別應(yīng)用

??在應(yīng)用列表中,能夠看到自己剛剛創(chuàng)建好的文字識別服務(wù)了,記住,這個應(yīng)用中的“AppID”,“API Key”,“Secret Key”很重要,是你這個應(yīng)用的唯一識別。

查看剛剛創(chuàng)建好的應(yīng)用

OK,創(chuàng)建好這個應(yīng)用后,我們就能使用該應(yīng)用來識別圖片中的文字了~

利用創(chuàng)建的應(yīng)用來識別圖片中的文字

??接下來,我們將使用剛剛創(chuàng)建好的文字識別應(yīng)用來識別圖片中的文字,大致的步驟如下:

  • 獲取該應(yīng)用的access_token;
  • 利用access_token來創(chuàng)建HTTP請求;
  • 解析請求成功后的json文件,獲取識別后的結(jié)果。

具體的參考文檔可以參考網(wǎng)址:https://ai.baidu.com/docs#/OCR-API/top, 本文將不再具體講述。

??我們需要識別的圖片為含有兩個漢字的圖片驗證碼,圖片名稱為test.png,如下:

test.png

??參考該應(yīng)用的官方文檔說明,我們寫下如下的Python腳本,即可識別圖片中的文字,完整的代碼如下:

import json
import requests
import base64
import urllib.parse

APP_ID = '你的APP_ID'
API_KEY ='你的API_KEY'
SECRECT_KEY = '你的SECRECT_KEY'

# 獲取token
url = 'https://aip.baidubce.com/oauth/2.0/token'
body = {'grant_type': 'client_credentials',
        'client_id': API_KEY,
        'client_secret': SECRECT_KEY
        }

req = requests.post(url=url, data=body)
token = json.loads(req.content)['access_token']

# 獲取百度api識別結(jié)果
ocr_url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=%s'%token
headers = {'Content-Type': 'application/x-www-form-urlencoded'}

# 讀取圖片并進(jìn)行base64加密
body = base64.b64encode(open('./test.png' ,'rb').read())
# 進(jìn)行urlencode
data = urllib.parse.urlencode({'image': body})

# post請求
r = requests.post(url=ocr_url, headers=headers, data=data)

# 輸出請求結(jié)果
print('請求碼為: %s' %r.status_code)
res_words = json.loads(r.content)['words_result'][0]['words']
print('識別結(jié)果為: %s' % res_words)

輸出的結(jié)果如下:

請求碼為: 200
識別結(jié)果為: 高吸

可以看到,對于這張圖片,百度的文字識別功能很好地識別出了圖片中的文字。

利用Python的百度文字識別第三方模塊來識別圖片中的文字

??上面我們參照了百度文字識別的官方文檔來實現(xiàn)文字識別功能,但過程有點復(fù)雜,需要先獲取access_token,再構(gòu)建HTTP請求才能使用。幸運的是,在Python的第三庫中,已經(jīng)有了能實現(xiàn)該功能的第三方模塊,即baidu-aip,安裝方式如下:

pip install baidu-aip

??利用這個第三方模塊,我們能簡潔快速地實現(xiàn)文字識別功能,示例的Python代碼如下:

# 利用aip進(jìn)行識別
from aip import AipOcr

APP_ID = '你的APP_ID'
API_KEY ='你的API_KEY'
SECRECT_KEY = '你的SECRECT_KEY'
client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)

img = open('./test.png','rb').read()
message=client.basicGeneral(img)
res = message['words_result']
print('識別結(jié)果為: %s' % res[0]['words'])

總結(jié)

??本文并沒有講述如何從AI模型來識別圖片中的文字,而是利用百度AI平臺中的文字識別服務(wù)來完成文字識別任務(wù)??瓷先ゲ]有什么新意,只是講解使用使用API來識別圖片中的文字罷了。
??那么,本文的意義在哪?其實,在使用模型識別文字前,一個很重要的過程便于標(biāo)注,標(biāo)注費時費力,這時候我們借助第三方文字識別API能夠減輕標(biāo)注的工作量,讓我們的標(biāo)注量能減少點。
??當(dāng)然,如果你把這篇文章看作是一個學(xué)習(xí)如何利用百度文字識別API識別圖像中的文字的機(jī)會,那也未嘗不可!

注意:本人現(xiàn)已開通微信公眾號: Python爬蟲與算法(微信號為:easy_web_scrape), 歡迎大家關(guān)注哦~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容