潘昊飛,王曉樂,李浩宇,陳濤
(安徽新華學院大數據與人工智能學院,安徽合肥,230088)
隨著停車場的規模越來越大,人們對其安全性、便捷性的要求也越來越高,在管理上也需要一種高效快捷的管理模式,實現對停車空間的最大利用。如圖1所示,智能停車場由硬件系統和軟件系統組成。硬件系統包括車位檢測、門禁系統和車牌識別系統。軟件系統分為管理系統和用戶界面。車位檢測系統可以判斷車位是否被占用,并將車位的狀態上傳至上位機。系統經過數據分析后,會將空余車位數顯示在屏幕上。車牌識別和門禁系統在出入口處實現車輛進出以及車牌信息的采集,同時會將采集到的信息傳入管理系統并開始計費。通過各個子系統的相互配合實現無人管理、智能引導和車位查詢等方便快捷的操作,不僅給車主帶來方便,也給停車場管理人員帶來方便,同時也提高了經濟效益。

圖1 智能停車場系統功能圖
智能停車場硬件組成框圖如圖2所示,主要硬件有SG90微 型 舵 機、E18-D50NK光 電 開 關、Raspberry Pi Camera Rev 1.2攝像機、DHT11數字溫濕度傳感器、LCD1602顯示屏、HC-SR04超聲波傳感器和一塊7寸主顯示器。光電開關負責收集汽車到來的信號,并將信號傳Raspberry Pi主板,主板會根據此信號控制攝像頭拍照采集數據。攝像頭再將采集到的數據回傳給Raspberry Pi。Raspberry Pi會根據數據來控制門禁舵機的開啟和關閉。DHT11負責進行溫度采集,將采集到的數據傳遞給Arduino主板。LCD1602則負責接受Arduino傳來的數據并將其在LCD屏幕上顯示。超聲波傳感器負責收集當前停車場內車位是否被占用的情況,Arduino同時控制多個超聲波傳感器,同時對超聲波傳感器采集數據分析,從而得出停車場的剩余位置的數量。

圖2 硬件框圖
門禁系統控制舵機和光電開關完成車輛的入庫和出庫。需要為光電開關添加一個邊沿檢測函數。當車輛進入時,光電開關會輸出一個由低到高的電平跳變信號,系統檢測到這一變化,隨即發生中斷,觸發回調函數。這樣可以保證系統得到及時的響應,也不會受到其它進程的影響而導致檢測滯后。
GPIO.add_event_detect(CHECK_BUTTON_NUMBER,GPIO.RISING,callback=StartCheck)
在回調函數中,系統會創建一個線程,調用車牌識別系統,當成功識別到車牌后,系統調用舵機驅動函數,打開門禁,讓車輛進入。等待車輛完全進入后,門禁會自動關閉。在車輛進入過程中,需要通過光電開關不斷監測電平的變化以確定車輛是否完全進入,保證在車輛進入的過程中,門禁不會突然關閉,避免對汽車和駕駛員造成傷害。主要代碼如下:
def allowPass():
setServoAngle(DJ_BCM_NUMBER,OPEN)#控制舵機打開門禁
while GPIO.input(CHECK_BUTTON_NUMBER):#不斷檢測電平變化
time.sleep(2)# 延遲兩秒后關閉門禁,避免汽車沒有來得及駛入
setServoAngle(DJ_BCM_NUMBER,CLOSE)#關閉門禁
車位檢測由Arduino主板控制超聲波傳感器完成。傳感器置于車位頂部或則地下,利用超聲波傳感器得到車輛與傳感器間的距離。通過對距離參數的判定,確認車位是否被占用。在獲得數據后,開啟串口,將此信息發送給Raspberry Pi主板。
在主程序中,創建一個監聽串口的線程,當新傳入的參數與上一次不一樣時,更新數據庫中的信息,反之丟棄。主要代碼如下:
if park_num != oldpark_num: #新傳入的數據與舊數據不一致
oldpark_num = park_num #更新數據
mydb.updatePark(park_num)#更新庫
在本系統中,由于設計了門禁系統,可判斷待識別區域是否有需要識別的車輛,這樣不用在系統中頻繁的調用車牌識別功能,提高了系統運行效率。車牌識別的流程如圖3所示。

圖3 車牌識別流程圖
系統完成車牌識別后,還要對輸出的車牌信息判斷。如果車牌號碼在庫中存在,則說明車輛已經入庫。用戶需要完成繳費后,門禁系統才會放行。
(1)主程序
主程序負責組合各個子功能模塊,其流程圖如圖4所示。

圖 4 主程序流程圖
(2)車輛管理
管理人員通過管理系統,隨時查看車輛的狀態,判斷某一輛車是否在車庫內。同時也要對每一輛入庫的時長進行統計,對“僵尸”車及時清理,避免遭受損失。
(3)車輛計費
當車輛進入車庫時,車輛信息自動錄入數據庫內,同時也開啟計時。當用戶出庫時,系統掃描車牌號,計算出費用。用戶通過web完成付款后,便可離開。
用戶通過瀏覽器訪問系統網站,實現三大主要功能:
(1)車輛繳費:用戶任何時候都可以查詢到繳費信息,也可以在任何時候付款。為了防止用戶過早付款造成經濟損失,在出口處也設置了二次驗證。當車輛經過出口時,會再次統計費用。如果此次費用和用戶付款金額不匹配,那么就不允許放行,用戶必須再次付款。
(2)車輛查詢:用戶可以在任何時候查詢到自己的車輛信息,包括入庫時間,停放時間,以及繳費信息。用戶可以在此界面對車輛進行付款。
(3)車位查詢:用戶未駛入車庫時,可以在此界面上查詢到車庫車位情況,并且會為用戶自動規劃合理路線。規劃路線中的車位并不會和用戶車輛進行綁定。
(1)測試模型
測試模型如圖5所示。

圖5 測試模型
(2)主程序界面
主程序界面如圖6所示。經測試,可以實現對入口的實時監控,能自動識別處理車牌信息并且自動控制車輛入庫出庫。

圖6 主程序界面
(3)用戶界面
用戶界面使用web進行設計,這樣不需要用戶下載其他的軟件,方便用戶操作。如圖7所示,是部分用戶界面的截圖,基本滿足了車輛繳費、車輛查詢和車位查詢。

圖7 車輛查詢和付款
(1)系統進行車牌識別時拍攝角度對結果有影響。所以在設計時應當考慮多次掃描識別,進行統計后選取置信度較高的車牌作為實際輸出結果,可以大大提高識別率。
(2)本設計整體結構較為完善,且模擬運行情況良好,可以用作商用停車場設計的參考模型。