華 榮, 趙環(huán)宇
(淮陰工學(xué)院自動化學(xué)院, 江蘇 淮安 223001)
高精度的車牌識別算法對于實現(xiàn)車輛的智能管理尤為重要.提高車牌識別精度主要是對車牌的定位與分割、字符特征的提取及車牌字符的識別等3個部分進行深入探討.近年來, 關(guān)于車牌識別算法的研究成果頗豐.Tian等[1]利用顏色差分模型更好地確定車牌的位置.Wang等[2]利用空間變換網(wǎng)絡(luò)對傾斜車牌進行調(diào)整,更好地完成字符的切割.劉雄飛等[3]將端點、二叉點和三叉點作為字符的特征進行特征提取.Li等[4]將字符串轉(zhuǎn)變?yōu)樾蛄? 以序列作為字符的特征進行提取, 而無須字符分割.Tabrizi等[5]利用K近鄰算法以及多類支持向量機進行車牌字符的識別, 解決了類似車牌字符易混淆的問題.目前, 基于神經(jīng)網(wǎng)絡(luò)進行車牌字符識別因操作簡單且易于實現(xiàn)而成為研究熱點, 如BP神經(jīng)網(wǎng)絡(luò)[6]及深度學(xué)習(xí)[7-9].反向傳播(back propagation, BP)神經(jīng)網(wǎng)絡(luò)[6]能夠根據(jù)輸入與輸出實現(xiàn)非線性映射且具有學(xué)習(xí)能力, 相較于其他神經(jīng)網(wǎng)絡(luò)算法其結(jié)構(gòu)更簡單,算法更易實現(xiàn).螢火蟲算法無須優(yōu)化函數(shù)可導(dǎo),且能改善神經(jīng)網(wǎng)絡(luò)會陷入局部極小值的缺點[10].本文擬利用圖像的色相飽和度(hue saturation value, HSV)模式進行車牌的定位與分割, 提取字符像素統(tǒng)計特征及局部二值模式(local binary patterns, LBP)特征, 提出一種基于螢火蟲BP神經(jīng)網(wǎng)絡(luò)的車牌字符識別算法.
將原始圖像的灰度模式轉(zhuǎn)化為HSV模式, 設(shè)置HSV范圍對整幅圖像進行二值化處理.通過腐蝕膨脹去除圖像中的小對象,得到大致的車牌區(qū)域.根據(jù)車牌框架的高度和寬度進行精確定位后二值化處理車牌,再根據(jù)車牌的像素特征進行字符切割.汽車牌照序號編碼一般由7位字符組成,對切割出的7位字符進行歸一化(本文歸一化為40×20像素),以便后續(xù)的特征提?。?/p>
1) 漢字LBP特征.圖1給出了原始LBP特征示意圖, 其中A0~A7及A分別表示圖像的9個像素點.對像素點A進行LBP轉(zhuǎn)換[11]:
(1)
(2)
式中f(Ai,A)表示周圍像素點Ai與A對比后的值, 若Ai≥A則Ai取1, 反之取0.其余像素點都可根據(jù)周圍像素點進行LBP轉(zhuǎn)換, 若周圍不存在像素點則LBP值直接取0.
由于像素點A有8個鄰域, LBP取值為0或1,故LBP特征為256維,而維數(shù)過多會導(dǎo)致BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度較緩.針對該問題, 本文對LBP特征進行降維處理.首先將得到的256維LBP特征按位進行循環(huán)移動(即將像素點周圍的0、1值進行按位旋轉(zhuǎn)), 選取循環(huán)移動所得值中的最小值作為最終的LBP值, 將256維LBP特征降為36維LBP特征; 然后將8位二進制中存在01或10跳變且次數(shù)大于2的歸為一類,次數(shù)小于或等于2的每一類都各自為一類, 將36維LBP特征降為28維LBP特征;最后將字符歸一化為40×20像素,并將漢字字符分為32個5×5區(qū)域,對每個小區(qū)域進行LBP特征計算.將28維特征按照LBP值大小分為7個種類,則由每個區(qū)域統(tǒng)計的種類數(shù)目可得7維特征,于是整個漢字字符可得224維特征,即漢字字符可提取224個LBP特征.
2) 字母/數(shù)字像素統(tǒng)計特征.將字母/數(shù)字字符歸一化為40×20像素后二值化字符.字符的粗網(wǎng)格特征和投影特征分別為32, 60個; 將字符分為8個相同區(qū)域, 統(tǒng)計各區(qū)域黑色像素的個數(shù)以及整個字符黑色像素個數(shù),共9個特征; 統(tǒng)計字符水平及豎直中線和對角線黑色像素個數(shù),共4個特征, 最終可得105個像素統(tǒng)計特征.
BP神經(jīng)網(wǎng)絡(luò)易陷入局部極小值且識別精度不高, 故利用螢火蟲算法對BP神經(jīng)網(wǎng)絡(luò)進行改善, 算法過程如下:
1) 設(shè)置螢火蟲種群參數(shù).設(shè)置螢火蟲種群大小N、種群最大迭代次數(shù)以及各類參數(shù)的值.
2) 初始化螢火蟲種群.一個螢火蟲個體包含BP神經(jīng)網(wǎng)絡(luò)的一種權(quán)值與閾值,個體維度
k=ab+b+bc+c,
(3)
式中a為BP神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點數(shù),b為隱含層節(jié)點數(shù),c為輸出節(jié)點數(shù).因為權(quán)值與閾值的范圍為[-1,1], 所以可對種群中的每個個體進行隨機取值形成螢火蟲蟲群.由BP神經(jīng)網(wǎng)絡(luò)的誤差計算螢火蟲個體的絕對發(fā)光強度I0并進行排序, 得到螢火蟲個體間相對吸引度[12]
(4)
3) 判斷螢火蟲個體是否移動.對比螢火蟲個體間的絕對發(fā)光強度,判斷是否進行移動,若須移動,螢火蟲個體即根據(jù)相對吸引度進行位置更新[10]:
xin=xi+βij(xj-xi)+α(d-0.5),
(5)
式中xin表示位置更新后的螢火蟲個體,α為隨機步長, 是[0,1]間的常數(shù);d為[0,1]間的隨機數(shù).最亮的螢火蟲個體進行隨機移動:
xib=xi+α(d-0.5),
(6)
式中xib表示位置更新后最亮的螢火蟲個體.移動后計算新的絕對發(fā)光強度與相對吸引度并進行排序, 將絕對發(fā)光強度最小的個體轉(zhuǎn)變?yōu)橐苿忧敖^對發(fā)光強度最大的個體, 從而使整個群體向最優(yōu)的方向發(fā)展.
4) 判斷是否停止迭代.判斷是否達到種群最大迭代次數(shù), 若達到則終止迭代, 進入下一步驟, 否則返回步驟3).
5) 將最優(yōu)螢火蟲個體代入BP神經(jīng)網(wǎng)絡(luò).對迭代的最終結(jié)果進行排序,取絕對亮度最大的螢火蟲個體,將螢火蟲個體中的權(quán)值與閾值代入BP神經(jīng)網(wǎng)絡(luò)中進行訓(xùn)練.
在操作系統(tǒng)為Windows 10, 8 GB內(nèi)存, Intel(R) Core(TM) i5 8300H CPU@2.30 GHz的計算機上運用Matlab R2014a軟件進行仿真.
本文共收集62個車牌樣本作為仿真對象, 現(xiàn)以車牌“蘇A02389”為例,對其進行如圖2~3所示的車牌定位切割以及車牌區(qū)域的傾斜校正與切割.由于車牌中第二個字符與第三個字符之間存在一個小圓點,而該圓點不應(yīng)算作字符, 故在切割過程中通過判定字符的垂直投影來確定其是否為圓點: 若小于20像素則為圓點, 于是去除該圓點, 不記為字符, 此時繼續(xù)切割下一字符;否則不作圓點,而記為字符.
由于每個車牌樣本都含1個漢字字符與6個字母/數(shù)字字符, 故須提取62個漢字字符的224種LBP特征與372個字母/數(shù)字字符的105種像素統(tǒng)計特征作為螢火蟲BP神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù).BP神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)為識別字符的二進制編碼,需要識別的漢字字符共有31個,取5位二進制編碼即5個輸出;需要識別的字母/數(shù)字字符共有34個,取 6位二進制編碼即6個輸出.將輸入輸出數(shù)據(jù)整合為一個MAT文件,為BP神經(jīng)網(wǎng)絡(luò)所用.部分漢字字符及字母/數(shù)字字符特征提取如表1~2所示.
將實驗樣本分為訓(xùn)練樣本與測試樣本, 以測試樣本識別的精確度作為神經(jīng)網(wǎng)絡(luò)優(yōu)劣的判定準(zhǔn)則,采用螢火蟲BP神經(jīng)網(wǎng)絡(luò)與原始BP神經(jīng)網(wǎng)絡(luò)[3]進行對比識別.螢火蟲BP神經(jīng)網(wǎng)絡(luò)的輸入為105個節(jié)點, 輸出為6個節(jié)點,隱含層的節(jié)點數(shù)設(shè)為25, 采用螢火蟲算法迭代所得較優(yōu)的權(quán)值和閾值作為BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值.BP神經(jīng)網(wǎng)絡(luò)的激活函數(shù)選擇S型對數(shù)函數(shù)與線性函數(shù),為了更好地訓(xùn)練,本文將數(shù)據(jù)歸一化為[0,1].
表1 漢字字符特征提取
表2 字母/數(shù)字字符特征提取
選取300個字符樣本作為訓(xùn)練樣本,72個字符樣本作為測試樣本,采用BP神經(jīng)網(wǎng)絡(luò)與螢火蟲BP神經(jīng)網(wǎng)絡(luò)進行識別的對比結(jié)果如圖4所示.由圖4可知,對于同一組訓(xùn)練樣本與測試樣本, 螢火蟲BP神經(jīng)網(wǎng)絡(luò)中的預(yù)測標(biāo)簽與實際標(biāo)簽重合的個數(shù)比BP神經(jīng)網(wǎng)絡(luò)中的多,螢火蟲BP神經(jīng)網(wǎng)絡(luò)的識別精度更高.
選取不同的訓(xùn)練樣本與測試樣本進行多次仿真, 結(jié)果如表3所示.由表3可知, 螢火蟲BP神經(jīng)網(wǎng)絡(luò)的識別精度比原始BP神經(jīng)網(wǎng)絡(luò)的識別精度更高,驗證了本文算法優(yōu)化的可行性.
表3 原始BP神經(jīng)網(wǎng)絡(luò)與螢火蟲BP神經(jīng)網(wǎng)絡(luò)在多次仿真下的識別精度