李潔,李登剛,曾文亮
(湖南工業(yè)大學(xué)軌道交通學(xué)院,湖南株洲,412007)
隨著經(jīng)濟(jì)發(fā)展及生活水平的進(jìn)步,大量汽車的出現(xiàn)帶來了許多交通問題,如交通擁堵、肇事逃逸等。為解決上述問題,智能交通、車牌識別已成為近年來的發(fā)展熱點(diǎn)[1-3]。目前在停車場、高速公路,交通路口等領(lǐng)域隨處可見車牌識別的應(yīng)用。我國的普通車牌主要由7個(gè)字符的藍(lán)底矩形牌照框構(gòu)成,根據(jù)車牌的特點(diǎn),設(shè)計(jì)了一種基于BP神經(jīng)網(wǎng)絡(luò)的車牌自動(dòng)識別算法。該算法由以下幾部分構(gòu)成:車牌圖像預(yù)處理,車牌區(qū)域定位,字符分割,字符識別。可以對國內(nèi)普通的藍(lán)底7字符車牌進(jìn)行簡單快速有效的識別。
車牌識別算法的流程主要分為四個(gè)部分:1)圖像預(yù)處理,2)車牌定位,3)字符分割,4)字符識別。其中圖像預(yù)處理、車牌定位和字符分割的目的是為了獲取車牌的各個(gè)字符,然后將得到的車牌字符送入后續(xù)模塊中進(jìn)行字符識別,從而得到車牌號碼信息,各步驟如圖1所示。
圖1 車牌識別系統(tǒng)總體方案
圖像預(yù)處理是整個(gè)車牌識別算法中的最基礎(chǔ)的一步,預(yù)處理后的圖像結(jié)果將關(guān)系到后面字符識別部分的準(zhǔn)確度。車輛圖像預(yù)處理[4]的主要作用是突出車牌的主要特征,以及去除圖像在成像、傳輸過程中的噪聲等,本文的車輛圖像預(yù)處理方式如圖2所示。
圖2 圖像預(yù)處理
車牌定位是使用圖像處理中的去噪算法和數(shù)學(xué)形態(tài)學(xué)方法從給定的圖像中找到車牌所在的部分,將其他部分進(jìn)行區(qū)分并成功提取出來。本文設(shè)計(jì)了車牌區(qū)域粗-細(xì)兩級定位方式,各步驟如圖3所示。
圖3 車牌定位流程圖
1.2.1 粗定位
粗定位就是對車牌區(qū)域輪廓進(jìn)行粗略定位。首先將原始圖像進(jìn)行直方圖均衡化處理用于增強(qiáng)圖像中的信息,再將圖片進(jìn)行灰度化處理增強(qiáng)圖像效果,然后對圖像進(jìn)行濾波操作減少圖像中噪聲,使用Sobel算子邊緣檢測[5]提取出結(jié)構(gòu)特征,最后使用閉運(yùn)算等形態(tài)學(xué)處理方法得到粗定位圖像,粗定位過程如圖4所示。
圖4 車牌圖像粗定位過程
1.2.2 細(xì)定位
精細(xì)定位主要是為了獲得完整、準(zhǔn)確的車牌信息。本文使用HSV色彩空間提取車輛牌照區(qū)域,主要是為了找出圖像中的藍(lán)色像素。在得到HSV色彩空間所提取的車輛牌照區(qū)域后,算法將其轉(zhuǎn)換為RGB圖像從而定位得到藍(lán)色車牌區(qū)域圖像,如圖5所示。
圖5 車牌圖像細(xì)定位過程(提取藍(lán)色車牌區(qū)域)
在得到藍(lán)色車牌區(qū)域之后,將圖5.c進(jìn)行灰度化處理,并且將圖像進(jìn)行二值化,然后通過將二值化圖(圖6.c)與粗定位結(jié)果(圖4.f)使用形態(tài)學(xué)方法進(jìn)行取交集運(yùn)算,從而得到準(zhǔn)確的車牌位置,如圖6所示。
圖6 定位車牌區(qū)域
確定車牌位置之后,對目標(biāo)區(qū)域進(jìn)行長寬比篩選,從而得到目標(biāo)車牌圖像,再通過Radon算法[6]對獲取的車輛牌照進(jìn)行傾斜校正,從而得到精細(xì)定位結(jié)果,如圖7所示。
圖7 精細(xì)定位結(jié)果
《中國人民共和國機(jī)動(dòng)車號牌》行業(yè)標(biāo)準(zhǔn)規(guī)則[7],我國現(xiàn)行的車輛牌照號碼由7個(gè)字符組成。因此需要把定位后的車牌圖片中的7個(gè)字符,分割開來。在對圖7.b進(jìn)行灰度化處理后,再對其進(jìn)行二值化操作并去除噪聲點(diǎn),如圖8所示。根據(jù)每個(gè)字符的高度和寬度以及各字符之間的間距等幾何規(guī)律,采用垂直投影分割法[8]對圖8進(jìn)行字符分割,把車牌分割為7個(gè)小區(qū)域,并且調(diào)整各個(gè)區(qū)域的大小為32×40的格式,調(diào)整后的字符如圖9所示。
圖8 車牌區(qū)域二值圖像
圖9 車牌字符分割
字符識別是對分割出來的字符圖像(包括漢字、數(shù)字和字母)進(jìn)行特征識別,從而得到相對應(yīng)的車牌信息,也是整個(gè)車牌識別流程中最核心部分。本文在總結(jié)各方法的基礎(chǔ)上,采用了BP(BackPropagation)神經(jīng)網(wǎng)絡(luò)技術(shù)進(jìn)行字符識別。
BP神經(jīng)網(wǎng)絡(luò)[9-10]的網(wǎng)絡(luò)結(jié)構(gòu)如圖10所示。從圖中可以看出,該網(wǎng)絡(luò)模型分為三部分:輸入層、隱藏層、輸出層。
圖10 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
BP神經(jīng)網(wǎng)絡(luò)的工作原理是根據(jù)各個(gè)信號的前向傳播以及誤差的反向傳播,從而調(diào)節(jié)自身網(wǎng)絡(luò)的權(quán)重和閾值,利用梯度下降法,使整個(gè)網(wǎng)絡(luò)的平方誤差的和為最小值。基于BP神經(jīng)網(wǎng)絡(luò)的車牌識別算法流程以下:1)構(gòu)建BP神經(jīng)網(wǎng)絡(luò),2)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),3)根據(jù)字符特征進(jìn)行車牌的識別和分類。
1.4.1 構(gòu)建BP神經(jīng)網(wǎng)絡(luò)
根據(jù)我國普通車牌的主要特點(diǎn),建立了兩個(gè)子網(wǎng)去識別不同類型的字符。第一個(gè)子網(wǎng)用來識別車牌號碼中的第一個(gè)漢字字符,第二個(gè)子網(wǎng)用來識別車牌號碼中的第2-7個(gè)字符,這六個(gè)字符除第二個(gè)為英文字符外,其余五個(gè)均為英文和數(shù)字的混合。
第一個(gè)子網(wǎng),構(gòu)建擁有10個(gè)輸入層、10個(gè)隱含層、14個(gè)輸出層的BP神經(jīng)網(wǎng)絡(luò);而第二個(gè)子網(wǎng),構(gòu)建44個(gè)輸入、10個(gè)隱含層、34個(gè)輸出層的BP神經(jīng)網(wǎng)絡(luò)。兩個(gè)子網(wǎng)第一層神經(jīng)元激活函數(shù)都采用logsig,第二層均為sigmode,學(xué)習(xí)方法均采用trainlm。
1.4.2 訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)
將各個(gè)字符的特征值輸入到兩個(gè)BP子網(wǎng)進(jìn)行訓(xùn)練。第一個(gè)子網(wǎng)收集了中國大陸31個(gè)省份簡稱的漢字字符,一共3108張字符圖片。然后將上述圖片進(jìn)行特征值提取,輸入到BP子網(wǎng)進(jìn)行訓(xùn)練,部分漢字字符的訓(xùn)練樣本如圖11所示。
圖11 部分漢字訓(xùn)練樣本
對于第二個(gè)BP子網(wǎng),因?yàn)檐嚺铺柎a中沒有字母“I”和字母“O”,所以采集了除“I”和字母“O”之外的其它 24個(gè)大寫英文字母字符和“0”到“9”這10個(gè)數(shù)字的字符,共4297張字符圖片。然后對這些圖片進(jìn)行特征提取,輸入到BP子網(wǎng)進(jìn)行訓(xùn)練,部分?jǐn)?shù)字和英文字符的訓(xùn)練樣本如圖12所示。
圖12 部分英文數(shù)字字符訓(xùn)練樣本
1.4.3 BP神經(jīng)網(wǎng)絡(luò)分類結(jié)果
完成BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練之后,把圖9中已分割字符的特征值提取出來之后輸入到已經(jīng)訓(xùn)練完成的BP神經(jīng)網(wǎng)絡(luò)中進(jìn)行識別和分類。實(shí)驗(yàn)結(jié)果顯示:輸出字符識別結(jié)果為“川A7HN79”,與真實(shí)的車牌號碼一致,如圖13所示。
圖13 車牌識別結(jié)果
實(shí)驗(yàn)共收集了停車場出入口、高速公路等不同場景下的30幅車牌圖片,共有漢字字符30個(gè),英文字符73個(gè),數(shù)字107個(gè)。將這些車牌信息輸入系統(tǒng)并進(jìn)行車牌識別,識別的結(jié)果如表1所示。從表中可以看出,漢字的識別正確率為96.7%,英文字符的識別正確率為95.9%,數(shù)字識別的正確率為95.3%,所有字符的平均識別正確率為95.7%,取得了比較好的識別結(jié)果。
表1 各個(gè)字符識別正確率情況
本文設(shè)計(jì)了一種BP神經(jīng)網(wǎng)絡(luò)的汽車車牌自動(dòng)識別算法。該方法首先通過對車牌圖像進(jìn)行預(yù)處理,以獲得車牌的主要特征。其次通過粗細(xì)二級定位的方式對車牌區(qū)域進(jìn)行了精準(zhǔn)定位,并對車牌區(qū)域可能出現(xiàn)的傾斜進(jìn)行了校正。然后通過字符分割,分割出了漢字、字母、數(shù)字等7個(gè)字符,最后通過構(gòu)造BP神經(jīng)網(wǎng)絡(luò)對分割出來的7個(gè)字符,進(jìn)行了逐個(gè)識別。實(shí)驗(yàn)結(jié)果表明,該算法可以準(zhǔn)確地識別出車輛的車牌信息。