林 輝,蔡秉華,張藝彬,蔡嘉安,許文強
(韶關學院 物理與機電工程學院,廣東 韶關512005)
隨著城市化進程的加快和人民生活水平的提高,機動車的數量和使用頻率也大大增加,“停車難”的問題日益困擾著車主們.為了提高人們停車的便利性,許多便利型停車場蜂擁而起,可還是存在人工操作效率低,停車管理不到位等問題[1-3].為了節省時間與提高便利性,筆者提出一種基于機器視覺的智能泊車系統,通過識別進出車輛的車牌號記錄入庫,同時監控停車場內情況,讓人們通過APP就能知曉停車場內車位剩余量,自主選擇是否進入該停車場,提高人們的便利性[4-6].
智能泊車系統主要由視覺系統模塊和管理系統模塊兩大部分組成.系統選擇一款產自海康威視的500萬像素攝像頭作為視覺系統硬件部分.攝像頭將采集到的圖像數據發送到計算機,計算機獲取信息后,對圖像進行整合、處理得出進入停車場的車輛車牌號,并獲取當前停車場的停車位的使用情況,即實現車牌識別和車位檢測的功能.管理系統可分為服務器(包括上位機)系統、APP系統兩部分.其中上位機系統實現的主要功能是數據的處理、傳輸、保存和顯示.例如:服務器接收到視覺系統發送過來的停車場數據后,經過處理保存到數據庫并有選擇性的把某些數據顯示到服務器程序界面上.設計APP系統的目的是為了提高停車場的利用率,使停車系統更智能化.用戶可通過APP獲得在線查看停車場的狀況、預定車位、付款、查看用戶停車狀態等服務,其系統結構見圖1.

圖1 系統整體結構圖
智能泊車系統視覺部分由車牌識別、車位檢測兩部分組成,通過機器視覺技術實現智能泊車功能.
車牌識別算法大致分為3步:圖像預處理、數學形態學車牌粗定位、藍色像素統計與行列掃描車牌精確定位[7-9].通過車牌提取、圖像預處理、特征提取、車牌字符識別等技術,識別車輛牌號[10-12].
車牌識別的步驟有6個:(1)圖像壓縮.圖像采集設備所采集的圖像尺寸較大,導致圖像處理運算量極大,為了保證系統的實時性,提高運算速度,必須縮小圖像的尺寸.(2)RGB彩色圖像灰度轉換.RGB彩色圖像在MATLAB中是由3個255級的灰度矩陣按一定比例構成,彩色圖像含有大量彩色信息,占據存儲空間較多,可對彩色圖像進行降維處理.(3)圖像灰度拉伸.經過灰度轉換后的圖像,有可能出現對比度不高、圖像畫面模糊等問題,此時需要進行灰度拉伸,提高圖像對比度,突出車牌區域,本算法采用自適應灰度拉伸.(4)增強車牌區域圖像.該步驟主要采用數學形態學中的開運算,先腐蝕后膨脹,消除背景噪聲,并采用簡單的圖像代數運算,突出車牌區域.(5)車輛圖像二值化處理.該步驟采用取圖像灰度范圍三分點為閾值的車輛圖像二值化方法.(6)車牌提取.通過邊緣檢測獲取牌照以及字符的輪廓.該步驟采用了對弱邊緣有較精確的提取能力,同時又能較大程度保留車牌輪廓紋理的Canny算子.
車位檢測模塊的作用在于統計停車場剩余車位.識別到停車場的剩余車位后,服務器會把停車場的停車情況反饋到APP上,使用戶能夠實時的查看停車場的狀況,方便用戶選擇停車場.筆者采用模板匹配的方法,檢測停車位上是否有車輛停放.停車場的每個車位都有固定的車位編號,通過模板匹配的方法,逐一匹配判斷是否有對應的車位編號.具體車位檢測流程見圖2.通過create_shape_model算子創建車位序號模板,find_shape_model算子進行模板匹配,當車輛進入車位后,若無法匹配到對應的車位編號,表示此時車位已被占用.

圖2 車位檢測流程圖
智能泊車系統管理部分由上位機系統和APP系統部分組成,實現在線查看停車場的狀況、預定車位、付款、查看用戶停車狀態等功能.在 Myeclipse和 Qt Creater開發環境下,使用 Java和 C/C++開發語言,結合 Tomcat、Servlet和 MySQL等技術,完成上位機的開發,實現4個功能:(1)計算汽車的停車時間與收費金額;(2)監控進出車輛車牌號,停車時間和查詢歷史記錄等;(3)通過操作數據庫把停車場的各種信息(用戶信息、預定車位信息、車位信息等)保存在Mysql數據庫上;(4)通過HTTP協議遠程傳輸停車場的停車信息(停車場剩余車位、車輛停車狀態等)到移動端APP上顯示[13-14].
首先服務器初始化停車場的預定信息,然后對視覺系統傳輸過來的數據進行處理,獲得停車場的有用信息并保存到MySQL數據庫上,再有選擇地顯示到上位機界面上,并把信息公布到APP上.上位機顯示和傳輸功能完成后,上位機把停車場的全部停車信息發布到APP上,同時監控用戶是否有在線預約車位和取消訂單的行為.若用戶使用了預約功能,如果當前預約時間段的停車位大于零,服務器會使用戶預約的停車時間段的停車位數量減少一個,若當前預約的時間段停車位數量為零,用戶則無法預約當前停車位.其中上位機程序流程圖見圖3,上位機界面見圖4.

圖3 上位機程序流程圖

圖4 上位機主界面
APP程序是在Eclipse開發環境下,使用JAVA開發語言開發的[15].APP上設計的界面有:登錄界面、車位查詢界面、預定記錄界面、用戶個人界面、停車場信息界面和付款界面等.其中APP的全部界面見圖5.其主要實現功能包括:(1)顯示各個停車場當前停車情況;(2)顯示用戶的歷史停車情況;(3)顯示綁定的車牌好的停車狀況信息;(4)提供在線預約、付款的功能;(5)提供聯系客服的服務.

圖5 APP界面結構圖
經過反復調試后,系統能夠對停車場進行自動化管理,實現多個停車場同時管理,實時監測車位剩余量及車輛停放信息,用戶可在APP上實時查看愛車狀態,實現真正的全方位智能泊車.
用戶可通過輸入正確的用戶名和密碼登錄APP.其登錄界面見圖6(a).登錄成功后,APP會跳轉到車位查詢主界面.在此界面上,用戶可查看各個停車場的主界面.其主界面見圖6(b).點擊停車的相應場位置,APP會跳轉到對應的預約界面.在預約界面上,用戶可查看當前停車場的使用情況,并提供預約車位的功能.車位預定界面見圖6(c).在線付款見圖6(d).另外,在登錄成功后,用戶也可以點擊“預定記錄”按鍵來查看歷史預約記錄.預定記錄界面見圖6(e).當點擊“我的”按鈕時,APP會跳轉到用戶界面。在用戶界面上,可查看已綁定的車牌號對應的車輛的停車情況,同時還提供退款、聯系客服和查看公告等輔助小功能.用戶界面見圖 6(f).

圖6 APP界面圖
筆者采用物聯網技術、機器視覺技術、無線數據傳輸技術和Android技術開發的智能泊車系統,實現了自動識別車牌、在線查看實時剩余車位、在線查看當前停車情況、在線預定車位、在線付款等功能.實驗結果表明,該系統使停車場更加智能化,大大地提高了停車效率及停車場的利用率.