逄崇玉







摘 要:本文設計了一款基于BP神經(jīng)網(wǎng)絡的機動車車牌識別系統(tǒng),系統(tǒng)能夠?qū)Σ杉降钠囌掌M行自動的車牌識別,并將對應的車牌信息進行自動保存。本文的系統(tǒng)主要包含兩大模塊:車牌圖像預處理模塊和車牌號碼識別模塊。采用本文提供的兩大算法模塊,可以得到精確的車牌號碼信息,經(jīng)過實驗測試,本文設計的算法在車牌號碼識別方面能夠達到95%以上的識別精度,可以用于實際的工作環(huán)境中。
關鍵詞:車牌識別;圖像處理;特征提取;BP神經(jīng)網(wǎng)絡識別
中圖分類號:TP391.4 文獻標識碼:A
1 緒論
1.1 研究背景與意義
為了防止交通事故的發(fā)生以及肇事逃逸的問題,智能交通網(wǎng)絡可以實時地捕捉汽車的車牌號碼,并在汽車出現(xiàn)違反交通規(guī)則的問題時,及時地進行報警。本文考慮到車牌自動識別技術的發(fā)展趨勢。
本文的系統(tǒng)主要包含兩大模塊:車牌圖像預處理模塊和車牌號碼識別模塊。采用本文提供的兩大算法模塊,可以得到精確的車牌號碼信息,經(jīng)過實驗測試,本文設計的算法在車牌號碼識別方面能夠達到95%以上的識別精度,可以用于實際的工作環(huán)境中。
1.2 本文的研究內(nèi)容
本文主要設計一款基于BP神經(jīng)網(wǎng)絡的機動車車牌識別系統(tǒng),系統(tǒng)通過兩大模塊來實現(xiàn)對車牌號碼的識別。這兩大模塊分別為:車牌圖像預處理模塊和車牌號碼識別模塊。兩個模塊分別具有如下所示的特性:
車牌圖像預處理模塊。在車牌圖像的預處理模塊中,主要包含了車牌圖像的灰度處理、濾波處理、二值化處理以及銳化處理等幾個處理流程。
車牌號碼識別模塊。在車牌號碼識別模塊中,主要完成了算法的訓練過程和識別過程。在算法的訓練過程中,會采用系統(tǒng)提供的模板數(shù)據(jù)庫中的車牌模板圖像對BP神經(jīng)網(wǎng)絡算法進行訓練,從而得到BP神經(jīng)網(wǎng)絡的識別算法的各項特性參數(shù)。而在算法的識別過程中,就會采用訓練得到的這些數(shù)據(jù)來對車牌號碼進行自動匹配,并輸出識別到的車牌號碼。
本文的系統(tǒng)通過對上述兩個算法模塊的構建,實現(xiàn)了對車牌號碼的自動識別功能,經(jīng)過實驗測試,本文提供的車牌自動識別算法在識別精度方面能夠達到95%以上的測試精度,能夠應用于實際的生活環(huán)境中。
2 車牌圖像預處理
考慮到本文的系統(tǒng)是一款面向?qū)崟r應用的系統(tǒng),所以在提取圖像特征時,應該先對圖像進行預處理,達到去除冗余數(shù)據(jù),圖像的預處理部分的流程如圖1所示:
右圖中所示的預處理流程中,總共包含了圖像灰度化、圖像濾波、圖像二值化以及圖像銳化等步驟。具有如下所示的特性。
2.1 圖像灰度化
下圖給出了圖像灰度化的處理效果:
2.2 圖像濾波
濾波模塊主要用來對圖像進行去噪聲處理,尤其是在圖像處理領域中,如果噪聲數(shù)據(jù)比較大時,會引入較大的誤差。本文使用的維納濾波算法是圍繞N*N窗口內(nèi)的最小方差來計算的。
經(jīng)過維納濾波處理后的圖像如下所示:
可以看出,經(jīng)過濾波之后的原始灰度圖像在局部范圍變得更加平滑,這個變化可以從像素的分布直方圖中看出。下圖給出了直方圖分布示意圖:
2.3 圖像二值化
計算后的圖像數(shù)據(jù)中,仍然存在一定的冗余,因為在進行圖像識別時,系統(tǒng)只關心圖像的結構信息,而對圖像的色度信息、亮度信息不感興趣。
一般而言,在對圖像進行二值化時,可以有兩種方法:全局閾值法和局部閾值法。其中全局閾值法顧名思義,本文采用bernsen局部閾值法來對圖像進行二值化處理。經(jīng)過二值化處理后的圖像如下所示:
上圖中的圖像經(jīng)過二值化處理后,圖像的紋理變得更加明顯,而紋理之間的凹陷由于低于閾值,所以得到了很好的抑制。
2.4 圖像銳化
本文采用邊緣提取算法來強化圖像的紋理信息,以進一步提升系統(tǒng)的識別精度。邊緣提取算法一般包括了拉普拉斯算子、Sobel算子以及Prewitt算子等,這些算子均可以用來對圖像的邊緣進行提取,實現(xiàn)圖像銳化的功能。本文采用了Sobel算子來作為圖像的邊緣提取算法。下圖給出了Sobel算子對圖像的處理結果:
上圖所示為使用Sobel算子與拉普拉斯算子對圖像進行銳化處理后的效果圖,可以看出Sobel算子處理后的圖像比拉普拉斯算子保留了更多的圖像細節(jié),整體紋理也更為清晰。
2.5 生成車牌號碼模板數(shù)據(jù)庫
車牌號碼模板數(shù)據(jù)庫的生成需要對車牌中的號碼信息進行裁剪,將屬于車牌號碼的圖像裁剪下來后,即可作為車牌號碼的特征模板,下圖給出了車牌特征模板數(shù)據(jù):
上圖中的車牌模板均是由0和1像素值構成的最小車牌圖像。
3 車牌號碼識別算法設計
3.1 BP神經(jīng)網(wǎng)絡算法簡介
本文采用基于BP神經(jīng)網(wǎng)絡的識別算法來對圖像進行識別,BP神經(jīng)網(wǎng)絡算法具有如下所示的流程:
上圖所示,有三層網(wǎng)絡傳遞結構,算法的層數(shù)可以在應用上層進行配置,每層之間會傳遞上一層計算的誤差,通過對誤差的調(diào)整來得到最佳的權值,最終會在輸出一側得到與原始數(shù)據(jù)均方誤差最小的輸出。
在機器學習領域中,一般可以將算法分為監(jiān)督學習和非監(jiān)督學習兩種。圖9展示的BP神經(jīng)網(wǎng)絡計算框架中,采用了最速下降法來在上下層之間傳遞偏差,通過輸入與輸出的比較來對參數(shù)進行循環(huán)優(yōu)化,直到取得的偏差小于閾值。所以BP神經(jīng)網(wǎng)絡算法采用的是迭代計算的算法框架。
3.2 算法訓練過程設計
前文已經(jīng)提及,BP神經(jīng)網(wǎng)絡算法屬于監(jiān)督學習的一種,所以需要對算法的參數(shù)進行訓練,使用訓練后的參數(shù)來對圖像進行識別。BP神經(jīng)網(wǎng)絡的訓練過程如下所示:
從上圖所可以看到,在算法對數(shù)據(jù)集進行處理時,整體會分為兩大模塊:數(shù)據(jù)的正向傳遞模塊與數(shù)據(jù)的反向傳遞模塊。
3.3 算法識別過程設計
算法的識別過程會采用訓練過程得到的參數(shù)來對圖像與模板數(shù)據(jù)庫中的數(shù)據(jù)進行比對,如果比對成功,就得到了該圖像的車牌號碼。基于BP神經(jīng)網(wǎng)絡的車牌識別算法流程如下所示:
從上圖可以看出,算法的主要精力放在了模型的訓練方面,而在算法的識別過程中,算法會通過預處理部分得到圖像的特征模板,然后通過訓練過程得到的模型參數(shù)來將該輸入圖像與數(shù)據(jù)庫中的車牌模板數(shù)據(jù)進行比對,如果比對成功,就代表得到了對應的車牌號碼信息,車牌識別過程也就此結束。