劉孟瑩,呂小納
(1.商丘市質量技術監督檢驗測試中心, 河南 商丘 476100;2鄭州商學院, 河南 鄭州 451200)
隨著我國國民生活水平的日益提高,汽車的保有量也在急劇上升,車輛管理問題也越來越突出.對于車牌號碼的快速準確識別,特別是在特殊環境下的準確識別,已成為車輛管理入口信息的重要一環.
車牌號碼的識別屬于2D圖像識別[1]的一種.本文主要研究的是基于卷積神經網絡的數字圖像識別技術.圖像識別的原理是將已有信息與當前所輸入圖像的關鍵信息進行比對,根據比對的結果將輸入的圖像識別為已有信息的一種.已有信息的維度決定了圖像識別的復雜度.例如,對英文字母的識別與對漢字的識別復雜度就不一樣,英文字母只需識別出26個字母的大小寫,而漢字的個數遠遠大于英文字母數,所以二者識別的復雜度就不一樣.相同像素點的英文字母和漢字的識別在準確率上,英文字母就會高于漢字;同理,要獲得同樣的準確率,漢字的像素點就必須要多于英文字母的像素點.
大多數機器識別的方法,一般是通過兩個步驟完成對的圖像識別[2],分別為特征值的提取和識別分類.特征值的提取就是將圖像中的關鍵信息提取出來,這些關鍵信息是可以用來區分不同的圖像.同時,特征值提取的效果會直接影響識別效率.識別分類步驟在特征值提取的基礎之上將圖像識別為具體的某一種.如果特征值的維度小于分類的維度,一定會出現分類錯誤的情況,所以一般情形下特征值的維度要大于分類的維度.
機器學習方法有一定的局限性,需要人為的預先設定特征.預先設定的圖像特征往往以數據的方式存在,而輸入的需要識別的圖像由于光線、角度、對比度等自然因素的影響,所提取的特征值和預先設定的特征值往往有一定的偏差.在最終的識別分類過程中允許一定范圍的容錯,容錯的閾值是分類階段需要考慮的因素.機器學習方法還有一個缺點就是計算量比較大,實時性很難完成.如圖1所示.

圖1 人工神經網絡中識別方法流程
基于上述的缺點,深度學習[3]以其不用預先設定特征,只用根據被識別圖像的自身學習特征優勢,越來越被研究人員所重視.
相對機器學習而言,深度學習最大的區別在于特征值的提取上,機器學習依賴于預先設定的特征值,而深度學習的特征值依賴于自身算法的自動處理.深度學習需要多層網絡,每層網絡向上層傳遞特征值,上層網絡根據傳遞過來的數值進行語義抽象,再次提取特征值,然后再向上層傳遞.其整個過程不需要人工預先設定,特征值提取和分類識別由深度學習算法自動完成.相比于需要預先設定特征值的機器學習,深度學習可以節省下特征值設計的成本,具體如圖2所示.

圖2 機器學習與深度學習流程對比
本文通過基于卷積神經網絡的深度學習算法,將特征值的提取與識別分類整合到一起,實現圖像的直接識別.卷積神經網絡在訓練過程中,往往需要輸入標記過的樣本作為訓練數據.樣本數越多,識別的準確度就會越高.但在樣本數有限的情況,如何構造網絡模型以提高識別準確度是本文研究的重點.
20世紀50年代,神經網絡被首次提出,由于當時計算機的能力有限,相關技術一直被擱置.電子技術的發展,特別是高速計算機技術的發展,使得大量數據的存儲和運算得以實現.到20世紀80年代,神經網絡研究再一次成為熱點.早期的神經網絡主要是用在分類場景下,通過輸入值和目標值之間的關系,調整神經元的參數和偏移量,以及神經元之間的參數,來進行輸入值和目標值之間的學習過程.
為了實現更精確的細分,神經網絡可以使用多層結構.其相鄰兩層可直接連接,非相鄰層之間不能連接.且層與層之間以及層與端口之間的連接方式根據神經網絡模型的不同而不同.同時,相鄰兩層之間一般使用全連接形式.
神經網絡類似于人的神經組織,由很多個神經單元組成,神經元結構如圖3所示.

圖3 神經元結構
神經元的計算公式為:
(1)
一般的神經網絡會由多個層構成,每個層往往又由多個神經單元組成,相鄰的層與層之間通過神經單元進行連接.神經網絡就是包含一個隱藏層的網絡,如圖4所示.

圖4 一般神經網絡結構圖
神經網絡根據實際需求可以擁有多個隱藏層.神經網絡的訓練方法與單個神經元的訓練方法類似.其區別在于神經網絡一般包含多個層,且神經元的個數以及神經元之間的連接非常多,其訓練過程需要遵循一定的規則,最常用的求導法則有鏈式求導和梯度下降法則.
人工神經網絡中,相鄰層之間的神經元是全連接形式,每一個連接在計算過程中要賦一個權重值.假設每一層是n個神經元,每增加一層,就需要增加n2個權重值.所以,隨著層數的增多,相關參數所占用的內存空間也急劇增多.
當識別目標后的分類較多時,就會需要較多的神經元和更多的網絡層數.這樣需要的內存空間就會比較多,同時運算的成本也會比較高.除此之外,神經網絡的容量(記憶能力)比較大,如果輸入的樣本沒達到一定的限度(網絡容量)時,網絡會記憶下所給的樣本,這就是所謂的過擬合問題.過擬合會使網絡對新數據不準確識別.出現上述問題主要是由于權重數過多,如果直接減少權重數,又會帶來學習能力[4]的下降.為了改善這些情況,后來就出現了卷積神經網絡.卷積神經網絡可以在保證相同學習能力的情況下,減少權重的個數和神經元的個數.
現如今卷積神經網絡已得到廣泛的應用.由于其減少了神經元之間的參數,所以其在數據存儲、運算要求和過擬合問題上都有較好的表現.因為是基于人工神經網絡的改進,所以其結構依然是層級結構.其特點有如下幾點:局部感知、權值共享、多卷積核、Down-pooling、多層卷積等.
用卷積神經網絡來識別數字圖像,其識別準確度比較高.卷積神經網絡經過多年的發展,現有很多種模型,其中,LeNet-5[5]是卷積神經網絡中一種典型模型.該模型網絡結構分層合理,學習和匹配過程中有較好的性能,而且其運行的效率也比較高.
LeNet-5基本思想是用一個卷積核對二維圖形進行局部的特征值提取,使用卷積核對整張圖進行遍歷取值,這樣就可以得到整張圖的特征值.由于卷積核較小,就可以使用較少的參數來完成對整張圖特征值的提取.由于要遍歷整張圖,所以其運算速度比較慢.
當前使用的LeNet-5網絡一般包含的層有:輸入層(Input)、卷積層(Convolution layer)、池化層(Pooling)、全連接層(FC)、輸出層(Output)等.本文使用的LeNet-5結構, 如圖5所示.

圖5 卷積神經網絡LeNet-5結構
卷積神經網絡依然是層級結構.不同類型的層有著不同的作用,不同的運算關系.常用的層類型及作用如下述.
1.3.1 輸入層
輸入層的目的是既要保證圖像數據的完整性,又要使圖像數據干凈(減少噪聲).所以,輸入層一般會對數據做一些處理,一般有去均值(去除直流分量)、歸一化、白化(去除各維度之間的相關性)等處理方法.
1.3.2 卷積計算層
卷積計算層就是用來做卷積計算的.對于彩色圖片,每個像素點都含有RGB三個色道,三種顏色的數值是相互對立.直接卷積會損失掉某些顏色,往往要對三個顏色分別做卷積.如果放在同一層做,每個像素點就需要三維向量,這樣需要的權重數就比較多.為了簡化算法,可以使用三層卷積計算層,每一層只負責一種顏色的計算,這樣就可以大幅度減少數據存儲量和計算的復雜度.
1.3.3 激勵層
在卷積層向下一層進行數據傳遞時,有些場合需要做非線性處理,這時就要在卷積計算層與下一層之間加入激勵層,用來實現非線性映射.
1.3.4 池化層
池化層的目的是為了減少權重數.具體的操作過程是將上一層的結果進行抽樣,減少權重數,同時也減少過擬合的問題.池化的方法有很多種,最常用的是最大池化和平均池化.在圖像識別中,平均池化用得比較多.如圖6所示.

圖6 平均池化示意圖
1.3.5 全連接層
全連接層主要的目的是加大學習力度.全連接層的前后兩層與全連接層的所有神經元都有對應的權重連接.本層通常放在神經網絡的后面.
相比于人工神經網絡,卷積神經網絡的優勢在于不同類型的網絡層完成不同的功能,每次需要完成的功能單一,便于進行算法的優化.下面主要介紹卷積層的算法優化.
圖像可以看作二維數據組,卷積層在計算卷積時是二維卷積.假設兩個函數f(x,y)和 g(x,y),卷積后的函數可以通過式(1)得到:
(2)
式(2)是二維卷積的一般公式.每得到一個卷積函數值都需要從負無窮到正無窮求遍歷加權和.實際的圖像是有限的,所以卷積函數的積分限是圖像的長和寬.卷積過程其實是一種加權過程,卷積核函數就相當于加權值.對于具體一幅圖像的卷積公式為:
(3)
卷積神經網絡是由前到后的單向傳播網絡,所以每經過一次訓練就會遍歷整個神經網絡.每次訓練后就將輸出的數據與預設數據比較,根據誤差(或者均方誤差)來調整權重,直到誤差最小,此時網絡訓練完成.
車牌識別主要分為兩步,第一步是拍照,第二步是拍照后的圖像識別.圖像的質量直接影響最終的識別效果.在拍照環節中,環境光、背景色、車牌角度、相關遮擋等都會影響圖像的質量.未知場景下對車牌的識別有很多的困難.比如拍照的觸發時刻,觸發時刻選擇不好直接影響圖像中有用信息量.如果觸發時刻較早,圖像中車牌占比太小,如果觸發時刻較晚,整幅圖像不能全部包含車牌,會造成車牌信息丟失.除此之外,車牌上字符空間的大小、單個字符的大小(圖像分辨率)、相似字符之間的相似度等情況都會對車牌的識別帶來困難.
我國的車牌只有65個字符.這65個字符包含京、滬、津、渝等31個漢字字符,24個大寫英文字母字符(除去I和O)和10個阿拉伯數字字符.
本次實驗選取了多組數據集,每組數據集包含500幅圖像.按照訓練測試比為41來劃分.每組500幅圖像分為400幅用來訓練網絡參數,另100幅圖像用來測試網絡.
為了評估神經網絡的優劣勢,這里用識別準確率和過擬合率作為神經網絡優劣的評判依據.
識別準確率定義為:識別準確率=識別正確的圖像數量/總識別圖像.
與其對應的平均準確率為:平均準確率=各組識別率之和/總組數.
過擬合率定義為:過擬合率=訓練準確率/識別準確率.
訓練準確率=正確分類的圖像數量/訓練集圖像總數.
為了驗證卷積神經網絡的優劣,這里使用BP神經網絡[6]和LeNet-5卷積網絡[7]兩種方法進行對比.其結果如表1所示.

表1 兩種算法在數據集上的實驗結果對比表
表1中的BP神經網絡采用3層網絡結構,每次處理選取圖像中的32*32=1024點,所以其輸入層神經元個數為1024個,中間隱含層節點選擇260個,因為字符總數為65,所以輸出層節點數選擇為65,激活函數公式為:
(4)
損失函數公式為:
(5)
因為輸入節點數為1024,所以輸入之前將圖像數據集歸一化為 32×32 的矩陣.
LeNet-5網絡由于其網絡各層功能確定,所以使用原始結構,只需將輸出層改為65,而且LeNet-5網絡不需要對預先數據進行歸一化處理,使用原始數據集即可.
根據實驗結果可以得出如下結論:BP神經網絡由于其結構單一,各層之間功能相近,使得圖像特征值的準確率不夠,過擬合率相對較高;除此之外,BP神經網絡對輸入數據需要做歸一化處理,自身識別性也會受限,訓練網絡需要的時間也較長.LeNet-5網絡通過多層結構,在特征值提取方面有一定的提升.最終的效果是LeNet-5網絡在識別準確率、過擬合率和網絡訓練時間上都優于BP神經網絡.
本文詳細介紹了神經網絡的基本原理和卷積神經網絡LeNet-5結構和原理.通過實驗結果可得,LeNet-5網絡在識別準確率、過擬合率和網絡訓練時間上都優于BP神經網絡.同時,也可以看到卷積神經網絡的識別能力受制于反饋式的訓練過程和大量的數據樣本.如果樣本增加或者輸出量增加時,要想保證識別準確率,就必須增加網絡層和訓練參數,這必然會影響識別時間和網絡性能.要想突破這些瓶頸,就需要從圖像的語義層面上識別,對特定的場景,使用更專業化的神經網絡,會得到更好的效果.