python字典實例(部分)
Python字典實例(部分)
主要內容:通過百度車牌識別實例學習python字典類型的使用
任務布置:
1.掌握python字典類型的定義與訪問過程;
2.學習Baidu ai開放平臺中車牌識別接口的使用;
3.通過Labview&python模式實現簡單公路區間測速案例;
關鍵詞:Labview&python、字典類型、百度ai識別接口、車牌識別、車輛區間測速。
正文:
在生活中攝像識別無處不在,其中車牌識別在停車場或道路抓拍測速應用最多,為了達到好的學習效果,先需要學習python中字典類型,然后進行車牌識別應用開發就更順暢。
如果一本書沒有目錄,那么你要找到某一故事情節需要把書翻看一遍,那新華字典如果沒有查字引索,大量的數據無從下手。在python語言中提出字典(dictionary)類型的概念:能夠存儲不同類型的可變容器,由鍵和鍵值組成。在結構功能上類似于虛擬儀器中的數據簇,都是通過名稱來映射數據達到更好管理數據的目的。字典類型具體格式如下:
創建字典類型的格式:字典名稱 = {'鍵名1':'鍵值1','鍵名2':'鍵值2'}
訪問或修改字典數據:字典名稱['鍵名'] = 參數
一個字典可定義多個鍵名,鍵名與鍵值之間用冒號隔開,鍵名不允許重復,鍵與鍵之間用逗號隔開,整個鍵區域邊界是{},在訪問字典時鍵名在[]內部。圖1是運用python字典實現對水果信息描述的操作,水果信息字典包括有兩個字符和一個數值,print打印整個字典會輸出帶格式的字
圖2. python字典描述游戲人物屬性
學習python 字典類型語法后,通過具體實例來鞏固知識點的應用,實例是運用基于百度Ai平臺的車牌識別。
運用外部接口首先需要閱讀開發文檔,在說明中會發現圖片讀取函數是通用的,唯一變動的是將圖片傳入客戶端的licensePlate函數中處理(client.licensePlate)。然后查看輸出返回代碼,返回信息是按照python字典輸出,查詢簡單參數用字典訪問規則就可實現,省去了第二節的labview解析處理結構。
圖3.百度Ai車牌識別接口說明
圖4.調試代碼與原始返回結果
根據圖4左側代碼編譯后發現:返回結果的原始數據遠遠比說明詳細,增加了識別準確率信息和車牌位置信息。如果運用labview字符掃描解碼很容易出錯,python字典查詢方式避免了結構變動的影響,所以用python在字典中訪問車牌號的格式是: 字典名[一級目錄][二級目錄](car[結果返回][號碼])。
百度平臺的車牌識別也是歸屬于文字識別,所以權限口令彼此通用,只是最后調用的函數變動,所以修改第2節實例最后的輸出,將返回賦予對象,用字典格式查詢對象里面的車牌號即可。圖5去掉了輸出的解析部分,運用Labview打開顯示圖片,然后python去識別圖片中的車牌號。需要注意的是百度Ai的車牌識別接口每天免費調用200次(超出按量付費),不能無限次的使用,可以在出入口加入紅外或超聲波距離傳感器,當有車輛時才去攝像進行車輛識別,提高接口的使用率。
圖5.車牌識別實現界面與代碼
(未加入攝像頭)
區間測速是在同一路段設置兩個相鄰的監控點,通過車輛通過此路段的時間來計算平均速度,然后根據限速標準來判斷是否超速。原理都知道,需要注意的是區間測速路段同時會有多輛車在行駛,不是一輛車的測速,需要記錄和協調多輛車的行駛信息。首先入口攝像頭抓拍車輛圖像,通過識別接口得到車牌號后,與進入時間注冊添加到測速容器中,出口時同樣得到車牌號,速度公式計算區段內對應車輛的平均速度。
圖6是用虛擬儀器中簇方法來實現車輛信息存儲計算,入口注冊時自動填入識別到的[車牌號][進入時間][intime(s)],這[intime]是絕對秒時間方便計算通過時間,出口時的原理是識別到車牌號,找到對應車牌號ID添加出口的時間,然后用出入絕對時間(秒)相減計算通過時間,所以平均速度(km/h)=位移(km)/時間(h)。將得到的車輛區間測速的完整記錄存入數據庫,注銷對應車輛容器信息條。
圖6.區間測速車輛記錄容器
本文轉載自異步社區
軟件開發 高性能計算
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。