李 非
(東北石油大學電子科學學院 大慶 163000)
隨著我國經濟日益發展,國民經濟水平大幅度提高,交通工具越來越普遍化,交通壓力增大的同時,給交通管制帶來了巨大的挑戰,交通管理中的一個重要步驟是車牌識別,因此對車牌識別提出了越來越高的要求,車牌識別系統要具有識別時間短、識別準確率高的特點。
近年來人們對人工智能的研究日益深入,人工智能與機器視覺的結合為車牌識別帶來了新的機遇,機器學習中的神經網絡走入人們的視野中。我國廣大工作者一直在致力提高車牌識別的效率,目前較成熟的神經網絡有卷積神經網絡、BP神經網絡等。由于卷積神經網絡較為復雜,所以BP網絡的優勢就凸顯出來了。人們對BP網絡[1]的優化也一直在進行中,主要優化是在尋找網絡最優誤差的算法、優化網絡的輸入、優化網絡參數等。尋找網絡最優誤差的方法有粒子群優化(PSO)算法[2]、遺傳算法[3]、壓縮映射遺傳[4]等來尋找全局最優解。優化網絡的輸入就是在數據特征提取[5~6]方面進行,如主成分分析(PCA)法[7]、十三點特征提取算法[8~9]、四角特征提取法[10]等。優化網絡參數有誤
差動量項的添加[11~13]、使用自適應學習率[14~15]、運用可調激活函數[16~18]等。本文使用主成分分析法進行字符的特征提取,使用SCG優化的BP神經網絡進行車牌字符識別,兩者結合使用的結果與傳統BP網絡相比,識別速度與準確率有大幅度提高。
經過攝像頭等硬件設備采集到車牌圖像后,圖像存在噪聲、傾斜、除車牌外包含多余圖像等諸多問題,這就需要進行處理,解決以上問題得到統一規整的車牌圖像,有利于神經網絡進行字符識別,從而提神經高網絡識別準確率和速度。

圖1 車牌識別流程
具體方法:
1)圖像預處理:對車牌圖像進行直方圖均衡化,中值濾波或均值濾波等處理。
2)車牌定位:利用車牌的顏色、紋理和形態等特征進行車牌提取,用邊緣檢測等獲得車牌準確位置。
3)字符分割:對二值化后的車牌使用垂直投影的方法獲得單個字符所在區域,尋找連續有文字的塊,若長度大于設定的閾值則切割,進而實現字符的分割[19]。
4)字符識別:使用成比例共軛梯度下降法優化的神經網絡進行車牌字符識別。
對車牌圖像進行處理后的結果如圖2所示。

圖2 車牌圖像進行處理
經過字符分割后,得到了大小統一的單個字符,有利于之后的SCG-BP神經網絡對其識別。也有利于提高網絡的收斂速度,提高BP網絡對車牌字符的識別效率。
經過字符分割,實現了車牌圖像到單個字符的轉換,接下來要進行字符特征提取。由于選擇BP網絡作為最終的分類器,BP網絡對輸入樣本有一定的要求,當數據過于冗雜時,網絡容易陷入局部最小值,并且網絡的收斂速度會大大增長。這就影響了網絡的識別效率。BP神經網絡的訓練效果會不盡人意,即使訓練效果可以,但在測試集上的效果也不一定可以達到預期結果。所以一定要對訓練集做預處理,相應的測試集也要經過一定的處理。采用BP網絡對車牌字符進行識別前需要對BP網絡進行訓練,但是存在訓練集太大的問題,考慮以上問題所以本文采用主成分分析法(PCA)來解決這些問題。
主成分分析法是一種降低數據維數的方法,在保留盡可能多的有用“信息”時,將高維的樣本數據轉換到低維的樣本數據,從而減小BP網絡的計算量。樣本數據的“信息量”是樣本數據在特征方向上投影的方差。
PCA的本質就是找一些投影方向,使得數據在這些投影方向上的方差最大,而且這些投影方向是相互正交的。就是找新的正交基的過程,計算原始數據在這些正交基上投影的方差,方差大,說明在對應正交基上包括較多的信息[20]。原始數據協方差矩陣的特征值大,對應的方差大,在對應的特征向量上投影的信息量就多。相反,特征值小,則信息量小,可以將其對應的數據刪除,從而保留了大部分重要的信息,這樣樣本數據得到了降維。
實現步驟:
1)輸入原始數據,大小為(m,n),構建n維特征的協方差矩陣。
2)對協方差矩陣分解,得到特征值和特征向量。
3)對特征值的絕對值進行從大到小排序,決定降維后的特征數量:k。
4)選擇前k個特征值,就會得到一個n×k的特征向量組合成的矩陣。
5)將數據映射到新空間中,得到降維后的樣本數據如式(1):

式中:A是原始數據矩陣;B是主成分特征向量矩陣;C是新數據矩陣。
BP(Back Propagation)神經網絡是一種具有連續傳遞函數的多層前饋反向傳播的網絡,是一種結構簡單被廣泛使用的非線性不確定性數學模型。常用的訓練方式是誤差反向傳播算法(BP算法),并以誤差最小化為目標不斷修改網絡的權值和閾值,是一種有監督的學習方法。BP神經網絡的訓練是正向傳播和反向傳播兩個不斷進行的過程。反向傳播算法是一種最有效的多層神經網絡學習方法,其主要特點是信號前向傳遞,而誤差后向傳播,通過不斷調節網絡權值,使得網絡的輸出與期望輸出盡可能接近,最終完成訓練。如圖3所示。整體BP網絡分為三層輸入層、隱藏層、輸出層;net為神經元的輸入存在于輸入層、隱藏層、輸出層;out為神經元的輸出相應的也存在于輸入層、隱藏層、輸出層;每個神經元的內部有激活函數函數A;神經元之間的是連接權重wi。

圖3 傳統BP神經網絡
在正向傳播中,樣本信息從輸入層輸入,經過非線性變換到達隱含層并傳到輸出層。

若在輸出層沒有得到期望的輸出,則通過計算輸出層輸出的誤差:

式中:E1為輸出層第一個神經元的誤差;out(i+1,1)是輸出層第一個神經元的實際輸出;ans1是輸出層第一個神經元的期望輸出。
然后進行反向傳播,通過網絡將誤差信號

式中:E2為輸出層第二個神經元的誤差;δi是修改wi的誤差因子;A是激活函數。
沿原來的通路回饋回來,修改各層神經元權值和閾值,直至輸出層達到期望值。

式中:η為學習速率;out(i,j-1)是Wi連接的兩個神經元的前一個神經元的輸出。
以此類推,BP神經網絡不斷輸入新的樣本數據進行信號正向傳播,同時網絡不斷反向傳播并修改權值和閾值,最終得到在允許誤差以內的各個神經元連接的權重值,在大量訓練樣本的輸入下,神經網絡訓練的可以滿足大量數據的輸出都在可接受誤差范圍內,至此完成BP神經網絡的訓練。之后便可以輸入測試樣本進行測試來評估訓練完成的網絡模型的精確度或者輸入待預測量使用神經網絡進行預測。
最速下降法是現在最常用的訓練方法,也就是按照梯度下降的方向修正各個權值。本文采用成比例共軛梯度下降法(Scaled Conjugate Gradient,SCG)是最速下降法的改進,將模值信賴域算法與共軛梯度算法結合起來,縮短BP網絡誤差優化的時間[21]。
共軛梯度算法是存在于梯度下降法和牛頓法之間的一個方法,它不但解決了梯度下降法收斂慢的問題,而且解決了牛頓法計算過程中大量的二階導數的計算的問題。模值信賴域算法是一種尋找最優解的方法,在每次迭代計算時,選定一個可信賴的區域,然后選擇迭代點的近似模型,再計算最優步長,如果步長不合適,可以對區域進行縮放。成比例共軛梯度下降法的優點是所需存儲量小,穩定性高,而且不需要任何外來參數。本算法的實現只是對其中的一些變量做了如下調整:

其中αk的步長如下:

式中:λk為算法的尺度因子,sk是與λk相關的函數。
由于本文選擇不同網絡分別對漢字、數字、字母進行識別,這里介紹數字識別的BP神經網絡構建過程。通過主成分分析法對待識別字符進行特征提取,最終選取一定的主要特征作為BP神經網絡的輸入。出于加快網絡收斂時間,提高識別效率考慮,本文最終選擇經典的三層BP神經網絡即包含一個隱藏層。通過公式:

式中:m為輸入層節點數,n為輸出層節點數,p為訓練樣本數。初步確定隱含節點數定為100。通過對不同節點下識別率的統計如表1。

表1 不同神經元個數SCG-BP網絡準確率
發現節點數為110時識別正確率最好,所以最終確定隱含節點數為110。待識別的是0~9十個字符,所以選擇輸出節點為10,對應十個字符。通過以上預設參數和對BP網絡改進完成后,車牌字符識別的具體流程如圖4所示。
本文的測試硬件平臺是惠普OMEN,其配置是英特Core i5-7300HQ、四核、Nvidia GeForce GTX 1050 Ti獨立顯卡、8 GB DDR4內存、1TB+128G存儲,使用的軟件仿真平臺是Matlab R2016a。

圖4 算法流程圖
本文選用700個分辨率為40×32的單個字符,其中數字樣本包含0~9的數字、字母樣本包含A~Z的24個英文字母樣本、漢字樣本包括“滬”、“京”、“閩”、“蘇”、“粵”、“浙”漢字。部分訓練集和測試集樣本如圖5所示。

圖5 部分訓練樣本測試樣本
應用SCG-BP網絡和傳統BP網絡分別對漢字、字母、數字進行識別率統計,統計結果見表2。

表2 識別統計結果
試驗結果表明,本文提出的SCG-BP神經網絡有著很好的實用性,無論是在文字、數字、漢字的識別率最低都高于傳統BP網絡兩個百分點以上,證明了算法的優勢性。
本文使用主成分分析法(PCA)進行字符的特征提取和SCG-BP神經網絡進行字符識別,可以對車牌進行快速識別,準確率較高。由于漢字數目有限,所以本文中SCG-BP網絡識別率可以達到100%。SCG-BP網絡中的不同參數的組合對識別結果有較大的影響,所以對網絡中的一些參數進行改變可以進一步提高網絡識別率。在車牌字符識別方面,選擇110個隱藏神經元SCG-BP網絡的車牌識別可以得到較好的效果。