余以春,閆紅梅
1(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 611756)
2(西安科技大學(xué) 通信與信息工程學(xué)院,西安 710054)
隨著我國經(jīng)濟(jì)的迅速發(fā)展,汽車的數(shù)量迅速增加.自2010年以來,我國汽車保有量每年以超過10%的比例增長,更是在2019年突破了3.48 億輛.相比之下,各種場所的停車位卻增速緩慢,缺口達(dá)到70%以上[1].有車無處停放、停車場一位難求的問題已經(jīng)成為交通監(jiān)管和治理的難點(diǎn)和熱門,這不僅阻礙了交通管理、人們的日常生活,更影響了市容市貌.尤其是在大型社會(huì)活動(dòng)、旅游旺季景區(qū)等人車密集的地區(qū),停車更是一件不易之事.另一方面,在停車場管理中,傳統(tǒng)的地磁系統(tǒng)和單一手持終端占比76.2%,智能化停車管理系統(tǒng)普及率較低[2].同時(shí),由于國內(nèi)的停車場管理系統(tǒng)研究起步較晚,一些設(shè)計(jì)技術(shù)還不夠成熟,存在車牌字符錯(cuò)讀,設(shè)備移動(dòng)不便,無法識別傾斜、斷裂車牌以及識別時(shí)間過長等問題,使得停車場管理系統(tǒng)運(yùn)行效率不高[3,4].基于當(dāng)前停車場收費(fèi)系統(tǒng)存在的問題,本文設(shè)計(jì)了主要用于臨時(shí)停車場所的停車自動(dòng)收費(fèi)系統(tǒng).首先對采集到的車輛圖像,使用圖像處理技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)車牌識別;然后再計(jì)算停車費(fèi)用并在MySQL數(shù)據(jù)庫中存儲(chǔ)停車信息;最后設(shè)計(jì)了管理顯示界面實(shí)現(xiàn)車輛信息的智能化管理[5-7].本文所設(shè)計(jì)的停車收費(fèi)系統(tǒng)具有識別準(zhǔn)確率高、識別時(shí)間短,裝置便攜可移動(dòng)的優(yōu)點(diǎn),能夠顯著提高停車場管理效率,實(shí)現(xiàn)高效、便捷的停車.
本文設(shè)計(jì)的臨時(shí)停車場自動(dòng)收費(fèi)系統(tǒng)的工作流程如圖1所示.當(dāng)入口處的監(jiān)測設(shè)備檢測到車輛駛?cè)胪\噲鰰r(shí),首先采集車牌圖像信息,然后通過車牌識別技術(shù)識別車牌信息,最后將車牌號以及駛?cè)霑r(shí)間等信息存入停車車輛信息存儲(chǔ)表中.當(dāng)在出口檢測到車輛駛離停車場時(shí),再次抓拍車輛圖像,識別車輛信息.若由于車牌部分遮擋、損壞等原因識別失敗,則由人工進(jìn)行錄入或查詢操作.查詢成功后在停車車輛信息存儲(chǔ)表查詢車輛信息,進(jìn)而計(jì)算停車費(fèi)用.在成功收費(fèi)后自動(dòng)放行,并在停車車輛信息存儲(chǔ)表錄入停車訂單.最后,在管理顯示界面顯示停車場當(dāng)前停車信息和停車訂單信息.
本文所設(shè)計(jì)的臨時(shí)停車場自動(dòng)收費(fèi)系統(tǒng)組成如圖2所示,主要包括車牌采集模塊、車牌識別模塊、收費(fèi)模塊和管理顯示模塊.
當(dāng)前主流的采集方法有下面兩種:一種方法是通過視頻、紅外線、地感線圈等檢測器監(jiān)測車輛,當(dāng)檢測器識別到車輛時(shí),發(fā)送信號,計(jì)算機(jī)接收相應(yīng)信號,控制拍攝器采集車輛圖像;另一種采集方法由數(shù)碼照相機(jī)構(gòu)成,通過可設(shè)定參數(shù)的數(shù)碼相機(jī)采集車輛圖像,并且與數(shù)碼相機(jī)相連的主機(jī)可以針對不同的拍攝環(huán)境對相機(jī)的拍攝參數(shù)進(jìn)行適應(yīng)性設(shè)置,保證采集到的車輛圖像質(zhì)量.
圖1 臨時(shí)停車場自動(dòng)收費(fèi)系統(tǒng)流程
圖2 臨時(shí)停車場自動(dòng)收費(fèi)系統(tǒng)框圖
綜合考慮設(shè)備的便攜性,設(shè)備的成本以及設(shè)備安裝的難易程度,本系統(tǒng)采用視頻檢測法采集車牌圖像.通過在停車場的出入口處分別架設(shè)攝像頭,對進(jìn)出車輛進(jìn)行抓拍.
車牌識別模塊主要以采集到的車輛圖像作為輸入,然后依次經(jīng)過車牌定位、車牌矯正、車牌邊框去除、車牌字符分割以及車牌字符識別處理,得到相應(yīng)的車牌信息,實(shí)現(xiàn)對車輛牌照信息的提取.
2.2.1 車牌定位
車牌定位的功能是從車輛圖像中檢測出包含車牌的候選區(qū)域.常用的車牌定位算法[8]包括基于邊緣檢測的車牌定位算法和基于顏色特征的車牌定位算法.為了克服單一的車牌定位算法受車牌背景影響較大,適用范圍有限的缺點(diǎn),本文結(jié)合邊緣檢測以及顏色特征定位算法進(jìn)行車牌定位.
在邊緣檢測定位算法中,首先將采集到的車牌圖像進(jìn)行灰度化處理,舍棄冗余信息,然后通過Sobel 邊緣檢測提取水平邊緣信息,最后進(jìn)行二值化處理,將圖像背景和車牌目標(biāo)相互分離,便于定位車牌位置.
在顏色特征定位算法中,首先將車牌圖片從RGB色彩空間轉(zhuǎn)換到HSV 色彩空間中,然后根據(jù)H 分量的值查找車牌顏色區(qū)域.最后,綜合兩種算法處理結(jié)果,并經(jīng)過形態(tài)學(xué)處理后通過查找外界矩形定位出候選車牌候選區(qū)域.若候選車牌區(qū)域有多個(gè),則在字符分割處理中具體篩選.車牌定位處理效果如圖3所示.
圖3 車牌定位處理效果
如圖3可見,本系統(tǒng)所用車牌定位算法能成功降低光照以及噪聲的影響,并在復(fù)雜車牌區(qū)域取得較好的效果,能夠從采集到的車輛圖像中定位出車牌區(qū)域.
2.2.2 車牌傾斜校正
由于現(xiàn)實(shí)環(huán)境比較復(fù)雜,一些車牌本身可能存在傾斜問題,同時(shí)拍攝角度不正也會(huì)造成得到傾斜的車牌圖像,直接處理這些傾斜的圖像會(huì)對后面的模塊處理造成困難,影響車牌識別結(jié)果,因而需要進(jìn)行傾斜校正.傾斜又分為水平傾斜和垂直傾斜.常用的車牌傾斜矯正算法[9]包括旋轉(zhuǎn)投影法、Hough 變換法、直線擬合法等.綜合考慮傾斜矯正算法的精準(zhǔn)性以及算法實(shí)現(xiàn)的難易程度,本系統(tǒng)使用精確性高的基于邊緣點(diǎn)投影方差最小的水平矯正算法[10]實(shí)現(xiàn)水平傾斜矯正,使用簡單易實(shí)現(xiàn)的垂直投影法實(shí)現(xiàn)垂直傾斜矯正.水平傾斜矯正算法的矯正過程如算法1.
算法1.水平傾斜矯正算法(1)計(jì)算圖像像素的中心點(diǎn)■■■■■■■■■■■■■■■mx=1 N∑i=1xi my=1 N N∑(1)Ni=1yi其中,以及為相應(yīng)點(diǎn)像素的橫坐標(biāo)和縱坐標(biāo).(2)計(jì)算相應(yīng)的映射點(diǎn)xiyi■■■■■■■■■ui=xi-mx vi=yi-my(2)其中,,為,對應(yīng)映射點(diǎn)的橫坐標(biāo)和縱坐標(biāo).(3)計(jì)算水平傾斜角度uivi xiyi[α=1 2 arctan2N∑/ N∑i=1uivii=1(ui2-vi2)](3)(4)根據(jù)計(jì)算得到的傾斜角度先進(jìn)行仿射變換,最后用雙線性插值法完成車牌水平矯正.
車牌傾斜校正處理效果如圖4所示.
如圖4可見,本系統(tǒng)所用車牌傾斜矯正算法能準(zhǔn)確矯正車牌水平和垂直傾斜,矯正效果良好.
圖4 車牌傾斜校正處理效果
2.2.3 邊框及鉚釘去除
車牌四周邊框以及鉚釘會(huì)對接下來的車牌字符分割處理造成一定的干擾,其中左右邊框的造成的影響最大,因而在字符分割之前需要先去除車牌邊框以及鉚釘.為了實(shí)現(xiàn)實(shí)時(shí)高效的去除車牌邊框及鉚釘,本文采用邊緣跳變算法,算法2為該算法具體實(shí)現(xiàn)過程.
算法2.邊緣跳變算法(1)從車牌圖像的首列中點(diǎn)向圖像的上下邊界掃描,統(tǒng)計(jì)當(dāng)前行的像素跳變次數(shù);(2)車牌的上邊界為向上掃描遇到的第一個(gè)像素跳變次數(shù)小于上閾值的行,同理,車牌下邊界為向下掃描遇到的第一個(gè)像素跳變次數(shù)小于下閾值的行;(3)從車牌圖像首行的左右邊界向中間掃描,統(tǒng)計(jì)當(dāng)前列的像素跳變次數(shù);(4)將向右掃描遇到的第一個(gè)連續(xù)4 個(gè)像素跳變次數(shù)均大于左閾值的列作為車牌左邊界,將向左掃描遇到的第一個(gè)連續(xù)6 個(gè)像素跳變次數(shù)均大于右閾值的行作為車牌右邊界;其中閾值由大量實(shí)驗(yàn)測得,本系統(tǒng)所用上閾值和下閾值為22,左閾值和右閾值為3.
車牌邊框及鉚釘去除的效果如圖5所示.
圖5 車牌邊框及鉚釘去除效果
由圖5可見,本系統(tǒng)所用邊緣跳變法計(jì)算簡便,能成功定位出車牌邊界并實(shí)時(shí)高效的去除車牌四周的邊框以及鉚釘.
2.2.4 車牌字符分割
車牌字符分割處理主要實(shí)現(xiàn)對輸入的車牌候選區(qū)域分割出單個(gè)的車牌字符,為后續(xù)車牌識別做好準(zhǔn)備.由于有些字符的區(qū)域相似度很高,如果分割出的字符有偏差,很可能導(dǎo)致接下來的字符識別處理得到錯(cuò)誤的結(jié)果.當(dāng)前常用的車牌字符分割算法為連通區(qū)域分析法、先驗(yàn)知識法以及投影法.各種方法的適用范圍各不相同,相互補(bǔ)充能擴(kuò)大適用范圍、提高字符分割準(zhǔn)確性,因此本系統(tǒng)結(jié)合連通區(qū)域分析法、先驗(yàn)知識法及投影法實(shí)現(xiàn)車牌字符的分割.具體處理過程如算法3.
算法3.字符分割算法(1)對車牌圖像進(jìn)行歸一化處理;(2)使用種子填充法標(biāo)記車牌圖像中的連通區(qū)域;(3)遍歷連通區(qū)域,根據(jù)行列坐標(biāo)及其連通面積,篩選出第二和第三個(gè)字符間的圓形分隔符;(4)若成功找到圓形分隔符,則根據(jù)車牌字符間的間隔距離及單個(gè)字符寬度等先驗(yàn)知識定位并分割字符;(5)若未找到圓形分隔符,則根據(jù)車牌圖像垂直投影圖的波峰、波谷以及先驗(yàn)知識定位并分割字符;(6)判斷分割字符寬度對斷裂、粘連的字符分別進(jìn)行補(bǔ)全和分割處理,最后將分割字符歸一化為40×32 像素值;
車牌字符分割效果圖如圖6所示.由圖6可見,本系統(tǒng)所用車牌字符分割算法能準(zhǔn)確定位每個(gè)字符的位置并成功分割車牌字符.
圖6 車牌字符分割效果
2.2.5 車牌字符識別
車牌字符識別處理能夠?qū)Ψ指詈玫能嚺谱址?實(shí)現(xiàn)提取車牌信息的功能.常用的車牌字符分割算法包括模板匹配算法、神經(jīng)網(wǎng)絡(luò)識別算法、特征統(tǒng)計(jì)匹配算法等[11].深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)的一個(gè)重要分支,近年來發(fā)展迅速,廣泛應(yīng)用在圖像識別、語音識別等眾多領(lǐng)域并獲得了巨大成功[12].基于深度學(xué)習(xí)的圖像識別技術(shù)能夠從大數(shù)據(jù)中訓(xùn)練學(xué)習(xí),具有應(yīng)用范圍廣、識別準(zhǔn)確率高、魯棒性強(qiáng)等優(yōu)點(diǎn)[13,14].研究人員相繼提出了許多代表性的深度學(xué)習(xí)經(jīng)典模型,如深度置信網(wǎng)(Deep Belief Networks,DBN)[15,16]、棧式自編碼器(Stack Auto Encoder,SAE)[17]、深度卷積網(wǎng)絡(luò)(Deep Convolutional Neural Networks,DCNN)等.其中,以卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neuron Networks,CNN)為基礎(chǔ)的各種模型應(yīng)用最為廣泛.卷積神經(jīng)網(wǎng)絡(luò)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),主要包括卷積層、池化層和全連接層.可以通過卷積核與圖像卷積提取出圖像特征,然后通過池化層降低數(shù)據(jù)運(yùn)算的復(fù)雜度,最后經(jīng)過全連接層中的分類器得到識別結(jié)果.本文在LeNet-5 網(wǎng)絡(luò)的基礎(chǔ)上,搭建卷積神經(jīng)網(wǎng)絡(luò)用于車牌字符識別[18-21],網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示.
圖7 車牌字符識別的CNN 結(jié)構(gòu)
本系統(tǒng)將車牌字符分為漢字,數(shù)字及字母兩部分分別進(jìn)行識別.其中識別漢字時(shí)輸出大小為1×31,識別數(shù)字及字母時(shí)輸出為1×34.在搭建的卷積神經(jīng)網(wǎng)絡(luò)中,L1 卷積層卷積核尺寸為7×7,L3 卷積層卷積核大小為5×5.卷積層和池化層采用Same Padding 填充方式,保存圖像邊緣信息,使處理后數(shù)據(jù)尺寸不變,并使用Dropout 正則化方法,防止訓(xùn)練過擬合.車牌字符識別兩部分采用的網(wǎng)絡(luò)結(jié)構(gòu)相同,而所用訓(xùn)練集和測試集不同,并在訓(xùn)練過程中每迭代5 次使用網(wǎng)絡(luò)對測試集進(jìn)行實(shí)際預(yù)測.其中,車牌字符訓(xùn)練集總數(shù)為8000 多幅,預(yù)測集由每種車牌字符約20 張圖片組成,共1300 幅.車牌字符訓(xùn)練和識別效果如圖8所示.
圖8 車牌字符訓(xùn)練效果
由圖8可見,卷積神經(jīng)網(wǎng)絡(luò)在一定訓(xùn)練步數(shù)之后訓(xùn)練準(zhǔn)確率接近100%,車牌漢字預(yù)測準(zhǔn)確率最后穩(wěn)定在97%左右,車牌數(shù)字及字母預(yù)測準(zhǔn)確率為98.5%左右,識別效果良好.
收費(fèi)模塊能夠根據(jù)具體的汽車類型、日期以及時(shí)間段的不同,設(shè)置相應(yīng)的收費(fèi)標(biāo)準(zhǔn),實(shí)現(xiàn)對停車場車輛的信息存儲(chǔ)以及停車費(fèi)用計(jì)算.
2.3.1 車輛信息存儲(chǔ)
本文使用MySQL 數(shù)據(jù)庫存儲(chǔ)停車場信息,并設(shè)計(jì)兩個(gè)表格存儲(chǔ)相應(yīng)信息.停車車輛信息存儲(chǔ)表包含車牌號碼及進(jìn)入時(shí)間的信息,停車計(jì)費(fèi)存儲(chǔ)表則包括訂單號,車輛號碼,進(jìn)入時(shí)間,駛離時(shí)間,停放時(shí)長,收費(fèi)標(biāo)準(zhǔn),停車費(fèi)用等信息.
停車車輛信息存儲(chǔ)表中存儲(chǔ)停車場車輛信息,當(dāng)車輛離開停車場時(shí),會(huì)創(chuàng)建停車訂單號,將詳細(xì)的停靠信息存儲(chǔ)到停車計(jì)費(fèi)存儲(chǔ)表中,并在停車車輛信息存儲(chǔ)表中刪除相應(yīng)的紀(jì)錄.
2.3.2 收費(fèi)計(jì)算
當(dāng)檢測到車輛離開停車場時(shí),首先在停車車輛信息存儲(chǔ)表中查詢相應(yīng)停車信息,然后根據(jù)停車時(shí)間以及收費(fèi)標(biāo)準(zhǔn)計(jì)算等計(jì)算停車費(fèi)用.為了實(shí)現(xiàn)高效便捷的停車計(jì)費(fèi),本系統(tǒng)提供手機(jī)支付和人工支付的收費(fèi)方式.其中,手機(jī)支付包括微信公眾號在線支付以及掃碼支付.停車車主可以關(guān)注停車場中的微信公眾號,然后綁定車牌號和手機(jī)號,實(shí)現(xiàn)在線支付;也可以掃描停車場內(nèi)的付款碼支付停車費(fèi)用.對于不能通過手機(jī)支付的車主,可以在收費(fèi)口人工繳費(fèi),現(xiàn)金支付.采用多種支付方式,滿足不同客戶需求.
本文使用Qt 實(shí)現(xiàn)顯示界面的具體設(shè)計(jì),系統(tǒng)顯示界面包括停車管理界面以及訂單顯示界面,顯示界面如圖9所示.停車管理界面能夠加載車輛圖像并識別提取車輛信息并顯示當(dāng)前停車場的停車信息、停車數(shù)量、剩余車位、當(dāng)前時(shí)間等信息;訂單顯示界面主要顯示停車訂單信息,能夠?qū)⒂唵涡畔⒋蛴”4娴紼xcel中并可以查找特定車輛的停車訂單信息.
本文通過車輛圖像的加載仿真車輛的進(jìn)出.加載并識別車牌圖像,若識別出的車牌信息在停車車輛信息存儲(chǔ)表中不存在,表明車輛駛?cè)?若識別出的車牌信息在停車車輛信息存儲(chǔ)表中已存在,表明車輛準(zhǔn)備駛離.由圖9可見,臨時(shí)停車場自動(dòng)管理系統(tǒng)運(yùn)行穩(wěn)定,能成功識別并管理停車場車輛.
圖9 系統(tǒng)顯示界面圖
仿真測試中平均每幅車牌圖像識別時(shí)間約為0.92 s,可以滿足停車場實(shí)際應(yīng)用.
停車場的自動(dòng)化、智能化停車收費(fèi)管理是解決停車管理難的有效途徑,本文設(shè)計(jì)了一種移動(dòng)便捷、自動(dòng)化程度高、管理高效的臨時(shí)停車場自動(dòng)收費(fèi)系統(tǒng).本系統(tǒng)的優(yōu)點(diǎn)在于識別準(zhǔn)確率高,識別時(shí)間少,所需設(shè)備的便捷安裝和拆卸,實(shí)時(shí)性強(qiáng),智能管理車輛??亢褪召M(fèi),顯著的提高了停車場的管理效率,極大的緩解了停車場停車難的難題.未來將進(jìn)一步提高車牌識別的準(zhǔn)確率,縮短識別時(shí)間,擴(kuò)展系統(tǒng)的性能以滿足不同行業(yè)的車輛管理要求.