許江華,解 妍,陳德裕
(南通大學信息科學技術學院,江蘇南通 226019)
智能交通系統(tǒng)將先進的數據通信傳輸技術、傳感器技術、電子控制技術和計算機技術相結合,是交通系統(tǒng)的未來發(fā)展趨勢[1-3],車牌識別技術作為智能交通系統(tǒng)的重要組成部分受到廣泛關注。隨著國家的高速發(fā)展,高速公路、城市道路、停車場建設越來越多,對交通控制、安全管理的要求也日益提高,車牌識別技術不可或缺[4]。
傳統(tǒng)的車牌識別技術通過車牌字符分割然后再進行單個車牌字符識別[5-6],存在效率低、可靠性差的問題。單個車牌字符識別方法有模板匹配方法[7-8]、反向傳播神經網絡算法[9-10]和特征匹配方法[11-13]。近年來卷積神經網絡(Convolutional Neural Networks,CNN)在圖像識別領域顯示出巨大潛力,得到廣泛應用[14]。文獻[15]提出一種基于CNN 的低成本車牌字符識別算法,通過使用離焦模糊、局部動作模糊、池化等失真方法對低牌照樣本集進行仿真,然后將樣本集放入Le-Net5 網絡進行訓練,但改進后的算法與傳統(tǒng)算法相比未有顯著改進。為進一步提高車牌識別準確率,增強車牌識別方法的魯棒性,本文對典型的卷積神經網絡模型AlexNet[16]進行改進,提出一種基于改進AlexNet 的車牌識別方法,實驗結果表明這一方法可以有效提高車牌識別的準確率和效率。
卷積神經網絡是一種多層非全連接的神經網絡[17],主要包括卷積層和采樣層。對AlexNet、VGG、GoogleNet、ResNet[18-19]等幾大經典模型綜合分析,考慮在計算能力有限的設備上深度過深的網絡不能實現實時的車牌識別問題。同時,本文所涉及的數據任務相對簡單,不需要VGG、GoogleNet 等深層網絡模型,因此選擇AlexNet 網絡模型作為本文車牌識別算法的基礎結構。
AlexNet 開始是用來做圖像分類的,其網絡結構如圖1所示。該網絡包含8 層帶權重的層,前5 個是卷積層,在每個卷積層中都包含激活函數Relu 和局部響應歸一化(LRN)過程,其余3 個完全連接。最后一個完全連接層的輸出被饋送到1 000 路Softmax,后者在1 000 類標簽上分布。本網絡的最終優(yōu)化目標是使平均多項式邏輯回歸最大化,這等效于在預測分布下最大化正確標簽對數概率的訓練案例平均值。AlexNet網絡操作流程如下:
(1)輸入圖像(尺寸:224×224×3),它實際上被預處理為227×227×3。
(2)特征提取,96 個濾鏡(或稱為卷積核)的大小為11×11。第一個卷積層對224×224×3 輸入圖像進行過濾,其中96個核的大小為11×11×3,步長為4像素(這是內核圖中相鄰神經元的感受范圍中心之間的距離)。
(3)使用Relu激活函數以確保特征圖的值在合理范圍內。
(4)Overlapping Pooling,提取代表性特征,減少冗余信息。
(5)使用Local Response Normalization(LRN)局部響應歸一化,模型的卷積核大小為3×3,這意味著處理3×3 的區(qū)域。通過池化獲得96 個大小為3×3 的特征圖,然后將這些特征圖作為第二次卷積的輸入數據。
(6)其余卷積層的操作過程與第一個卷積層相似。第二個卷積層將第一個卷積層的輸出(經響應歸一化和合并處理)作為輸入,并使用大小為5×5×48 的256 個卷積核對其進行過濾。第三、第四和第五個卷積層彼此連接而沒有任何中間的池化或規(guī)范化層。第三卷積層具有384 個大小為3×3×256 的卷積核,這些卷積核與第二卷積層的(標準化,合并的)輸出連接。第四卷積層具有384 個3×3×192大小的卷積核,第五卷積層具有256 個3×3×192 大小的卷積核。完全連接的層各有4 096個神經元。
Fig.1 AlexNet neural network structure圖1 AlexNet神經網絡結構
基于CNN 的車牌識別方法由兩部分構成:①輸入訓練圖像集訓練CNN 模型;②將待識別的車牌圖像輸入訓練好的模型進行識別,流程如圖2所示。
Fig.2 CNN-based license plate recognition process圖2 基于CNN的車牌識別流程
本文選擇AlexNet 網絡模型作為基礎結構,對其層次、參數等進行改進。原Aelxnet 模型的圖片輸入的尺寸為227×227×3,考慮到車牌的實際規(guī)格大小,決定將輸入圖片的規(guī)格更改為36×136×3。
卷積是CNN 中最重要的運算。將二維圖像的卷積計算映射到連續(xù)滑動卷積窗口,得到相應的卷積值。在CNN中,每個特征圖由多個輸入特征圖進行卷積。對于第i個卷積層的輸入x計算如下:
其中,*表示卷積運算,Wi表示該層的卷積核,f表示激活函數。,K是該層卷積核的個數。每個卷積核是一個M×M×N的權矩陣,M是窗口大小,N是輸入通道數目。本文采用3×3 的卷積核替換Alexnet 模型中第一層卷積層中11×11 的卷積核以及第二層卷積層中5×5 的卷積核,一方面可以大大減少網絡參數的個數,另一方面可以引入更多的非線性,增強模型的表達能力。
常用激活函數分為飽和非線性函數和不飽和非線性函數。飽和非線性函數,如Sigmoid 和Tanh,在訓練網絡時的性能比不飽和非線性函數差。Relu 激活函數是一種不飽和非線性函數,本質上是一種分段線性模型,可以模擬腦神經元接收信號,函數圖形如圖3所示。
2.1.7 重復性試驗 取同一批KC粉末(批號F31008),按照“2.1.3”項下方法制備6份試品溶液,按照“2.1.1”項下色譜條件進樣測定,金絲桃苷、朝藿定B、朝藿定A、朝藿定C、淫羊藿苷、木犀草素、槲皮素、川陳皮素、山柰酚、寶藿苷I的平均質量分數分別為6.22、4.12、35.07、32.62、47.32、0.213、0.402、0.380、0.336、2.86 mg/g,RSD分別為1.90%、0.78%、1.04%、0.70%、0.68%、2.61%、1.92%、1.45%、2.92%、0.84%,表明該方法重復性較好。
Fig.3 Relu activation function圖3 Relu激活函數
Relu 激活函數可以自適應地學習整流器參數,在不增加額外成本的情況下提高精度。本文在模型中加入Relu激活函數,以防止加速網絡訓練時出現梯度分散問題,提高識別精度。對于輸入x,Relu 激活函數定義為:
為防止AlexNet 模型過擬合,增強泛化能力,在第一層卷積層和第二層卷積層的激活函數后面引入局部響應歸一化層(Local Response Normalization,LRN)。在本文模型中LRN 層并沒有什么實際效果,因此不采用LRN 層。Batch Normalization(Batch-Norm)是一種通過穩(wěn)定層輸入分布來提高神經網絡訓練的技術。Batch-Norm 層最初設計是為緩解內部協(xié)變量移位的問題——這是訓練一個非常深入的神經網絡時常見的問題。首先對小批量中的每個特性進行標準化,然后學習每個小批量的公共斜率和偏差。給定BN 層X∈Rn×p的輸入,其中n表示批大小,p為特征維數,BN 層對特征j∈{1,…,p}的轉換公式為:
其中,xj和yj是數據樣本中一個神經元響應的輸入/輸出標量;X.j表示輸入數據的第j列;γj和βj參數是習得的,這種轉換保證了每一層的輸入分布在不同的小批之間保持不變。對于隨機梯度下降(SGD)優(yōu)化,一個穩(wěn)定的輸入分布可以極大地促進模型收斂,從而大大提高CNN 的訓練速度。此外,如果在每個階段對訓練數據進行變換,那么相同的訓練樣本將被應用于不同的轉換,換句話說,就是在整個訓練過程中更全面地擴展。
在Relu 激活函數后加入Batch-Norm 層可以顯著減少收斂的迭代次數,使優(yōu)化過程變得更加平滑,這種平滑性使得梯度運動具有更強的預測性和穩(wěn)定性,從而實現更快、更有效的訓練,提高模型最終性能。
隨著卷積層數的增加,網絡的參數將呈指數增長,池化操作可以有效減少網絡參數的數量。為了減少所有區(qū)域的參數,通過計算一個區(qū)域的統(tǒng)計特征來進行池化操作,以表示整個區(qū)域特征。AlexNet 模型為了減輕過擬合采用Overlapping Pooling(重疊池化),步長小于池化窗口大小,相鄰的池化窗口之間有重疊區(qū)域,Overlapping Pooling只能“稍微”減輕過擬合。因此,本文模型選擇采用普通池化中的Max Pooling(最大值池化),即選擇圖像區(qū)域的最大值作為該區(qū)域池化后的值,池化窗口設為2×2,步長設為2。
全連接層(fully connected layers)在整個卷積神經網絡中扮演“分類器”角色。經計算AlexNet 的3 個全連接層分別包含37 752 832、16 781 312、4 097 000個參數,而整個模型的參數量為60 965 128,全連接層包含了模型約96.2%的網絡參數。巨大的網絡參數要求極高的訓練數據量,原始AlexNet 使用擁有百萬級別數據量的ImageNet,而本文車牌識別收集到的數據量只有數萬級,相對少很多,因此本文通過去掉AlexNet 網絡模型3 個全連接層中的前兩個全連接層來減少整個模型的網絡參數。
Flatten 層即展平層,由于全連接層要求輸入一維數據,因此在進入全連接層之前必須將輸入數據“展平”為一維。dropout 操作可以通過阻止某些特征的協(xié)同作用來緩解神經網絡中訓練樣本較少的情況。每個輸入樣本對應的網絡結構是不同的,但是所有這些不同的網絡結構同時共享隱藏節(jié)點的權值,使不同的樣本對應不同的模型。簡單來說,dropout 操作是通過隨機抑制一定數量的神經元來實現的,被抑制的神經元暫時不參與網絡的正向通訊。為了防止過擬合,提高模型的泛化程度,在本文模型中加入dropout操作,dropout操作的概率值選擇為0.5。
損失函數衡量的是預測結果與輸入標簽之間的差異,定義為:
本文使用一種隨機梯度下降(SGD)算法,其中W 迭代更新如下:
其中,α 是學習速率,是一個非常重要的參數,它決定了學習的步長。K是類的指標。
AlexNet 模型的輸出層具有1 000 個分類數目,本文將輸出的Softmax 分類層改為7 類,對應車牌的7 個字符。我國車牌字符包括31 省、市的簡稱即31 個中文字符、24 個英文字母(除去O 和I)以及10 個阿拉伯數字。車牌識別問題可以看作是包含65個標簽的多標簽分類問題,如圖4所示。
Fig.4 Softmax classification layer圖4 Softmax分類層
圖4 中,每一行的概率之和為1,最后依次輸出每一行中最大概率值相對應的字符,即獲得7位車牌號碼。
改進后的AlexNet卷積神經網絡結構如圖5所示。
Fig.5 Improved AlexNet convolutional neural network structure圖5 改進的AlexNet卷積神經網絡結構
對本文車牌識別方法的有效性進行實驗,實驗環(huán)境和參數如下:Inter Core i7-6700,3.40GHz CPU,16GB 內存,Windows 10操作系統(tǒng),TensorFLow 深度學習框架。
網絡模型實驗參數設置如下:最大迭代次數為300 000次,初始學習率為0.000 1。為防止過擬合,設置dropout參數keep_prob為0.5。每迭代10 000次,保存一次模型。
由于樣本量的問題,采用車牌生成器對車牌樣本進行擴充,共得到30 760 張車牌數據,其中包含自收集的車牌圖片顏色定位、Sobel 邊緣檢測結合SVM 的車牌定位方法提取到的3 793 張車牌數據,將車牌按10:1 分為訓練集和測試集。
將基于車牌字符分割結合ANN 車牌識別方法、基于車牌字符分割結合SVM 車牌識別方法與本文基于改進AlexNet 車牌識別方法進行對比實驗,將這3 種算法分別在自收集的測試集和EasyPR 數據集上進行實驗,選取其中5張車牌的對比實驗結果,如表1 所示。截取部分實驗結果圖片如圖6-圖8所示。
Table 1 Part of the license plate recognition results表1 部分車牌識別結果
對比實驗結果如表2 和表3 所示。車牌識別準確率表示車牌內所有字符均被正確識別的結果(準確率=正確個數/測試個數),車牌識別時間表示每個車牌識別的平均時間。
從表2 和表3 可以看出,本文車牌識別方法在自收集數據集上識別準確率高達97.31%,在公共EasyPR 數據集上識別準確率高達98.03%,不僅在識別準確率方面均優(yōu)于其他對比方法,識別速度也具有優(yōu)勢,在車牌識別領域具有一定的優(yōu)越性。
Fig.6 Character segmentation combined with ANN recognition results圖6 字符分割結合ANN識別結果
Fig.7 Character segmentation combined with SVM recognition result圖7 字符分割結合SVM識別結果
Fig.8 License plate recognition results in this article圖8 本文車牌識別結果
Table 2 Recognition results of different license plate recognition methods on self-collected data sets表2 不同車牌識別方法在自收集數據集的識別結果
Table 3 Recognition results of different license plate recognition methods in EasyPR dataset表3 不同車牌識別方法在EasyPR數據集的識別結果
本文選擇AlexNet 網絡模型作為基礎結構,對其層次、參數等進行改進和重構,提出一種新的適用于車牌識別的卷積神經網絡結構。實驗結果表明,采用基于改進AlexNet 的車牌識別方法進行自然場景下的車牌識別,避免了車牌字符分割對識別結果的影響,降低了復雜背景環(huán)境對車牌識別的影響,具有較高的識別率和可靠性。但由于樣本量問題,在訓練模型過程中采用了許多擴充樣本,影響了模型訓練結果,后期將針對這一問題進行改進,同時將嘗試采用不同的神經網絡進行訓練,以進一步提高車牌識別準確率。