陳冬英,黃悅,李凌懿,王杰,高澤暉,舒萍
(福建江夏學(xué)院 電子信息科學(xué)學(xué)院,福建 福州 350108)
車牌識(shí)別系統(tǒng) (license plate recognition system,LPRS)屬于計(jì)算機(jī)領(lǐng)域中視頻圖像類識(shí)別技術(shù)在車輛牌照識(shí)別里的一個(gè)應(yīng)用[1-2]。伴隨國(guó)內(nèi)人均汽車保有量提高,帶來(lái)的交通壓力越來(lái)越重,因此實(shí)現(xiàn)車輛的管理自動(dòng)化將是現(xiàn)在急需解決的一大問(wèn)題。車牌識(shí)別系統(tǒng)作為實(shí)現(xiàn)這一過(guò)程不可缺少的環(huán)節(jié)[3]。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是近些年來(lái)在計(jì)算機(jī)視覺(jué)鄰域引起廣泛重視的技術(shù)方向之一。最早表示卷積神經(jīng)網(wǎng)絡(luò)由Le Cun 于1989 年里提出,隨后被改進(jìn)后用于手寫字符識(shí)別等項(xiàng)目里。當(dāng)下CNN 已經(jīng)成為眾多科學(xué)領(lǐng)域的研究熱點(diǎn)之一[4]。
車牌識(shí)別系統(tǒng)里,完成字符分割后,需字符識(shí)別處理。傳統(tǒng)的字符識(shí)別方法包含支持向量機(jī)SVM 分類,BP 神經(jīng)網(wǎng)絡(luò)、基于字符的模板匹配等方法,隨著近年來(lái)人工神經(jīng)網(wǎng)絡(luò)的流程,在傳統(tǒng)的車牌識(shí)別算法中主要有采用基于BP 的神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn),但存在著魯棒性和精確性不兼容性[5-7]。而CNN 算法具有以下特點(diǎn):只需局部連接,各個(gè)神經(jīng)元不需要與前一個(gè)層中全部神經(jīng)元進(jìn)行連接,只需要與一部分連接即可,所以很大程度的減少參數(shù)計(jì)算;可實(shí)現(xiàn)權(quán)值共享,每組所對(duì)應(yīng)的連接權(quán)重可以進(jìn)行共享,不需要每個(gè)連接有各自的權(quán)重,在很大程度上又進(jìn)一步減少參數(shù)計(jì)算;可實(shí)現(xiàn)下采樣,采用池化(pooling)實(shí)現(xiàn)各個(gè)層的樣本數(shù),讓參數(shù)數(shù)量得到更進(jìn)一步的減少。
針對(duì)圖像識(shí)別而言,卷積神經(jīng)網(wǎng)絡(luò)主要是保留所需要的重要參數(shù),而將不需要的多數(shù)不重要參數(shù)進(jìn)行刪除,從而獲得較為理想的學(xué)習(xí)效果[8-10]。
為提高車牌識(shí)別的精度,降低時(shí)延,提高本設(shè)計(jì)的工程應(yīng)用,提出一種基于改進(jìn)LeNet5-CNN(卷積神經(jīng)網(wǎng)絡(luò))的車牌識(shí)別工程應(yīng)用優(yōu)化研究。首先,使用SE模塊代替?zhèn)鹘y(tǒng)的LeNet5 模型中的第三層及第五層的對(duì)應(yīng)內(nèi)容,在保證計(jì)算量相同的情況下,增加網(wǎng)絡(luò)的泛化及識(shí)別能力;其次,把第2 個(gè)的全連接層用平均池化層來(lái)代替,減少參數(shù)計(jì)算,增大網(wǎng)絡(luò)訓(xùn)練,有效預(yù)防過(guò)擬合;而后,增加正則化歸一化處理;最后利用本設(shè)計(jì)算法,進(jìn)行攝像頭車牌識(shí)別雙重化處理,實(shí)現(xiàn)工程應(yīng)用優(yōu)化。結(jié)果表明本設(shè)計(jì)的方案在精度和收斂時(shí)長(zhǎng),明顯優(yōu)于傳統(tǒng)車牌識(shí)別方案;以相同輸入數(shù)據(jù)集進(jìn)行與近兩年典型文獻(xiàn)橫向?qū)Ρ闰?yàn)證,結(jié)果表明本設(shè)計(jì)的精確度更優(yōu);同時(shí)將該算法應(yīng)用與實(shí)際的算法工程驗(yàn)證對(duì)比,該算法很好的解決第二位字母A 和B 無(wú)法識(shí)別問(wèn)題,提升整體的車牌識(shí)別準(zhǔn)確率和效率,具有很好的工程實(shí)用性。
車牌識(shí)別系統(tǒng)包括三部分: 一是車牌定位模塊;二是字符分割模塊;三是字符識(shí)別模塊[11]。該系統(tǒng)的實(shí)現(xiàn)流程圖如圖1 所示。
圖1 車牌識(shí)別系統(tǒng)流程圖Fig.1 Flow chart of the license plate recognition system
(1)完成車牌定位。首先,使用基于HAAR 特征的級(jí)聯(lián)分類器進(jìn)行車牌檢測(cè);其次,在粗定位的基礎(chǔ)上,通過(guò)上下邊框,左右邊框兩次擬合;再次,通過(guò)多次自適應(yīng)二值化圖像,進(jìn)行連通域分析,確定字符位置,使用隨機(jī)抽樣一致化算法擬合上下邊界實(shí)現(xiàn)精確定位車牌位置;最后使用方向場(chǎng)的矯正算法,對(duì)車牌進(jìn)行調(diào)整。
(2)實(shí)現(xiàn)字符切割。通過(guò)對(duì)精定位圖片進(jìn)行灰度化,而后灰度直方圖均衡化、自適應(yīng)二值化圖像,再檢測(cè)字符輪廓,最后根據(jù)車牌字符特點(diǎn)進(jìn)行字符切割。
(3)字符識(shí)別。使用卷積神經(jīng)網(wǎng)絡(luò),通過(guò)改進(jìn)的卷積神經(jīng)LetNet-5 網(wǎng)絡(luò)預(yù)訓(xùn)練模型繼續(xù)喂入字符數(shù)據(jù)做34 類數(shù)字和大寫字母訓(xùn)練(我國(guó)車牌沒(méi)有大寫字母I 和大寫字母O),最后將訓(xùn)練的模型保存下來(lái),用于后續(xù)進(jìn)行字符預(yù)測(cè)。
一個(gè)典型的用在手寫數(shù)字識(shí)別中的LeNet5 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示[12]。對(duì)應(yīng)的卷積神經(jīng)網(wǎng)絡(luò)含多個(gè)卷積層與池化(pooling)層及全連接層。在進(jìn)行N 個(gè)卷積層之后,把pooling 層疊加,重復(fù)此步驟M 次,最后將K個(gè)的全連接層疊加便可獲得卷積神經(jīng)網(wǎng)絡(luò)。
圖2 傳統(tǒng)LeNet5 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Traditional LeNet5 network structure
圖2 當(dāng)中所表示的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)過(guò)程如下:
(1)確定輸入層寬度和高度,具體指其相應(yīng)輸入圖像的寬度和高度,相對(duì)其深度值等于1。
(2)卷積層處理,完成第一個(gè)卷積層卷積,獲得所需的3 個(gè)特征圖(feature map)。其中,該卷積層含有3個(gè)的卷積核(filter),即3 套的權(quán)重參數(shù)。每一個(gè)卷積核(filter)都能夠?qū)崿F(xiàn)由原始輸入圖像卷積獲得其對(duì)應(yīng)的特征圖,3 個(gè)卷積核(filter)能夠獲得對(duì)應(yīng)的3 個(gè)特征圖。針對(duì)一個(gè)卷積層能夠包含filter 的數(shù)量,可自行設(shè)定,即卷積層filter 的數(shù)量值為1 個(gè)超參數(shù)。表示經(jīng)過(guò)卷積變換后獲得的圖像特征,3 個(gè)filter 需要對(duì)原始圖像進(jìn)行提取出3 組不一樣的特征,因此可以獲得3 個(gè)feature map。
(3)下采樣,完成第1 個(gè)卷積層以后,pooling 層對(duì)3 個(gè)feature map 進(jìn)行下采樣,以此獲得3 個(gè)更小的feature map。而后,在第2 個(gè)卷積層中有5 個(gè)卷積核filter。各個(gè)卷積核filter 把之前下采樣的3 個(gè)feature map 卷積一起,以此獲得1 個(gè)新的feature map。以此類推,5 個(gè)的卷積核對(duì)應(yīng)可獲得5 個(gè)feature map。再然后,完成第2 個(gè)的pooling,進(jìn)而對(duì)5 個(gè)feature map 完成下采樣,同理,獲得5 個(gè)更小的feature map。
(4)全連接層實(shí)現(xiàn),第1 個(gè)全連接層里的每個(gè)神經(jīng)元,與前面一層5 個(gè)feature map 里對(duì)應(yīng)的神經(jīng)元相連接。對(duì)于第2 個(gè)的全連接層即輸出層中每個(gè)神經(jīng)元,就與第1 個(gè)全連接層里每一個(gè)神經(jīng)元進(jìn)行連接,由此獲得整個(gè)網(wǎng)絡(luò)的輸出結(jié)果。
為進(jìn)一步提高精度,對(duì)LeNet5 模型改進(jìn),主要包括三個(gè)部分。
(1)使用SE 模塊代替?zhèn)鹘y(tǒng)的LeNet5 模型中的第三層和第五層的對(duì)應(yīng)內(nèi)容。使用該模塊能夠?qū)鹘y(tǒng)網(wǎng)絡(luò)的深度和寬度變得更深和更寬。此模塊能夠?qū)崿F(xiàn)圖像空間的更深層次優(yōu)化,把所需的重要特征進(jìn)行更加凸顯化處理,在保證計(jì)算量相同的情況下,可以增加網(wǎng)絡(luò)的泛化和識(shí)別能力。
(2)把第2 個(gè)的全連接層用平均池化層來(lái)代替。該設(shè)計(jì)使用損失函數(shù)soft max 來(lái)實(shí)現(xiàn)[12],把很多的標(biāo)量進(jìn)行映射處理,使其結(jié)果為概率分布。在此過(guò)程,減少參數(shù)的計(jì)算,增大網(wǎng)絡(luò)訓(xùn)練,并且有效的預(yù)防過(guò)擬合。
(3)增加正則化歸一化處理。因?yàn)榫矸e網(wǎng)絡(luò)層數(shù)越來(lái)越多,則過(guò)擬合現(xiàn)象越來(lái)越重,結(jié)果的誤差隨之越來(lái)越大。為此在進(jìn)行處理的時(shí)候,每個(gè)層次都要進(jìn)行歸一化處理??梢杂行岣呔W(wǎng)絡(luò)訓(xùn)練速度。在每層最后,再進(jìn)行正則處理,降低特征感,提高泛化性,從而增加網(wǎng)絡(luò)訓(xùn)練速度。
其中,SE 模塊如圖3 所示為SE 模塊。該模塊由壓縮(squeeze)和激勵(lì)(excitation)組成。其中,W,H 分別指特征圖里的寬度和高度,而C 用來(lái)指通道數(shù),W×H×C 指此圖的一個(gè)內(nèi)存大小。
圖3 SE 模塊圖Fig.3 SE module diagram
由圖可知,具體包括的實(shí)現(xiàn)步驟如下:
壓縮。該步驟的核心即為全局平均池化處理,通過(guò)該步驟,所得圖像內(nèi)存為1×1×C。
激勵(lì)。包括2 個(gè)全連接層。這里的SERatio用來(lái)放置縮放參數(shù),該參數(shù)用于計(jì)算量的減少,采用的方法是減少通道數(shù)。在第1 層中包含神經(jīng)元有C×SERatio個(gè),輸入的個(gè)數(shù)是1×1×C,其中輸出的個(gè)數(shù)為1×1×C×SERatio。在第2 層中包含神經(jīng)元有C 個(gè),輸入的個(gè)數(shù)是1×1×C×SERatio,其中輸出的個(gè)數(shù)1×1×C。
scale 操作。由第二步獲得1×1×C 以后,對(duì)其結(jié)果進(jìn)行scale 操作。該操作本質(zhì)即通道權(quán)重進(jìn)行乘積計(jì)算。把原來(lái)W×H×C,通過(guò)SE 模塊實(shí)現(xiàn)每個(gè)通道權(quán)重值與原對(duì)應(yīng)二維矩陣進(jìn)行乘積。
其中,SE 模塊具體的參數(shù)如下:
參數(shù)量=2×C×C×SERatio
計(jì)算量=2×C×C×SERatio
具體的實(shí)現(xiàn)模塊如圖4。
圖4 SE 模塊實(shí)現(xiàn)流程Fig.4 SE module implementation process
根據(jù)鏈?zhǔn)角髮?dǎo)獲得損失函數(shù)對(duì)各個(gè)權(quán)重的偏導(dǎo)數(shù),而后利用梯度下降算法來(lái)實(shí)現(xiàn)權(quán)重得更新。
算法的具體實(shí)現(xiàn)分為以下4 個(gè)步驟:
(1)以前向方式計(jì)算獲得每個(gè)神經(jīng)元對(duì)應(yīng)得輸出值。
(2)通過(guò)反向進(jìn)行計(jì)算各個(gè)神經(jīng)元存在得誤差項(xiàng)即敏感度(sensitivity)。其本質(zhì)為損失函數(shù)的梯度。
(3)完成各個(gè)神經(jīng)元中對(duì)應(yīng)連接權(quán)重的梯度值計(jì)算。(4)采用梯度下降方法完成每個(gè)權(quán)重得更新。
在卷積神經(jīng)網(wǎng)絡(luò)中,因?yàn)樯婕暗骄植窟B接和下采樣等處理,對(duì)第2 步等誤差項(xiàng)都會(huì)有一定影響,但是權(quán)值共享僅僅對(duì)第三步中權(quán)重的梯度里計(jì)算方法產(chǎn)生影響。
(1)假設(shè)一種誤差對(duì)于基b 產(chǎn)生的變換率,代表基的一個(gè)靈敏度,它表示在傳輸方向上所產(chǎn)生的誤差。這里=1,式子當(dāng)中的E 為實(shí)際輸出與測(cè)試輸出的誤差:
(2)在后向傳輸過(guò)程中,到第m 層所要的靈敏度由公式(2)計(jì)算而得:
式中:公式當(dāng)中的W 指的是兩層之間的距離。
要獲得所要的輸出層的靈敏度,由公式(3)計(jì)算:
式中:On表示實(shí)際的輸出,而Pn則代表的是目標(biāo)輸出。
(3)利用δ 來(lái)完成各個(gè)神經(jīng)元的更新,通過(guò)公式(4)和(5)即可獲得:
通過(guò)公式(6)可以完成權(quán)值的更新:
利用設(shè)計(jì)過(guò)程中的特征圖共享特性,最后可以將第j 個(gè)圖像獲得的權(quán)值進(jìn)行加權(quán),可完成進(jìn)一步的更新。
在實(shí)際工程應(yīng)用中發(fā)現(xiàn)存在如下問(wèn)題:
(1)如果貨運(yùn)車牌中第二個(gè)字母是A 和B 時(shí),容易識(shí)別不出,需要人工干預(yù)手動(dòng)輸入。
(2)經(jīng)過(guò)統(tǒng)計(jì)截取一個(gè)月內(nèi)貨車進(jìn)庫(kù)500 車次作為數(shù)據(jù)統(tǒng)計(jì),其中存在13 次無(wú)法識(shí)別的情況(其中第二個(gè)字母無(wú)法識(shí)別有6 個(gè)),第二字母無(wú)法準(zhǔn)確識(shí)別率為98.8%,月識(shí)別準(zhǔn)確率為97.4%。
針對(duì)上述工程應(yīng)用問(wèn)題,為優(yōu)化和解決提升工程實(shí)際效果。通過(guò)對(duì)問(wèn)題進(jìn)行分析,發(fā)現(xiàn)要提升效果,需要一個(gè)更先進(jìn)的算法識(shí)別,提高識(shí)別準(zhǔn)確率。
在智能攝像頭識(shí)別基礎(chǔ)上,增加一個(gè)車牌照片信息再處理服務(wù)器,在服務(wù)器中架設(shè)算法軟件,處理智能攝像頭無(wú)法處理的照片,再將所有數(shù)據(jù)上傳到智能庫(kù)區(qū)數(shù)據(jù)中心,通過(guò)本算法的優(yōu)點(diǎn)彌補(bǔ)智能識(shí)別攝像頭的不足,采用雙重化識(shí)別提高整體識(shí)別準(zhǔn)確率,其工程架構(gòu)方案如圖5 進(jìn)行方案優(yōu)化。
圖5 工程架構(gòu)方案圖Fig.5 Project architecture scheme diagram
進(jìn)行搭建如圖6,圖7 的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行仿真分析。其中,圖6 表示傳統(tǒng)LeNet5-CNN 結(jié)構(gòu),圖7 為改進(jìn)后的LeNet5-CNN 網(wǎng)絡(luò)結(jié)構(gòu)。
圖6 傳統(tǒng)的LeNet5-CNN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 Traditional LeNet5-CNN network structure
圖7 改進(jìn)后的LeNet5-CNN 的網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Improved LeNet5-CNN network structure
根據(jù)圖6、圖7 所搭建的網(wǎng)絡(luò)結(jié)構(gòu),而后進(jìn)行仿真。因每次開(kāi)始訓(xùn)練前,迭代次數(shù)影響很大,為此調(diào)節(jié)迭代次數(shù)對(duì)于網(wǎng)絡(luò)的一個(gè)收斂是一個(gè)至關(guān)重要的因素。同時(shí),在仿真時(shí)的采集的數(shù)據(jù)也是通過(guò)實(shí)驗(yàn)不斷調(diào)整以期得到好的效果。經(jīng)過(guò)仿真,其結(jié)果如圖8 所示。由圖可知進(jìn)行900 次的迭代訓(xùn)練,明顯改進(jìn)后的網(wǎng)絡(luò)精度比傳統(tǒng)的網(wǎng)絡(luò)精度上升更快,因此改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練性能更好。
圖8 改進(jìn)與傳統(tǒng)的網(wǎng)絡(luò)精度對(duì)比Fig.8 Improved and traditional network accuracy comparison
表1 表示傳統(tǒng)與改進(jìn)的精度與時(shí)長(zhǎng)對(duì)比。由表可以明顯看出來(lái),改進(jìn)后的網(wǎng)絡(luò)收斂需要的時(shí)長(zhǎng)比傳統(tǒng)的將近縮短近一半,但其精度明顯比傳統(tǒng)方式來(lái)更高。表明本設(shè)計(jì)的方案,具有更優(yōu)的性能。
表1 傳統(tǒng)與改進(jìn)的精度與時(shí)長(zhǎng)對(duì)比Table 1 Comparison of accuracy and duration between traditional and improved
為進(jìn)一步驗(yàn)證該算法的精確性,進(jìn)行橫向?qū)Ρ?。其中肖秀春等,劉智輝車牌識(shí)別算法所要解決的問(wèn)題與本論文算法研發(fā)目的相一致,具有可比性[13-14]。前者使用的是基于SVM 的車牌識(shí)別,后者提出基于MSER與SWT 的新型車牌檢測(cè)方法。參考文獻(xiàn)數(shù)據(jù)結(jié)果和本設(shè)計(jì)實(shí)驗(yàn)數(shù)據(jù)結(jié)果對(duì)比如表2 所示。根據(jù)所得結(jié)果可直觀的得到,本設(shè)計(jì)較兩個(gè)文獻(xiàn)算法對(duì)比的結(jié)果,在保證魯棒性的前提下,顯著提高精確性,橫向的實(shí)驗(yàn)證明本設(shè)計(jì)的優(yōu)越性。
表2 其他方法對(duì)比結(jié)果Table 2 Comparison results of other methods
由中儲(chǔ)糧湖北分公司導(dǎo)出獲得實(shí)測(cè)一個(gè)月車牌識(shí)別數(shù)據(jù)。將該車庫(kù)中統(tǒng)計(jì)的一個(gè)月內(nèi)的500 車次的車牌作為基礎(chǔ)圖片數(shù)據(jù)導(dǎo)入到本文的算法軟件中。
智能攝像頭拍照后自動(dòng)識(shí)別,將人工觸發(fā)原始照片實(shí)時(shí)抓拍。通過(guò)開(kāi)發(fā)的插件從一體化機(jī),上傳到一個(gè)車牌信息處理服務(wù)器,將智能車牌識(shí)別攝像頭無(wú)法識(shí)別的照片在信息處理服務(wù)器中架設(shè)本文研究的算法程序如圖9 完成二次車牌識(shí)別。與工程應(yīng)用的實(shí)際數(shù)據(jù)統(tǒng)計(jì)對(duì)比結(jié)果如表3。
表3 工程車數(shù)據(jù)集測(cè)試結(jié)果Table 3 Test results of engineering vehicle data set
圖9 照片再處理算法識(shí)別結(jié)果Fig.9 Recognition result of photo reprocessing algorithm
(1)在英文識(shí)別與車牌第二位字母識(shí)別中本算法有效率達(dá)99.25%,原始統(tǒng)計(jì)數(shù)據(jù)中500 個(gè)圖片有6個(gè)無(wú)法有效識(shí)別實(shí)際識(shí)別率為98.80%,本算法可以更優(yōu)的解決第二位字母無(wú)法有效識(shí)別的問(wèn)題。
(2)在中文字識(shí)別中本方案可以達(dá)到99.45%。
(3)在總體測(cè)試過(guò)程中可以達(dá)到98.2%,而實(shí)際工程中500 個(gè)有12 個(gè)無(wú)法識(shí)別準(zhǔn)確率為97.4%,通過(guò)對(duì)同樣的基礎(chǔ)數(shù)據(jù)進(jìn)行處理對(duì)比本算法可以提高0.8 個(gè)百分點(diǎn)。
對(duì)結(jié)果分析發(fā)現(xiàn)該算法很好的解決第二位字母A 和B 無(wú)法識(shí)別的問(wèn)題,提升整體的車牌識(shí)別準(zhǔn)確率和效率。
為提高傳統(tǒng)車牌識(shí)別的精確性與魯棒性的兼容性,降低收斂時(shí)長(zhǎng),優(yōu)化工程應(yīng)用,提出基于改進(jìn)LeNet5-CNN(卷積神經(jīng)網(wǎng)絡(luò))的車牌識(shí)別算法,將其用于工程優(yōu)化。通過(guò)改進(jìn)傳統(tǒng)的LeNet5 網(wǎng)絡(luò)模型,在保證精度的前提下,減少計(jì)算量。通過(guò)對(duì)比,結(jié)果表明本設(shè)計(jì)的算法在精度和收斂時(shí)長(zhǎng),明顯優(yōu)于傳統(tǒng)方案。同時(shí)本設(shè)計(jì)的橫向數(shù)據(jù)對(duì)比結(jié)果,表明該算法性能更優(yōu)。最后在項(xiàng)目工程應(yīng)用中獲得顯著效果,原先架構(gòu)出現(xiàn)的車牌第二位字母無(wú)法很好識(shí)別問(wèn)題被解決。