楊洪臣 黨 京 蔡能斌 王華鵬 翟金良
(1 中國刑事警察學院聲像資料檢驗技術(shù)系 遼寧 沈陽 110035;2 上海市現(xiàn)場物證重點實驗室 上海 200083)
隨著信息技術(shù)的不斷發(fā)展、監(jiān)控攝像頭硬件布局的逐步完善及公安圖像云計算技術(shù)的進一步應用,視頻監(jiān)控所獲取到的時空軌跡信息在案件偵破工作中發(fā)揮著越來越重要的作用,如何高效的利用城市監(jiān)控卡口網(wǎng)絡維護城市安全成為公安機關(guān)十分關(guān)注的問題[1]。通過道路攝像頭及交通卡口的視頻內(nèi)容快速識別,追蹤嫌疑車輛可以提高偵查效率,因此如何保證車牌識別的高速性和準確性成為了其中的研究熱點。當前車牌識別系統(tǒng)常用的字符識別方法有模板匹配、支持向量機和神經(jīng)網(wǎng)絡等等,每種方法都有各自的優(yōu)勢及存在的局限性。模板匹配對字符傾斜變形、背景復雜和存在污損情況的車牌識別精度不足。支持向量機對車牌傾斜、大小、顏色甚至照明條件影響具有較強的魯棒性,但經(jīng)常因為支持向量集過大,使得識別時間較長[2]。借助車牌顏色特征的字符識別方法存在對光照亮度的敏感性。神經(jīng)網(wǎng)絡法因其具備良好的學習能力、容錯能力和強大的分類能力,引起了越來越多人的注意,但由于收斂性和收斂速度的矛盾,使其無法滿足實際工作中對于車輛識別系統(tǒng)精準性和實時性的需求。為此,本文將從特征數(shù)據(jù)降維及神經(jīng)網(wǎng)絡參數(shù)調(diào)整等字符識別改進的層面,對BP神經(jīng)網(wǎng)絡車牌識別方法的優(yōu)化進行探討。
本質(zhì)上來說,所有的車牌識別系統(tǒng)都有著一個相同的流程,分為車牌圖像獲取、圖像預處理、車牌定位、車牌字符分割及車牌字符識別5個步驟。車牌識別方法具體流程如圖1所示。
2.1.1 車牌圖像的預處理
車牌圖像的預處理主要包括圖像灰度化、圖像邊緣檢測、圖像二值化及濾波去噪等步驟。
圖1 車牌識別的完整過程
現(xiàn)實生活中,車牌圖像多是通過設(shè)置于停車場和天橋等地的攝像頭和卡口拍攝獲取的,得到的多為彩色圖像,基于識別系統(tǒng)的運行條件,為降低圖像原始數(shù)據(jù)量,減少后續(xù)處理圖像時的計算工作,要求對獲取的原始圖像進行灰度化處理。一般將灰度范圍量化在(0,255)之間,可以使圖像的對比度和分辨率加強,使圖像呈現(xiàn)出來的效果更加清晰[3]。
圖像邊緣是原始圖像中灰度急劇變化的區(qū)域邊界,邊緣檢測通過檢測圖像中不同區(qū)域的邊緣來達成分割圖像的目的,是圖像分析和理解的第一步。常用的邊緣檢測算子有Roberts、Sobel、Canny和LOG算子等。由于Sobel算子對于灰度漸變和噪聲較多圖像的處理效果較為理想,使得圖像中部分噪聲濾除的同時達到削弱背景區(qū)域的目的,可以提供精準度較高的圖像邊緣信息,故本文系統(tǒng)使用Sobel算子進行檢測。
二值化的目的是通過調(diào)整閾值,將車牌字符信息與背景信息劃分開,提取有效信息。隨后利用均值濾波將多余噪聲去除。二值化和降噪這兩步的質(zhì)量將對后期圖像中定位牌照位置和分割處理字符的效果有著直接影響。
2.1.2 車牌定位
車牌定位的主要目標在于將圖像帶有字符的牌照部分,從有干擾背景的圖像部分中有效分離,常用方法為形態(tài)學定位法。對二值化后的圖像進行開運算、閉運算和移除小對象等步驟來突出車牌的連通區(qū)域,根據(jù)牌照的矩形寬度和高度分離出正確的車牌區(qū)域。依據(jù)坐標記錄牌照區(qū)域在原圖中的位置,即可在原圖中得到定位的車牌部分圖像。
2.1.3 字符分割
字符分割是將定位后得到的帶有字符的車牌圖像分割為單字字符圖像的步驟。完成車牌區(qū)域的定位后,經(jīng)過圖像水平和垂直方向的矯正和圖像預處理,將車牌圖像分割為單字字符圖像。此步驟最為常用的方法為垂直投影法。字符垂直方向上投影的局部最小值處,勢必處于牌照單字字符的兩側(cè)或者單字字符之中,此外這個位置也必然滿足車牌的字符書寫格式、字符、尺寸限制等其他制式規(guī)格條件。使用垂直投影法對復雜環(huán)境下的汽車圖像中字符圖像分割有著較為良好的效果。通過上述步驟得到的車牌字符可能大小各異,為使車牌識別的準確率提高,需要再對分割處理后的字符尺寸進行大小歸一整定。
字符識別主要由特征提取和分類器這兩部分組成。由于Gabor濾波提取的特征對顏色變化具有較強的魯棒性,而BP神經(jīng)網(wǎng)絡具有良好的學習機制、快速的分類方式和較強的容錯能力,在面對較為復雜情況的干擾時,有著較高的識別速度和準確性。
2.2.1 Gabor濾波器提取特征
Gabor變換是一種短時傅里葉變換方法,其實質(zhì)是在傅里葉變換中加入一個窗函數(shù),通過窗函數(shù)來實現(xiàn)信號的時頻分析。當使用高斯函數(shù)作為窗函數(shù)時,短時傅里葉變換稱為Gabor變換[4]。將Gabor小波擴展到2維,可得到Gabor 濾波器(圖像實際上就是一種2維信號):
可以分為實部與虛部的形式:
其中
式(1)為Gabor濾波器的公式化定義,可將其分為式(2)和式(3)的實部與虛部形式,其中λ為正弦函數(shù)波長;θ為Gabor核函數(shù)的方向;ψ為相位偏移;σ是高斯函數(shù)的標準差;γ是空間的寬高比。
相較于其他不同方法,Gabor小波變換有其突出優(yōu)勢:①這一方法處理的數(shù)據(jù)規(guī)模小,能夠滿足實時系統(tǒng)研究需求。②小波變換對光照變化不敏感如圖2~3所示,解決了淺層網(wǎng)絡和基于顏色特征識別方法對光線敏感的問題。③對于圖像變形和旋轉(zhuǎn)有一定容忍度,歐氏距離下的識別過程,特征模式與待測特征不必嚴格的對應,有益于系統(tǒng)整體魯棒性的提高。上述特點使得Gabor濾波應用于車牌特征提取有著得天獨厚的優(yōu)勢。
2.2.2 BP網(wǎng)絡模型及其局限
圖2 亮度較高條件下的“京”幅值及相位譜
圖3 亮度較低條件下的“京”幅值及相位譜
BP人工神經(jīng)網(wǎng)絡是一種多層前饋神經(jīng)網(wǎng)絡,由輸入層、隱含層、輸出層3部分組成如圖4所示[5],是基于梯度下降算法的反向傳播神經(jīng)網(wǎng)絡,目標函數(shù)是誤差的平方,在參數(shù)眾多,結(jié)構(gòu)復雜的函數(shù)關(guān)系下,通過精細化誤差來逼近函數(shù)關(guān)系,有簡單、易行、計算量小、并行性強等優(yōu)點,是具有很強的非線性映射能力和柔性的網(wǎng)絡結(jié)構(gòu)。由于BP算法采用非線性規(guī)劃中的最速下降方法[6],按誤差函數(shù)的負梯度方向修改權(quán)值,因而通常存在以下局限:
(1)學習效率低,收斂速度慢。
(2)訓練過程易陷入局部極值,需多次訓練。
(3)網(wǎng)絡層數(shù)、神經(jīng)元個數(shù)的選擇沒有相應的理論指導。
圖4 全連接形式的的神經(jīng)網(wǎng)絡
受限于圖像獲取時拍照設(shè)備的成像質(zhì)量,為了滿足系統(tǒng)實時性和準確性的需求,除了優(yōu)化網(wǎng)絡輸入的數(shù)據(jù)質(zhì)量,在防止過擬合和增強系統(tǒng)穩(wěn)定性的同時,對網(wǎng)絡參數(shù)的優(yōu)化顯得尤為重要。目前對BP神經(jīng)網(wǎng)絡的優(yōu)化主要從兩個層面進行:①加快網(wǎng)絡收斂速度。②防止陷入局部極小值。
車牌識別的不同步驟功能各異,均與最終所得結(jié)果及整個系統(tǒng)的效率有直接關(guān)系。本文主要對字符識別部分進行優(yōu)化,優(yōu)化后的字符識別流程如圖5所示。
圖5 本文字符識別流程圖
為了保證實驗過程的流暢性及實驗結(jié)果的準確性,本實驗在Intel i7-5500 CPU,8G內(nèi)存,64位Microsoft Windows 7操作系統(tǒng)的計算機上運行,使用Matlab 2018a作為實驗的仿真平臺。實驗所用樣本均為生活中的真實車牌圖像。
為簡化實驗條件,訓練樣本為部分經(jīng)過預處理、定位及分割處理所得到的車牌單字字符圖像:10個數(shù)字,24個字母和5個漢字(川、京、蘇、陜和湘)??偣?9類字符,每類字符選取50張PNG格式的灰度字符圖像,共1950張。測試樣本為圖像條件較惡劣情況下的川、京、蘇、陜和湘字開頭的車牌圖像共300 張。
3.2.1 主成分分析法(PCA)對特征降維
由于Gabor變換中的小波基函數(shù)往往不正交,所以大量信息線性相關(guān),Gabor變換處理所得到的信息是冗余的,需要對數(shù)據(jù)進行降維,簡化了提取數(shù)據(jù)的同時也節(jié)省了計算資源,為之后縮短網(wǎng)絡的訓練時間做準備。選用PCA進行降維的優(yōu)點是,它是完全無參數(shù)限制的,避免了因為經(jīng)驗性的參數(shù)設(shè)置而得不到預期效果的問題。
3.2.2 附加動量項
附加動量項是一種加快梯度下降法收斂的優(yōu)化方法,使網(wǎng)絡在修正其權(quán)值時,不僅考慮誤差在梯度上的作用,還考慮在誤差曲面上變化趨勢的影響,減少學習過程中產(chǎn)生的震蕩,加快網(wǎng)絡收斂速度,降低對于誤差曲面局部細節(jié)的敏感性[7]。核心思想為:在梯度下降搜索過程中,若當前時刻梯度下降方向與上一時刻梯度下降的方向相同,則加快搜索速度,反之則減速。
標準BP算法的權(quán)值變化量:
添加動量項之后,基于梯度下降的權(quán)值變化量為:
由式(4),式(5)可以得到改進后的公式:
其中,Δω(t)為第t次迭代的權(quán)值變化量,η是學習率,g(t)為第t次迭代所計算出的負梯度,ω(t)為權(quán)值向量。μ為動量因子,取值范圍在0-1之間,式(7)為其數(shù)學表達式:
3.2.3 自適應學習率
學習率通常會被設(shè)定為一個固定的常數(shù),針對特定問題,通常很難選取到合適的學習率。學習率過大可能出現(xiàn)超調(diào)現(xiàn)象,使得函數(shù)無法收斂,學習率過小,則會對收斂速度造成影響,造成了收斂速度和收斂性的矛盾。為此,本文采用自適應學習率,如式(8)所示:
采用該優(yōu)化后的算法可以獲得較優(yōu)的學習率,確保網(wǎng)絡得到相對較快收斂速度的同時,部分防止出現(xiàn)局部極小值的情況,促進系統(tǒng)的穩(wěn)定性,使得系統(tǒng)識別效率進一步提高。
3.2.4 從激活函數(shù)角度優(yōu)化網(wǎng)絡性能
通常BP神經(jīng)網(wǎng)絡采用Sigmoid函數(shù)作為其神經(jīng)元激活函數(shù),輸出為0到1之間的連續(xù)量,通過S型函數(shù)可以實現(xiàn)從輸入到輸出任意的非線性映射[8]。相對于sigmoid函數(shù)和,使用tanh函數(shù)的輸出區(qū)間是在(-1,1)之間,而且整個函數(shù)是以0為對稱中心的,由于它的輸出均值是0,使得tanh相較于sigmoid函數(shù)權(quán)重更新效率更高,以此提高了網(wǎng)絡的收斂速度,減少迭代次數(shù)。由于采用PCA對數(shù)據(jù)進行降維,降維后數(shù)據(jù)的特點使得tanh函數(shù)比目前較為流行的relu函數(shù)對網(wǎng)絡學習的效率更高。
3.2.5 初始權(quán)重的選擇
與輸入和輸出的道理相同,過大的初始權(quán)重將會在偏置方向上偏置激活函數(shù),使激活函數(shù)飽和,從而降低網(wǎng)絡更好學習權(quán)重的能力,因此應該避免大的初始權(quán)重值。假設(shè)某個節(jié)點的傳入鏈接增多,則會有越多的信號被疊加在一起,因此如果鏈接更多,那么減小權(quán)重取值的范圍就會從一定的層面防止了激活函數(shù)的飽和。本文將遵循數(shù)學家總結(jié)得到的經(jīng)驗規(guī)則:初始權(quán)重在一個節(jié)點傳入鏈接數(shù)量平方根倒數(shù)的大致范圍內(nèi)隨機采樣。
3.2.6 網(wǎng)絡層數(shù)和隱藏層節(jié)點個數(shù)的確定
網(wǎng)絡構(gòu)建過程中,隱藏層和節(jié)點數(shù)量選取并無明確的理論指導。在隱藏層和隱藏層節(jié)點足量的情況下可以逼近任意函數(shù)的非線性關(guān)系,雖然能保證訓練精度但也會需要更多的計算時間。
根據(jù)已有理論證明:只有一個隱含層的3層BP網(wǎng)絡就能夠精確地實現(xiàn)非線性函數(shù)的逼近。為使得計算工作減少,確保運行速度更快,所以本文系統(tǒng)采用3層網(wǎng)絡。
隱藏層節(jié)點數(shù)量對于網(wǎng)絡性能有著嚴重的影響效果。隱藏節(jié)點太少,那么映射容量也會隨之變少,導致訓練精度不足。隱藏節(jié)點個數(shù)太多,雖然網(wǎng)絡學習能力強,但網(wǎng)絡所需學習時間也將增多,同時也是過擬合現(xiàn)象的潛在成因。為了在減少訓練時間的同時,防止過擬合現(xiàn)象的發(fā)生,本文將依據(jù)經(jīng)驗公式(9)確定隱藏層節(jié)點個數(shù)H,其中m為輸入層節(jié)點個數(shù),n為輸出層節(jié)點個數(shù)。最終選定隱藏層節(jié)點為7個。
實驗結(jié)果如表所示。在圖像條件較為惡劣的情況下,優(yōu)化后BP算法的車牌識別率相較于模板匹配法和優(yōu)化前BP算法有了較為顯著的提高,并且由實驗過程可以看出本算法使得系統(tǒng)魯棒性增強的同時,識別速度和識別精度也有了較為顯著的提升。本文算法效果如圖6~7所示。
表 各種識別算法識別率
圖6 車牌號為蘇*MB936絡
圖7 車牌號為**B5178
本文提出的優(yōu)化算法運用Gabor濾波對字符進行特征提取并降維,較好地解決了光照條件變化大及歐氏距離內(nèi)圖像的變形和旋轉(zhuǎn)對于識別系統(tǒng)的影響。通過添加動量項及使用自適應學習率等方法對BP神經(jīng)網(wǎng)絡進行優(yōu)化,較好的解決了系統(tǒng)收斂速度和收斂性的矛盾。經(jīng)過實驗,算法使得系統(tǒng)能在圖像條件較差的情況下對部分車牌文字、字母及數(shù)字進行識別,相對于其他識別算法,從識別精度、識別速度及魯棒性有了較好的提升,說明了該算法的有效性,對于其他未涉及的復雜情況的識別效果有待進行考證。