一種利用Hough變換和先驗知識的車牌識別新方法
隨著交通管理系統(tǒng)的日趨現(xiàn)代化,車牌自動識別系統(tǒng)成為智能交通系統(tǒng)的重要組成部分。通過對當(dāng)前車牌識別的基本原理和主要方法的研究,分析比較各種識別方法的優(yōu)缺點,針對車牌定位、字符分割和字符識別,本文提出一套實用可靠的算法。
本文引用地址:http://m.butianyuan.cn/article/196910.htm車牌定位作為整個算法步驟的第一步,定位錯誤將直接導(dǎo)致最終識別錯誤,定位不精確將提升分割難度。實際中不同車牌圖像在拍攝距離和角度、拍攝手法、光照強(qiáng)弱等方面不盡相同,有時甚至差異很大,使得一些傳統(tǒng)方法在圖像群品質(zhì)的差異存在較大跨度下其定位準(zhǔn)確率低下,缺失普遍性。其中,利用水平灰度跳變特征的分步驟法即先粗略定位再精確定位是相對比較穩(wěn)定的一種方法,但其缺點也很明顯,就是精確定位不夠精。為了改善這種情況,本文嘗試性地提出了一種利用Hough變換多線檢測實現(xiàn)精確定位的方法,同時結(jié)合先驗知識,改進(jìn)了水平搜索方式,有效地提升了車牌定位精準(zhǔn)率,使得這一算法具有較強(qiáng)的適應(yīng)性,并且速度快、魯棒性好。
在字符分割中,得益于定位的良好效果,通過合理地二值化與濾波處理,提出了一種改進(jìn)的投影法。該算法克服了車牌群光照變化跨度大以及邊框、鉚釘?shù)瘸R娨蛩馗蓴_,使投影法字符分割的準(zhǔn)確率得到了一定的提升。
車牌字符識別是車牌識別系統(tǒng)的核心部分,本文構(gòu)造了BP神經(jīng)網(wǎng)絡(luò)進(jìn)行車牌識別。通過反復(fù)修正各個參數(shù)使該識別算法快速準(zhǔn)確,并且具有良好的穩(wěn)定性,能滿足車牌實時識別的要求。
1 車牌定位
1.1 圖像預(yù)處理
(1)尺寸歸一化:車牌圖像的尺寸對算法中相關(guān)閾值的選取有較大影響。本系統(tǒng)中車牌圖像尺寸均已歸一化到400×300像素。
(2)圖像平滑:為了更好地提取水平灰度跳變特征(與算法有關(guān)),有必要先對圖像進(jìn)行水平平滑處理。實驗表明,使用[1/2 1/2]這樣一種掩膜的效果最好。
1.2 算法
(1)特征提取[1]:提取水平灰度跳變特征。對經(jīng)過了水平平滑的灰度圖像,選取適當(dāng)閾值T,將每一行各像素與其前一像素比較,若灰度差絕對值超過T,則記為1,否則記為0,從而完成對灰度圖像進(jìn)行水平方向灰度跳變特征的提取。實驗證明,此方法與傳統(tǒng)邊緣檢測相比,特征提取效果更顯著、噪音更小。以水平方向為對象是因為車牌在水平方向較垂直方向灰度跳變特征更為明顯。
(2)水平方向粗定位:對由(1)生成的二值圖像,結(jié)合先驗知識,即圖像中車牌位置以下的部分與車牌以上的部分相比干擾要小很多,采取由下至上的行搜索方法。當(dāng)某1行的1個值個數(shù)與整行像素之比值大于一定閾值時,便記下行位置x1,繼續(xù)逐行上移搜索,當(dāng)比值小于閾值時記下行位置x2,x1與x2形成坐標(biāo)對,若x1與x2距離超過較小的高度(以400×300為例,車牌高度應(yīng)大于10,所以選擇10)時,即確定其為車牌水平方向切割位置(為了防止少切,分別對x1和x2進(jìn)行向下和向上的適當(dāng)延伸);否則,排除此x1和x2,并繼續(xù)向上搜索尋找x1、x2坐標(biāo)對,直到確定x1、x2為止,并對二值圖像切割。為了增強(qiáng)穩(wěn)定性,可以用雙行比值代替單行比值,此時應(yīng)縮小判定閾值。
(3)垂直方向粗定位[2]:設(shè)由(2)切割出來的圖像為A,對A進(jìn)行除噪處理后,先用1個與A等高度、寬度與高度相同的矩形框體B對A從左至右遍歷搜索[3],若B中1值像素之和與B中全部像素之比大于一定閾值時,記錄此時列位置為y1,然后用同樣方式從右之左搜索,獲得列位置y2。用y1與y2對A切割,完成垂直方向的粗定位。
(4)精確定位:在以往的車牌識別方法中,Hough變換線檢測一般只用于車牌矯正,實際上Hough變換線檢測更可用來做車牌定位。本文中將利用此對車牌做最后的精確定位。
Hough變換提取直線的原理[4]:
對于圖像空間中的任意一點(x0,y0),將其變換為參數(shù)空間(θ,r)中的1條曲線r=x0 cos θ+y0 sinθ,對位于同一直線l上的n個點逐一進(jìn)行上述變換,則在參數(shù)空間(θ,r)中對應(yīng)得到n條曲線,由變換公式可知,這n條曲線必定經(jīng)過同一點(θ0,r0)。找到參數(shù)空間中的這個點就知道了圖像空間中的對應(yīng)直線l,因此,Hough變換可以用來在二值圖像中檢測直線。
設(shè)由算法(3)粗切割得到的圖像為C,利用Hough變換對C進(jìn)行多條直線檢測(至少10條以上)。取直線中端點行坐標(biāo)最小值和最大值分別為車牌上下邊界精定位值,取直線左端點列坐標(biāo)平均值或中值為車牌左邊界精定位值,取直線右端點列坐標(biāo)平均值或中值為車牌右邊界精定位值(經(jīng)過反復(fù)實驗論證,使用平均值時穩(wěn)定性優(yōu)于使用中值)。由此確定的車牌定位結(jié)果為最終定位結(jié)果。
圖1~圖7是選取了3幅不同方位角度車牌圖像的詳細(xì)定位過程。從圖2可以看出,圖像中車牌位置以下的信息干擾明顯比以上部分的干擾弱小,這是因為車牌的下方主要是路面背景,而車牌的上方卻包含了車燈、中網(wǎng)等敏感信息。由下至上的搜索法充分地利用了這一特征。同時由于車牌多處在圖像下半部,從而也減少了搜索時間。用多直線檢測,精確度高,魯棒性好。
2 字符分割
字符分割之前,有必要對傾斜的車牌進(jìn)行校正。用Hough變換進(jìn)行傾斜角檢測是一種常用的有效途徑。
由于實現(xiàn)了車牌定位,可以用全局閾值法對定位結(jié)果圖像重新二值化,以得到更理想的二值圖像。圖8是用Otsu法[5]得到的二值圖。
字符切割最常用的方法是投影法。如果二值化后車牌圖像的字符中粘連和斷裂情況不那么嚴(yán)重,只需要垂直投影就可以很好地完成字符切割的任務(wù)。但是水平邊框、鉚釘有時會把一些“谷”填平,使得難以精確確定分割點。盡管如此,垂直投影仍然是字符分割中的一個非常重要的方法。本文對垂直投影法加以改進(jìn),基本上克服了邊框和鉚釘帶來的影響。
對于二值化后可能存在的水平邊框干擾如圖8(a)所示(垂直邊框?qū)Υ怪蓖队胺]有影響),根據(jù)先驗知識:不管車牌整體的大小如何,單個字符的寬度不會超過整個圖像寬度的1/8。因而可將寬度超過1/8或更多一點的白線像素置0。這樣既去除了大部分干擾又無字符信息的丟失。
絕對值編碼器相關(guān)文章:絕對值編碼器原理 聲控?zé)粝嚓P(guān)文章:聲控?zé)粼?/a> 全息投影相關(guān)文章:全息投影原理
評論