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