歐先鋒,向燦群,湛西羊,彭 鑫,石云鎖
基于CNN的車牌數(shù)字字符識別算法
歐先鋒1,2,向燦群1,2*,湛西羊3,彭 鑫1,2,石云鎖4
(1. 湖南理工學院 信息與通信工程學院,湖南 岳陽 414006;2.復雜系統(tǒng)優(yōu)化與控制湖南省普通高等學校重點實驗室,湖南 岳陽 414006;3.深圳大學 信息工程學院, 廣東 深圳 518060;4.廣州杰賽科技股份有限公司, 廣州 510300)
針對傳統(tǒng)車牌識別算法識別率低、魯棒性差等問題,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)車牌數(shù)字字符識別算法。在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上用ReLU激活函數(shù)代替?zhèn)鹘y(tǒng)的Sigmoid激活函數(shù),引入卷積步長等操作,不僅加速網(wǎng)絡(luò)的收斂,而且降低了網(wǎng)絡(luò)參數(shù)的數(shù)量。實驗結(jié)果表明:與傳統(tǒng)特征提取算法相比,該算法識別率最高,達到95.2%,識別率波動范圍小,魯棒性強。
車牌識別;卷積神經(jīng)網(wǎng)絡(luò);字符識別
車牌識別技術(shù)是智能交通系統(tǒng)中重要的應(yīng)用,已經(jīng)廣泛應(yīng)用到很多領(lǐng)域,如高速公路不停車收費、停車場管理、交通監(jiān)控等。車牌字符識別是車牌識別技術(shù)中最重要的環(huán)節(jié),國內(nèi)外學者對此展開了廣泛研究。文獻[1-3]采用了基于BP神經(jīng)網(wǎng)絡(luò)的車牌字符識別方法,BP神經(jīng)網(wǎng)絡(luò)在字符識別上具有一定魯棒性,但是當網(wǎng)絡(luò)過于龐大時難以收斂;訓練好的網(wǎng)絡(luò)對噪聲干擾較小的字符能有效地識別,但是對于較為模糊的字符則不可行。文獻[4]提出了一種基于特征匹配的車牌識別方法,在字符圖像特征的基礎(chǔ)上,以待識別字符與模板字符之間特征的相似性作為分類標準。相比模板匹配算法具有更好效果,但在實際運用中對噪聲干擾要求高,識別準確率低。針對傳統(tǒng)算法在識別率與魯棒性低的問題,本文提出了一種改進的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來進行車牌數(shù)字字符識別,實驗結(jié)果表明:該方法在車牌字符識別上具有一定的實用價值。
1.1 CNN網(wǎng)絡(luò)結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)是一個多層前饋網(wǎng)絡(luò),每一層由多個卷積特征圖組成,每一個特征圖又由多個神經(jīng)元組成,如圖1所示。
網(wǎng)絡(luò)輸入為一個二維矩陣,經(jīng)過卷積核的作用傳遞到網(wǎng)絡(luò)中間層的卷積層(C層)和抽樣層(S層),卷積層與抽樣層交替出現(xiàn),輸出層為全鏈接方式的前饋網(wǎng)絡(luò),輸出層的維數(shù)由分類任務(wù)中的類別數(shù)決定。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
卷積神經(jīng)網(wǎng)絡(luò)通過結(jié)構(gòu)上的局部相連、權(quán)值共享、下采樣等,不僅可以很好地控制整個網(wǎng)絡(luò)的規(guī)模,而且可以實現(xiàn)網(wǎng)絡(luò)對識別圖像在位移、縮放和扭曲等形變的魯棒性。
1.1.1 輸入層
卷積神經(jīng)網(wǎng)絡(luò)的輸入層直接接收二維視覺模式(如二維圖像),能自動提取原始圖像數(shù)據(jù)特征、學習分類器,不需要人工參與到過程中去選擇或設(shè)計合適特征作為輸入,大大減少人工預(yù)處理過程,有助于學習與當前分類任務(wù)最為有效的視覺特征。
1.1.2 卷積層
卷積層即為特征抽取層,每個卷積層包含多個卷積核。卷積核由多個神經(jīng)元組成,是對前一層的輸入數(shù)據(jù)做特征提取。每一個卷積核能夠提取一個相應(yīng)的特征,具體的提取特征由每一個卷積核中神經(jīng)元的權(quán)重決定。相對于一般的前饋網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)中卷積核的引入大大降低了網(wǎng)絡(luò)參數(shù)。
為進一步降低網(wǎng)絡(luò)參數(shù),卷積神經(jīng)網(wǎng)絡(luò)采用卷積核共享方式。當卷積層的一個卷積核對輸入層的不同區(qū)域作卷積時,卷積核的權(quán)值不變,即一個卷積核只用來提取前一層網(wǎng)絡(luò)中不同位置的同一個特征。這個假設(shè)源于圖像處理的實際經(jīng)驗:即如果一種特征在圖像中某個區(qū)域很有效,那么這個特征在圖像的其他區(qū)域也可能很有效。這種方法不僅降低了網(wǎng)絡(luò)參數(shù),而且能夠增加整個網(wǎng)絡(luò)的魯棒性,一種特征不管在前一層網(wǎng)絡(luò)的什么位置,均能被檢測出來并將其用于分類。
隨著卷積層層數(shù)的增加,能夠?qū)⒃紨?shù)據(jù)更深層次的特征提取出來,一個網(wǎng)絡(luò)設(shè)計多少層卷積層由具體的輸入數(shù)據(jù)來判斷,目前尚未有完整理論來描述。如圖2所示,該卷積層的一個5×5大小的卷積核,作用于前一層28×28大小的感受域,生成了一個24×24大小的特征圖。
圖2 卷積層結(jié)構(gòu)示意圖
1.1.3 抽樣層
抽樣層為特征映射層,每個抽樣層包含一個抽樣核,抽樣核由多個抽樣神經(jīng)元組成。抽樣核僅與前一層網(wǎng)絡(luò)對應(yīng)位置的局部感受域相連。與卷積核的神經(jīng)元不同,抽樣核的每個神經(jīng)元權(quán)重是固定不變的,不隨網(wǎng)絡(luò)狀態(tài)的改變而改變。抽樣層可進一步降低網(wǎng)絡(luò)的參數(shù)個數(shù),增加網(wǎng)絡(luò)的魯棒性。
如圖3所示,該抽樣層的抽樣核大小為2×2,初始化參數(shù)為[1/4 1/4;1/4 1/4],經(jīng)過對前一層大小為24×24的數(shù)據(jù)矩陣作用,得到了一個大小為12×12的抽樣數(shù)據(jù)矩陣。將原來24×24維的數(shù)據(jù)量降低到了12×12維的數(shù)據(jù)量,同時由于抽樣核具有求均值的效果,降低了因個別數(shù)據(jù)錯誤帶來的干擾,增加了整個網(wǎng)絡(luò)的魯棒性。
圖3 抽樣層結(jié)構(gòu)示意圖
抽樣核在網(wǎng)絡(luò)的初始化時給出。一般情況下,抽樣核用來求作用域的均值或最大值。
1.1.4 輸出層
卷積神經(jīng)網(wǎng)絡(luò)的輸出層與常用的前饋神經(jīng)網(wǎng)絡(luò)一樣,是全鏈接方式傳遞的。最后一層隱層可以是卷積層也可以是抽樣層,所得到的多個二維數(shù)據(jù)矩陣被重新組合成一維向量,與輸出層以全鏈接的方式相連。該結(jié)構(gòu)能夠充分挖掘最后提取的特征與分類結(jié)果之間的映射關(guān)系,在復雜應(yīng)用中,輸出層可設(shè)置為多層全鏈接層。
1.2 CNN網(wǎng)絡(luò)訓練
卷積神經(jīng)網(wǎng)絡(luò)屬于前饋網(wǎng)絡(luò)的一種特例,訓練方式是以反向傳播算法為基礎(chǔ)的,在傳統(tǒng)的反向傳播算法上做優(yōu)化,從而實現(xiàn)高效的訓練卷積神經(jīng)網(wǎng)絡(luò)。
卷積神經(jīng)網(wǎng)絡(luò)的全鏈接層與普通前饋網(wǎng)絡(luò)一樣,具有相同的參數(shù)傳播方式。而在卷積層與抽樣層,由于引入了權(quán)值共享以及降維等處理過程,因此需要做算法優(yōu)化。
1.2.1 卷積層
卷積層的輸入為前一層網(wǎng)絡(luò)的多個二維矩陣,卷積層將輸入矩陣與可訓練的卷積核進行卷積,然后通過激活函數(shù)作用生成多個輸出二維特征圖,如式(1)。
(1)
π(·)=max(0,p)
(2)
在卷積層誤差反饋傳播時,由于l層特征圖與l+1層特征圖大小不同(每個特征圖對應(yīng)一個靈敏度圖),反向傳播時,為得到與l層特征圖相同大小的靈敏度圖需先對l+1層靈敏度圖進行反卷積,再將反卷積結(jié)果與l層激活值的導數(shù)做點積,即可得到l層的靈敏度圖,當l+1層是抽樣層時,運算過程如式(3)。
(3)
其中:β為下采樣因子,常數(shù);up(·)為下采樣的反操作,若下采樣因子為n,反操作處理時將每個像素在垂直和水平方向上重復n次。
當l+1層是卷積層時,運算過程如式(4)。
(4)
其中:conv(·)表示卷積運算,運算方式為′full′型;rot180(·)表示將括號內(nèi)的矩陣旋轉(zhuǎn)180°。
求得l層的靈敏度圖后,再根據(jù)誤差反饋傳播算法,可以求得訓練誤差相對于連接權(quán)重(及卷積核的權(quán)值)的梯度以及訓練誤差關(guān)于偏置的梯度。由于大部分的連接權(quán)值是共享的,因此對于l層給定的一個權(quán)重,需要對所有與該權(quán)值有聯(lián)系的連接求梯度,再將梯度求和,該運算過程如式(5)和(6)所示。
(5)
(6)
1.2.2 抽樣層
抽樣層對每一個輸入下采樣產(chǎn)生一個特征圖,如有N個輸入特征圖,則會產(chǎn)生N個下采樣特征圖。抽樣層運算過程如式(7)。
(7)其中:down(·)為下采樣函數(shù),該函數(shù)對輸入圖像中n×n的圖像塊求和得到一個點值,輸出圖像的長和寬均變?yōu)樵瓐D的1/n,每個輸出都包含一個乘性偏置β和加性偏置b。
與卷積層中第二種情況(卷積層的下一層為卷積層)一樣,這里不再贅述。抽樣層的抽樣核為固定值,因此不存在誤差相對于訓練權(quán)值梯度的計算,訓練誤差相對于加性偏置bj的梯度可以通過對敏感圖上的元素用式(6)進行求和得到。根據(jù)卷積神經(jīng)網(wǎng)絡(luò)每一層的具體結(jié)構(gòu)特點,計算得到訓練誤差相對于訓練參數(shù)的梯度,就可以對網(wǎng)絡(luò)參數(shù)進行相應(yīng)地更新。
1.3 改進結(jié)構(gòu)
本文使用如圖4所示的改進結(jié)構(gòu),前5層網(wǎng)絡(luò)均使用ReLU激活函數(shù),增加了網(wǎng)絡(luò)收斂速度,同時,在卷積過程中引入圖5所示的卷積步長,在網(wǎng)絡(luò)規(guī)模不變的情況下能夠減少網(wǎng)絡(luò)參數(shù)。圖4網(wǎng)絡(luò)輸入為一副28×28的圖像,Conv1為卷積層,由20個4×4的卷積核與輸入圖像進行卷積,卷積步長為2,得到20個13×13的特征圖;Conv2為卷積層,卷積核大小為3×3,卷積步長為2,卷積后得到50個6×6的特征圖;Conv3為卷積層,卷積核大小為3×3,卷積步長為1,卷積后生成60個4×4的特征圖;Pool1為下采樣層,采用最大值池化,步長為2,下采樣后得到80個2×2的特征圖;Ip1為全連接層,神經(jīng)元個數(shù)為100;Ip2為全連接層,神經(jīng)元個數(shù)為10。其中前5層網(wǎng)絡(luò)激活函數(shù)均使用ReLU函數(shù),Ip2層使用sigmoid激活函數(shù)。
圖4 改進的網(wǎng)絡(luò)結(jié)構(gòu)
圖5 卷積步長
訓練過程中所用的損失函數(shù)為均方誤差函數(shù)Loss=1/2Σ(h-y)2,其中:h為實際輸出;y為希望輸出。
2.1 數(shù)據(jù)生成
車牌數(shù)字字符識別所用數(shù)據(jù)來自2 000副車牌,這些車牌受到不同光照強度、傾斜角度、遮擋程度等噪聲干擾。對車牌歸一化后采用垂直投影法切割,去除漢字以及字母后,生成了1 303個‘0’,1 194個‘1’,1 165個‘2’,944個‘3’,728個‘4’,924個‘5’,985個‘6’,743個‘7’,1 019個‘8’,825個‘9’。切割出的圖片未經(jīng)任何處理,每幅圖片包含高強度噪聲,如圖6所示。
圖6 部分粗切割字符
字符數(shù)量均衡有利于提高網(wǎng)絡(luò)的識別率,并且數(shù)據(jù)集越大越有利于訓練,因此,針對字符數(shù)量不均衡的情況額外增加了一些字符的數(shù)量,使得每個字符個數(shù)為1 300,并且對這10個字符分別貼上0~9的標簽。從每個字符中隨機抽取1 000張圖片組成訓練集,每個字符剩余的300張圖片組成測試集。最后,對字符進行灰度化處理,并歸一化為28×28的字符保存至Matlab矩陣中。
2.2 實驗結(jié)果及分析
在這個網(wǎng)絡(luò)結(jié)構(gòu)中,針對ReLU與Sigmoid 2種激活函數(shù)做了實驗對比,實驗結(jié)果如圖7所示。從圖7可以發(fā)現(xiàn):網(wǎng)絡(luò)前5層使用Sigmoid激活函數(shù)時,網(wǎng)絡(luò)迭代到100次時才開始收斂,迭代到250次時基本收斂,收斂時誤差在0.45左右;而網(wǎng)絡(luò)前5層使用ReLU激活函數(shù)時,網(wǎng)絡(luò)迅速收斂,當?shù)?0次時基本收斂,收斂時誤差為0.25左右,收斂速度為Sigmoid激活函數(shù)的5倍,并且收斂誤差降低了近一半。
圖7 ReLU與Sigmoid函數(shù)收斂圖
如圖8所示,在沒有考慮卷積步長時(stride=1),網(wǎng)絡(luò)收斂速度相對卷積步長為2時要慢,且最終收斂時損失函數(shù)大于卷積步長為2的網(wǎng)絡(luò)。因此,卷積步長的引入能加速網(wǎng)絡(luò)收斂,并降低收斂時函數(shù)損失值,增加網(wǎng)絡(luò)的整體識別率。
圖8 不同卷積步長收斂圖
網(wǎng)絡(luò)訓練過程中每100次迭代測量一次訓練損失值,每500次迭代從測量樣本中隨機抽取100個樣本進行測量,獲得測量精度,經(jīng)過20 000次迭代后測量精度及損失值變化如圖9所示。隨著迭代次數(shù)的增加,網(wǎng)絡(luò)損失越來越小,并逐漸趨于0,而精度越來越高,最終測量精度達到0.975。
圖9 測量精度和損失值變化
訓練完成后對網(wǎng)絡(luò)各層特征進行提取,以字符‘9’為例,獲得的各層部分特征如圖10所示。由于ReLU激活函數(shù)能夠過濾掉一些無用信息(稀疏性),所以網(wǎng)絡(luò)特征層中出現(xiàn)0像素塊,由Ip2特征層可知,10個輸出神經(jīng)元中最外面的神經(jīng)元灰度值最大,即對應(yīng)于數(shù)字9。最終識別結(jié)果如圖11所示。
圖11 識別結(jié)果
為了突顯本文算法的有效性,將本文改進結(jié)構(gòu)的算法與文獻[5-9]中的算法進行對比。仿真過程中,采用了5次實驗結(jié)果的平均值,最終識別結(jié)果如表1所示。
表1 識別結(jié)果
由表1可知,本文的改進結(jié)構(gòu)算法與傳統(tǒng)的基于模板匹配、BP神經(jīng)網(wǎng)絡(luò)等識別算法相比識別率更高,并且識別波動范圍小,魯棒性強,具有一定的實用價值。
本文針對車牌數(shù)字識別算法提出了一種改進的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),利用ReLU激活函數(shù)增加了網(wǎng)絡(luò)的深度以及收斂速度,引入卷積步長減少了網(wǎng)絡(luò)的訓練參數(shù),在車牌數(shù)字識別上取得了較高的識別率,具有一定的應(yīng)用價值。隨著深度網(wǎng)絡(luò)學習框架的普及,接下來的工作即在Caffe框架下實現(xiàn)本文提出的網(wǎng)絡(luò)結(jié)構(gòu),并將該結(jié)構(gòu)拓展到漢字、字母字符的識別中。
[1] CHEN N, XING L.Research of license plate recognition based on improved BP neural network[C]// International Conference on Computer Application and System Modeling. IEEE, 2010:V11-482 - V11-485.
[2] LIU D Y, SONG H, PAN Q. License plate recognition based on neural network algorithm to improve research[J].Advanced Materials Research, 2013(860-863):2892-2897.
[3] QU Z, CHANG Q L, CHEN C Z, et al. An improved character recognition algorithm for license plate based on BP neural network[J]. Open Electrical & Electronic Engineering Journal, 2014, 8(1):202-207.
[4] 劉麗,匡綱要.圖像紋理特征提取方法綜述[J].中國圖象圖形學報, 2009(4):621-635.
[5] 郭榮艷,胡雪惠.BP神經(jīng)網(wǎng)絡(luò)在車牌字符識別中的應(yīng)用研究[J].計算機仿真,2010(9):299-301,350.
[6] 魏武,黃心漢,張起森,等.基于模板匹配和神經(jīng)網(wǎng)絡(luò)的車牌字符識別方法[J].模式識別與人工智能,2001,14(1):96-98.
[7] 曾泉,譚北海.基于SVM和BP神經(jīng)網(wǎng)絡(luò)的車牌識別系統(tǒng)[J].電子科技,2016,29(1):98-101.
[8] 韋玉科,謝嘉樂,吳齊云.基于改進的LM-BP神經(jīng)網(wǎng)絡(luò)的車牌字符識別研究[J].測控技術(shù),2016,35(2):48-51,57.
[9] 阮志毅,沈有建,劉鳳玲.基于數(shù)學形態(tài)學的模糊集理論在車牌字符識別中的運用[J].計算機工程與科學,2016(3):562-568.
License Plate Digital Character Recognition based on Convolution Neural Network
OUXianfeng1,2,XIANGCanqun1,2*,ZHANXiyang3,PENGXin1,2,SHIYunsuo4
(1.College of Information & Communication Engineering,Hunan Institute of Science & Technology, Yueyang 414006, China;2. Key Laboratory of Optimization & Control for Complex Systems, Yueyang 414006, China; 3.College of Information Engineering, Shenzhen University, Shenzhen 518060, China; 4. GCI Science&Technology Co.Ltd, Guangzhou 510300, China)
An improved algorithm based on convolution neural network is proposed to solve the problem of low recognition rate and poor robustness of traditional license plate recognition algorithm. The ReLU activation function is used to replace traditional sigmoid activation function and convolution stride is employed in the convolution neural network(CNN), which not only accelerates the convergence of the network, but also reduces the number of network parameters. Experimental results show that the recognition rate of the algorithm is the highest, up to 95.2%, comparing with the traditional feature extraction algorithm, and high robustness can be achieved.
license plate recognition; convolution neural network; character recognition
10.13542/j.cnki.51-1747/tn.2016.04.008
2016-09-11
國家自然科學基金“多接口車聯(lián)網(wǎng)可變帶寬信道分配算法研究”(61300039);湖南省教育廳項目“異構(gòu)網(wǎng)絡(luò)分布式多視點視頻編碼及關(guān)鍵幀容錯性傳輸研究”(16C0723);湖南省研究生科研創(chuàng)新項目資助“基于光流傳感的四旋翼位姿估計研究”(CX2016B670)
歐先鋒(1983— ),男(漢族),湖南郴州人,講師,博士,研究方向:圖像處理、視頻壓縮編碼及傳輸。 向燦群(1992— ),男(漢族),湖南岳陽人,在讀碩士研究生,研究方向:圖像處理、模式識別,通信作者郵箱:765545200@qq.com。
TP391
A
2095-5383(2016)04-0026-05