摘 要: 在車(chē)牌定位上,,針對(duì)當(dāng)前實(shí)際中存在的一些困難,結(jié)合先驗(yàn)知識(shí),提出了一種Hough變換多線檢測(cè)的由粗到精的定位算法。在字符分割中,通過(guò)合理改進(jìn),,使投影法的準(zhǔn)確性進(jìn)一步得到提升。并在大量實(shí)驗(yàn)的基礎(chǔ)上,,將BP神經(jīng)網(wǎng)絡(luò)反復(fù)修正,,使得系統(tǒng)理論識(shí)別率達(dá)到了91.00%,結(jié)果表明此方法是行之有效的,。
??? 關(guān)鍵詞: 先驗(yàn)知識(shí),;Hough變換;車(chē)牌識(shí)別,;多線檢測(cè),;投影法;BP
?
?? 隨著交通管理系統(tǒng)的日趨現(xiàn)代化,車(chē)牌自動(dòng)識(shí)別系統(tǒng)成為智能交通系統(tǒng)的重要組成部分,。通過(guò)對(duì)當(dāng)前車(chē)牌識(shí)別的基本原理和主要方法的研究,,分析比較各種識(shí)別方法的優(yōu)缺點(diǎn),針對(duì)車(chē)牌定位,、字符分割和字符識(shí)別,,本文提出一套實(shí)用可靠的算法。
??? 車(chē)牌定位作為整個(gè)算法步驟的第一步,,定位錯(cuò)誤將直接導(dǎo)致最終識(shí)別錯(cuò)誤,,定位不精確將提升分割難度。實(shí)際中不同車(chē)牌圖像在拍攝距離和角度,、拍攝手法,、光照強(qiáng)弱等方面不盡相同,有時(shí)甚至差異很大,,使得一些傳統(tǒng)方法在圖像群品質(zhì)的差異存在較大跨度下其定位準(zhǔn)確率低下,,缺失普遍性。其中,,利用水平灰度跳變特征的分步驟法即先粗略定位再精確定位是相對(duì)比較穩(wěn)定的一種方法,,但其缺點(diǎn)也很明顯,就是精確定位不夠精,。為了改善這種情況,,本文嘗試性地提出了一種利用Hough變換多線檢測(cè)實(shí)現(xiàn)精確定位的方法, 同時(shí)結(jié)合先驗(yàn)知識(shí),,改進(jìn)了水平搜索方式,,有效地提升了車(chē)牌定位精準(zhǔn)率,使得這一算法具有較強(qiáng)的適應(yīng)性,,并且速度快、魯棒性好,。
在字符分割中,,得益于定位的良好效果,通過(guò)合理地二值化與濾波處理,,提出了一種改進(jìn)的投影法,。該算法克服了車(chē)牌群光照變化跨度大以及邊框、鉚釘?shù)瘸R?jiàn)因素干擾,,使投影法字符分割的準(zhǔn)確率得到了一定的提升,。
車(chē)牌字符識(shí)別是車(chē)牌識(shí)別系統(tǒng)的核心部分,本文構(gòu)造了BP神經(jīng)網(wǎng)絡(luò)進(jìn)行車(chē)牌識(shí)別,。通過(guò)反復(fù)修正各個(gè)參數(shù)使該識(shí)別算法快速準(zhǔn)確,,并且具有良好的穩(wěn)定性,能滿(mǎn)足車(chē)牌實(shí)時(shí)識(shí)別的要求。
1 車(chē)牌定位
1.1 圖像預(yù)處理
(1)尺寸歸一化:車(chē)牌圖像的尺寸對(duì)算法中相關(guān)閾值的選取有較大影響,。本系統(tǒng)中車(chē)牌圖像尺寸均已歸一化到400×300像素,。
? (2)圖像平滑:為了更好地提取水平灰度跳變特征(與算法有關(guān)),有必要先對(duì)圖像進(jìn)行水平平滑處理,。實(shí)驗(yàn)表明,,使用[1/2 1/2]這樣一種掩膜的效果最好。
1.2 算法
(1)特征提取[1]:提取水平灰度跳變特征,。對(duì)經(jīng)過(guò)了水平平滑的灰度圖像,,選取適當(dāng)閾值T,將每一行各像素與其前一像素比較,,若灰度差絕對(duì)值超過(guò)T,,則記為1,否則記為0,,從而完成對(duì)灰度圖像進(jìn)行水平方向灰度跳變特征的提取,。實(shí)驗(yàn)證明,此方法與傳統(tǒng)邊緣檢測(cè)相比,,特征提取效果更顯著,、噪音更小。以水平方向?yàn)閷?duì)象是因?yàn)檐?chē)牌在水平方向較垂直方向灰度跳變特征更為明顯,。
??? (2)水平方向粗定位:對(duì)由(1)生成的二值圖像,,結(jié)合先驗(yàn)知識(shí),即圖像中車(chē)牌位置以下的部分與車(chē)牌以上的部分相比干擾要小很多,,采取由下至上的行搜索方法,。當(dāng)某1行的1個(gè)值個(gè)數(shù)與整行像素之比值大于一定閾值時(shí),便記下行位置x1,,繼續(xù)逐行上移搜索,,當(dāng)比值小于閾值時(shí)記下行位置x2,x1與x2形成坐標(biāo)對(duì),,若x1與x2距離超過(guò)較小的高度(以400×300為例,,車(chē)牌高度應(yīng)大于10,所以選擇10)時(shí),,即確定其為車(chē)牌水平方向切割位置(為了防止少切,,分別對(duì)x1和x2進(jìn)行向下和向上的適當(dāng)延伸);否則,,排除此x1和x2,,并繼續(xù)向上搜索尋找x1、x2坐標(biāo)對(duì),,直到確定x1,、x2為止,,并對(duì)二值圖像切割。為了增強(qiáng)穩(wěn)定性,,可以用雙行比值代替單行比值,,此時(shí)應(yīng)縮小判定閾值。
(3)垂直方向粗定位[2]:設(shè)由(2)切割出來(lái)的圖像為A,,對(duì)A進(jìn)行除噪處理后,,先用1個(gè)與A等高度、寬度與高度相同的矩形框體B對(duì)A從左至右遍歷搜索[3],,若B中1值像素之和與B中全部像素之比大于一定閾值時(shí),,記錄此時(shí)列位置為y1,然后用同樣方式從右之左搜索,,獲得列位置y2,。用y1與y2對(duì)A切割,完成垂直方向的粗定位,。
(4)精確定位:在以往的車(chē)牌識(shí)別方法中,,Hough變換線檢測(cè)一般只用于車(chē)牌矯正,實(shí)際上Hough變換線檢測(cè)更可用來(lái)做車(chē)牌定位,。本文中將利用此對(duì)車(chē)牌做最后的精確定位,。
??? Hough變換提取直線的原理[4]:
??? 對(duì)于圖像空間中的任意一點(diǎn)(x0,y0),,將其變換為參數(shù)空間(θ,,r)中的1條曲線r=x0 cos θ+y0 sinθ,對(duì)位于同一直線l上的n個(gè)點(diǎn)逐一進(jìn)行上述變換,,則在參數(shù)空間(θ,,r)中對(duì)應(yīng)得到n條曲線,由變換公式可知,,這n條曲線必定經(jīng)過(guò) 同一點(diǎn)(θ0,,r0)。找到參數(shù)空間中的這個(gè)點(diǎn)就知道了圖像空間中的對(duì)應(yīng)直線l,,因此,,Hough變換可以用來(lái)在二值圖像中檢測(cè)直線。
??? 設(shè)由算法(3)粗切割得到的圖像為C,,利用Hough變換對(duì)C進(jìn)行多條直線檢測(cè)(至少10條以上)。取直線中端點(diǎn)行坐標(biāo)最小值和最大值分別為車(chē)牌上下邊界精定位值,,取直線左端點(diǎn)列坐標(biāo)平均值或中值為車(chē)牌左邊界精定位值,,取直線右端點(diǎn)列坐標(biāo)平均值或中值為車(chē)牌右邊界精定位值(經(jīng)過(guò)反復(fù)實(shí)驗(yàn)論證,使用平均值時(shí)穩(wěn)定性?xún)?yōu)于使用中值),。由此確定的車(chē)牌定位結(jié)果為最終定位結(jié)果,。
??? 圖1~圖7是選取了3幅不同方位角度車(chē)牌圖像的詳細(xì)定位過(guò)程,。從圖2可以看出,圖像中車(chē)牌位置以下的信息干擾明顯比以上部分的干擾弱小,,這是因?yàn)檐?chē)牌的下方主要是路面背景,,而車(chē)牌的上方卻包含了車(chē)燈、中網(wǎng)等敏感信息,。由下至上的搜索法充分地利用了這一特征,。同時(shí)由于車(chē)牌多處在圖像下半部,從而也減少了搜索時(shí)間,。用多直線檢測(cè),,精確度高,魯棒性好,。
?
2 字符分割
字符分割之前,,有必要對(duì)傾斜的車(chē)牌進(jìn)行校正。用Hough變換進(jìn)行傾斜角檢測(cè)是一種常用的有效途徑,。
由于實(shí)現(xiàn)了車(chē)牌定位,,可以用全局閾值法對(duì)定位結(jié)果圖像重新二值化,以得到更理想的二值圖像,。圖8是用Otsu法[5]得到的二值圖,。
字符切割最常用的方法是投影法。如果二值化后車(chē)牌圖像的字符中粘連和斷裂情況不那么嚴(yán)重,,只需要垂直投影就可以很好地完成字符切割的任務(wù),。但是水平邊框、鉚釘有時(shí)會(huì)把一些“谷”填平,,使得難以精確確定分割點(diǎn),。盡管如此,垂直投影仍然是字符分割中的一個(gè)非常重要的方法,。本文對(duì)垂直投影法加以改進(jìn),,基本上克服了邊框和鉚釘帶來(lái)的影響。
對(duì)于二值化后可能存在的水平邊框干擾如圖8(a)所示(垂直邊框?qū)Υ怪蓖队胺](méi)有影響),,根據(jù)先驗(yàn)知識(shí):不管車(chē)牌整體的大小如何,,單個(gè)字符的寬度不會(huì)超過(guò)整個(gè)圖像寬度的1/8。因而可將寬度超過(guò)1/8或更多一點(diǎn)的白線像素置0,。這樣既去除了大部分干擾又無(wú)字符信息的丟失,。
??? 下面將進(jìn)行校正。選取圖9每1列如圖10所示的最下方的1值像素,,經(jīng)過(guò)Hough變換后如圖11所示的可檢測(cè)到邊緣直線,,此直線傾角(即車(chē)牌傾角θ)根據(jù)公式:
對(duì)圖9進(jìn)行坐標(biāo)轉(zhuǎn)換便實(shí)現(xiàn)了車(chē)牌傾斜校正,如圖12所示,。其中x0,、y0為原坐標(biāo),,x、y為轉(zhuǎn)換后坐標(biāo),。
??? 對(duì)矯正后的車(chē)牌采用垂直投影法進(jìn)行字符分割,,結(jié)果如圖13所示。
?
??? 圖13(a)中有2個(gè)連續(xù)的“0”字符粘連在一起,,未能被分離,,原因是鉚釘剛好處在它們中間的位置。用圖像處理的手段消除鉚釘而又不影響字符信息其難度很大,。對(duì)于這種情況,,針對(duì)性的解決辦法是直接將包含2個(gè)字符的分割板塊對(duì)等中切。1個(gè)字符的寬度不會(huì)超過(guò)整塊車(chē)牌寬度的1/5,,連續(xù)2個(gè)字符的寬度肯定超過(guò)整塊車(chē)牌寬度的1/5,,根據(jù)此先驗(yàn)知識(shí),以寬度大于車(chē)牌1/5且小于車(chē)牌2/5為條件,,可以方便地確定是否存在粘連塊,。圖13(b)與圖13(c)沒(méi)有受到鉚釘干擾,因而能1次性分割成功,。圖14是將粘連板塊對(duì)等中切后的結(jié)果,。
?
3 字符識(shí)別
??? 在分類(lèi)器的選取上,既要求其要有良好的容錯(cuò),,又要求其具有良好的自適應(yīng)的能力,。神經(jīng)網(wǎng)絡(luò)具有與人腦相似的高度并行性、良好的容錯(cuò)性和聯(lián)想記憶功能,、自適應(yīng),、自學(xué)習(xí)能力和容錯(cuò)等特點(diǎn),特別是以改進(jìn)型BP網(wǎng)絡(luò)為代表的神經(jīng)網(wǎng)絡(luò)具有良好的自學(xué)習(xí)能力,、強(qiáng)大的分類(lèi)能力,、容錯(cuò)能力或魯棒性,可以實(shí)現(xiàn)輸入到輸出的非線性映射,。因此本文選擇BP神經(jīng)網(wǎng)絡(luò)作為字符進(jìn)行分類(lèi),、識(shí)別的主要方法。
3.1 字符預(yù)處理
對(duì)切割出來(lái)的車(chē)牌字符很有必要進(jìn)行預(yù)處理,,預(yù)處理包括:
??? (1)大小歸一化
??? 為了便于訓(xùn)練和識(shí)別,,需要對(duì)字符圖像進(jìn)行規(guī)范化處理,使它們變成統(tǒng)一尺寸的圖像,,本文中將字符片段歸一化為24×14大小,。
??? (2)特征提取
??? 即由歸一化得到的字符確定網(wǎng)絡(luò)輸入向量。本文是將24×14網(wǎng)格轉(zhuǎn)換為單一向量輸入,。
3.2 BP神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)
??? 大多數(shù)實(shí)際的神經(jīng)網(wǎng)絡(luò)只需要2~3層神經(jīng)元[6],,本文設(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò)包含2個(gè)隱含層。對(duì)于神經(jīng)網(wǎng)絡(luò)中隱含層節(jié)點(diǎn)數(shù)目的確定,,沒(méi)有一個(gè)固定的規(guī)律可遵循,。本文中對(duì)隱含層內(nèi)節(jié)點(diǎn)數(shù)的確定,是以找到1個(gè)經(jīng)過(guò)樣本訓(xùn)練后,,其網(wǎng)絡(luò)輸出與實(shí)際結(jié)果最近似的網(wǎng)絡(luò),,這是一個(gè)搜索的過(guò)程。參考相關(guān)隱含層確定的準(zhǔn)則[7],,通過(guò)逐個(gè)比試最終確定,,第1個(gè)隱含層節(jié)點(diǎn)數(shù)為15個(gè),第2個(gè)隱含層節(jié)點(diǎn)數(shù)為10個(gè),,學(xué)習(xí)速度為0.01,。
??? 實(shí)驗(yàn)中選取了300幅實(shí)際的車(chē)牌。這些車(chē)牌圖像的大小和拍攝的角度有所不同,,有些車(chē)牌圖像比較清楚,,有些則有缺陷。然后在Matlab7.0環(huán)境下對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,,訓(xùn)練樣本由200個(gè)車(chē)牌的1 400個(gè)字符組成,。剩下的100幅車(chē)牌圖像用于識(shí)別試驗(yàn)。試驗(yàn)結(jié)果:正確識(shí)別91幅,,誤識(shí)6幅,,不能識(shí)別3幅,平均識(shí)別速率0.94 s/幅,。在實(shí)驗(yàn)過(guò)程中數(shù)字識(shí)別率最高,,字母次之,漢字識(shí)別率最低,。
??? 本文系統(tǒng)地研究了一套車(chē)牌識(shí)別算法,,包含了車(chē)牌定位、字符分割,、字符識(shí)別3個(gè)環(huán)節(jié),。其前后銜接緊密,互補(bǔ)性好,,整體準(zhǔn)確性高,,穩(wěn)定性好,具有較強(qiáng)的實(shí)用性,。但仍存在一些問(wèn)題需要進(jìn)一步改進(jìn),,如車(chē)牌定位時(shí),距離伸縮性不夠,,字符傾斜校正存在一些失真,,字符特征提取還需要更有效的方法,。
參考文獻(xiàn)
[1] 劉麗新,劉京剛.行掃描進(jìn)行車(chē)牌上下邊界定位的研究[J].儀器儀表學(xué)報(bào),,2005,,26(8).
[2] 洪健,陳繼榮.基于修正思想的車(chē)牌圖像定位與二值化處理[J].計(jì)算機(jī)工程,,2007,,33(8).
[3] HUANG R, TAWFIK H,, NAGAR A K. Clonal selection for licence plate character recognition[C]. In:Applications and Innovations in Intelligent Systems XV,, London,UK,,2007:309-314.
[4] 王國(guó)宏.Hough變換及其在信息處理中的應(yīng)用[M].北京:兵器工業(yè)出版社,,2005.
[5] 張?jiān)苿偅瑥堥L(zhǎng)水.利用Hough變換和先驗(yàn)知識(shí)的車(chē)牌字符分割算法[J].計(jì)算機(jī)學(xué)報(bào),,2004,,27(1).
[6] HAGAN M T, DEMUTH H B,, BEALE M H.神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,,2002.
[7] 高大文,王鵬.人工神經(jīng)網(wǎng)絡(luò)中隱含層節(jié)點(diǎn)與訓(xùn)練次數(shù)的優(yōu)化[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),,2003,,35(2):207-209.