侯向?qū)?,劉華春
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂(lè)山 614007)
隨著國(guó)內(nèi)機(jī)動(dòng)車輛規(guī)模的不斷擴(kuò)大,機(jī)動(dòng)車流量呈爆發(fā)式增長(zhǎng),城市交通面臨巨大的挑戰(zhàn)。車牌識(shí)別系統(tǒng)在進(jìn)行交通管理、處理交通事故、追查被盜車輛以及肇事取證等方面起著非常重要的作用。傳統(tǒng)的基于終端的車牌識(shí)別系統(tǒng)因受硬件的限制,易導(dǎo)致出現(xiàn)錯(cuò)識(shí)、漏識(shí)、升級(jí)困難,以及一些當(dāng)前最新的識(shí)別算法難以應(yīng)用等問(wèn)題。此外,實(shí)時(shí)性較差、極端環(huán)境下的識(shí)別率也很不理想。Hadoop云計(jì)算平臺(tái)具有強(qiáng)大的海量數(shù)據(jù)分發(fā)、存儲(chǔ)以及對(duì)大數(shù)據(jù)進(jìn)行并行運(yùn)算的能力,是大數(shù)據(jù)處理領(lǐng)域的首選。文中提出的車牌識(shí)別系統(tǒng)基于Hadoop云計(jì)算平臺(tái),充分利用Hadoop云計(jì)算平臺(tái)的各種優(yōu)勢(shì),在實(shí)時(shí)性、準(zhǔn)確性和高效性方面進(jìn)一步提高車牌識(shí)別的效率。
Hadoop是對(duì)大數(shù)據(jù)進(jìn)行分布式處理的軟件框架,具有高效分發(fā)數(shù)據(jù),可靠存儲(chǔ)PB級(jí)數(shù)據(jù),便于部署在低成本的普通機(jī)群,快速并行處理數(shù)據(jù)等諸多特點(diǎn)。這些優(yōu)點(diǎn)使得Hadoop在高效性、可靠性以及經(jīng)濟(jì)性上都無(wú)與倫比。HDFS和MapReduce是Hadoop框架的核心,其中,HDFS負(fù)責(zé)對(duì)海量數(shù)據(jù)的存儲(chǔ)和管理,MapReduce負(fù)責(zé)對(duì)海量數(shù)據(jù)進(jìn)行相關(guān)運(yùn)算。
HDFS(Hadoop distributed file system)是用Java開(kāi)發(fā)的能夠運(yùn)行在通用機(jī)器上的具有高容錯(cuò)性、高吞吐量的分布式文件系統(tǒng)。HDFS基于M/S模式,其體系結(jié)構(gòu)由一個(gè)NameNode節(jié)點(diǎn)和若干DataNode節(jié)點(diǎn)構(gòu)成。NameNode即主控服務(wù)器,其職責(zé)是維護(hù)HDFS命名空間,協(xié)調(diào)客戶端對(duì)文件的訪問(wèn)及操作,記錄文件數(shù)據(jù)在每個(gè)DataNode節(jié)點(diǎn)上的位置和副本信息[1-3]。DataNode是數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),在NameNode的調(diào)度下,負(fù)責(zé)客戶端的讀寫請(qǐng)求以及本節(jié)點(diǎn)的存儲(chǔ)管理[4-5]。
MapReduce是處理海量數(shù)據(jù)的分布式編程模型和并行計(jì)算框架[6]。編程模型便于開(kāi)發(fā)人員高效地開(kāi)發(fā)應(yīng)用程序,并行計(jì)算框架為應(yīng)用程序在上千通用機(jī)器組成的集群上并行處理TB級(jí)的海量數(shù)據(jù)提供了有效保障。
MapReduce分布式計(jì)算模型的核心是Map和Reduce函數(shù),依據(jù)分治法思想,Map將任務(wù)分割成多個(gè)子任務(wù),將數(shù)據(jù)映射為
車牌定位在車牌識(shí)別系統(tǒng)中起著至關(guān)重要的作用,車牌定位的準(zhǔn)確與否,直接會(huì)影響到后續(xù)的字符分割和字符識(shí)別的效率,從而影響整個(gè)系統(tǒng)的速度和識(shí)別率。從廣義的角度,車牌定位可以分為基于灰度圖像的邊緣檢測(cè)和基于彩色圖像的色彩分割兩類[7]:基于灰度圖像的邊緣檢測(cè)的優(yōu)點(diǎn)在于計(jì)算量小、速度快、實(shí)時(shí)性好;缺點(diǎn)是在復(fù)雜背景下定位的效果不理想?;陬伾指疃ㄎ坏膬?yōu)點(diǎn)是在復(fù)雜背景下車牌定位的效果很好;缺點(diǎn)是計(jì)算量較大、速度不夠快,當(dāng)光照不均,車牌與車身顏色相近時(shí)效果不理想。
在眾多邊緣檢測(cè)算法中,Sobel算子較為常用,原因在于Sobel算子計(jì)算量小,抗噪性較好,邊緣檢測(cè)效果好。與RGB空間相比,HSV顏色空間較符合對(duì)顏色的主觀體驗(yàn)[8]。因此,文中采用基于HSV空間模型的顏色分割與Sobel算子相結(jié)合的定位算法,使得車牌定位的準(zhǔn)確性和實(shí)時(shí)性都得到了較大提升。算法具體流程如圖1所示。
圖1 基于HSV空間模型的顏色分割與Sobel算子相結(jié)合的車牌定位流程
字符分割的流程是首先對(duì)已定位的車牌進(jìn)行顏色判斷,然后對(duì)藍(lán)、黃車牌分別用不同的閾值進(jìn)行二值化。為了取得良好的車牌字符分割效果,對(duì)二值化后的車牌去除邊框及鉚釘。然后取字符輪廓求其外接矩形,將外接矩形所在的單個(gè)字符區(qū)域提取出來(lái),最后對(duì)單個(gè)字符區(qū)域進(jìn)行歸一化,以便送入識(shí)別模型進(jìn)行識(shí)別。
在眾多字符識(shí)別方法中,基于神經(jīng)網(wǎng)絡(luò)的識(shí)別算法自適應(yīng)和自學(xué)習(xí)能力突出,其并行分布處理使得算法實(shí)時(shí)性較好,即使對(duì)模糊、扭曲的字符也能識(shí)別,具有很好的容錯(cuò)性[9-10]。
收集3 000個(gè)歸一化字符區(qū)域作為樣本,首先對(duì)這些樣本進(jìn)行手工分類,貼好標(biāo)簽后,用其中2 100個(gè)作為訓(xùn)練樣本,將其輸入人工神經(jīng)網(wǎng)絡(luò)(ANN)的MLP模型中進(jìn)行訓(xùn)練,反復(fù)迭代直至模型收斂。訓(xùn)練完成后,將剩余900個(gè)樣本輸入模型進(jìn)行測(cè)試,進(jìn)而對(duì)參數(shù)進(jìn)一步調(diào)優(yōu)?;谏窠?jīng)網(wǎng)絡(luò)的字符識(shí)別的具體流程如圖2所示。
圖2 基于神經(jīng)網(wǎng)絡(luò)的字符識(shí)別流程
MapReduce數(shù)據(jù)流設(shè)計(jì)如圖3所示。
圖3 MapReduce數(shù)據(jù)流設(shè)計(jì)
Map/Reduce數(shù)據(jù)流設(shè)計(jì)是MapReduce流程設(shè)計(jì)的核心,要對(duì)車牌圖像數(shù)據(jù)進(jìn)行存取、運(yùn)算及處理,首先要對(duì)Map/Reduce相應(yīng)的輸入、輸出key/value進(jìn)行合理的設(shè)置[11]。MapReduce框架將存儲(chǔ)在HDFS上的車牌文件以
Hadoop云平臺(tái)的系統(tǒng)架構(gòu)如圖4所示。為方便用戶使用Web瀏覽器對(duì)Hadoop云計(jì)算平臺(tái)進(jìn)行操作,需要架設(shè)Tomcat作為應(yīng)用服務(wù)器,因?yàn)門omcat與Hadoop均由Apache基金會(huì)開(kāi)發(fā),且二者結(jié)合近乎完美。配置好Tomcat服務(wù)器之后,用戶就可以通過(guò)Web瀏覽器導(dǎo)入車牌文件,Tomcat服務(wù)器接收到車牌文件后調(diào)用車牌識(shí)別模塊并將需要識(shí)別的車牌圖像文件傳給Hadoop云計(jì)算平臺(tái),通過(guò)HDFS將數(shù)據(jù)分片輸入MapReduce進(jìn)行識(shí)別,最后由Tomcat服務(wù)器將識(shí)別結(jié)果反饋給用戶。
圖4 Hadoop云計(jì)算平臺(tái)系統(tǒng)架構(gòu)
文中采用偽分布式搭建Hadoop云計(jì)算平臺(tái),優(yōu)點(diǎn)如下:第一,節(jié)省硬件資源,僅需一臺(tái)內(nèi)存至少8 G的主機(jī)就可享受跟完全分布式一樣的環(huán)境;第二,操作系統(tǒng)安裝簡(jiǎn)單,只需裝一臺(tái)虛擬機(jī),后續(xù)只需復(fù)制虛擬機(jī)的鏡像;第三,節(jié)省了重復(fù)繁雜配置的無(wú)謂耗時(shí),Slave1配置好之后,Slave2和Slave3的配置只需復(fù)制Slave1的鏡像就可以了;第四,由于三個(gè)Slave具有相同的軟硬件環(huán)境,屏蔽了完全分布式方式下軟硬件間的差異,便于最終實(shí)驗(yàn)結(jié)果的對(duì)比和分析;最后,偽分布式便于開(kāi)發(fā)人員進(jìn)行調(diào)試和學(xué)習(xí)。偽分布式方式下各節(jié)點(diǎn)的配置如表1所示。
實(shí)驗(yàn)的目的之一是要觀察單機(jī)及分布式環(huán)境下車牌識(shí)別數(shù)量與系統(tǒng)耗時(shí)之間的關(guān)系;另外,更重要的是觀察分布式環(huán)境中不同節(jié)點(diǎn)數(shù)量的識(shí)別速度。實(shí)驗(yàn)設(shè)置了7組數(shù)據(jù),各組需要識(shí)別的車牌圖像數(shù)分別為100,200,300,500,1 000,2 000和3 000。偽分布式環(huán)境下節(jié)點(diǎn)的個(gè)數(shù)依次為1,2,3。最終實(shí)驗(yàn)結(jié)果如圖5所示。
表1 Hadoop集群節(jié)點(diǎn)配置
圖5 識(shí)別數(shù)量與耗時(shí)
實(shí)驗(yàn)結(jié)果顯示,在識(shí)別數(shù)量較小的情況下,單機(jī)與單節(jié)點(diǎn)、雙節(jié)點(diǎn)和三節(jié)點(diǎn)的速度相差無(wú)幾,說(shuō)明Hadoop云計(jì)算平臺(tái)的優(yōu)勢(shì)還沒(méi)有發(fā)揮出來(lái),這主要因?yàn)榉植际江h(huán)境下master與slaves之間要進(jìn)行必要的通信以及數(shù)據(jù)交換,這無(wú)疑增大了系統(tǒng)開(kāi)銷,尤其在識(shí)別數(shù)量較少的情況下,這種開(kāi)銷不容忽視。隨著識(shí)別數(shù)量的增加,由于單機(jī)沒(méi)有額外的系統(tǒng)開(kāi)銷,因而比單節(jié)點(diǎn)的耗時(shí)略??;然而單機(jī)與雙節(jié)點(diǎn)、三節(jié)點(diǎn)的耗時(shí)差異越來(lái)越大,這時(shí)Hadoop云計(jì)算平臺(tái)并行計(jì)算的優(yōu)勢(shì)越來(lái)越突出,當(dāng)識(shí)別數(shù)量達(dá)到3 000時(shí),分布式下三節(jié)點(diǎn)的識(shí)別速度比單機(jī)將近快了3.6倍,這主要是因?yàn)樵诤A繑?shù)據(jù)沖擊下分布式環(huán)境中各節(jié)點(diǎn)的負(fù)載較均衡,內(nèi)存消耗比單機(jī)的要小很多,正是單機(jī)內(nèi)存的消耗在一定程度上拖累了它的效率。實(shí)驗(yàn)結(jié)果表明,Hadoop云計(jì)算平臺(tái)在識(shí)別海量車牌數(shù)據(jù)時(shí),其效率和性能遠(yuǎn)遠(yuǎn)超越單機(jī),具有很好的應(yīng)用前景。
在分析車牌識(shí)別流程的基礎(chǔ)上,設(shè)計(jì)了基于HSV空間模型的顏色分割與Sobel算子相結(jié)合的車牌定位算法,以及基于神經(jīng)網(wǎng)絡(luò)的字符識(shí)別算法。在研究Hadoop云計(jì)算平臺(tái)架構(gòu)的基礎(chǔ)上,為了將車牌識(shí)別算法應(yīng)用于Hadoop云計(jì)算平臺(tái),對(duì)MapReduce數(shù)據(jù)流及Hadoop云計(jì)算平臺(tái)的系統(tǒng)架構(gòu)進(jìn)行了設(shè)計(jì)。通過(guò)搭建Hadoop云計(jì)算平臺(tái)環(huán)境,對(duì)基于Hadoop云計(jì)算平臺(tái)的車牌識(shí)別系統(tǒng)進(jìn)行了相關(guān)測(cè)試。實(shí)驗(yàn)結(jié)果表明,Hadoop云計(jì)算平臺(tái)在識(shí)別海量車牌數(shù)據(jù)時(shí),其效率和性能遠(yuǎn)遠(yuǎn)超越單機(jī),具有很好的應(yīng)用前景。