- 相關推薦
基于NIOS II車牌識別系統的設計和實現
【摘 要】隨著社會的發展,智能交通已經成為當前交通管理發展的主要方向,而車牌識別技術在智能交通系統中起著舉足輕重的作用。本文應用基于NIOS II嵌入式處理器的SOPC技術,采用Quartus II、SOPC Builder及Matlab等開發工具,創建和配置了NIOS II軟核處理器,生成了系統的核心硬件電路和軟件開發包,并對硬件電路進行了調試;對采集的車牌圖像進行實驗,車牌識別效果較好。
【關鍵詞】車牌識別;Nios II;FPGA;嵌入式系統
一、引言
隨著社會的發展,智能交通已經成為當前交通管理發展的主要方向,而車牌識別技術在智能交通系統中起著舉足輕重的作用。車輛牌照識別技術是從一副圖像中自動定位,并對牌照區域圖像進行字符分割,最后對字符進行正確識別,從而達到識別車輛的目的。
許多高校和科研單位,提出了各種各樣的車牌識別技術被廣泛使用,如條形碼識別技術,但這種技術需要高成本。而車牌識別系統的一個重要特點是低成本,如果車牌識別算法嵌入合適,就能成功地識別車牌號碼。
二、硬件平臺的介紹
本系統選用的硬件平臺是Cyclone II系列FPGA中的EP2C35F672C6。圖1為FPGA開發板的圖片。
三、系統總體方案設計
(一)系統的功能分析
車牌識別系統主要由車牌預處理模塊,車牌識別模塊和圖像顯示模塊三部分組成。車牌預處理模塊的主要功能是對車牌的原始圖片進行初步的圖像處理以便于后續的車牌識別;車牌識別模塊主要實現的是車牌區域的定位、牌照區域的圖像處理、車牌字符切分和字符識別的功能;圖像顯示模塊是實現處理后的車牌圖像顯示在VGA上、字符識別結果顯示在LCD上。
(二)系統的整體方案設計
本系統是在FPGA利用SOPC技術實現車牌圖像的處理。它經過對原始圖像的處理和識別后將得到的圖像信息顯示在VGA上,并把識別結果在LCD顯示。
根據設計要求,本設計搭建了如下NIOS II系統結構,整個系統的核心部分是FPGA的內嵌Nios II軟核,外圍設備和芯片包括VGA顯示器、LCD、片外SDRAM、SRAM存儲器等。
(三)車牌識別算法的介紹
車牌識別系統的3大關鍵步驟為:牌照區域的定位、車牌字符分割與單個字符識別3個步驟。
(1)牌照區域的定位
在外界環境中,要在光照不均勻、環境條件復雜的情況下定位車牌區域是非常困難的,所以能否準確的定位拍照區域在整個車牌識別系統中起著至關重要的作用。首先對采集到的原始圖像進行初步定位,然后對此區域再做進一步分析,最后選定牌照區域,將其從圖像中分割出來。算法流程如下:
、僭谲嚺祁A處理后的圖像中準確定位車牌區域。根據車牌圖像的特點即白像素點的個數來定位車牌的上下左右四個邊界。
、 根據上面定位的四個邊界,截取出圖片中的車牌區域,并在該區域顯示車牌灰度處理后的圖片。
(2)車牌字符分割
牌照區域定位完成之后,就要將整個車牌準確的分割為單個字符。一般采用的方法為垂直投影法。首先根據實際車牌的大小得出車牌中每個字符的長和寬以及兩個字符間的距離,以便進行字符的粗略分割。然后再根據車牌的垂直投影法來精確的分割每個車牌字符。
(3)單個字符識別
我國的車牌都是第一個字符為漢字(省的縮寫)、第二個字符為英文字母,第三個字符為一個英文字母或數字,最后四個字符為數字,F在車牌字符識別主要采用的方法為基于模板匹配的算法。在進行模板匹配之前需要對待識別的字符進行處理,最后再與已知的模板進行匹配。
(四)系統硬件設計
本系統使用集成在Quartus II中的SOPC Builder開發組件配置生成片上系統。完成系統配置以后,SOPC Builder會自動生成VHDL或Verilog HDL的系統級設計代碼,并自動生成部分外設的硬件抽象層(HAL)代碼和底層硬件驅動代碼,為軟件開發做好準備。
根據設計要求,本設計搭建了如下NIOS II系統結構,如圖2
具體搭建過程如下:
(1)建立工程并建立頂層設計文件,在Quartus II軟件中建立新工程。在建立工程之后,為工程建立一個頂層設計文件,本系統是用的是原理圖設計文件。
(2)用SOPC Builder建立一個新的SOPC硬件系統,由SOPC生成的系統模塊從下至上依次為:系統時鐘復位信號、LCD控制模塊、PIO輸入模塊、SDRAM模塊、SRAM模塊和VGA控制模塊。
(3)導入分配引腳,編譯并下載設計
(4)在Nios II IDE中建立新工程
(5)修改系統庫屬性
(6)編寫代碼
(7)編譯并運行工程
系統的工作過程為:系統配置完成后,將原始圖像轉換為圖像數據,然后把圖像數據存入SRAM中,在Nios II處理器中通過C語言實現圖像的處理和識別,處理后的圖像再經過數模轉換顯示在VGA上,識別后的結果在LCD上顯示。
四、結果實測及分析
應用上述的車牌識別系統,對車牌圖像進行實驗,實驗輸入圖像(圖3)尺寸為320×240象素。處理后的圖像(圖4)會在VGA上顯示,識別結果在LCD上顯示(圖5)。
本車牌識別系統還存在的主要問題為:FPGA和Nios II程序中還有很大的優化空間,如FPGA上可以添加圖像識別算法,有效利用FPGA資源,提高識別速度。
五、總結
本車牌識別系統通過Altera公司提供Quartus II、SOPC Builder、Nios II IDE等配套開發軟件,完成了Nios軟核的設計,再把圖像識別的算法通過C語言輸入到Nios II中,完成了整體系統的軟件設計。把整個系統下載到硬件進行調試,最終系統工作穩定,能夠實現圖像的算法識別、識別后圖像的顯示和識別結果的輸出的功能。
最后,我堅信通過進一步的研究與探索,該車牌識別系統在識別率和識別速度達到標準的時候,它將能大規模應用于各個交通控制領域,并具有非常廣闊的市場前景。
參考文獻:
[1]車牌識別技術研究論文.http://www.cpsb.net.cn/html/2008-8-1/200881160229.html
[2]傅海東.基于DSP和FPGA的車牌識別系統設計及實現 [D].成都:電子科技大學,2009.
[3]王剛,冀小平.基于MATLAB的車牌識別系統的研究[J].電子設計工程,2009,(17):72-73.
[4]蔣毅,李峰.基于FPGA 的車牌字符識別方法的研究[J].微計算機信息,2010,(14).
[5]牛欣,沈蘭蓀.汽車牌照識別技術的研究[J].測控技術,1999,18(12);14-17.
【基于NIOS II車牌識別系統的設計和實現】相關文章:
基于NiosII軟核處理器的指紋識別系統設計與實現05-07
基于Perl的DoS工具設計與實現10-05
基于PQRM的PACS系統設計與實現08-02
基于open SER的IMS CSCF的設計與實現09-19
基于PCI總線的CAN卡的設計與實現09-25