python利用百度雲介面實現車牌識別的示例
一個小需求---實現車牌識別。
目前有兩個想法
1. 調雲線上的介面或者使用SDK做開發(配置環境和編譯第三方庫很麻煩,當然使用python可以避免這些問題)
2. 自己實現車牌識別演算法(複雜)
一開始準備使用百度雲文字識別C++ SDK來做,發現需要準備curl、jsoncpp和OpenCV,並且curl和jsoncpp需要自己編譯,很麻煩,所以換用了python來做,真的是順暢簡單。
1. 安裝python環境(我用python3.7)
python官網下載地址:https://www.python.org/downloads/release/python-374/建議直接下載安裝版installer(看對系統和位數)
開啟安裝包無腦安裝即可。安裝好之後,看一下是否安裝成功。
cmd
python --version
2. 百度雲SDK下載安裝及建立應用
參考https://cloud.baidu.com/doc/OCR/s/pjwvxzmtc文件,安裝python SDK
檢視pip版本(python環境自帶,但是要注意版本)
pip --version
如果版本不合適,那麼自行升級pip
pip install -U pip
安裝baidu-aip
pip install baidu-aip
(安裝成功的樣子)
現在我們的百度雲SDK就安裝好了,下來建立應用
登入百度雲(沒賬號註冊一下)
建立應用
自己填一下
現在我們就建立好了車牌識別的應用,點選應用列表可檢視。
這裡的APPID、API KEY、Secret Key要在程式碼中使用。(注意不要洩漏)
3. 編碼調介面,實現需求
python程式碼實現
''' Statement 1. using the file 2. prepare a image path and call func "get_license_plate(filePath)" 3. you can get a json object 4. get the info from the pbject example : { "log_id": 3583925545,"words_result": { "color": "blue","number": "蘇HS7766" } } ''' from aip import AipOcr import json """get img""" def get_file_content(filePath): with open(filePath,'rb') as fp: return fp.read() """ get licsense plate """ def get_license_plate(filePath): """ APPID AK SK """ APP_ID = '********' API_KEY = '**************' SECRET_KEY = '******************' """ create client """ client = AipOcr(APP_ID,API_KEY,SECRET_KEY) image = get_file_content(filePath) """ 呼叫車牌識別 """ res = client.licensePlate(image) return res """ call example """ str = 'C:\\Users\\***\\Desktop\\big.jpg' """ 照片絕對地址 """ res = get_license_plate(str) print('車牌號碼:' + res['words_result']['number']) print('車牌顏色:' + res['words_result']['color'])
程式碼分解
引入庫
from aip import AipOcr """百度雲SDK""" import json """json庫"""
建立客戶端
""" APPID AK SK 自己建立的應用中的資料""" APP_ID = '*******' API_KEY = '***************' SECRET_KEY = '******************' """ create client """ client = AipOcr(APP_ID,SECRET_KEY)
呼叫介面得到車牌識別結果
image = get_file_content(filePath) """ 呼叫車牌識別 """ res = client.licensePlate(image)
這裡的res是一個json物件/一個dict
例子
{ "log_id": 3583925545,"number": "蘇HS7766" } }
可以使用res['listname']['listname']形式獲取字典資料
print('車牌號碼:' + res['words_result']['number']) print('車牌顏色:' + res['words_result']['color'])
至此,我們就實現了使用百度雲SDK,通過編寫python程式碼呼叫介面的車牌識別需求。
參考文件
【1】百度雲API文件:https://cloud.baidu.com/doc/OCR/s/pjwvxzmtc/
【2】python pip安裝與使用:https://www.runoob.com/w3cnote/python-pip-install-usage.html
【3】python官網:https://www.python.org/downloads/release/python-374/
到此這篇關於python利用百度雲介面實現車牌識別的示例的文章就介紹到這了,更多相關python 百度雲車牌識別內容請搜素我們以前的文章或下面相關文章,希望大家以後多多支援我們!