張立立,張振坤,劉明釗,沙 毅
(1.東北大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,國(guó)家級(jí)計(jì)算機(jī)實(shí)驗(yàn)教學(xué)示范中心,遼寧 沈陽110819;2.大連理工大學(xué)物理學(xué)院,遼寧 大連116024)
智能交通系統(tǒng)[1]利用先進(jìn)的信息處理技術(shù)、導(dǎo)航定位技術(shù)、無線電通信技術(shù)、自動(dòng)控制技術(shù)、圖像分析技術(shù)及計(jì)算機(jī)網(wǎng)絡(luò)和處理技術(shù)等加強(qiáng)道路、車輛、駕駛員和管理人員的聯(lián)系,實(shí)現(xiàn)道路交通管理的“自動(dòng)化”和車輛行駛的“智能化”,增強(qiáng)運(yùn)輸安全,減少交通擁塞,增加車輛機(jī)動(dòng)性和路面運(yùn)輸效率,減少環(huán)境污染,節(jié)約能源,有助于提高經(jīng)濟(jì)活力[2]。其中,車牌識(shí)別技術(shù)是智能交通系統(tǒng)的重要組成部分,已經(jīng)廣泛應(yīng)用于交通流量檢測(cè)、小區(qū)車輛管理、街道違停監(jiān)控、高速公路收費(fèi)等各方面,它改變了傳統(tǒng)的交通管理體系,大大降低了人力成本,提高了工作效率,更科學(xué)高效地完善了交通管理系統(tǒng),還具有潛在的技術(shù)應(yīng)用前景。
21 世紀(jì)以來,隨著經(jīng)濟(jì)的快速發(fā)展和國(guó)家綜合實(shí)力的增強(qiáng),我國(guó)車牌識(shí)別技術(shù)趨于成熟,主要包括直接法和間接法兩種方法。 其中,采用無線電頻率鑒別車牌的方法屬于間接法,而車牌識(shí)別的直接法則是基于圖像處理的車牌自動(dòng)識(shí)別[3]。 自20 世紀(jì)80 年代以來,許多學(xué)者使用圖像處理的方法對(duì)車牌識(shí)別進(jìn)行了研究[4],但由于國(guó)內(nèi)的牌照拍攝差異,使得車牌自動(dòng)識(shí)別系統(tǒng)不夠完善,識(shí)別結(jié)果不夠理想。 牛進(jìn)才等人[5-6]提出將采集到的車牌照進(jìn)行灰度化、二值化等一系列處理,采用邊緣檢測(cè)算法等對(duì)車牌進(jìn)行定位。 張哲[7]等人提出將圖像處理與圖像識(shí)別技術(shù)融入車輛流量檢測(cè)中,大大提高了檢測(cè)的效率和管理的質(zhì)量。
總體來說,由于我國(guó)不同汽車類型有不同的規(guī)格、大小和顏色,且車牌號(hào)位數(shù)不統(tǒng)一,所以在進(jìn)行車牌識(shí)別時(shí),增加了一定的難度。 同時(shí),依照目前的研究現(xiàn)狀來看,車牌識(shí)別系統(tǒng)的識(shí)別率和識(shí)別速度亦有待提高。 基于此,我們結(jié)合當(dāng)前火熱的深度學(xué)習(xí)技術(shù)[8]提出了一種整合了車牌號(hào)、車型和車品牌的自動(dòng)識(shí)別技術(shù)。
本文將對(duì)此識(shí)別技術(shù)在停車場(chǎng)收費(fèi)場(chǎng)景下的應(yīng)用展開論述。
1.1.1 車牌定位
車牌定位是指對(duì)獲取的圖像首先進(jìn)行一系列預(yù)處理,進(jìn)而可以在圖像中定位到車牌的位置,其主要目的是在一幅圖片中發(fā)現(xiàn)僅包含車牌的圖塊,以此提高整體識(shí)別的準(zhǔn)確率與識(shí)別速度。
(1)定位原理
在我們的車牌定位過程中,我們采用了兩種方法進(jìn)行相互結(jié)合:基于邊緣檢測(cè)的車牌定位方法[9]和基于顏色特征的車牌定位方法[10]。 其中,圖像邊緣是指圖像的灰度值發(fā)生劇烈變化的區(qū)域,由于字符在車牌圖像中具有較大的邊緣特征,所以基于邊緣檢測(cè)的車牌定位是根據(jù)圖像中字符的特征和其他邊緣信息來實(shí)現(xiàn)的;基于顏色特征的定位方法是指車牌顏色、車牌背景等特征,先提取出包含車牌區(qū)域的圖像塊,再進(jìn)行灰度化、二值化等一系列處理之后,根據(jù)車牌區(qū)域投影圖和非車牌區(qū)域投影圖的不同,采用行列掃描投影法進(jìn)行精準(zhǔn)定位,提取出最終的車牌圖像區(qū)域。
(2)定位過程
車牌的整個(gè)定位過程流程圖如圖1 所示。 首先,對(duì)輸入的車牌圖像進(jìn)行高斯濾波、歸一化等預(yù)處理[11],之后對(duì)輸入圖像進(jìn)行灰度化及二值化處理,再對(duì)得到的顏色檢測(cè)圖像與邊緣檢測(cè)圖像進(jìn)行互相篩選,至此得到消除大部分噪聲的車輛圖像。 根據(jù)我國(guó)車牌的特征,車牌大小為440 mm×140 mm,其長(zhǎng)寬比約為3 ∶1,由此篩選出車牌圖塊位置后,即可輸出輪廓比最接近3 ∶1 的圖塊。 此圖塊即為定位后的車牌。
圖1 車牌定位流程圖
1.1.2 字符分割
對(duì)于截取出的車牌圖像,我們利用垂直投影法[12]將其中的車牌號(hào)分割為7 個(gè)獨(dú)立字符,然后再進(jìn)行字符識(shí)別。
(1)算法原理
該算法是依據(jù)車牌字符間的像素為零而找到各個(gè)字符的左右位置進(jìn)行分割。
我們對(duì)車牌灰度圖像進(jìn)行灰度垂直投影,通過車牌區(qū)域的垂直投影可以清晰地看出7 個(gè)字符各自的區(qū)域。 根據(jù)投影圖的特征,首先遍歷每一列的像素并進(jìn)行統(tǒng)計(jì),定義第0 列為開始位,之后從左到右依次將每一列的白色像素?cái)?shù)與一個(gè)閾值進(jìn)行大小比較。 若白色像素?cái)?shù)大于閾值,則繼續(xù)判斷下一列,直到白色像素?cái)?shù)低于某一閾值,此時(shí)定義該列為結(jié)束位。 依次循環(huán),從而分割出每個(gè)字符。
(2)分割過程
字符分割的過程是從車牌字符的垂直投影圖上的橫向從左到右依次檢測(cè)每一個(gè)坐標(biāo)的投影數(shù)值。當(dāng)檢測(cè)到第一個(gè)不為零的投影數(shù)值時(shí),將此投影數(shù)值所屬的像素點(diǎn)看作第一個(gè)投影區(qū)域的左邊邊界。然后繼續(xù)向右檢測(cè),當(dāng)檢測(cè)到的投影數(shù)值出現(xiàn)第一個(gè)零值時(shí),將此投影數(shù)值所屬的像素點(diǎn)看作第一個(gè)投影區(qū)域的右邊邊界。 至此得到了第一個(gè)區(qū)域的左右邊界,即分割出了第一個(gè)字符,其他區(qū)域字符分割重復(fù)以上循環(huán)過程即可。
1.1.3 字符識(shí)別
因?yàn)槲覀兯M(jìn)行檢測(cè)的車牌的編號(hào)是由中文漢字與數(shù)字組合而成,所以我們通過改進(jìn)LeNet-5 模型實(shí)現(xiàn)對(duì)車牌的漢字(省份)與數(shù)字的分別訓(xùn)練。
其中我們收集了一共40 000 張(大小為33×33)的數(shù)據(jù)集,將訓(xùn)練集與驗(yàn)證集大致分為8 ∶2 的比例,在基于Python 3.6.6 的tensor flow 環(huán)境下進(jìn)行訓(xùn)練。
省份訓(xùn)練中,我們把準(zhǔn)確率設(shè)為0.9,訓(xùn)練結(jié)果如圖2 所示。
圖2 省份訓(xùn)練結(jié)果圖
數(shù)字訓(xùn)練中,我們把準(zhǔn)確率設(shè)為0.88,訓(xùn)練結(jié)果如圖3 所示。
圖3 數(shù)字訓(xùn)練結(jié)果圖
之后我們把訓(xùn)練出的權(quán)重應(yīng)用于編寫好的LeNet-5 神經(jīng)網(wǎng)絡(luò)中,輸出是概率最大的前三類。識(shí)別結(jié)果如圖4 所示。
圖4 車牌識(shí)別結(jié)果圖
停車場(chǎng)車輛收費(fèi)系統(tǒng)呈現(xiàn)給停車場(chǎng)管理人員的是前端頁面。 通過前端窗口,停車場(chǎng)管理人員能夠?qū)崟r(shí)監(jiān)測(cè)進(jìn)入停車場(chǎng)的每一輛車的圖片、車牌識(shí)別的結(jié)果以及后端數(shù)據(jù)庫實(shí)時(shí)更新的內(nèi)容,如圖5 所示,主要包括每一輛車的車型、車品牌、車牌號(hào)以及進(jìn)入停車場(chǎng)的時(shí)間。 總體來說,前端窗口的設(shè)計(jì)能夠幫助停車場(chǎng)的管理人員足不出戶地實(shí)時(shí)掌控停車場(chǎng)內(nèi)部情況。
圖5 前端窗口界面展示
本系統(tǒng)的前端頁面基于Python3.6.6 平臺(tái),通過調(diào)用Tkinter 模塊進(jìn)行圖形用戶界面GUI 的編寫。其中,Tkinter 模塊(Tk 接口)是Python 的標(biāo)準(zhǔn)Tk GUI 工具包的接口,Python 通過使用Tkinter 就可以快速創(chuàng)建GUI 應(yīng)用程序。
1.2.1 前端開發(fā)
前端的開發(fā)過程,主要指窗口基本框架及其內(nèi)容的實(shí)現(xiàn),包括展示識(shí)別的圖片、識(shí)別的結(jié)果以及后端的數(shù)據(jù)庫內(nèi)容。 對(duì)于想要展示的車牌圖片和識(shí)別結(jié)果,我們通過調(diào)用show_roi 和from picture 兩個(gè)函數(shù),將車牌識(shí)別算法部分返回得到的結(jié)果展示在前端界面中,并對(duì)其進(jìn)行位置調(diào)整。 數(shù)據(jù)庫內(nèi)容由creat_page 和creat_table 兩個(gè)函數(shù)構(gòu)成,先將該部分的框架、面板等基本內(nèi)容寫出,在此基礎(chǔ)之上完成后續(xù)表格的創(chuàng)建(其中表格的標(biāo)題行內(nèi)容分別為“序號(hào)、車型、車品牌、車牌號(hào)、進(jìn)入停車場(chǎng)時(shí)間”),并讀取數(shù)據(jù)庫內(nèi)部所有數(shù)據(jù),即停在停車場(chǎng)內(nèi)部的所有車輛信息,將其展示在表格中。
同時(shí),我們也為用戶提供了手動(dòng)增加數(shù)據(jù)庫內(nèi)容的功能,即通過表格右上方的“記錄”按鈕,管理人員可以手動(dòng)輸入新的車輛信息,以此確保不會(huì)遺漏任何一輛進(jìn)入停車場(chǎng)的車輛的信息。
1.2.2 實(shí)驗(yàn)結(jié)果
圖6 前端界面效果圖
由圖5 和圖6 可知,該停車場(chǎng)系統(tǒng)的前端界面包括了車牌識(shí)別的結(jié)果以及數(shù)據(jù)庫內(nèi)容,圖6 是最終呈現(xiàn)出的效果圖,即管理人員可通過該窗口實(shí)時(shí)觀測(cè)到停車場(chǎng)的狀況,由此可見,此前端界面能夠滿足用戶需求。
鑒于我們整個(gè)系統(tǒng)采用Python 語言編寫,而基于Python 3.6.6 平臺(tái)的SQLite 是一款輕型的、遵循ACID 的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),能夠支持Windows等主流的操作系統(tǒng),同時(shí)也能夠跟很多程序語言相結(jié)合,且處理速度較快。 因此,對(duì)于停車場(chǎng)車輛收費(fèi)系統(tǒng)的后端數(shù)據(jù)庫設(shè)計(jì),我們?cè)赟QLite 上構(gòu)建了數(shù)據(jù)庫管理系統(tǒng),并通過編寫插入數(shù)據(jù)、刪除數(shù)據(jù)的函數(shù),實(shí)現(xiàn)實(shí)時(shí)記錄停車場(chǎng)車輛的進(jìn)出情況。
在我們的停車場(chǎng)收費(fèi)系統(tǒng)中,數(shù)據(jù)庫系統(tǒng)包括序號(hào)、車型、車品牌、車牌號(hào)、進(jìn)入停車場(chǎng)時(shí)間這五項(xiàng)內(nèi)容。 對(duì)于進(jìn)入停車場(chǎng)的每一輛車,相當(dāng)于向數(shù)據(jù)庫中增加一個(gè)新對(duì)象,并將其信息輸入到數(shù)據(jù)庫中,此時(shí)即認(rèn)為此車輛已經(jīng)停放在了停車場(chǎng)內(nèi)部;對(duì)于離開停車場(chǎng)的車輛,系統(tǒng)自動(dòng)刪除數(shù)據(jù)庫中相關(guān)信息,并顯示其應(yīng)付的金額。
此模塊的代碼編寫,主要包括生成數(shù)據(jù)庫、插入信息、刪除信息等函數(shù)。 在完成創(chuàng)建數(shù)據(jù)庫后,對(duì)于由車牌識(shí)別算法返回得到的車牌號(hào)數(shù)據(jù),首先確認(rèn)此數(shù)據(jù)是否已經(jīng)存在于數(shù)據(jù)庫中。 如果數(shù)據(jù)庫中沒有此車牌號(hào),即認(rèn)為是第一次識(shí)別到該車,該車是要進(jìn)入停車場(chǎng)內(nèi)部,并利用插入函數(shù)將車輛信息輸入到數(shù)據(jù)庫中。 如果發(fā)現(xiàn)此數(shù)據(jù)已經(jīng)存在于數(shù)據(jù)庫中,即認(rèn)為是第二次識(shí)別到該車,該車是要離開停車場(chǎng),系統(tǒng)則自動(dòng)從數(shù)據(jù)庫中刪除該車輛相關(guān)信息,并獲取當(dāng)前時(shí)間(即離開停車場(chǎng)的時(shí)間),利用存入的進(jìn)入時(shí)間,得到并顯示該車輛應(yīng)支付的費(fèi)用金額。
在完成車牌號(hào)識(shí)別系統(tǒng)的基礎(chǔ)之上,我們對(duì)已構(gòu)建的停車場(chǎng)收費(fèi)系統(tǒng)進(jìn)行了進(jìn)一步的拓展與創(chuàng)新。為了進(jìn)一步完善豐富整個(gè)系統(tǒng),擴(kuò)展收費(fèi)系統(tǒng)的應(yīng)用范圍,我們?cè)黾恿塑囶愋鸵约败嚻放谱R(shí)別系統(tǒng)的設(shè)計(jì)。 最后此兩項(xiàng)識(shí)別信息將會(huì)與車牌號(hào)、進(jìn)入停車場(chǎng)時(shí)間一起存入數(shù)據(jù)庫,并展示在前端界面當(dāng)中。
目前,車型識(shí)別是大多數(shù)交通管理系統(tǒng)的重要組成部分,相對(duì)成熟的車型識(shí)別方法有超聲波檢測(cè)、激光紅外線檢測(cè)等方法,但都有較大的弊端之處,比如維護(hù)成本過高等。 目前深度學(xué)習(xí)算法已經(jīng)在圖像分類識(shí)別等方面取得了較好的效果,而其中一種重要的結(jié)構(gòu)就是卷積神經(jīng)網(wǎng)絡(luò)[13],該網(wǎng)絡(luò)具有在深度學(xué)習(xí)中自動(dòng)學(xué)習(xí)、提取圖像特征的特點(diǎn),得到了較大發(fā)展。 因此我們利用卷積神經(jīng)網(wǎng)絡(luò),對(duì)進(jìn)入停車場(chǎng)的車輛進(jìn)行簡(jiǎn)單的車型分類識(shí)別,分為轎車、貨車、大客車三大類。 網(wǎng)絡(luò)架構(gòu)如圖7 所示。 其中用到的卷積神經(jīng)網(wǎng)絡(luò)包括三個(gè)卷積層和一個(gè)全連接層。
圖7 車型識(shí)別卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)圖
我們首先將訓(xùn)練集中的圖像都轉(zhuǎn)換成32×32大小的RGB 圖像;再經(jīng)過三次卷積加池化,輸出大小為2×2×60 的張量;然后展開成1×1×240 的向量,通過全連接層轉(zhuǎn)換為1×1×100 的特征向量;最后通過dropout 層抑制過擬合并通過softmax 層輸出。
測(cè)試過程中的部分程序及結(jié)果如圖8 所示,可以發(fā)現(xiàn),車型識(shí)別的準(zhǔn)確率保持在一個(gè)較高的水準(zhǔn),結(jié)果是比較理想的。
圖8 車型識(shí)別算法的部分程序與運(yùn)行結(jié)果展示
對(duì)于車品牌的識(shí)別,由于品牌型號(hào)過于復(fù)雜,我們受限于訓(xùn)練資源無法自主訓(xùn)練,因此我們采用了百度智能云API。 該API 可以精準(zhǔn)識(shí)別車的品牌和型號(hào),識(shí)別準(zhǔn)確率較高而且十分快速。 其中,百度智能云是百度提供的公有云平臺(tái),提供智能大數(shù)據(jù)、智能多媒體、智能物聯(lián)網(wǎng)服務(wù)。
圖9 是我們利用該API 進(jìn)行車品牌識(shí)別的算法代碼部分,其中在獲得百度密鑰等參數(shù)信息后,打開所要識(shí)別的圖片,調(diào)用該API 即可輸出得到圖片中車輛的品牌信息。 可以從圖10 的測(cè)試實(shí)驗(yàn)結(jié)果中得知,利用百度智能云API 進(jìn)行車品牌識(shí)別的效果較為理想。
圖9 車品牌識(shí)別算法的部分程序與運(yùn)行結(jié)果展示
圖10 車品牌識(shí)別系統(tǒng)測(cè)試結(jié)果展示
在本文中,我們利用Python 語言實(shí)現(xiàn)了一個(gè)基于車牌識(shí)別技術(shù)的停車場(chǎng)管理系統(tǒng)。 通過觀察測(cè)試的結(jié)果,該系統(tǒng)能夠較好地實(shí)現(xiàn)對(duì)于進(jìn)出停車場(chǎng)的車輛的管理。
車牌識(shí)別技術(shù)對(duì)于維護(hù)交通安全和城市治安,防止交通堵塞,方便停車場(chǎng)收費(fèi)管理等方面有著現(xiàn)實(shí)意義。 本文提出的停車場(chǎng)收費(fèi)管理系統(tǒng)結(jié)合當(dāng)前火熱的深度學(xué)習(xí)技術(shù),在車牌號(hào)識(shí)別技術(shù)的基礎(chǔ)上進(jìn)一步做了車型識(shí)別技術(shù)和車品牌識(shí)別技術(shù)的擴(kuò)充延展,使整個(gè)收費(fèi)管理系統(tǒng)更加趨于完善和便捷可控。
車牌識(shí)別的發(fā)展還需要做更深層次的研究和完善。 隨著城市智能化的發(fā)展,此項(xiàng)技術(shù)將會(huì)對(duì)我國(guó)未來交通全自動(dòng)化管理甚至經(jīng)濟(jì)發(fā)展領(lǐng)域帶來不可估量的促進(jìn)作用。