MATLAB车牌识别系统
摘要
隨著各省市高速公路的不斷建設,基本上建成了大小規模不等的聯網收費系統,在聯網收費系統建設中,都面臨了一個共同的問題——車輛行駛路徑的識別。路徑識別不僅僅涉及對每一通行車輛如何計算通行費,同時還要考慮將收入的通行費拆分給哪個收費單位的問題,通行費的拆分直接關系到各條高速公路的合法利益,是聯網收費的關鍵。所以說解決多路徑識別問題在完善高速公路聯網收費系統中起著至關重要的作用。
本文介紹了多路徑識別的多種算法,并著重分析了識別算法中的汽車牌照識別,根據車牌圖像特點,對車牌識別算法關鍵環節包括數字圖像預處理,車牌定位,車牌字符識別等三部分一一進行了分析研究。
本文采用直方圖變換、邊緣檢測、二值化等方法對車牌圖像進行了預處理。對車牌定位采用了一種基于灰度圖像求取卷積能量極值區域的車牌定位方法。采用模板匹配法對車牌字符進行識別。并采用了MATLAB來完成算法的設計與實現。研究結果表明車牌識別率較高,適應性較強,實時性比較好。
關鍵詞:多路徑識別;車牌識別;車牌定位;模板匹配;字符識別
ABSTRACT
As expressway construction unceasingly in provinces, numbers of online charging systems was completed bascially. In the construction of online charging system, we are facing a common problem — The identification of vehicle path. Path recognition involves not only how to calculate the tolls to every vehicle, also should consider how to split the incomes to relevant charging unit. Toll split is directly related to the legitimate benifit of every expressway,and is the key to networking toll. So solving the problem of multipath recognition plays an important role in perfecting the expressway networking toll system.
This article introduces the multipath recognition algorithms, And emphatically analysed the recognition algorithm of license plate recognition. Based on image characters of license plate, we have a deeply research on the key technologies of the vehicle license plate recognition system, which include three parts: digital image pre-processing, license plate location, license plate characters recognition.
In the vehicle images pre-procession, the paper use the methods of Histogram Transformation, Edge detection, binarization. For license plate localization using a kind of calculating convolution based on gray image energy extremum region of license plate locating method.The paper use pattern matching which method has been improved to recognize the characters. And using MATLAB to complete the design and implementation of the algorithm. Research results show that the license plate recognition rate is higher, adaptability is stronger, better real-time performance.
Key Words: Multipath recognition;License plate identification; license plate location; template matching; OCR
目 錄
第1章 緒論 1
1.1 研究背景和意義 1
1.2 MATLAB的概述 1
1.3 本文框架結構 4
第2章 國內外研究現狀 5
2.1 國外研究現狀 5
2.2 國內研究現狀 6
第3章 多路徑識別算法的基本理論 8
3.1 多路徑識別方法的分類 8
3.1.1精確識別 8
3.1.2概率識別 9
3.2多路徑識別算法的理論基礎 9
3.2.1 車牌照識別的主要算法 9
3.2.2本文采用的識別算法 12
第4章 基于模板匹配的車牌識別詳細設計 15
4.1圖像采集 15
4.2圖像預處理 15
4.3車牌定位 17
4.4傾斜校正 18
4.5字符分割 19
4.6字符識別 20
4.6.1字符識別流程概述 20
4.6.2本文字符識別流程 21
第5章 車牌識別系統在MATLAB工具下的實現 27
5.1實驗環境 27
5.2平臺搭建 27
5.3識別過程 28
5.4實驗數據及分析 33
第6章 總結與展望 35
6.1 總結 35
6.2 展望 36
致謝 38
參考文獻 39
附錄 40
第1章 緒論
隨著各省市高速公路的不斷建設,基本上建成了大小規模不等的聯網收費系統,在聯網收費系統建設中,都面臨了一個共同的問題——車輛行駛路徑的識別。路徑識別不僅僅涉及對每一通行車輛如何計算通行費,同時還要考慮將收入的通行費拆分給哪個收費單位的問題,通行費的拆分直接關系到各條高速公路的合法利益,是聯網收費的關鍵。所以說解決多路徑識別問題在完善高速公路聯網收費系統中起著至關重要的作用。
1.1 研究背景和意義
隨著高速公路路網規模的不斷擴大,聯網收費區域內的環狀路結構變得更加復雜,僅河北省一片區(京津以南高速公路)聯網收費區域內的已有路、在建路和未建路共有約20個最小封閉環路,如果在每個不同業主的路段設收費站,投資巨大,也會影響高速公路的效率,同時,傳統的收費車道所采用的人工輸入車牌號碼后3位數字的方式時效性差,巨大的工作量直接影響高速公路的通行能力和服務水平。因此,高速公路上兩點之間車輛行駛的多路徑識別問題成為聯網收費及網絡費用清分模式中迫切需要解決的問題。
多路徑識別主要解決高速公路通行費的合理收取以及通行費的準確拆分問題。同時由于高速公路中大型車輛倒卡、逃費現象十分猖獗,通常表現為利用目前機電系統存在的功能不完善漏洞,實現相同貨車套牌倒卡具體表現為滿載長途與空載短途同號牌車輛倒卡,即通過減少里程,逃避超載處罰力度。為高速公路正常收取車輛通行費造成的及大的損失,同時也帶來了不良的社會影響。所以多路徑識別在實現識別車輛的實際行駛路徑從而進行收費拆分,同時也要解決倒卡、逃費問題。綜上所述,多路徑識別就需要解決以下三個問題:
(1)高速公路通行費的合理收取。
(2)通行費的準確拆分。
(3)倒卡、逃費問題。
1.2 MATLAB的概述
MATLAB是用于算法開發、數據可視化、數據分析以及數值計算的高科技計算語言和交互式環境。它具有以下特點:
1.友好的工作平臺和編程環境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業化以及軟件本身的不斷升級,MATLAB的用戶界面也越來越精致,更加接近Windows的標準界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。
2.簡單易用的程序語言
MATLAB一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)后再一起運行。新版本的MATLAB語言是基于最為流行的C++語言基礎上的,因此語法特征與C++語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。使之更利于非計算機專業的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。
3.強大的科學計算數據處理能力
MATLAB是一個包含大量計算算法的集合。其擁有600多個工程中要用到的數學運算函數,可以方便的實現用戶所需的各種計算功能。函數中所使用的算法都是科研和工程計算中的最新研究成果,而前經過了各種優化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++ 。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數集包括從最簡單最基本的函數到諸如矩陣,特征向量、快速傅立葉變換的復雜函數。函數所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數據的統計分析、工程中的優化問題、稀疏矩陣運算、復數的各種運算、三角函數和其他初等數學運算、多維數組操作以及建模動態仿真等。
4.出色的圖像處理功能
MATLAB自產生之日起就具有方便的數據可視化功能,以將向量和矩陣用圖形表現出來,并且可以對圖形進行標注和打印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖。可用于科學計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使它不僅在一般數據可視化軟件都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對于一些其他軟件所沒有的功能(例如圖形的光照處理、色度處理以及四維數據的表現等),MATLAB同樣表現了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數,保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。
5.應用廣泛的模塊集合工具箱
MATLAB對許多專門的領域都開發了功能強大的模塊集和工具箱。一般來說,它們都是由特定領域的專家開發的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數據采集、數據庫接口、概率統計、樣條擬合、優化算法、偏微分方程求解、神經網絡、小波分析、信號處理、圖像處理、系統辨識、控制系統設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理仿真、嵌入式系統開發、定點仿真、DSP與通訊、電力系統仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
6.使用的程序接口和發布平臺
新版本的MATLAB可以利用MATLAB編譯器和C/C++數學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立于MATLAB運行的C和C++代碼。允許用戶編寫可以和MATLAB進行交互的C或C++語言程序。另外,MATLAB網頁服務程序還容許在Web應用中使用自己的MATLAB數學和圖形程序。MATLAB的一個重要特色就是具有一套程序擴展系統和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數的子程序庫,每一個工具箱都是為某一類學科專業和應用而定制的,主要包括信號處理、控制系統、神經網絡、模糊邏輯、小波分析和系統仿真等方面的應用。
7.應用軟件開發(包括用戶界面)
在開發環境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5進行連接。
本文設計的系統采用MATLAB搭建車輛牌照識別系統,具有非常明顯的優勢:
(1)可以直接使用MATLAB的Image Acquisition Toolbox、Image ProcessingToolbox以及Neural Network Toolbox作為骨架來搭建整個系統。
(2) 使用MATLAB的圖形用戶界面技術(GUI)編寫牌照識別系統面板,可以達到與牌照定位切分程序及字符識別程序的無縫連接。
(3) 使用專業工具箱,使得研究人員不必過于關心程序的細節問題,可以將主要的精力放在算法的研究、設計方面,極大地減少了工作量,為算法的研究改進提供了先決條件。
1.3 本文框架結構
本文通過對多路徑識別算法理論進行系統認真的學習和研究,查閱了大量的國內外相關的文獻和資料,主要完成了圍繞汽車牌照識別技術的多路徑識別算法的實現。本文的主要結構如下所示:
第一章,緒論。本章首先介紹了多路徑識別理論研究的背景和意義,然后綜述了陳述了本文的內容安排。
第二章,國內外研究現狀。本章介紹了多路徑識別理論的歷史、發展、國外各國發展現狀及立足我國的研究發展方向。
第三章,多路徑識別基本理論。本章詳細闡述了多路徑識別理論的基本原理。首先講述了多路徑識別理論的構成,然后圍繞多路徑識別算法的精確識別中汽車牌照識別技術的主要算法展開討論,介紹了該技術應用了哪些方面的知識,是如何實現的。
第四章,基于模板匹配的車牌識別詳細設計。本章是本文的重點,包括圖像的采集、圖像預處理、車牌定位、傾斜校正、字符分割、字符識別。
第五章,實驗環境平臺搭建、識別過程、實驗數據及分析。
第六章,總結和展望。本章總結了本設計所完成的工作,并對其中的缺陷做出了說明,指出了所采用算法的不足指出,對下一步的工作做了展望。
第2章 國內外研究現狀
多路徑識別在高速公路聯網收費系統中起到的關鍵作用,引起了大家廣泛的關注和研究,下面我們將對該理論的歷史和發展歷程做出介紹。
2.1 國外研究現狀
國外高速公路實行收費的雖然有一些,但是大部分規模不大,或者是路公司比較單一,他們的研究主要集中在電子不停車收費(ETC,即Electronic Toll Collection)系統上面,或者是更為智能的如德國研究的利用全球定位系統(GPS)的收費系統,但專門就在高速公路路徑識別這方面的研究很少。
日本是一個典型的對高速公路實行收費制度的國家,其在高速公路收費防堵方面進行了不倦的探索。從2001年3月開始,ETC(電子不停車收費)技術在日本整體上投入運營。在實際應用中,ETC技術相對于傳統收費技術來說有兩個優勢:一是更加適應于多個不同主體運營管理多條收費道路的情況;二是對非法行為、人為破壞和逃費行為有著更強的防范性。目前,日本高速公路 80%的出入口都實現了ETC化,而且越來越多的汽車安裝了 ETC系統。據日本政府估計,到2007年,ETC的用戶將達到1500萬輛。日本最常用的ETC收費站采取3個門橋的樣式,這3個門橋分別用于識別車型、識別入口和收費信息傳輸。關于其應用此項技術進行路徑識別的研究還沒有見諸報道,但這樣一來就有望通過大量的ETC用戶,在關鍵路段安裝掃描器,來達到高概率智能識別車輛行駛路徑的效果。
德國一直在高速公路上未建任何收費設施,對車輛收取的通行費包含在燃油費和養路費中。自2003年8月31日起,實施一項新的高速公路收費政策,即所有行駛在德國高速公路上的12噸以上的重型卡車,包括外國入境運輸車輛, 都必須繳納高速公路行駛費。所有收取的費用將用于改善德國交通基礎設施,因為重型卡車將大量增加高速公路的建設和維護成本。德國實行高速公路收費沒有采用傳統的關卡式收費站,他們采用的是衛星定位和移動通訊技術相結合的收費系統。德國將投入的高速公路收費系統命名為“Toll Collect”,是目前世界上不設收費窗口的最先進的道路收費系統之一。它采用衛星輔助探測技術,依靠每輛行駛在高速公路上的車輛上安裝的收音機大小的接收機精確計算出車輛所行駛里程。接收機含有GPS導航信號接收機和一個移動通訊終端,一旦卡車啟動,接收機便會自動記錄行駛里程, 并將計算出的繳費金額數據發送到監控中心。這種技術相當于已經識別出了車輛行駛路徑,但其依賴于美國的 GPS定位系統,受其控制的識別精度影響,目前GPS的導航精度為10m,但不排除美國改變其導航精度的可能,使識別精度受到質疑,另外其車載接收機的價格也是一個問題。
2.2 國內研究現狀
目前許多省市建設的高速公路都具有相當規模,聯網收費己成大勢所趨。由于路網結構的復雜性,有的里面具有環形結構,隨著路網的不斷完善這種環形結構將會越來越多, 而一個路網里面一般有多個路公司在管理,如何確定車輛行駛路徑也就成為一個擺在眼前的問題了。
國內對這方面的專題研究不多,目前以軟課題的形式開展此類研究的有江蘇省蘇北高速公路網和浙江省高速公路網。
江蘇省以長江為界分為蘇北高速公路網和蘇南高速公路網,分別實現聯網收費。江蘇省蘇北高速公路路徑識別技術研究的對象即蘇北高速公路網,蘇北高速公路網的聯網收費范圍包括京滬高速沂淮江段、寧連高速淮連段、京福高速徐州東繞城段、徐宿高速公路、寧宿高速公路、寧通高速公路、廣靖高速公路、連徐高速公路、寧靖鹽高速公路、汾灌高速公路及江陰大橋。在研究中針對當時蘇北具體路網提出了蘇北高速公路聯網收費的多路徑判別方法及相關措施。
浙江省高速公路網對路徑識別問題進行研究的時候,其高速公路路網中存在兩個二義性路徑的路環:一個是杭甫高速公路(沽清—大朱家)、上三高速公路全線、雨臺溫高速公路(寧波東—吳番樞紐)組成的路環;另一個是由滬杭、杭甫、繞城高速公路組成的路環。針對這兩個二義性路徑。浙江省當時采用的方法是以出口/入口隔離法為輔,通行費的拆分則是在對歷史交通量和未來交通量的分析基礎上,與路公司共同商討,取得一致同意的情況下達成用節點位勢法來進行多路徑的路徑識別,它仿照電學里面的節點位勢法,確定用路段里程來表征路段阻抗,從而計算出多路徑情況下各路徑的行駛車輛數,進而依次在各路公司拆分通行費,對車輛的通行費按照最短路徑來征收。其拆分為了適應不斷變化的交通流量,省收費結算中心和路公司定期組織對二義性路徑的交通流量進行統計調查,并通過實際運行一段時間后(三個月~半年),根據實際統計的流量狀況和分布情況、車輛選擇路徑的情況以及與現用的二義性路徑拆分原則的差距情況,對原來的分配方案和比例進行調整。
山東省高速公路通車里程超過3000km,預計2008年將達到4000km,高速公路通車里程為全國第一,聯網收費里程已達到2144km,路網內有多家路公司。最初山東省采用最短距離法進行路徑識別與通行費收入拆分。隨著聯網收費高速公路網規模的不斷擴大,不同利益主體管轄的路段將會逐漸并入網中,路網結構日趨復雜,路徑識別與通行費收入拆分問題日益突出,據估計由多路徑產生的費用占路網總通行費用的3.396,每年達1000萬元左右。為此山東省對山東省高速公路聯網收費系統路徑識別與通行費收入拆分問題進行研究認為:
要從山東省高速公路總體路網規劃出發,綜合考慮設備投資、受益及今后運營成本等多方面因素提出方案;
路徑識別與通行費收入拆分問題主要從兩個方面解決,一是收費車道業務操作層,主要是路徑識別問題;二是收費管理層面,主要是通行費收入拆分問題。
車道收費業務操作要求盡可能精確識別每一車輛的行駛路徑,不損害道路通行者利益,合理收取通行費。在進行路徑識別時,根據具體情況對不同路段采取不同方法。根據當時道路情況,他們建議在對綜合路阻之差在10%(可更多或更少)以上不同路徑進行識別時,應用最短路徑法;當不同路徑的路阻之差在10%之內,且車流量較少,涉及的通行費較低時,可采取收費員入口指導,出口詢問方式;當長度之差在10%之內,且車流量較大,多路徑通行費較高時,也可以考慮在在關鍵點設立標識站,但標識站數量一定要控制, 盡量減少對全路網的影響;另外,在路徑識別精度方面,不同路段也要有所側重。當路網中多路徑路段屬于同一經營主體時,建議不對行駛路徑進行精確識別。
由于目前我國聯網收費還是剛剛開始,對其相關的技術研究的還不是都很深入,路徑識別技術的研究在這種環境下也只是剛剛開始,在現有的“一路一公司”的情況下實行的協商法需要各路公司相互之間有良好的協調關系。高速公路多路徑識別技術作為依附于高速公路聯網收費的一門新技術必然會隨著聯網收費技術的進步而不斷發展完善,特別是在當前提倡的電子不停車收費(ETC)技術不斷成熟完善的情況下,對車輛行駛路徑的精確識別必然會在現實和經濟上都允許的前提下得以實現。
第3章 多路徑識別算法的基本理論
多路徑識別包含多種技術方法,下面主要介紹了多路徑識別方法的主要分類,詳細說明了識別方法涉及到的主要算法。
3.1 多路徑識別方法的分類
目前,在高速公路路徑識別的主要技術方法有:標識站法、車牌照識別法、最短路徑法。從基本思路看,多路徑識別技術可以分為精確識別和概率識別兩類。
3.1.1精確識別
精確識別的原理是識別出路網中每一車輛的實際行駛路徑,避免路網中出現行駛路徑的歧義,從而解決路網中多路徑問題。標識站法、車牌照識別法都屬于精確識別的范疇。
要做到對車輛行駛路徑的精確識別通常由兩種方法:通過土建設施的手段,確保任意車輛從一個收費站(點)到另一收費站(點)間只能有唯一的行駛路徑;通過標識方法采集車輛行駛路徑信息,確認車輛行駛路徑。第二種方法只需在產生歧義的路段設立標識站,獲取車輛行駛的標識信息,就可以根據出口信息、入口信息、標識信息,識別出任意車輛的行駛路徑。
1.標識站識別法
準確識別車輛的實際行駛路徑,可分為停車式和不停車兩種,以下提到的標識站均為“停車式標識站”。在收費車道上安裝非接觸式IC卡讀寫設備,司機通過此路段時,將IC卡(通行卡)在讀寫天線的規定距離內劃過,自動欄桿開啟、車輛通行,并記錄該標識站信息。
標識站的主要缺點是車輛每次經過標識站時必須停車,導致行車速度減慢,降低了高速公路的服務水平,與聯網收費的精神直接相違背,在實施時,輕易不采用。在國家政策方面,交通部交公路發 [1999]9號文件《關于認真做好公路收費站點清理整頓的通知》中規定“對通行車輛一次完成通行費收繳和票證發放工作,不準設立旨在進行內部監督驗票的檢查站”。顯然,國家法律法規的規定對設置停車式標識站做出了限制,設置停車式標識站已不可行。
2.車牌照識別技術
隨著圖像識別技術的發展,也可應用“車牌照識別”技術進行多路徑的識別。即高速公路入、出口以及路網內關鍵點設置車牌照抓拍系統,攝取通過車輛牌照。
車牌照識別方法雖然不影響行車速度,但是應用車牌照抓拍系統進行多路徑的判別,投資較大且系統精度根據圖像識別算法的不同效果也不同一般不能達到100%。
3.1.2概率識別
一般來說,道路使用者路徑選擇行為是基于道路使用效益最大化和運營成本最小化的原則之上的,即:花最少的時間、最少的費用、走最短的路、獲取最大的效益。因此,運行時間最少的路徑對于時間價值導向型的道路使用者來說具有更強的吸引力,用戶一般采用最短路徑法。
最短路徑法取最短路徑為行駛路徑。從起點到終點存在兩條或兩條以上的路徑,將最短路徑作為車輛選擇路徑,此方法最為簡便,投資最少。最短路徑法直接將多路徑車輛通行費分配給最短路徑業主,因此,這種方法的精確度取決于車輛在實際的路徑選擇過程中選擇最短路徑的概率。但是在高速公路中倒卡、逃費問題嚴重,因此這種算法的拆分關系到將通行費拆分給哪個收費單位的問題,影響了一部分單位的收益。
所以在本次設計中主要研究了精確識別中的車牌照識別技術,分析研究圖像處理得算法,用以提高車牌照識別的準確度。
3.2多路徑識別算法的理論基礎
在本文涉及到的多路徑識別算法—車牌照識別技術中,對于一個完整的車輛牌照識別系統而言應該包括圖像采集、圖像預處理、車牌定位、字符切分、字符識別以及圖像編碼、數碼傳輸與更新等步驟,基本可以分為硬件部分和軟件部分,硬件部分主要完成車輛圖像的攝取采集,軟件部分主要完成對采集到的車輛圖像進行車輛牌照定位、車牌字符切分與車牌字符識別等工作,這部分工作最為復雜,最后對識別結果進行數據傳送和存儲,將處理后的識別信息交給管理系統進行管理。整個系統的核心是軟件部分的工作,能否通過牌照對車輛進行有效管理,很大程度上取決于軟件部分識別車牌的準確性。
3.2.1 車牌照識別的主要算法
車牌識別的常用算法法有很多種,如結構模式識別方法、統計模式識別、人工神經網絡識別等等。下面分別介紹各種方法:
1.結構模式識別
結構模式識別可能比較復雜,但都具有相當嚴格的規律性。換句話說,字符圖像含有豐富的結構信息。可以設法提取含有這種信息的結構特征及其組字規律作為識別的依據,這就是結構模式識別。
結構模式識別是早期漢字識別研究的主要方法。其主要出發點是漢字的組成結構.從漢字的構成上講,漢字是由筆劃以及偏旁部首構成的;還可以認為漢字是由更小的結構基元構成的。由這些結構基元及其相互關系完全可以精確地對漢字加以描述,這種方法也叫句法模式識別。識別時,利用上述結構信息以及句法分析地方法進行識別,類似于一個邏輯推理器。
基于這種方法來描述字符的結構在理論上是比較恰當的,其主要優點在于對字體變化的適應性強,區分相似字的能力強;但是,在實際應用中,其所面臨的問題是抗干擾能力差,因為在實際得到的文本圖像中存在各種干擾,比如傾斜、斷裂、粘連、污點等。這些因素直接影響到結構基元的提取。假如基元不能準確得到,后面的識別就成了無源之水。所以,在字符識別領域,純結構模式識別方法己經逐漸衰落。
2.統計模式識別
統計決策論發展較早,理論也比較成熟.其要點是提取待識別模式的一組統計特征,然后按照一定準則所確定的決策函數進行分類判決。字符的統計模式識別是將字符點陣看作一個整體,其所用的特征是從這個整體上經過大量的統計而得到的.統計特征的特點是抗干擾能力強,匹配與分類的算法簡單,易于實現.不足之處在于細分能力較弱,區分相似字的能力差一些。常見的統計模式識別方法有:
(1)投影直方圖法。利用字符圖像在水平及垂直方向的投影作為特征。這種方法是模式識別早期使用的方法。
(2)利用變換特征方法。對圖像進行變換,變換后對圖像從空間域變到頻域,特征的維數大大降低。但是這些方法總的特征就是運算量太大,運算復雜度高,難以滿足實時處理的要求。
(3)傅立葉描述子和Spline曲線近似。這兩種方法都是針對字符圖像輪廓的。傅立葉描述子是利用傅立葉函數模擬封閉的輪廓線,將傅立葉和函數的各個系數作為特征,該方法致命缺點是對于輪廓線不封閉的字符圖像不適用。車牌字符本身所占象素點較少,常常會出現筆劃斷裂輪廓不封閉。Spline曲線是在輪廓上找到曲率大的折點,利用Spline曲線來近似相鄰折點之間的輪廓線,該方法的缺點在于對旋轉現象比較敏感。
(4)特征點方法。它的主要思想是利用字符點陣中一些有代表性的點作為特征來區分不同的字符。這些點包括端點、折點以及交叉點等等,獲得了比較好的效果。其特點是對于內部筆劃粘連的字符識別的適應性較強,直觀性好,但是不易表示為矢量形式,不適合作為粗分類的特征,匹配難度大。
(5)基于微結構特征的方法。字符是由筆劃組成的,筆劃是由一定方向,一定位置關系和長寬比的矩形線段組成的。這些矩形則稱為微結構。利用微結構及微結構之間的關系組成的特征對字符進行識別。其不足之處正好和特征點的方法相反,在內部筆劃粘連時,微結構的提取會遇到困難。
統計模式識別認為圖像可能包含一個或多個物體,并且每個物體屬于若干事先定義的類型、范疇或模式之一。雖然模式識別可以用多種方法實現,但我們只關心用數字圖像處理技術對它的實現。字符統計模式是把字符的點陣看成一個整體,通過做大量的統計得到所需要的特征。最常用的字符統計模式方法是模板匹配的字符識別方法。模板匹配的字符識別方法是通過一定準則確定決策函數,并進行分類判斷的方法。模板匹配的字符識別方法是指度量輸入模式與樣本之間的某種相似性,取最相似者為輸入模式所屬類別。它根據字符的直觀形象抽取特征,用相關匹配原理進行識別。這個方法不需要特征提取這個過程,字符圖像直接作為特征與模板進行比較,相似度最高的模板即定為識別結果。它優點是可以并行處理,簡單易行。缺點是如果進行簡單的模板匹配,只能夠識別同種字體、同樣大小的字符,對于筆劃變粗、變細、傾斜的字符適應能力比較差,特別是模板與字符筆劃的匹配失誤時,會有很大的誤差。
3.人工神經網絡識別
人工神經網絡是模擬人腦思維方式的數學模型。神經網絡是現代生物學研究人腦的組織成果基礎上提出的,用來模擬人類大腦神經網絡的結構和行為,它從微觀結構和功能上對人腦進行抽象和簡化。
人工神經網絡方法的優點和缺點主要表現在如下的幾個方面:
神經網絡的優點:
1,能逼近任意線性函數
2,信息的并行分布式處理和存儲
3,可以多輸入多輸出
4,便于用超大規模的集成電路或光學集成電路系統實現
5,具有自學習的能力;
6,具有聯想存儲功能;
7,具有高速尋找優化解的能力.
雖然人工神經網絡有上述的優點,并且在OCR中也取得了一些成果,但是在車牌字符的識別中仍然存在很大的缺陷:
l,車牌字符象素點陣小,筆劃常常出現斷裂,通過學習規則,誤差系數相差很小,容易出現誤識;
2,神經網絡在進行學習時,每次迭代的梯度值都受樣本中噪聲干擾,影響較大,整個系統收斂速度較慢,不適合實時識別的要求。用于字符識別最常用的神經網絡是BP神經網絡,所謂BP神經網絡是指誤差反向傳播神經網絡,核心方法是梯度下降法,它采用梯度搜索技術,以期使網絡的實際輸值與期望的均方差為最小。BP神經網絡主要有兩種形態:
(l)前向傳播:計算網絡的輸出。
隱層神經元的輸入為所有輸入的加權之和,即
(式2.1)
隱層神經元的輸出井采用S函數激發x,得
(式2.2)
輸出層神經元的輸出為
(式2.3)
誤差性能指標函數為
(式2.4)
(2)反向傳播:采用占學習方法,調整各層間的權值根據梯度下降法,權值學習方法如下:
輸出層即隱層的連接權值W2、學習算法為
(式2.5)
式中 為學習速率。
BP網絡有以下優點:只要能保證有足夠的隱層和隱層節點,就可以逼近任意的非線性映射關系;由于其學習方法屬于全局逼近算法,具有較強的泛化能力;神經網絡有較強的容錯性。
雖然BP神經網絡有以上的優點,但因為其有收斂的速度比較慢;當按梯度下降學習法進行學習的時候很容易陷入局部的最小值;難以確定隱層和隱層節點的數目的缺點,所以在用于字符識別的過程中,還需要做大量的修改。
3.2.2本文采用的識別算法
本文采用的識別算法是基于模板匹配的車牌識別方案,模板匹配法就是將待識別字符與模板字符進行比對,從而確定字符內容。其大體步驟是:首先,制作模板并要求模板的大小必須統一。然后,對待識別字符進行圖像的歸一化操作,最后將字符與模板的每個像素點進行一一的對照,與所有模板比對完成之后,選取其中相似結果最高的,作為最終的識別結果。整個過程最重要的一步是模板的設計,它是后續工作的基礎。模板的建立要針對字符的特征來進行,通常可以取筆畫特征、幾何特征還有圖形的特征。模板匹配方法最大的優點是識別率很高,但是因為要逐點操作,所以效率比較低下。考慮到LRS對識別效果準確率要求比較高,此種方法比較合適,但是怎么樣能提高效率,這還是一個墮待解決的問題。
算法實現總體設計方案中首先是要采集圖片,而硬件設備采集到的圖片要考慮其圖像的存儲格式。目前比較常用的圖像格式有*.BMP、*.JPG、*.GIF、*.PCX等,本課題采集到的圖片是*.JPG的格式。至于軟件系統的選擇,因為軟件系統的編寫大多采用VC或者MATLAB語言,本課題選用了MATLAB語言。
整個牌照識別的設計流程圖如下圖所示:
識別的整個流程就是:首先將采集到的汽車圖像進行灰度化、灰度拉伸和濾波處理,以降低噪點、增加車牌部分的對比度。然后,通過對預處理后的圖像進行小波變換分解提取圖像邊緣,并進行形態學處理,這時,車牌的輪廓已經非常清晰,并且可以和非車牌區域明顯區分開來了,接著,根據車牌的特點進行車牌初步定位,對車牌區域和偽車牌區域進行篩選后,采用投影法進行車牌二次定位,提取出車牌圖像。將提取出的車牌圖像進行二值化處理,根據投影圖的特點查找傾斜的角度,采用坐標變換的方法進行車牌傾斜校正,并利用其垂直投影圖中字符顯示出的峰群的特點進行字符切分。最后完成了整個車牌字符的識別。最后搭建了一個測試平臺,將上述三個部分進行了系統化,對系統的性能進行了測試和分析。
第4章 基于模板匹配的車牌識別詳細設計
本設計處理的流程包括:圖像采集-圖像預處理-車牌定位-傾斜校正-字符分割-字符識別六個部分。
4.1圖像采集
圖像采集部分所采集的圖像一般是采用CCD攝像機攝取的車牌前視圖或后視圖,這些通過由光照檢測裝置控制現場的光照,位置檢測裝置控制攝像機的拍攝角度而得到的。
本設計中所用到圖片是用數碼相機拍的,模型如下圖:
圖4.1 照片模型
4.2圖像預處理
圖像預處理部分需要對采集到的圖像進行圖像加強、平滑濾波等操作,目的是突出車牌的主要特征,以便更好地提取車牌。
圖像預處理一般包括以下步驟:對圖像的灰度進行處理、圖像平滑、圖像增強、圖像二值化、圖像銳化、邊緣檢測。
圖4.2 二值化的圖像
圖4.3圖像邊緣提取的圖像
采集的車輛圖像為彩色圖像,應將彩色圖像轉化為灰度圖像。由于光線不足或者反光等諸多因素,又可能造成車牌對比度較差,對接下來的紋理分析產生影響,所以有必要進行圖像增強。本文對圖像中特亮和特暗的地方進行灰度拉伸,有效增強圖像對比度,提高車牌定位準確率。為了進一步提高定位準確率,我們通過連續的兩幀圖像定出車大概位置,再在車的位置上搜索車牌,這樣不僅提高了準確率,還提高了整個程序的運行效率。同時為了減少圖像中的孤立干擾點,保留車牌字符邊緣,讓車牌字符的圖像灰度水平投影更有的連續性。選用 MXl的模板對灰度拉伸后的圖像進行中值濾波。
4.3車牌定位
從人眼視覺的角度出發,并根據車牌的字符目標區域的特點,在灰度圖像的基礎上提取相應的特征。車牌定位是車牌識別系統中的關鍵和難點,實際圖像中的噪聲、復雜背景等干擾都會使定位十分困難。車牌牌照的提取是一個尋找最符合牌照特征區域的過程。從本質上講,就是一個在參量空間尋找最優定位參量的問題。
自然環境下,汽車圖像背景復雜、光照不均勻,如何在自然背景中準確地確定牌照區域是整個識別過程的關鍵。首先對采集到的視頻圖像進行大范圍相關搜索,找到符合汽車牌照特征的若干區域作為候選區,然后對這些侯選區域做進一步分析、評判,最后選定一個最佳的區域作為牌照區域,并將其從圖象中分割出來。
流程圖如下:
圖4.4 車牌定位流程圖
本文采用車牌定位方法是一種基于灰度圖像,求取圖像能量極值區域的車牌定位方法,刻意避開二值化中閩值的確定問題。該方法充分利用車牌紋理復雜、對比度鮮明、外型規則等特征構造車輛圖像的對比度能量圖,然后通過選取極值區域來定位車牌。基于求取卷積能量極值區域進行車牌定位的實驗步驟基本如下:首先,為了提高定位準確率,我們通過連續的兩幀圖像定出車輛大概位置,再在車輛的位置上搜索車牌,這樣不僅提高了準確率,還提高了整個程序的運行效率。同時減少圖像中的孤立干擾點,保留車牌字符邊緣,讓車牌字符圖像的灰度水平投影更有連續性。其次,由于車牌區域與車身相比,車牌區域的對比度特別大,灰度變化具有一定頻度,所以我們先對圖像的每一行相鄰像素做求極值處理,再求相鄰點間的差,從而減少由車身帶來的誤差。求極值處理公式如下:
求相鄰點間的差公式如下:
(式4.2)
最后,由于車牌區域的變化頻度較大,在一般情況下,車牌區域的卷積能量都是最大的,特殊情況下也是第二大。又由實驗可知,對圖像求卷積能量時,卷積長度越接近車牌的寬度,定位就越準確。再由先驗知識可知車牌的寬度與車寬成一定的比例,所以車牌寬度可由車寬求出,因此對每幀圖像求卷積能量時,卷積長度采用自適應的方法,進一步提高車牌定位的準確率。
卷積能量公式如下:
其中h(n)為長度為L的卷積核。
圖4.5 定位到的車牌圖片
4.4傾斜校正
由于CCD攝像機采集車牌圖像時,有時候會出現采集到的車牌圖像里牌照區域是傾斜的。傾斜的牌照不利于后續的字符分割與識別,嚴重的還可能引起牌照內容的丟失,直接導致字符識別的失敗。因此,在進行字符分割與識別之前,有必要對牌照進行傾斜校正。
目前,車牌的傾斜校正方法主要有:通過垂直和水平邊緣檢測相結合的方法;進行水平邊緣檢測,并進行垂直投影的方法;Hough變換法;求得車牌上字符連通域的中心點,然后擬成直線的方法;求取車牌字符區域的極小特征點和極大特征點的方法;.通過模板匹配的方法。其中Hough變換的方法比較常用。Hough變換運用兩個坐標之間的變換來進行檢測。平面內的有規則曲線和直線,將原始圖像中直線和曲線上的點,都集中到變換空間上,形成峰點。這樣就把原始圖像中的曲線或直線的檢測問題,轉化為尋找變換空間的峰值問題。Hough變換只能對己知形狀參數的曲線方程如二次曲線、直線來進行描述,不能對未知曲線來進行檢測,這是此變換的缺點。但是變換的最大優點是抗干擾性強。只要檢測出車牌的兩條平行直線即可,符合變換的要求。
圖4.6 校正前的圖片
圖4.7 校正后的圖片
4.5字符分割
字符分割即是對獲得的牌照分離出單個字符(包括漢字、字母和數字等),以便于字符識別。
字符分割的算法有很多,通常是根據處理對象的不同有許多相應的方法。為了實現更好的分割,有關的總體知識和先驗信息是很有用的,根據包含在圖像中的信息,可以制定相應的判決準則和控制策略,使其完成自動分割。
傳統的字符分割算法可以歸納為以下三類:直接分割法、基于識別基礎上的分割法和自適應分割線聚類法。直接分割法簡單,但它的局限是分割點的確定需要較高的準確性;基于識別結果的分割是把識別結果和分割結合起來,但是需要高準確的識別結果。它根據分割和識別結果的耦合程度又有不同的劃分;自適應分割線聚類法是一個分類器,用它來判斷圖像的每一列是否是分割線,它是根據訓練樣本來進行自適應的神經網絡,但是對于粘連的字符很難訓練。
由于本文處理的對象是相對類型較少,變化較小的車牌,因此采用直接分割法。具體就是采用投影法先將字符粗分割,然后根據單個字符的寬度進行分類,將粘連字符再分割,斷裂字符合并。
完成牌照區域的定位后,再將牌照區域分割成單個字符,然后進行識別。由于字符在垂直方向上的投影必然在字符間或字符內的間隙處取得局部最小值的附近,并且這個位置應滿足牌照的字符書寫格式、字符、尺寸限制和一些其他條件。利用投影法對復雜環境下的汽車圖像中的字符分割有較好的效果。分割步驟:
圖4.8 車牌分割步驟
圖4.9 分割后的車牌
4.6字符識別
本文的字符識別采用的是基于模板匹配的識別方法。模板匹配是最為直觀的一種方法,就如字面所理解的,選用一些樣本作為模板,當進行判斷時,首先計算待測數據與模板之間的距離,這個距離通常是兩個數據向量差的一個范數,例如它們之間的直線距離等。找出距離最短的那個模板這個模板的輸出值就可以作為該數據對應的輸出值。
4.6.1字符識別流程概述
當一幅車牌的原始圖像經過車牌定位和字符分割處理后,得到這個車牌的字符圖像,首先對字符圖像做歸一化處理,即把字符圖像歸一化成20 ×32的標準大小的圖像,然后對這幅歸一化的圖像調用設計好的模板匹配程序進行識別,字符識別流程如下:
1、識別車牌的第1個字符(若分割正確的話應該是漢字):
(1)調用漢字模板庫進行匹配識別,若識別結果為漢字,則最終結果為一漢字,識別結束;若識別結果為空字符,即表示不是漢字,則進行第二步。
(2)調用字母模板庫進行識別,若為字母,則最終結果為一個字母,識別結束;若識別結果為空字符,則表示不是字母,進行第三步。
(3)調用數字模板庫進行識別,若為數字,則最終結果為一數字,識別結束;若為空字符,則最終結果為空字符,識別結束。
2、識別車牌的第2個字符(若分割正確的話應該是字母):
(1)調用字母模板庫進行識別,若為字母,則最終結果為一個字母,識別結束;若識別結果為空字符,則表示不是字母,進行第二步。
(2)調用數字模板進行識別,若為數字,則最終結果為一數字,識別結束;若為空字符,則表示不是數字,進行第三步。
(3)調用漢字模板進行識別,若識別結果為漢字,則最終結果為一漢字,識別結束;若識別結果為空字符,則最終識別結果為空字符,識別結束。
3、識別車牌的第3、4個字符(若分割正確的話應該是字母或數字):
(1)調用字母模板庫進行識別,若為字母,則最終結果為一個字母,識別結束;若識別結果為空字符,則表示不是字母,進行第二步。
(2)調用數字模板進行識別,若為數字,則最終結果為一數字,識別結束;若為空字符,則表示不是數字,進行第三步。
(3)調用漢字模板進行識別,若識別結果為漢字,則最終結果為一漢字,識別結束;若識別結果為空字符,則最終識別結果為空字符,識別結束。
4、識別車牌的第5、6、7個字符(若分割結果正確的話應該是數字):調用數字模板進行識別,若為數字,則最終結果為一個數字,識別結束;若為空字符,則最終識別結果為空字符,識別結束。
對于車牌圖像的第1、2和3個字符,進行完全的識別,主要是因為考慮到字符的分割不一定正確,即不能保證分割后的第1個車牌字符為漢字,第2個車牌字符為字母,而第3、4個車牌字符為字母或數字。對這三個字符做這樣的完全識別后,可以得到一些非常有用的信息,這些信息可以返回到字符分割模塊,可以指導字符分割調整字符分割的策略。例如,若識別出的車牌圖像的第2個字符是漢字,則說明字符模塊做字符分割的時候在車牌圖像的左邊提取了一個多余的字符,因此字符分割模塊要去掉這個多余的字符,從漢字字符起,依次提取出7個字符來。
圖4.10 車牌中的字符 圖4.11 模板字符
4.6.2本文字符識別流程
模板匹配是車牌字符識別最早使用的方法之一,本文也主要是研究基于模板匹配的系統,所以本章重點研究這種算法。具體模板匹配的字符識別步驟如下:
一般使用的模板匹配法是直接使用歸一化后的圖像作為待識別字符圖像,而歸一化后的圖像由于預處理的原因,很有可能筆劃粗細不均,并且存在著部分噪音點,不易于處理,所以我們首先采用細化的方法,將原來的待識別字符圖像中的字符進行細化處理,然后再進行模板匹配的粗比對,在通過粗比對將字符圖像分組后,再根據車牌字符的細節特征對字符進行細比對,最終得到識別結果,從而實現了我們識別字符的目的算法流程如下圖所示:
首先進行第一步,細化處理。細化,又稱為骨架化,即在不影響原圖的拓撲連接關系的條件下,將寬度大于一個像素的圖形線條轉變為只有一個像素寬度的處理過程,也就是抽取圖像的骨架,由于細化能很好地展現圖像的形狀,并且,細化還有一個優點就是可以減少所需用到的內存空間,這樣就可以在進行圖像處理時簡化一些操作,加快處理速度。因此,細化在圖像處理中占有著重要的地位,是圖像分析、信息壓縮、特征抽取及模式識別常用的技術。
由于細化處理在圖像處理中的重要性,所以細化算法一直是人們比較關注的問題,人們也提出了許多的細化算法,這些算法的處理方法和結果也都不一樣,但是不論其目的,用途怎樣,細化過程都不能改變原圖的拓撲連續性,也不能有顯著的端點縮短和叉點分離的畸變情況。此外,在許多情況中,細化的過程占整個圖像處理一半以上的時間,因而提高細化算法的速度也是非常有意義的。
我們采用的是一種簡單而且效果很好的算法,能夠實現抽取骨架的功能。所謂骨架,可以理解為圖像的中軸,例如一個長方形的骨架就是它的長方向上的中軸線;正方形的骨架就是它的中心點;圓的骨架就是它的圓心;直線的骨架就是它自身;孤立點的骨架也是自身。那么,如果去除那些骨架以外的點呢?顯然,是要根據它的八個相鄰點的情況來判斷,以下就是幾個例子,如圖所示:
圖4.12 細化示意圖
上圖中的中心點就是我們所要處理的像素點,下面就來討論像素點可不可以刪除,圖(1)的像素點不可以刪除,因為它是個內部點,我們要求的是骨架,如果連內部點也刪除了,那么骨架就會被掏空的,所以不能刪除,圖(2)中的像素點也不可以刪除,因為它也是內部點,和圖(1)一樣,圖(3)中的像素點可以刪除,因為該點不是骨架,圖(4)也不能刪除,因為刪除后,原來相連的部分就斷開了,圖(5)的可以刪除,因為不是骨架,圖(6)不能刪除,因為它是直線的端點,如果這樣的點刪除了,那么整個直線也被刪了,圖(7)也不能刪,因為它是孤立點,由此可以看出,有這樣幾條判斷依據:
1、內部點不能刪除;
2、孤立點不能刪除;
3、直線端點不能刪除;
4、如果P是邊界點,去掉P后,如果連通分量不增加,則P可以刪除。
根據這些判斷依據,我們可以制作一張表格,從0到255共有256個元素,每個元素要么是0,要么是1。我們根據被處理點的八個相鄰點的情況來查表,若表中的元素是1,則表示該點應該刪除,否則保留。具體的查表方法如下:設白點為1,黑點為0;自左上方開始,左上方點對應一個8位數的第一位,正上方點對應第二位,右上方點對應第三位,左鄰點對應第四位,右鄰點對應第五位,左下方點對應第六位,正下方點對應第七位,右下方點對應第八位,這樣就構成了一個8位二進制數。
我們判斷用的表如下:
Staticinttable [256]={ 0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,
1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,10,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0};通過這張判斷表,我們就可以很簡單的判斷該點是否應該刪除,整個算法也就非常簡單了。我們首先水平方向掃描第一行最左邊的點,然后是最右邊的點,接著掃描第二行最左邊的點,最右邊的點,直到最后一行最左邊的點,最右邊的點;然后垂直方向掃描第二列最上邊的點(因為第一列最上邊的點已經被刪除),第二列最下邊的點,直到倒數第二列最上邊的點,最下邊的點。這樣,剛好剝掉了一圈,這也正是我們細化所要做的事。通過對整個圖像進行一遍掃描,即完成了細化操作。
接下來進行第二步,模板匹配的粗比對。所謂的粗比對,就是按照車牌字符所特有的特征,如車牌上漢字后面的第一位應該是英文字母,第二位和第三位有可能是英文字母也有可能是數字,最后三位應該都是數字,正是按照這些特征,我們將待識別字符分成三組,第一組是英文字母,第二組是數字,第三組是數字或者字母,這樣,我們就把每一組分別和不同的字符標準模板進行模式匹配,在這一次匹配中我們不需要做到非常的精確,只需要匹配度達到一個基本的匹配閾值λ0以上就可以了,然后我們按照字符的匹配度將它分為幾組,分組情況如下:G,Q,D,O,0一組,Z,2一組等,具體的識別流程圖如下圖所示:
這樣,就完成了對字符模板匹配的粗比對,但是,其中也有例外,例如‘1’‘W’等字符,因為沒有與它們相似的字符,所以通過粗比對就可以確定,而其它字符還要經過細比對才能得出識別結果。
最后一步,就是對待識別圖像與標準模板進行細節比對,也就是我們所說的字符細比對。
字符的細比對,是在字符經過了粗比對的基礎上,待識別字符與標準模板中的每一個字符都有一個匹配值,這時,就要根據它所處的位置和它與標準模板的匹配情況,選擇匹配值最大的字符模板,認為待識別字符就是該模板所代表的字符。例如某個待識別字符如圖5.8(圖像為標準化的40×20的圖像),它與‘0’,‘Q’,‘D’,‘G’標準字符模板的相似度均大于我們預定的閾值λ0,并且根據它所處的位置來進行判斷,假設它處在最后一個位置,那么它就應該是數字,所以不用進行細比對,我們就可以確定它是數字‘0’,但是如果它處在第三個位置,它就有可能是數字也有可能是字母,這是我們就無法簡單的確定它是‘0’,‘Q’,‘D’還是‘G’,我們就需要對它進行細比對。
圖4.14 待識別的圖像 圖4.15 OQDG標準模板
首先,將待識別圖像與字母‘Q’標準模板來進行細比對,我們發現數字‘0’與字母‘Q’最大的區別在于圖像的右下方,如圖5.12所示(為了方便顯示,我們將圖片放大,并且取反色以便觀看),所以我們只需要選取待識別圖像的右下角區域,再與字母‘Q’的標準模板的相同區域進行比較,這時,由于是細節比對,所以我們就需要提高判斷閾值,當然,根據字母之間相似度,有些閾值要大一些,有些閾值就要小一些,例如這種比較,我們根據經驗就設定閾值為0.6,通過比較,發現兩者的相似度遠遠低于0.6,所以,我們就認為這個字符不可能是‘Q’。
圖4.16 字符Q與O的區別
接下來,我們將待識別圖像與字母‘D’標準模板來進行細比對,通過對比,我們注意到數字‘0’與字母‘D’最大的區別是圖像的上1/3部,如圖5.13所示,所以這次我們需要選取待識別圖像的上1/3部,拿它來與字母‘D’的標準模板的上1/3部比較,這次,我們選定閾值為0.7,通過比較,發現兩者的相似度遠遠低于0.7,所以,我們同樣也不認為是字母‘D’。
圖4.17 字符D與O的區別
然后,我們再把待識別圖像與字母‘G’的標準模板來比對,通過圖5.14我們可以看出,數字‘0’和字母‘G’的最大區別在于圖像的右上部,所以我們只需要比較待識別字符圖像的右上部分即可。這次比較,我們選用的閾值是0.8,通過比較,發現兩者的相似度為0.5左右,所以我們也不認識該字符圖像是‘G’。
圖4.18 字符O與G的區別
經過了三次細比對,我們發現待識別字符并不是‘Q’,‘D’和‘G’,所以我們就認為它是‘0’或者‘O’(對于這兩種字符,我們認為通過字符匹配是無法區分的,我們只能通過他們所處的位置來確定,如果處在第二個字符位置,那么我們就認為它是‘O’,否則我們認為它是‘0’),至此,我們就完成了對這個字符的識別,識別結果也就出來了。
同樣,采用相同的方法,我們也一樣可以識別出其他的字符。這樣,我們就通過改進的模板匹配方法達到了我們識別字符的最終目的。改進的方法采用了細化的方法提取了字符的骨架,減少了冗余信息,使其在復雜的應用環境中仍然能夠準確的識別出字符,通過粗比對和細比對兩次匹配方法,提高了識別的魯棒性和準確性,并且是運算速度得到了提高。
第5章 車牌識別系統在MATLAB工具下的實現
本章是對算法的實現,介紹了實驗環境平臺搭建、識別過程、實驗數據及分析。
5.1實驗環境
硬件環境:
數碼相機一臺(用于采集圖片),PC機一臺。
軟件環境:
操作系統:Windows XP
圖像格式:jpg格式,24位真彩色
編程環境:MATLAB 2008。
5.2平臺搭建
根據上文研究的算法,利用MATLAB的M語言分別實現了車牌識別系統的定位、字符切分和字符識別功能模塊,利用MATLAB的GUI工具箱開發了測試系統,驗證上面設計的算法在車牌識別系統中的應用效果,利用MATLAB的圖形用戶開發環境(GUIDE)設計了本測試平臺,流程如下:
圖5.1車牌識別系統流程圖
啟動測試界面時,將會先導入識別參數設置值,當改變參數設置后,更新識別參數設置值,使之與當前設置一致。
輸入的圖像信息和識別參數設置值以參數的形式傳送到run.m文件中,在該文件中,完成整個車牌的識別。該模塊調用二個子模塊:車牌定位模塊location.m,車牌字符切分模塊segmentation.m和車牌字符識別模塊ocr.m.
在每個子模塊中,先用load 'global_ var.mat'語句導入最新的識別參數設置值。識別時首先將圖像image以參數的形式輸入到location.m中,利用小波變換和投影法對圖像進行定位,得到車牌部分的圖像bw,同時根據車牌的顏色特征判斷出車牌的底色grounding。然后將車牌部分的l糾像bw輸入到segmentation.m中,對其用改進的Otsu算法進行二值化,然后根據其投影進行傾斜校正和字符的切分,得到了切分后的七個字符的圖像seg。接著導入net.mat文件,該文件中存有對創建的匹配字符模板進行BP網絡訓練得到的網絡對象net。將切分好的字符圖像seg和訓練好的網絡對象net輸入到ocr.m中,調用函數sim模擬一個網絡,根據訓練好的網絡net及輸入向量seg進行模擬網絡輸出,最終得到識別的結果。
最后,將識別結果輸出到文本框中,顯示在界面上。即完成了車牌識別的整個過程。
5.3識別過程
通過對原始待識別圖像的一系列預處理,然后進行圖像矯正,將圖像分割成單個字符圖像,識別的大概過程如下面各圖所示:
:
圖5.2 原始彩色圖片
圖5.3 原始黑白圖像
圖5.4 背景圖像
圖5.5 增強黑白圖像
圖5.6 圖像二值化
圖5.7 圖像彩色標記
圖5.8 車牌灰度子圖、二值子圖
圖5.9 水平投影及車牌二值子圖
圖5.10 垂直投影及車牌字符高度
最終識別結果為:
圖5.11 識別結果
5.4實驗數據及分析
我們利用數碼相機進行了車牌圖像的采集工作,以用來驗證我們的程序,具體數據如表5.1:
表5.1 結果分析
| 識別結果 | 識別正確 | 拒絕識別 | 
| 個數 | 85 | 15 | 
| 百分比 | 85% | 15% | 
圖5.12拒絕識別的圖片
在圖5.12中,由于提取車牌邊緣的過程中,提取到的矩形邊框不滿足長寬比大于2且小于4,所以程序自動跳出,無法進行下一步車牌定位,不能識別出車牌。從上面的表格可以計算出,整個車牌系統的識別率為85%。系統可以較準確的進行定位,無法準確定位的車牌圖像往往是由在車牌周圍有垂直條紋、且大小與車牌相仿的圖像塊,以及提取矩形輪廓時不能完整提取整個車牌區,造成程序終止。這些干擾的去除需要對算法的進一步改進,例如可以考慮在粗定位后對圖像的垂直投影圖進行分析,將不符合幾大峰群條件的偽車牌部分去除,然后重新進行搜索。車牌字符識別的準確率達到了85%,還是比較理想的,其中,字符識別錯誤的原因大多是由于字符特征非常接近、車牌局部存在污點的情況下,結果無法識別,主要原因則是車牌邊框不明顯或者車牌圖像傾斜比較嚴重的情況。可以通過增加字符模板解決這個問題。
綜上所述,本系統具有以下特點:
1)車牌識別率較高,達到了85%,基本滿足需求;
2)車牌系統適應性較好,對天氣的變化以及車身的弱干擾有較好的適應性;
3)通過我們對程序的計時顯示,總體看來,識別所需要的時間在0.7s~1s之間,實時性比較好。
第6章 總結與展望
6.1 總結
經過幾個月的奮戰我的畢業設計終于完成了。在沒有做畢業設計以前覺得畢業設計只是對大學幾年來所學知識的單純總結,但是通過這次做畢業設計發現自己的看法有點太片面。畢業設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。通過這次課程設計使我明白了自己原來知識還比較欠缺。自己要學習的東西還太多,以前老是覺得自己什么東西都會,什么東西都懂,有點眼高手低。通過這次畢業設計,我才明白學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習,努力提高自己的綜合知識。
本文對車牌識別系統的關鍵算法進行了較深入的分析和研究。在借鑒原有方法的基礎上,提出了若干改進和新的方法。但同時,通過對本系統的研究,我感覺車牌識別仍有許多內容需要改進和完善。
車牌識別系統作為智能交通系統中重要的一部分,近年來引起專家們的重視,并已有部分產品投入使用。但在實際使用過程中,仍然存在著系統移植性差、對光照的適應性差、準確率不夠高等缺點,在后續處理中還需人工輔助完成,所以對車牌識別系統的算法的研究改進一直在進行。本文以MATLAB為開發工具,在353張卡口汽車圖像組成的數據庫的支持下,對車牌識別進行了研究,對多種算法進行了分析、比較與改進,并提出了一些自己的見解,效果較好。
在課題的研究過程中,主要完成了以下工作:
1)在對國內外大量文獻的閱讀研究基礎上,使用MATLAB開發了一套車牌識別系統,完成了車牌定位、車牌字符切分和車牌字符識別等功能,搭建了系統測試平臺。實驗證明,整個系統的識別準確率達到91.4%,單幅圖像識別時間在0.7s~1s之間,基本滿足實際要求。
2)車牌定位作為車牌識別系統的第一步,對識別準確率和運行時間有很大影響。在車牌定位中,最重要的是邊緣的提取,邊緣提取的效果好,后面進行形態學處理后車牌特征明顯,車牌定位的準確性就高。本系統采用小波變換分解提取垂直分量的算法來提取邊緣,有效的抑制了噪點的影響,在其后采用初步定位與精確定位相結合的方法實現了車牌的定位。小波變換分解后的高頻垂直分量和低頻水平分量,非常有益于圖像特征的提取。從對小波變換的分析圖來看,進行小波變換分解后,車牌部分的高頻特征與非車牌部分的特征有著明顯的差異,因而對車牌的定位79有很大幫助。在車牌識別中,如果僅僅應用車牌特征,或者僅僅使用投影法進行定位,車牌圖像定位到非車牌區域的可能性會比較大,所以將兩者結合,通過兩次定位,可以達到較好的效果。實驗證明,在93張圖片中,最終準確定位的圖片有90張,準確率為96.8%,較好的滿足了要求。
3)車牌的二值化對于車牌字符識別有著非常重要的作用。二值化效果好,車牌圖像的特征就明顯,可以更好的滿足后面的車牌字符切分與識別的需要。二值化算法的閾值的選取對于二值化的效果有很大的影響,這里采用了全局閾值的算法,傳統的Otsu算法中,使用一維算法得到的特征不夠明顯,無法滿足要求。而傳統的二維算法計算范圍縮小,可能會使得車牌不完整,所以本文對其進行改進,擴大了二維算法的計算范圍,將復雜度降低為一維,在獲得良好效果的同時,運行時間有所縮短。實驗證明,改進的二維Otsu算法效果較好。
4)車牌的傾斜校正對車牌字符識別有很大的影響。一個傾斜的車牌字符的識別與一個很正的車牌字符的識別是不一樣的。傳統上,很多系統采用Hough變換來進行校正。但是Hough變換要從圖像中截取較長一段直線來作為參照物,這樣就需要前面保留有車牌邊緣,且此邊緣的橫線和豎線都滿足需求,這在實際中較難操作。本系統利用車牌水平投影,采用線性擬合的方法檢測車牌的傾斜角度。借助MATLAB圖像坐標軸的橫軸確定傾斜角度,保證了參照物滿足對橫線和豎線的要求。實驗證明,用投影法檢測牌照的角度,然后使用坐標變換方法進行傾斜牌照校正處理,方法簡單且效果良好。
5)車牌字符識別是車牌識別系統識別車牌的最后一步。傳統算法中模板匹配字符識別和神經網絡字符識別都是常用的算法。這里對兩種方法進行了比較研究。對于模板匹配字符識別,在傳統算法的基礎上,對車牌字符的特征提取進行了改進,將其劃分為六個部分,統計出各部分的特征,改進后識別準確率達91.4%。
6.2 展望
車牌識別系統在實驗室里己經取得了令人滿意的效果,但很難應用于實際工程中,這是因為實驗室的環境是處于理想狀態的,而在自然環境里,由于受到天氣等因素的影響,識別率很難達到要求。
目前的車牌識別系統在快速發展中,雖然已經有一些公司開發的產品取得實際應用,但是在準確率和識別速度方面仍有很大的提高空間,對算法的研究仍然是車牌識別的一個重點。目前,雖然對車牌識別技術已經有了很深入和詳細的研究,且也取得了一定的成果,但同樣也存在很多問題有待下一步研究解決。主要有以下幾個方面:
(1)在車牌定位中采用的梯度投影與彩色區域相結合的方法,該算法簡單,容易實現,對光照不太弱的圖像效果很好。由于是由底向上尋找第一個較大的峰,因此對車牌下方也有字符出現的情況失效。當然可以改進算法,進一步利用車牌自身的特點。比如根據車牌獨特的底色,排除非車牌區域的干擾;也可以利用車牌字符之間有一定的間距,排除非車牌字符的干擾。在這個面,還有待進一步的研究。
(2)在車牌定位方面還存在一些可以改進的地方,對邊緣檢測這個處理環節可以再優化,以使本文的車牌定位算法能夠適應質量更差的車牌圖像。
(3)在字符識別方面存在很多需要改進的地方,比如說對字符圖像進行特征提取、筆畫分析等處理以進一步提高識別率。本文的字符識別算法只是應用于印刷體的字符識別,今后的研究應該使算法在手寫體方面也能有很好的識別效果。此外,文字識別是一個綜合的過程,還必須考慮其它的因素,諸如上下文的語意搭配等,這就涉及到諸如語意和內容的識別,這將是一個更加值得深入研究的領域。
(4)本文僅局限于從算法上以matlab為仿真平臺實現對車牌的識別。今后應考慮在進一步優化算法的基礎上通過硬件實現車牌識別,使之真正成為一套能為社會服務的產品。
總結
以上是生活随笔為你收集整理的MATLAB车牌识别系统的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 数据结构-第二章(1)-线性结构
- 下一篇: 解析AI漫画系统CariGAN:这效果让
