劉建國,代 芳,詹 濤
(1.武漢理工大學(xué) 現(xiàn)代汽車零部件技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430070;2.武漢理工大學(xué) 汽車零部件技術(shù)湖北省協(xié)同創(chuàng)新中心,湖北 武漢 430070)
車牌自動(dòng)識(shí)別是智能交通管理系統(tǒng)中的關(guān)鍵組成部分之一,在很多領(lǐng)域得到廣泛應(yīng)用,如交通監(jiān)控,停車場管理等[1-2],國內(nèi)外許多學(xué)者進(jìn)行了廣泛的研究。文獻(xiàn)[3]采用基于機(jī)器學(xué)習(xí)的方法進(jìn)行車牌字符識(shí)別,該方法針對(duì)車牌字符清晰的車牌具有一定的魯棒性,但對(duì)于車牌字符傾斜、模糊則效果不佳。文獻(xiàn)[4]采用基于顏色的車牌定位方法,該方法充分利用車牌顏色信息,但車身顏色與車牌顏色一致時(shí),定位錯(cuò)誤率增加,且易受光照信息影響。文獻(xiàn)[5]采用了深度學(xué)習(xí)的方法對(duì)車牌進(jìn)行識(shí)別,準(zhǔn)確率較高,但進(jìn)行了字符分割步驟,對(duì)于字符粘連的車牌無法進(jìn)行識(shí)別,且效率較低。文獻(xiàn)[6]采用了基于顏色的車牌定位和基于LeNet-5的車牌字符識(shí)別方法進(jìn)行車牌識(shí)別,但僅用單一的顏色定位在霧霾、夜晚等天氣進(jìn)行車牌定位效果不佳。為了兼顧車牌檢測的定位速度和定位準(zhǔn)確率,本文提出了一種由粗到精、基于SVM的車牌檢測方法。首先結(jié)合車牌的顏色信息、邊緣信息和文字信息快速檢測出車牌的候選區(qū)域,再利用梯度方向直方圖和支持向量機(jī)對(duì)候選區(qū)域進(jìn)行篩選,從而實(shí)現(xiàn)車牌區(qū)域的快速精確定位。對(duì)于精確定位到的車牌進(jìn)行樣本擴(kuò)充,得到80 602張圖片,輸入到改進(jìn)的AlexNet卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,得到車牌字符識(shí)別模型,并使用該模型進(jìn)行車牌識(shí)別。
本文提出算法的主要流程圖如圖1所示。首先對(duì)輸入圖像進(jìn)行預(yù)處理,實(shí)現(xiàn)車牌的精確定位。將定位好的車牌輸入到SVM[7]模型中判斷是否為車牌,將判斷為車牌的圖塊輸入到端到端的深度學(xué)習(xí)模型License Plate Recognize(以下簡稱LPR)中進(jìn)行車牌識(shí)別。
圖1 系統(tǒng)流程圖
車牌檢測是車牌識(shí)別系統(tǒng)的第一步,由于我國的車牌具有特征明顯,字符數(shù)目確定,選擇采用車牌邊緣檢測的方法進(jìn)行車牌定位;在自然場景下,車牌存在部分遮擋或其他類似輪廓區(qū)域,使得車牌定位準(zhǔn)確度不高,而車牌顏色特征明顯,因此采用基于顏色檢測方法進(jìn)行車牌檢測;針對(duì)車身顏色與車牌顏色相近的情況,顏色檢測效果不佳,此時(shí)采用文字檢測進(jìn)行補(bǔ)充[8]。
根據(jù)車牌本色的特點(diǎn),采用垂直邊緣檢測進(jìn)行車牌定位。車牌邊緣檢測中,由于原始圖像包含很多噪聲,因此采用高斯模糊算法對(duì)自然場景下的圖片進(jìn)行處理,減少圖像噪聲,然后對(duì)圖像進(jìn)行灰度化處理。車牌字符主要是垂直邊緣,因此選擇Sobel算子實(shí)現(xiàn)垂直邊緣檢測。該方法是用3*3的模板卷積對(duì)圖像進(jìn)行變換,計(jì)算過程如式(1)所示。
其中,A代表灰度圖;Gx和Gy分別表示橫向和縱向邊緣檢測的圖像,G表示橫向和縱向合并后的梯度值,θ表示梯度方向。采用openCV中Soble算子實(shí)現(xiàn)橫向卷積,檢測出圖像的垂直邊緣,針對(duì)藍(lán)色車牌對(duì)檢測出垂直邊緣的圖像進(jìn)行正二值化操作,即越接近0的像素值賦值為0,否則為1。而黃色車牌字符深,背景淺,因此進(jìn)行反二值化操作,即接近0的像素值賦為1,否則為0。由于車牌圖像受光照影響,因此二值化的閾值采用openCV提供的自適應(yīng)閾值進(jìn)行處理。對(duì)得到的二值圖像進(jìn)行形態(tài)學(xué)閉操作,使車牌區(qū)域連通,并取連通區(qū)域的外接矩形,并將取出的矩形塊輸入到SVM模型中進(jìn)行判斷。
基于顏色檢測的方法中,由于GRB模型中對(duì)于顏色相近的圖像,G、R、B值相差較大,導(dǎo)致直接使用GRB模型進(jìn)行車牌定位困難。因此將圖像從GRB顏色空間轉(zhuǎn)換到HSV顏色空間進(jìn)行車牌定位,其中H表示色調(diào)(Hue),S表示飽和度(Saturation),V表示亮度(Value).轉(zhuǎn)換方法如下所示:
其中max=max(R,G,B),min=min(R,G,B)。本文主要對(duì)黃底和藍(lán)底車牌進(jìn)行檢測,由統(tǒng)計(jì)數(shù)據(jù)得到藍(lán)色和黃色在HSV空間中的范圍,見表1。
表1 藍(lán)色和黃色在HSV空間中的范圍
為保證HSV分量落在0-255之間,對(duì)HSV分量進(jìn)行處理,如公式(5)-(7)所示,
對(duì)轉(zhuǎn)換成HSV空間的圖像分別進(jìn)行藍(lán)色模板匹配和黃色模板匹配,避免車牌和車身顏色的干擾。在藍(lán)色模板匹配過程中,將圖像中H、S、V分量落在表1藍(lán)色區(qū)域中的像素標(biāo)記為白色像素,即255,否則標(biāo)記為黑色像素,即0。在黃色模板匹配過程中,將圖像中H、S、V分量落在表1黃色區(qū)域中的像素標(biāo)記為白色像素,否則標(biāo)記為黑色像素。從而得到兩幅二值圖像。對(duì)得到的二值圖像進(jìn)行形態(tài)學(xué)閉操作,使車牌區(qū)域連通,并取連通區(qū)域的外接矩形,并將取出的矩形塊輸入到SVM模型中進(jìn)行判斷。
采用極大穩(wěn)定值區(qū)域方法對(duì)獲取的圖片進(jìn)行車牌字符文本檢測,獲取極大穩(wěn)定值區(qū)域:
在對(duì)圖像二值化過程中,有些區(qū)域面積隨閾值上升變化很小,該區(qū)域稱為Mser區(qū)域,其中Qi表示第i個(gè)連通區(qū)域的面積,?表示微小的閾值變化,當(dāng)Vi小于閾值時(shí)認(rèn)定該區(qū)域?yàn)镸ser區(qū)域。對(duì)Mser文字獲選區(qū)域進(jìn)行連通域分析,求最小外接矩形。若存在連續(xù)七個(gè)Mser文本區(qū)域,將七個(gè)矩形框進(jìn)行合并,并判斷為車牌候選區(qū)域,輸入至SVM模型中進(jìn)行車牌判斷。
通過以上三種方法檢測得到的矩形圖塊先通過外接矩形的寬高比和外接矩形的大小進(jìn)行初步篩選,篩選后的矩形進(jìn)行歸一化處理,將預(yù)處理的矩形塊輸入到訓(xùn)練好的SVM模型中,判斷是否為車牌,判斷為車牌的圖片則輸入到卷積神經(jīng)網(wǎng)絡(luò)中,判斷為非車牌的圖塊進(jìn)行舍棄。圖2為包含有車牌的自然場景下的圖片,圖3為通過三種檢測方法定位的車牌圖片,圖4表示輸入到SVM模型中的車牌矩形塊。
圖2 車牌原圖
圖3 車牌定位圖片
圖4 候選的車牌矩形塊
本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別主要分為兩部分,第一部分將預(yù)處理過的訓(xùn)練集輸入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,得到網(wǎng)絡(luò)模型;第二部分將測試集輸入到訓(xùn)練好的模型中進(jìn)行字符識(shí)別。
本文的樣本量來源于easypr訓(xùn)練集[9]和網(wǎng)絡(luò)。在上一步驟中得到的樣本量不足,因此在網(wǎng)絡(luò)上找到20張背景圖片對(duì)樣本量進(jìn)行擴(kuò)充。擴(kuò)充的樣本為模擬自然場景中的圖片,添加了高斯噪聲,樣本傾斜等處理。為方便卷積神經(jīng)網(wǎng)絡(luò)的處理,將圖片進(jìn)行歸一化?;谲嚺票旧淼奶卣?,將圖片歸一化至72*272大小。
本文采用的CNN[10]模型結(jié)構(gòu)如圖5所示。2012年AlexNet[11]在ILSVRC2012競賽上摘冠以來,深度學(xué)習(xí)網(wǎng)絡(luò)在圖像處理領(lǐng)域應(yīng)用越來越廣泛,本文采用端到端的車牌識(shí)別,車牌字符圖像包括34個(gè)漢字,21個(gè)字母和10個(gè)數(shù)字的65類圖像,但在終端輸出需要同時(shí)輸出7個(gè)車牌字符,本文改進(jìn)了AlexNet網(wǎng)絡(luò),為獲取更多的車牌字符特征,添加了一層卷積層,并添加切片層,使其得到7個(gè)分類輸出。
具體網(wǎng)絡(luò)結(jié)構(gòu)各層介紹如下:
LPR網(wǎng)絡(luò)底層是車牌圖像,其大小為72*272;C1層為卷積層,該層采用32個(gè)3*3的卷積核對(duì)圖像進(jìn)行卷積,卷積步長為1,經(jīng)過卷積后得到32張大小為70*270的特征圖;C2層為卷積層,該層采用3*3的卷積核對(duì)C1層中32個(gè)70*270特征圖進(jìn)行卷積并累加,卷積步長為1,使用32個(gè)卷積核進(jìn)行該操作,從而得到32張大小為68*268的特征圖;P2層為池化層,本文采用的是2*2的池化窗口進(jìn)行最大值池化,步長為2,減少待處理神經(jīng)元的數(shù)目,得到32張34*134的特征圖;C3層為卷積層,該層使用3*3的卷積核對(duì)P2層中32張?zhí)卣鲌D進(jìn)行卷積并累加,卷積步長為1,從而得到32*132大小的特征圖,使用64個(gè)卷積核進(jìn)行卷積,輸出為64*32*132個(gè)神經(jīng)元;C4層為卷積層,該層運(yùn)用3*3的卷積核對(duì)C3層中64張?zhí)卣鲌D進(jìn)行卷積并累加,卷積步長為1,得到30*130大小的特征圖,使用64個(gè)卷積核進(jìn)行卷積,該層輸出為64張30*130的特征圖;P4層為池化層,該層運(yùn)用2*2的池化窗口進(jìn)行最大值池化,步長為2,從而得到64張15*65的特征圖;C5層為卷積層,該層利用3*3的卷積核對(duì)P4層得到的64張15*65的特征圖進(jìn)行卷積并疊加,卷積步長為1,使用128個(gè)卷積核進(jìn)行卷積,得到128張大小為13*63的特征圖;C6層為卷積層,該層采用的卷積核大小為3*3,卷積步長為1,使用128個(gè)卷積核進(jìn)行卷積,得到128張大小為11*61的特征圖;P6層為池化層,采用2*2的池化窗口進(jìn)行最大值池化,池化后神經(jīng)元數(shù)目減少至128*5*30;F6層為展平層,將128張5*30的特征圖轉(zhuǎn)換為(128*5*30)*1*1的簡單向量,向量包含有128*5*30即19 200個(gè)神經(jīng)元。在該層中,防止出現(xiàn)過擬合,添加D6層進(jìn)行數(shù)據(jù)泛化,令部分隱含層節(jié)點(diǎn)不工作。F7層為全連接層,本文采用的車牌數(shù)據(jù)包含小車的黃牌和藍(lán)牌,該類型車牌字符包含有34個(gè)漢字,21個(gè)字母和10個(gè)數(shù)字,因此本層采用65個(gè)過濾器。同時(shí),在數(shù)據(jù)層中,根據(jù)字符個(gè)數(shù)添加切片層,使其能識(shí)別7位數(shù)字,因此出現(xiàn)F7_1至F7_7全連接層,同時(shí)輸出1-7個(gè)數(shù)字。該層不同于AlexNet網(wǎng)絡(luò)。
圖5 端到端網(wǎng)絡(luò)結(jié)構(gòu)
由于本文采用的車牌圖片由生成器生成,避免網(wǎng)絡(luò)過快的收斂,以上的每一層卷積層都使用RELU函數(shù)進(jìn)行激活。通過本文深度學(xué)習(xí)端到端的模型識(shí)別結(jié)果如圖6所示。圖7表示ANN模型車牌識(shí)別的結(jié)果,其中圖片表示文件名,(g)表示標(biāo)定圖片,(d)表示識(shí)別結(jié)果。圖8表示AlexNet模型車牌識(shí)別結(jié)果。
本文采用EasyPR的數(shù)據(jù)集和網(wǎng)絡(luò)圖片進(jìn)行實(shí)驗(yàn),在車牌定位階段,本文使用EasyPR數(shù)據(jù)集進(jìn)行驗(yàn)證,在256張包含有車牌的圖片中,標(biāo)定297張車牌圖像,采用基于邊緣檢測和顏色檢測的方法結(jié)合檢測車牌,和使用文件檢測方法檢測車牌,以及本文采用的改進(jìn)EasyPR車牌檢測方法進(jìn)行檢測,結(jié)果表明,本文使用的方法中車牌檢測準(zhǔn)確率到達(dá)96.3%,但時(shí)間較長(見表2)。本文采用的實(shí)驗(yàn)硬件配置見表3。
表2 車牌定位
表3 軟硬件配置
除卻EasyPR數(shù)據(jù)集,本文還采用網(wǎng)絡(luò)上的部分車牌圖片以及自己收集的車牌圖片進(jìn)行車牌圖片定位,得到車牌圖片3 956張,并從網(wǎng)絡(luò)上下載20張背景圖片進(jìn)行樣本圖片擴(kuò)充,將擴(kuò)充后的圖片輸入到端到端的車牌網(wǎng)絡(luò)中進(jìn)行車牌識(shí)別,得到的車牌識(shí)別準(zhǔn)確率達(dá)到96.7%(見表4),且具有實(shí)時(shí)性。
表4 車牌字符識(shí)別
本文采用了基于端到端的車牌識(shí)別方法進(jìn)行自然場景下的車牌識(shí)別,改進(jìn)了端到端的深度學(xué)習(xí)網(wǎng)絡(luò),提高了車牌識(shí)別的準(zhǔn)確度,并省卻了車牌字符分割的步驟,避免車牌傾斜或部分粘連造成車牌字符識(shí)別不準(zhǔn)確的情況,對(duì)車牌字符粘連、傾斜情況下的車牌識(shí)別準(zhǔn)確率大大提高。通過EasyPR字符集的驗(yàn)證結(jié)果得知,車牌定位的準(zhǔn)確率達(dá)到96.3%,車牌字符識(shí)別準(zhǔn)確率達(dá)到96.7%,但在樣本中存在許多擴(kuò)充樣本,影響了模型訓(xùn)練結(jié)果,同時(shí)系統(tǒng)整體車牌識(shí)別實(shí)時(shí)性不夠,這是本文算法需要改進(jìn)的地方,也是今后研究的重點(diǎn)。
圖6 本文算法車牌識(shí)別結(jié)果
圖7 ANN模型車牌識(shí)別結(jié)果
圖8 AlexNet識(shí)別結(jié)果