陳 利
(1.西北大學 信息科學與技術學院,陜西 西安 710127;2.銅川職業技術學院 基礎部,陜西 銅川 727031)
當今中國經濟已進入高速發展的階段,人民生活水平不斷提高,私家車的數量與日俱增,隨著機動車數量的增加,一系列社會問題也隨之而來,如交通堵塞、交通事故頻發、環境污染加劇等。這些問題尤其是交通問題的根治僅僅依靠大規模的道路建設是不夠的,智能交通系統(intelligent traffic system,ITS)是解決交通問題的一個重要手段,而車輛牌照識別(license plate recognition,LPR)技術在其中起著至關重要的作用。車輛牌照識別系統能夠對獲得的車輛圖像信息進行分析,識別出車輛牌照的位置,并進一步識別出車牌號碼。雖然在高清靜止的場景中車牌識別技術已經較為成熟,但在霧霾天、夜晚和視角不正等更廣義的場景中,車牌識別問題依然面臨挑戰,尤其在未來無人車、無人交通中,車牌識別技術更有著非常大的提高空間。
深度學習的發展對計算機視覺和圖像處理領域帶來了巨大的變化,其在圖像物體檢測和分類問題中比其他算法具有明顯的優勢,因此文中基于深度學習進行車牌識別的研究。
深度學習[1-2]的概念源于人工神經網絡的研究。人工神經網絡的網絡層次較淺,一般有一至兩層的隱藏層,由于神經網絡樣本個數和計算單元個數有限,因此處理復雜問題時其泛化能力受到限制。而深度學習網絡模型至少有五層以上的隱藏層,可通過學習一種深層的非線性網絡結構,把人工神經網絡得到的底層特征更進一步地抽象成更加抽象的高層表示屬性類別或特征,并用其強大的從少數樣本集中學習數據集本質特征的能力,實現對復雜函數的逼近,以發現數據的分布式特征表示。
卷積神經網絡[3-5](convolution neural network,CNN)是人工神經網絡的一種,它的人工神經元可以響應一部分覆蓋范圍內的周圍單元,在大量圖像處理中表現出色。卷積神經網絡中較為重要的層次為卷積層、Pooling層、歸一化層、損失函數層、激活函數層以及全連層。其中卷積層的表達式為:
(1)
其中,Wi,j為卷積核的第i行第j列的權值;Xr+i,c+j為卷積層輸入的第r+i行、第c+j列個元素;b為偏差;fr,c為卷積層第r行、第c列個元素。
Pooling層(Max-Pooling)的計算表達式為:
(2)
其中,Xr+i,c+j表示Pooling層輸入的第r+i行、第c+j列個元素;fr,c表示Pooling層輸出的第r行、第c列個元素。
Pooling層的作用是從附近多個激活的元素中選擇最大的元素,以去除附近其他噪聲,同時Pooling可以有效縮減模型規模,將圖片的長寬一次次縮小,減少神經網絡的計算量。基于深度學習的目標檢測方法有R-CNN[6]、Fast R-CNN[7]、Faster R-CNN[8]、Single Shot Multi Box Detector[9](SSD)等。
車牌定位是車牌識別系統的關鍵環節,提升整個系統的識別率的關鍵點就是準確地獲取車牌區域。車牌定位算法有很多,如邊緣檢測法[10-11]、紋理特征法[12]、小波變換法[13]和遺傳算法[14]等。傳統的邊緣檢測算法檢測到的邊緣信息存在大量的干擾信息,當光照條件不同時,傳統的邊緣檢測算法很多情況下不能實現車牌定位;紋理特征法對于牌照傾斜以及光照不勻的情況,定位效果較好,但對于噪聲大、背景復雜的圖像則不能實現較好的定位;小波變換法能很好地解決含有噪聲的車牌圖像的定位問題,缺點是速度比較慢,并且在噪聲比較大時誤判率較高;遺傳算法在圖像質量較差時對目標區域有很好的增強效果,但是在實時系統中,遺傳算法中的迭代次數會對車牌定位的速度造成很大的影響,導致運算速度慢,效率不高。由于灰度圖像信息較少,計算量相對彩色圖像較小,處理時間較短,因此文中使用基于灰度圖的目標檢測方法來定位車牌。
要準確地識別出車牌上的字符,就要先將定位好的車牌上的字符逐個分割出來,拆分成一個個字符。因此字符分割的是否合理,會直接影響字符的正確識別。文中采用的方法是垂直投影法,其中心思想是綜合利用車牌上字符本身具有的諸多特點,把二值化后的車牌字符形成的圖像進行垂直方向上的投影,由于車牌上字符不僅對應區域中存在比較多的黑色像素點,而且車牌上每個字符間存在一定的間隔。因此,投影過后就會得到多個相對集中的投影峰值群,再根據得到的這個投影峰值本身的特點,將其分割,最終得到車牌的字符。
(1)模板匹配。
模板匹配的重點就是提取與選擇特征值,國內車牌字符是按照一定的順序依次排布的,第1個字符是漢字,通常是省份簡寫,第2個字符是大寫英文字母,最后5個字符則是阿拉伯數字0到9以及除“O”以外的英文字母的組合。針對這一特征,模板庫分成3個模板子庫,即數字字庫、漢字字庫以及英文字母字庫。因為角度以及拍攝扭曲程度的原因,同樣的字符歸一化后所得到的圖像會出現多種筆畫位置和形狀。在識別字符時,如果使用單一模板,會因為部分扭曲字符和標準模板不能準確匹配,影響最后的識別。因此需要為每一個字符配備多個標準模板,這些模板能夠最大程度適應常見的變形。盡管選用多個模板能夠照顧到更多的情況,但同時也將算法復雜化,因此適當的模板數量以及挑選適合的模板會對最后的識別速度以及識別率產生重要的影響。計算模板匹配度的算法較多,通常采用式3:

(3)
其中,f為模板二值圖像,g為對應的車牌二值圖像,兩幅圖像的大小一致,均為M×N;Tf和Tg分別為對應二值圖像中值為1的像素個數;∧為與運算。
(2)特征統計優化識別。
多模板匹配比單一模板識別率高,但是依然會出現不少的錯誤識別,錯誤一般集中在B和8、L和1、C和6、Z和7以及O和Q等形狀相似的字符的識別上。針對這種情況,需要進一步分析這些字符的特征,然后進行識別,該算法主要是為經常出錯的字符而設計的。字母B和數字8的區別主要是在左半部分,可以通過只匹配左半部分來放大這種局部差別以實現識別。針對這些易出現識別錯誤的字符,專門建立一個局部模板庫,這個模板庫以相似字符為一組建立。例如,Q跟O以右下方為特征,B跟8以左半邊為特征建立標準模板庫。算法的計算過程如下:
Step1:假如第一次識別的結果是某一個相似的字符,那么進行Step2,如果不是就進行Step5。
Step2:以第一次識別的結果為依據,確定屬于哪個局部模板庫。
Step3:依據選擇的模板庫,選擇相同的位置,然后依據式3進行計算。
Step4:選用匹配度最高的值作為最后的識別結果。
Step5:輸出結果。
(3)基于Hausdorff距離的多模板匹配。
與單一模板匹配比較,多模板匹配算法將車牌字符因扭曲、旋轉產生的變形問題也一并考慮,通過為每一個字符添加多個模板來增強識別算法的健壯性,但是增加少量的模板仍然不能顧及所有情況,不能滿足識別的需要,如果添加更多的模板,雖然能夠提高算法識別率但同時也大大降低了運算速度。
Hausdorff[15]距離又稱為最大最小距離,是一種表達兩點集的相似度的一種量度,它是兩集合之間距離的一種定義方式。Hausdorff距離定義為:H(A,B)=max(h(A,B),h(B,A)),即A到B和B到A兩個有向距離的最大值。其中A和B分別表示兩個集合,A={a1,a2,…,aM}和B={b1,b2,…,bN},h(A,B)表示集合A中某個任意的點到集合B的所有點的距離的最小值中的最大值,表示為:h(A,B)=max(min(|a-b|)),h(B,A)表示集合B中某個任意的點到集合A所有點的距離的最小值中的最大值,表示為h(B,A)=max(min(|b-a|))。因為存在噪聲,這種選擇最小值最大值的方式有可能使計算結果出現錯誤,抗干擾性弱。
采用上述技術,文中提出一種基于深度學習的車牌識別算法,步驟如下:
(1)車牌圖像預處理。
通常在車牌識別中用到的圖像是通過數碼設備在戶外拍攝得到的,因此受天氣和光照等環境的影響較大,需要在特征提取和模式識別處理之前,將圖像中隱含的無用干擾信息去除,并將原圖中有用信息增強[16]。圖像預處理主要是通過圖像灰度化以及利用灰度拉伸、圖像平滑等操作對采集到的圖像進行處理,以便將干擾信息盡可能多地剔除,有利于后續定位。
算法通過加權平均值法對圖像進行灰度化處理,利用中值濾波法平滑圖像,如圖1所示。

圖1預處理過程
(2)基于深度學習的車牌定位。
由于車牌定位中,并不需要定位多個類別的物體,所以使用Faster R-CNN中的RPN(region proposal network)來生成候選框。圖2為車牌定位的卷積神經網絡模型,其中“conv”代表卷積層,“pool”代表polling層,“norm”代表歸一化層,“fc”代表全連接層,“dropout”代表dropout層,“sum of square loss”即回歸目標函數;“c96”代表96個通道,“k7”代表卷積核或者polling核為7×7個像素,“s2”代表步長為兩個像素,“p1”代表圖像周圍用寬度為1的0值作為邊框,“fc”中的參數為其輸出個數,即輸出了4096個元素。

圖2 車牌定位卷積神經網絡模型
(3)車牌字符分割。
算法使用垂直投影法進行車牌字符分割,根據車牌字符間具有間隔相等的特點,對二值圖像(見圖3)進行垂直投影,計算出字符的寬度及兩個字符之間的間距,分別向前、后兩個方向進行分割,定位出每個字符的左右邊界,然后對每個分割出的字符進行水平投影,進而確定字符的上下邊界。由于分割出的車牌字符尺寸大小不同,為進一步提高準確率,需要歸一化處理待識別的字符,采用雙線性插值法將字符的尺寸統一起來。
圖4是歸一化后的圖像。

圖3 二值化圖像

圖4 車牌字符分割圖像
(4)車牌字符識別。
為降低噪聲的干擾,可通過計算最小距離和,而不是計算所有點的最小距離的最大值,達到預期效果。如果只求模板點集B到字符點集A的距離h(B,A),因為僅僅計算字符到模板之間的有向距離就會有這種狀況:假設一個模板點分布比較集中并且數量不多,導致模板圖像與待識別圖像之間的距離比較遠,這樣算法就認為這個模板跟大部分字符都匹配,導致結果不正確,但是反過來計算模板到字符之間的有向距離就能夠有效地避免這個問題。
經過改進后的Hausdorff距離計算公式為:
H(B,A)=∑min(‖b-a‖)
(4)
用改進的Hausdorff距離為核心的多模板匹配方法運算步驟與前面介紹的多模板匹配方法基本一樣。該算法仍然是給每一個字符設置五個標準模板,初次模板匹配能夠將大部分字符分類,特征統計優化識別主要針對非常相似,易出現錯誤分類的字符,不同點就是利用式4計算Hausdorff距離匹配度。
采用文中設計的算法,在車牌定位模塊中,使用開源框架Caffe下的RPN網絡結構,其他模塊則使用MATLAB進行編程,設計了相應測試平臺,具體內容如圖5所示。
采集了16217張車牌圖片(見圖6)作為數據源,數據大小為160×160。隨機抽取這些圖片的80%(12974)用于訓練,20%(3243)用于測試,共循環10次,用交叉驗證法得到車牌最終定位準確率(見表1)。

圖5 車牌識別系統流程

圖6 車牌定位效果圖

算法準確定位錯誤定位準確率%邊緣檢測算法3 02222193.2紋理特征算法3 07117294.7文中算法3 1657897.6
表2是利用從原始數據集中隨機選取的337張圖片測試得到的各算法的識別率比較情況。圖7為部分定位車牌識別圖像。

表2 不同算法對隨機選取車牌識別準確率對比

圖7 車牌原圖和車牌識別結果
由這些表格數據可知,文中算法比傳統的模板匹配和神經網絡算法具有更高的定位和識別準確率,能夠達到準確識別的目的。
針對車牌識別存在的問題,通過對車牌定位、車牌字符分割和車牌字符識別技術進行研究,提出了一種基于深度學習的車牌識別原型系統方案。實驗結果表明,設計的基于深度學習的算法的識別正確率優于模板匹配算法和神經網絡算法,具有一定的可行性。
參考文獻:
[1] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84-90.
[2] ZE Heiga,SENIOR A,SCHUSTER M.Statistical parametric speech synthesis using deep neural networks[C]//International conference on acoustics speech and signal processing.Vancouver,BC,Canada:IEEE,2013:7962-7966.
[3] 余 凱,賈 磊,陳雨強,等.深度學習的昨天、今天和明天[J].計算機研究與發展,2013,50(9):1799-1804.
[4] YANN L,KAVUKCUOGLU K,FARABET C.Convolutional networks and applications in vision[C]//Proceedings of2010IEEE international symposium on circuits and systems.Paris,France:IEEE,2010:253-256.
[5] HE Kaiming,ZHANG Xiangyu,REN Shaoqing,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,37(9):1904-1906.
[6] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the2014IEEE conference on computer vision and pattern recognition.Columbus,OH,USA:IEEE,2014:580-587.
[7] GIRSHICK R.Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision.Piscataway,NJ:IEEE,2015:1440-1448.
[8] REN Shaoqing,HE Kaiming,GIRSHICK R,et al.Faster r-cnn:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2017,39(6):1137-1149.
[9] LIU Wei,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[C]//European conference on computer vision.[s.l.]:Springer International Publishing,2016:21-37.
[10] CHEN Rongbao,LUO Yunfei.An improved license plate location method based on edge[J].Physics Procedia,2012,24:1350-1356.
[11] MOUSA A.Canny edge detection based vehicle plate recognition[J].International Journal of Signal Processing Image Processing & Pattern Recognition,2012,5(3):1-7.
[12] YU Shengfeng,XU Zhijiang,ZHANG Biaobiao,et al.A novel algorithm for license plate location based on the RGB features and the texture features[C]//Proceedings of the20125th international conference on biomedical engineering and informatics.Piscataway,NJ: IEEE,2012:156-159.
[13] WANG Y R,LIN W H,HORNG S J.A sliding window technique for efficient license plate localization based on discrete wavelet transform[J].Expert Systems with Applications,2011,38(4):3142-3146.
[14] SMARA G A,KHALEFAH F.Localization of license plate number using dynamic image processing techniques and genetic algorithms[J].IEEE Transactions on Evolutionary Computation,2014,18(2):244-257.
[15] HUTTENLOCHER D P, KLANDERMAN G A, RUCKL-IDGE W J.Comparing image using the Hausdorff distance[J].IEEE Transaction Patterns Analysis and Machine Intelligenee,1993,15(9):850-863.
[16] 史海玲,邱曉暉.運動模糊車輛圖像復原方法研究[J].計算機技術與發展,2016,26(8):60-64.