徐勝舟,周 煜
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
基于CNN的車牌識別系統(tǒng)
徐勝舟,周 煜
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
針對現(xiàn)有的車牌識別系統(tǒng)在遇到復(fù)雜條件,例如暗光、遮擋、多車牌、能見度低等情況時(shí),難以有效地定位并識別車牌,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的車牌自動識別系統(tǒng).在車牌定位階段綜合應(yīng)用3種定位方式對車牌進(jìn)行初步定位檢測,然后使用CNN模型對檢測到的候選車牌進(jìn)行判斷;在車牌字符識別階段,將分割出的字符輸入到設(shè)計(jì)好的卷積神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練,得到的輸出結(jié)果即為識別的車牌字符.在5906張車牌圖像和非車牌圖像以及36261張字符圖片上的實(shí)驗(yàn)結(jié)果表明:提出的車牌識別系統(tǒng)對車牌和字符的識別率分別達(dá)到了94%和96.4%,明顯優(yōu)于傳統(tǒng)的車牌識別方法,具有極高的實(shí)用性,可以滿足絕大多數(shù)場景的使用需求.
車牌定位;車牌識別;字符識別;卷積神經(jīng)網(wǎng)絡(luò)
AbstractThe existing license plate recognition system is difficult to locate and identify the license plate effectively when it encounters complex conditions such as dim light, plate is blocked, multiple plates and low visibility. An automatic license plate recognition system based on convolution neural network (CNN) has been proposed in this paper. In the license plate location phase, three kinds of positioning methods are integrated for the initial locating of the license plate. Then, the CNN model is used to judge the selected license plate. In the license plate character recognition phase, segmented characters are input to a designed CNN model, and the output of the CNN model is the result of the recognized characters. The experiment is based on 5906 license plate images and non-license plate images, and 36261 characters images. The results of the experiment show that the recognition rates of the proposed system for license plate and character are 94% and 96.4% respectively, which is significantly better than that of traditional license plate recognition methods. It meets the needs of the vast majority of the use of the scene, with a high practicality.
Keywordslicense plate locating; license plate recognize; character recognize; CNN
進(jìn)入21世紀(jì)以來,城市交通問題日益嚴(yán)峻.智能交通監(jiān)管系統(tǒng)的出現(xiàn)為我們帶來了高效可行的解決方案,可以在大范圍內(nèi)高效、針對性地進(jìn)行識別、監(jiān)督,大幅度降低人力成本,提高監(jiān)管效率.
車牌識別技術(shù)是目前智能交通系統(tǒng)中的核心技術(shù)之一[1].通過計(jì)算機(jī)軟件來處理車牌信息,還可以將這些車輛信息存儲到相關(guān)部門的數(shù)據(jù)庫,為后續(xù)其他的管理系統(tǒng)提供參考.車牌識別技術(shù)在節(jié)省人力物力的前提下有針對性地對車輛進(jìn)行監(jiān)測并且不會對車輛帶來任何不便.
現(xiàn)有的車牌識別系統(tǒng)沒有良好的通用性,在遇到復(fù)雜條件,例如暗光、多車牌、角度傾斜等情況時(shí),不能有效地定位并識別車牌.而本文的思路是,首先對程序進(jìn)行“訓(xùn)練”,輸入大量的車牌數(shù)據(jù)進(jìn)行學(xué)習(xí),這些數(shù)據(jù)不僅包括日常的圖片,還包括上述的復(fù)雜條件下拍攝的圖片,這樣在實(shí)際應(yīng)用時(shí),已經(jīng)有了訓(xùn)練的基礎(chǔ),在處理各種情況時(shí)的效果會明顯優(yōu)于直接識別的效果.文獻(xiàn)[2]和文獻(xiàn)[3]也采用了先定位后訓(xùn)練的方法,但在定位階段的成功率不高,不能應(yīng)對上述復(fù)雜條件;并且基于SVM和BP神經(jīng)網(wǎng)絡(luò)的車牌判斷和字符識別率不高.文獻(xiàn)[4]和文獻(xiàn)[5]僅進(jìn)行了基于CNN的字符識別研究,未實(shí)現(xiàn)預(yù)處理階段的車牌定位和判斷工作.
本文實(shí)現(xiàn)了從圖片中定位車牌并識別車牌字符的功能.程序整體上分為兩大模塊:車牌定位和字符識別.在車牌定位模塊,通過綜合使用3種定位方法從圖像中截取出候選車牌區(qū)域,然后使用CaffeNet卷積神經(jīng)網(wǎng)絡(luò)模型對候選車牌進(jìn)行判斷,即判斷定位出的區(qū)域是否為車牌.在字符識別模塊,先從車牌圖片中分割出單個(gè)字符,然后使用訓(xùn)練好的CNN模型來識別字符,最后輸出結(jié)果.
車牌定位是從圖片中定位出候選車牌區(qū)域.本文使用3種定位方法:邊緣檢測法、顏色定位法和文字定位法,并綜合使用3種方法來應(yīng)對不同情況,最終輸出最優(yōu)定位結(jié)果.
(1)邊緣檢測法. 由于車牌均為矩形,因此可以檢測圖片中的矩形區(qū)域來定位疑似車牌的區(qū)域.具體步驟如下:程序首先讀入圖像,并對圖像進(jìn)行去噪[6],隨后將圖像轉(zhuǎn)為灰度圖[7].這兩步都是為了能夠更好檢測到圖像中的邊緣.在檢測到垂直邊緣[8]后,對圖像進(jìn)行二值化[9]和形態(tài)學(xué)操作[9],這是為了將前面檢測到的邊緣的內(nèi)部填滿,即形成連通區(qū)域,這樣才能夠找到矩形車牌圖塊.接著畫出連通區(qū)域的外接矩形[11],這些矩形圖塊中就包含要定位的車牌.最后,對這些矩形圖塊進(jìn)行篩選,剔除不符合條件的圖塊,輸出并保存余下的矩形區(qū)域.
(2)顏色定位法. 上述邊緣檢測法雖然能夠成功定位大多數(shù)車牌,但在處理有大量垂直邊緣的圖像時(shí),難以準(zhǔn)確的定位車牌,因此我們需要其他方法來彌補(bǔ)這方面的不足.由于我國的絕大多數(shù)車牌均為藍(lán)色或黃色背景,這為通過顏色來定位車牌提供了條件.
首先將圖片轉(zhuǎn)換為HSV顏色模型[12,13].在最常見的RGB顏色模型中,R、G、B三個(gè)分量各代表紅、黃、藍(lán).HSV與之不同,HSV模型中的H、S、V分別代表是:色調(diào),飽和度和亮度.H分量是唯一與色彩相關(guān)的分量.因此,只需要固定H的值,就會呈現(xiàn)基本穩(wěn)定的顏色.當(dāng)H值不變時(shí),V和S的變化會分別導(dǎo)致飽和度和亮度的變化.當(dāng)V和S都為最大值,1時(shí),顏色是最純正的.S越小,顏色越白.V越小,顏色越黑,當(dāng)V=0時(shí),顏色變?yōu)楹谏?S和V的值也會影響最終顏色的效果.因此,設(shè)定一個(gè)閾值,使得S和V都大于閾值時(shí),顏色才屬于H所表達(dá)的顏色.在通過顏色定位到車牌區(qū)域后,進(jìn)行二值化、閉操作、取輪廓三個(gè)操作,將車牌區(qū)域截取出來.最后,對這塊區(qū)域進(jìn)行角度調(diào)整,對不同傾斜角度的圖像進(jìn)行旋轉(zhuǎn)或偏斜扭轉(zhuǎn)[14]操作,將其調(diào)整為正視視角.
(3)文字定位法. 邊緣檢測法和顏色定位法可以滿足在正常光照下拍攝的圖片中進(jìn)行車牌定位,但在弱光條件下并不能很好的檢測并定位到車牌區(qū)域,文字定法可以彌補(bǔ)這一不足.文字定位法首先使用最大穩(wěn)定極值區(qū)域(MSER)算法[15]提取文字,然后使用種子生長法將這些圖塊連接起來,最后組合成車牌區(qū)域.
在本程序中的具體實(shí)現(xiàn)步驟如下.
1)將圖片轉(zhuǎn)換為HSV顏色模型,并提取H通道.
2)灰度化.將圖片轉(zhuǎn)換為灰度圖.
3)根據(jù)檢測區(qū)域點(diǎn)分別生成MSER+和MSER-結(jié)果.MSER+檢測黃色車牌上的黑色字符,MSER-檢測藍(lán)色車牌上的白色字符.
4)判斷MSER提取出的區(qū)域的尺寸,刪除不符合車牌文字尺寸的區(qū)域.
5)查找強(qiáng)種子(圖1車牌區(qū)域中的左起第2~7個(gè)方框).將靠近的強(qiáng)種子進(jìn)行集合,畫出一條穿過它們的中心線(圖1車牌區(qū)域中白色的線,連接第4~6個(gè)方塊),這條線即是車牌的中軸線.
6)在這條線的附近尋找弱種子(圖1車牌區(qū)域中最左側(cè)的方框).通常,這些強(qiáng)種子和弱種子的距離不會太遠(yuǎn),并且尺寸基本一致.弱種子在強(qiáng)種子的左右進(jìn)行查找.
7)全部找完后,強(qiáng)種子和弱種子的總數(shù)即是車牌區(qū)域的文字個(gè)數(shù).圖1為字符定位結(jié)果圖.
圖1 字符定位Fig.1 Character positioning
(4)車牌定位結(jié)果. 經(jīng)過對比測試,以上3種定位方法分別適用于不同情況:邊緣檢測定位法適用于圖片中的垂直邊緣較少的圖片;顏色定位適用于車身及背景中無藍(lán)色和黃色的圖片;文字定位法針對弱光條件下拍攝的圖片的定位效果優(yōu)于其他兩種方法.因此,車牌定位整體步驟如下.
1)首先使用邊緣檢測定位車牌,若定位到候選車牌,則直接輸出所有候選車牌圖塊;若沒有定位到車牌,則進(jìn)入步驟2);
2)使用顏色定位法定位車牌,若檢測到候選車牌區(qū)域,則輸出所有候選車牌圖塊;若檢測到大量藍(lán)色或黃色區(qū)域,或無法檢測到指定顏色,則不輸出任何結(jié)果并進(jìn)入步驟3);
3)使用字符定位法,最終輸出定位結(jié)果.
(1)車牌判斷. 通過定位得到一組候選車牌,如圖2所示.接下來通過卷積神經(jīng)網(wǎng)絡(luò)來判斷車牌圖塊.
圖2 候選車牌Fig.2 Candidate plate
將候選車牌圖塊作為神經(jīng)網(wǎng)絡(luò)的輸入,輸出則為判斷是車牌的圖塊.
(2)字符分割. 在得到車牌圖像后,接下來將車牌上的字符分割出來.將車牌轉(zhuǎn)化為灰度圖像,然后進(jìn)行字符分割.具體步驟如下.
1)灰度化.將RGB圖片轉(zhuǎn)化為灰度化圖片;
2)顏色判斷與二值化.判斷車牌顏色,對藍(lán)色車牌使用正二值化,對于黃色車牌使用反二值化.
有時(shí)二值化會產(chǎn)生貌似字符“I”的圖形,如圖3所示.由于中文車牌只有7個(gè)字符,所以我們把圖塊從左到右排序,依次選擇7個(gè).這樣,被誤判為“I”的縫隙就可以被排除.
圖3 錯誤字符“I”Fig.3 Wrong character “I”
3)取輪廓.截取每個(gè)字符輪廓.
4)截取圖塊.把圖中的矩形圖塊截取出來,為后續(xù)步驟做準(zhǔn)備.將截取的字符圖片歸一化為20×32的矩形圖塊,如圖4所示.
圖4 截取到的字符圖片
Fig.4 Intercepted character picture
最后,將分割出的字符輸入到卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行字符識別,最終輸出結(jié)果字符串.識別結(jié)果圖5所示.
圖5 字符識別結(jié)果Fig.5 Characters recognize result
(3)識別訓(xùn)練. 卷積神經(jīng)網(wǎng)絡(luò)是一種高效的圖像識別方法.20世紀(jì)60年代,Hubel和Wiesel在研究貓腦皮層中用于局部感知和方向選擇的神經(jīng)元時(shí)發(fā)現(xiàn)其獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu)可以有效地降低反饋神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,繼而提出了卷積神經(jīng)網(wǎng)絡(luò)(CNN).
卷積神經(jīng)網(wǎng)絡(luò)有3個(gè)核心:局部感受野、權(quán)值共享和池化.局部感受野和權(quán)值共享的引入極大的減少了網(wǎng)絡(luò)模型的參數(shù),使得模型的配置和使用更加簡便.池化可以減小圖像在網(wǎng)絡(luò)間傳輸時(shí)的規(guī)模,從而降低了計(jì)算量,提高了運(yùn)算效率.這是卷積神經(jīng)網(wǎng)絡(luò)優(yōu)于傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)的原因.
本文使用Caffe深度學(xué)習(xí)框架[16]并采用CaffeNet網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練.Caffe深度學(xué)習(xí)框架由BVLC(Berkeley Vision and Learning Center)及其社區(qū)貢獻(xiàn)者開發(fā),項(xiàng)目創(chuàng)建者是伯克利大學(xué)博士賈揚(yáng)清.由于Caffe清晰、高效、易于訓(xùn)練等特點(diǎn),在深度學(xué)習(xí)中被廣泛使用.在車牌字符識別訓(xùn)練中,使用Caffe框架的優(yōu)點(diǎn)在于訓(xùn)練速度快并且配置簡便,且訓(xùn)練后的識別結(jié)果十分可觀.CaffeNet是基于AlexNet改進(jìn)的網(wǎng)絡(luò)模型,將norm1、pool1以及norm2、pool2互換了順序,在相同迭代次數(shù)下準(zhǔn)確率提升了0.2%.
車牌判斷與字符識別均采用相同的識別網(wǎng)絡(luò),其識別訓(xùn)練過程基本一致,不同之處僅在于:車牌判斷是將輸入圖片分為兩類,即車牌與非車牌;而字符識別是將輸入圖片分為65類,其中包括31類中文字符、24類英文字符和10類數(shù)字字符.CaffeNet網(wǎng)絡(luò)模型的結(jié)構(gòu)如圖6所示.
圖6 CaffeNet網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.6 CaffeNet Network model structure
CaffeNet模型共有8層,前5層為卷積層,后3層為全連接層.識別訓(xùn)練具體步驟如下.
Step1.將圖像歸一化為227×227×3的RGB圖像.
Step2.Conv1層,使用96個(gè)大小規(guī)格為11×11的卷積核,使用ReLU激勵函數(shù),來確保特征圖的值在合理范圍內(nèi),以4個(gè)像素為一個(gè)單位的步長向右移動,最后進(jìn)行池化(pool1)和歸一化(norm1).池化處理采用最大池化算法,得到96個(gè)27×27的特征圖,然后再將這些特征圖作為輸入數(shù)據(jù),進(jìn)行第二次卷積.
Step3. Conv2層,使用256個(gè)5×5的卷積核,擴(kuò)充邊緣為2個(gè)像素,保證進(jìn)行卷積運(yùn)算后的特征圖尺寸不變,卷積后會得到一個(gè)新的256個(gè)特征圖,也就是會有256個(gè)27×27大小的特征圖.然后進(jìn)行與Step1中相同的ReLU以及池化(pool2)和歸一化(norm2)操作.
Step4. Conv3層與Conv4層均使用384個(gè)3×3的卷積核,卷積后得到384個(gè)13×13的新特征圖,這兩層都沒有池化層.
Step5.Conv5使用256個(gè)卷積核,擴(kuò)充邊緣均為1個(gè)像素,使用池化層防止過擬合,得到256個(gè)6×6大小的特征圖.
Step6.fc6和fc7全連接層,使用4096個(gè)神經(jīng)元,對256個(gè)大小為6×6特征圖,進(jìn)行一個(gè)全連接,即將6×6大小的特征圖,進(jìn)行卷積變?yōu)橐粋€(gè)特征點(diǎn).再進(jìn)行dropout隨機(jī)從4096個(gè)節(jié)點(diǎn)中丟掉一些節(jié)點(diǎn)信息,同樣是為了防止過擬合從而提高準(zhǔn)確率,然后得到新的4096個(gè)神經(jīng)元.
Step7.fc8連接層,采用的是65個(gè)神經(jīng)元,對fc7中4096個(gè)神經(jīng)元進(jìn)行全連接,然后通過高斯過濾器,得到65個(gè)float型的值,即為預(yù)測的可能性.
將候選車牌圖塊按照7∶3的比例分為兩類:訓(xùn)練集和測試集.候選車牌圖塊來自于開源項(xiàng)目的數(shù)據(jù)集和搜索引擎搜索到的圖片.其中,車牌圖塊和非車牌圖塊共有5906張,選取4160張作為訓(xùn)練集,余下1746張作為測試集.訓(xùn)練過程loss和accuracy曲線如圖7所示,其中曲線a、b、c分別為測試集的正確率、訓(xùn)練集的loss、測試集的loss.可以看出,在經(jīng)過大約700此迭代后測試集的準(zhǔn)確率穩(wěn)定在了94%.
圖7 車牌識別訓(xùn)練的loss和accuracy曲線Fig.7 License plate recognition training loss and accuracy curve
字符識別訓(xùn)練同樣采用CaffeNet網(wǎng)絡(luò)結(jié)構(gòu).從車牌圖片中分割出字符圖片,共65組,其中31組中文字符,24組英文字符(不含字母I和字母O),10組數(shù)字字符.同樣將65組字符分別按照7∶3的比例分為兩類訓(xùn)練集和測試集.中文字符共有13643個(gè),英文字符共16510個(gè),數(shù)字字符共6108個(gè),在迭代大約2000次后測試集的正確率趨于穩(wěn)定,訓(xùn)練過程的loss和accuracy曲線如圖8所示,其中曲線a為測試集的正確率,曲線b為訓(xùn)練集的loss,曲線c為測試集的loss.3000次迭代的最終正確率為96.4%.
圖8 字符識別訓(xùn)練的loss和accuracy曲線Fig.8 Character recognition training loss and accuracy curve
本文的實(shí)驗(yàn)結(jié)果如表1所示,正確率優(yōu)于模版匹配法和BP神經(jīng)網(wǎng)絡(luò),略低于文獻(xiàn)[4]中的LeNet5網(wǎng)絡(luò);識別用時(shí)優(yōu)于BP神經(jīng)網(wǎng)絡(luò)和LeNet5網(wǎng)絡(luò),識別速度更快.其中,表1中的識別用時(shí)為100張字符圖片的識別用時(shí).雖然正確率略低于LeNet5網(wǎng)絡(luò),但本文旨在開發(fā)一種通用性較強(qiáng)的車牌自動定位和識別系統(tǒng),且識別速度更快.由于本文所采用的數(shù)據(jù)集存在樣本分布不均的情況,例如字符“藏”的數(shù)量遠(yuǎn)低于其他字符,導(dǎo)致測試集的正確率有所降低,但這并不會對實(shí)際使用造成影響.此外,文獻(xiàn)[4,5]是僅僅對字符識別進(jìn)行的測試,而本文則是對完整的車牌識別系統(tǒng)進(jìn)行的測試,更具有實(shí)際可用性.
表1 字符識別正確率比較
圖9 暗光條件的識別結(jié)果Fig.9 The recognition result of dim light condition
圖10 傾斜角度的識別結(jié)果Fig.10 The recognition result of tilt angle condition
圖11 正常條件的識別結(jié)果Fig.11 The recognition result ofnormal condition
圖9~11分別為暗光條件、傾斜角度和正常條件下拍攝圖片的車牌識別結(jié)果圖,本系統(tǒng)均可成功定位車牌并識別字符.從一張圖片中定位并識別車牌的整體用時(shí)為0.515 s.因此,本文設(shè)計(jì)并實(shí)現(xiàn)的車牌識別系統(tǒng)是一個(gè)高效可用的完整系統(tǒng),可以應(yīng)對絕大多數(shù)復(fù)雜條件下的車牌定位及識別工作,整體識別效果高于現(xiàn)有車牌識別系統(tǒng).
[1] 耿慶田, 趙宏偉. 基于分形維數(shù)和隱馬爾科夫特征的車牌識別[J]. 光學(xué)精密工程, 2013, 21(12):3198-3204.
[2] 曾 泉,譚北海.基于SVM和BP神經(jīng)網(wǎng)絡(luò)的車牌識別系統(tǒng)[J].電子科技,2016,29 (01):98-101.
[3] 吳 聰,殷 浩,黃中勇等.基于人工神經(jīng)網(wǎng)絡(luò)的車牌識別[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016.26(12):160-163+168.
[4] 趙志宏,楊紹普,馬增強(qiáng).基于卷積神經(jīng)網(wǎng)絡(luò)LeNet-5的車牌字符識別研究[J].系統(tǒng)仿真學(xué)報(bào),2010.22(3):638-641.
[5] 張 立,朱玉全,陳 耿.基于卷積神經(jīng)網(wǎng)絡(luò)SLeNet_5的車牌識別方法[J].信息技術(shù),2015.(11):7-11.
[6] 丁怡心,廖勇毅.高斯模糊算法優(yōu)化及實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2010,(8):76-77+100.
[7] 張桂華,馮艷波,陸衛(wèi)東.圖像處理的灰度化及特征區(qū)域的獲取[J].齊齊哈爾大學(xué)學(xué)報(bào),2007,23(4):49-52.
[8] 喬鬧生,鄒北驥,鄧 磊等.一種基于圖像融合的含噪圖像邊緣檢測方法[J].光電子·激光,2012,23(11):2215-2220.
[9] 郭 佳,劉曉玉,吳 冰,等.一種光照不均勻圖像的二值化方法[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(3):183-186+202.
[10] 潘 巍,楊娜菲,安 榮.基于梯度與形態(tài)學(xué)的低質(zhì)量車牌定位[J].計(jì)算機(jī)工程,2011,37(13):144-146.
[11] Suzuki S,Be K. Topological structural analysis of digitized binary images by border following[J]. Computer Vision, Graphics and Image Processing,1985,30(1):32-46.
[12] 黃社陽,劉智勇,阮太元.基于HSV顏色空間和SVM的車牌提取算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(8):150-153.
[13] 楊 濤,張森林.一種基于HSV顏色空間和SIFT特征的車牌提取算法[J].計(jì)算機(jī)應(yīng)用研究,2011,28(10): 3937-3939+3976.
[14] 管焱然,管有慶.基于OpenCV的仿射變換研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(12):58-63.
[15] Nistér.D, Stewénius .H. Linear time maximally stable extremal regions.[C]//Springer. Computer Vision-ECCV 2008, Berlin:Springer,2008:183-196.
[16] 楊 楠.基于Caffe深度學(xué)習(xí)框架的卷積神經(jīng)網(wǎng)絡(luò)研究[D].石家莊:河北師范大學(xué),2016.
LicensePlateRecognitionSystemBasedonCNN
XuShengzhou,ZhouYu
(College of Computer Science, South-Central University for Nationalities, Wuhan 430074, China)
TP391.4
A
1672-4321(2017)03-0125-06
2017-06-08
徐勝舟(1982-),男,副教授,博士,研究方向:模式識別,E-mail: xushengzhou2008@163.com
國家自然科學(xué)基金資助項(xiàng)目(61302192)