欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 實(shí)現(xiàn)的車牌識別項(xiàng)目

 更新時間:2021年01月25日 16:32:45   作者:Chen洋  
這篇文章主要介紹了python 實(shí)現(xiàn)的車牌識別項(xiàng)目,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

車牌識別在高速公路中有著廣泛的應(yīng)用,比如我們常見的電子收費(fèi)(ETC)系統(tǒng)和交通違章車輛的檢測,除此之外像小區(qū)或地下車庫門禁也會用到,基本上凡是需要對車輛進(jìn)行身份檢測的地方都會用到。

簡介

車牌識別系統(tǒng)(Vehicle License Plate Recognition)是計算機(jī)視頻圖像識別技術(shù)在車輛牌照識別中的一種應(yīng)用,通常一個車牌識別系統(tǒng)主要包括以下這四個部分:

  • 車輛圖像獲取
  • 車牌定位
  • 車牌字符分割
  • 車牌字符識別

我們再來看一下百科中對車牌識別技術(shù)的描述:

車牌識別技術(shù)要求能夠?qū)⑦\(yùn)動中的汽車牌照從復(fù)雜背景中提取并識別出來,通過車牌提取、圖像預(yù)處理、特征提取、車牌字符識別等技術(shù),識別車輛牌號、顏色等信息,目前最新的技術(shù)水平為字母和數(shù)字的識別率可達(dá)到 99.7%,漢字的識別率可達(dá)到 99%。

實(shí)現(xiàn)方式

我們這里不做太復(fù)雜的車輛動態(tài)識別,只演示從圖像中識別車牌信息,車牌識別功能的實(shí)現(xiàn)方式大致分為兩種,一種是自己編寫代碼實(shí)現(xiàn),另一種是借助第三方 API 接口實(shí)現(xiàn)。

自己實(shí)現(xiàn)

如果我們想要通過 Python 自己手動編碼實(shí)現(xiàn)車牌識別功能,可以借助一些 Python 庫,比如:OpenCV、TensorFlow 等,這種方式因?yàn)槊恳粋€功能點(diǎn)都需要我們自己編碼實(shí)現(xiàn),所有會相對復(fù)雜一些,另一方面如果我們想要保證識別的準(zhǔn)確性,可能需要做大量的實(shí)驗(yàn),也就是說會花費(fèi)更多的時間。

第三方接口

現(xiàn)在已經(jīng)有一些第三方平臺實(shí)現(xiàn)好了車牌識別的功能,并且他們對外提供了 API 接口,我們只需要調(diào)用他們提供的接口即可,這種方式實(shí)現(xiàn)就相對簡單了一些,并且通常接口提供方對外提供的接口功能的準(zhǔn)確性也是基本可以保證的,原因很簡單,如果接口功能太差的話,一是自己打臉,還有就是基本不會有什么人使用,也就失去了接口對外提供的價值了,另外第三方接口可能會收取一定費(fèi)用,因此,如果現(xiàn)實(shí)中我們具體實(shí)現(xiàn)的話要綜合考慮。

具體實(shí)現(xiàn)

綜合上面的情況,我們這里采用第三方接口的方式來實(shí)現(xiàn)車牌識別的功能,接口提供方我們選擇百度云提供的接口,百度云接口提供了免費(fèi)額度,簡單來說就是每天可以免費(fèi)使用多少次,如果超過了這個次數(shù)就需要交錢什么的了,文檔地址為:https://cloud.baidu.com/doc/OCR/index.html,下面來看一下具體實(shí)現(xiàn)過程。

SDK 安裝

百度云 SDK 對多種語言提供了支持,比如:Python、Java、C++、IOS、Android 等,這里我們安裝 Python 版的 SDK,安裝很簡單,使用 pip install baidu-aip 命令即可。使用Pycharm的話直接導(dǎo)入相關(guān)的包就行了,這個只要你baidu-aip包即可。

創(chuàng)建應(yīng)用

SDK 安裝好后,我們接著需要創(chuàng)建應(yīng)用了,這里需要一個百度賬號或百度云賬號,如果沒有的話自己注冊一個即可,登錄及注冊地址為:https://login.bce.baidu.com/?redirect=http%3A%2F%2Fcloud.baidu.com%2Fcampaign%2Fcampus-2018%2Findex.html,登錄之后,我們將鼠標(biāo)移動到登錄頭像位置,接著在彈出菜單中單擊用戶中心,如下圖所示:

如果是首次進(jìn)入的話,勾選一下相應(yīng)信息,如下圖所示:

信息勾選完了之后,點(diǎn)擊保存按鈕。

接著將鼠標(biāo)移動到左側(cè)欄中 > 符號位置,再依次選擇人工智能和文字識別,如下圖所示:

點(diǎn)擊之后會進(jìn)入到下圖中:

我們點(diǎn)擊創(chuàng)建應(yīng)用,進(jìn)入下圖中:

這里我們只需要填一下應(yīng)用名稱和下面的應(yīng)用描述即可,填寫完畢之后點(diǎn)擊立即創(chuàng)建。

創(chuàng)建完后,我們再返回應(yīng)用列表,如下圖所示:

這里我們需要用到三個值:AppID、API Key 和 Secret Key。

具體實(shí)現(xiàn)

應(yīng)用創(chuàng)建完了,我們就可以調(diào)用接口實(shí)現(xiàn)車牌識別功能了。

首先,我們要創(chuàng)建 AipOcr,AipOcr 是 OCR 的 Python SDK 客戶端,為使用 OCR 的開發(fā)人員提供了一系列的交互方法,代碼實(shí)現(xiàn)也比較簡單,如下所示:

from aip import AipOcr

# 自己的 APPID AK SK
APP_ID = '自己的 App ID'
API_KEY = '自己的 Api Key'
SECRET_KEY = '自己的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

在上面代碼中,常量 APP_ID、API_KEY 和 SECRET_KEY 就是我們在查看應(yīng)用列表時說的需要用到的常量值,這些值均為字符串,用于標(biāo)識用戶,為訪問做簽名驗(yàn)證。單引號中內(nèi)容應(yīng)該填上剛才注冊登入時獲取的自己的ID和Key

如果我們需要配置 AipOcr 的網(wǎng)絡(luò)請求參數(shù),可以在構(gòu)造 AipOcr 之后調(diào)用接口設(shè)置參數(shù),目前支持兩個參數(shù),看一下代碼實(shí)現(xiàn):

# 建立連接的超時時間,單位為毫秒
client.setConnectionTimeoutInMillis(5000)
# 通過打開的連接傳輸數(shù)據(jù)的超時時間,單位為毫秒
client.setSocketTimeoutInMillis(5000)

總的來說通過接口方式實(shí)現(xiàn)車牌識別功能是比較簡單的,以如下圖為例:

 實(shí)現(xiàn)總的代碼如下:直接復(fù)制粘貼到你的Pycharm中即可使用(記得先導(dǎo)入baidu-aip 的包和下面3-5行改成自己的ID和Key)

from aip import AipOcr

APP_ID = '自己的 App ID'
API_KEY = '自己的 Api Key'
SECRET_KEY = '自己的 Secret Key'
# 創(chuàng)建客戶端對象
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 建立連接的超時時間,單位為毫秒
client.setConnectionTimeoutInMillis(5000)
# 通過打開的連接傳輸數(shù)據(jù)的超時時間,單位為毫秒
client.setSocketTimeoutInMillis(5000)

# 讀取圖片
def get_file_content(filePath):
  with open(filePath, 'rb') as fp:
    return fp.read()

image = get_file_content('car.jpeg')
res = client.licensePlate(image)
print('車牌號碼:' + res['words_result']['number'])
print('車牌顏色:' + res['words_result']['color'])

執(zhí)行結(jié)果:

上面代碼實(shí)現(xiàn)的是對一張圖片中的一個車牌進(jìn)行識別,當(dāng)然接口還支持對一張圖片中的多個車牌進(jìn)行識別,只需使用 licensePlate(image, options) 即可,
以如下圖為例:

實(shí)現(xiàn)代碼如下:

from aip import AipOcr

APP_ID = '自己的 App ID'
API_KEY = '自己的 Api Key'
SECRET_KEY = '自己的 Secret Key'
# 創(chuàng)建客戶端對象
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 建立連接的超時時間,單位為毫秒
client.setConnectionTimeoutInMillis(5000)
# 通過打開的連接傳輸數(shù)據(jù)的超時時間,單位為毫秒
client.setSocketTimeoutInMillis(5000)

# 讀取圖片
def get_file_content(filePath):
  with open(filePath, 'rb') as fp:
    return fp.read()

image = get_file_content('cars.png')
options = {}
# 參數(shù) multi_detect 默認(rèn)為 false
options['multi_detect'] = 'true'
res = client.licensePlate(image, options)
for wr in res['words_result']:
  print('車牌號碼:' + wr['number'])
  print('車牌顏色:' + wr['color'])

執(zhí)行結(jié)果:

總結(jié)

本文我們先對車牌識別進(jìn)行了一些介紹,之后利用百度云接口實(shí)現(xiàn)了單個和多個車牌的識別功能,通過本文我們可以對車牌識別的相關(guān)概念和具體實(shí)現(xiàn)有一些了解。

以上就是python 實(shí)現(xiàn)的車牌識別項(xiàng)目的詳細(xì)內(nèi)容,更多關(guān)于python 車牌識別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python requests證書問題解決

    python requests證書問題解決

    這篇文章主要介紹了python requests證書問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Python循環(huán)語句介紹

    Python循環(huán)語句介紹

    大家好,本篇文章主要講的是Python循環(huán)語句介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python三級目錄展示的實(shí)現(xiàn)方法

    Python三級目錄展示的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python三級目錄展示的實(shí)現(xiàn)方法的相關(guān)資料,本文通過圖文并茂的方式給大家介紹,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • DRF過濾排序分頁異常處理的過程記錄

    DRF過濾排序分頁異常處理的過程記錄

    在寫django drf的時候會遇到搜索,以及過濾的情況,這篇文章主要給大家介紹了關(guān)于DRF過濾排序分頁異常處理的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • python安裝requests庫的實(shí)例代碼

    python安裝requests庫的實(shí)例代碼

    在本篇文章中小編給大家分享了關(guān)于python怎么安裝requests庫的知識點(diǎn)以及代碼內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-06-06
  • Python+pyaudio實(shí)現(xiàn)音頻控制示例詳解

    Python+pyaudio實(shí)現(xiàn)音頻控制示例詳解

    PyAudio?是語音處理的?Python?庫,提供了比較豐富的功能。本文將利用pyaudio控制指定設(shè)備,實(shí)現(xiàn)錄制音頻、采集音頻流、播放音頻,感興趣的可以了解一下
    2022-07-07
  • python+Django+apache的配置方法詳解

    python+Django+apache的配置方法詳解

    這篇文章主要介紹了python+Django+apache的配置方法,詳細(xì)分析了python+Django+apache的安裝與配置步驟,并分析了相關(guān)注意事項(xiàng),具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • python將logging模塊封裝成單獨(dú)模塊并實(shí)現(xiàn)動態(tài)切換Level方式

    python將logging模塊封裝成單獨(dú)模塊并實(shí)現(xiàn)動態(tài)切換Level方式

    這篇文章主要介紹了python將logging模塊封裝成單獨(dú)模塊并實(shí)現(xiàn)動態(tài)切換Level方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python 線程池用法簡單示例

    Python 線程池用法簡單示例

    這篇文章主要介紹了Python 線程池用法,結(jié)合簡單實(shí)例形式分析了Python線程池相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • IPython庫中的display函數(shù)的簡介、使用方法、應(yīng)用案例詳細(xì)攻略

    IPython庫中的display函數(shù)的簡介、使用方法、應(yīng)用案例詳細(xì)攻略

    display 函數(shù)可以接受一個或多個參數(shù),每個參數(shù)都是一個 Python 對象。它會自動根據(jù)對象的類型選擇合適的顯示方式,并在 Jupyter Notebook 中顯示出來,這篇文章主要介紹了IPython庫中的display函數(shù)的簡介、使用方法、應(yīng)用案例詳細(xì)攻略,需要的朋友可以參考下
    2023-04-04

最新評論