新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 嵌入式車牌識別系統的設計及實現

        嵌入式車牌識別系統的設計及實現

        作者: 時間:2012-07-18 來源:網絡 收藏

        1、引言

        本文引用地址:http://www.104case.com/article/196662.htm

        隨著我國國民經濟的高速發展,國內高速公路、城市道路、停車場建設越來越多,對交通控制、安全管理的要求也日益提高,智能交通系統(Intelligent Transportation Systems,簡稱ITS)已成為當前交通管理發展的主要方向,而車牌識別(License Plate Recognition,簡稱LPR)系統技術作為智能交通系統的核心,起著舉足輕重的作用,它在高速公路、城市道路和停車場等項目管理中占有無可取代的重要地位[1-2]。

        本文所研究的,正是在這樣的背景下提出來的,對于目前LPR作為ITS中的核心關鍵技術,具有相當大的理論和現實意義。本系統所設計的是一個基于DSP和FPGA的[3-4],該系統不同于傳統的,具體實現過程將在下文詳細描述。

        2、系統結構設計

        傳統的車牌識別系統主要采用攝像頭、視頻采集卡、工控機幾個主要模塊搭建出來的方法來實現,其優勢是實現容易,但是成本高、實時性不強、安裝和維護不便。而在本文系統設計中,摒棄了傳統的模式,采用TI公司的TMS320C6713B高性能(強大的并行運算能力)DSP作為識別算法的運行硬件平臺,Altera公司性價比很高的Cyclone系列EP1C12Q240型號的FPGA作為協調整個系統的工作與相關的圖像采集及控制,再加上一些外圍器件(FLASH、SDRAM等)共同構成本車牌識別系統硬件平臺,如圖1所示。

        與傳統的車牌識別系統不同,該系統無需計算機即可實現車牌圖像的采集、識別、輸出結果,具有識別性能高、環境適應性強、安裝維護簡單、成本低等特點。其中采用以DSP和FPGA作為核心的系統設計最大優點是結構靈活、通用性強、適合于模塊化設計,從而能夠實現高效率的算法和實時控制;同時其開發過程可以并行進行。

        11.jpg

        圖1 車牌識別硬件框圖

        2.1 視頻輸入模塊

        目前,世界上實際應用的電視信號制式主要有NTSC制、PAL制和SECAM制3種,世界上大多數國家采用PAL制,我國也采用PAL制,此系統采用的攝像頭輸出的視頻信號就是標準的PAL制式。

        PAL電視制式規定,場掃描頻率為50Hz,每秒掃描25幀圖像,每幀包括奇、偶兩場圖像,每幀圖像的掃描行數為625行。電視信號由“圖像信號”和確保同步的“復合同步信號”以及消除掃描逆程回掃線的“復合消隱信號”等輔助信號構成。PAL制電視信號轉化為數字視頻信號后,一般輸出數據格式符合ITU656 YUV4:2:2標準,輸出一幀圖像的625行數據中,其中有效圖像數據占572行,其他為場消隱信號;同樣,每行有效的圖像數據也只有720個象素。

        本系統中輸入是PAL制式的模擬圖像數據,必須要經過A/D轉換才能供后續系統處理。此系統選用的視頻解碼芯片(A/D)是Philips公司的SAA7113H[5],支持標準的PAL制式視頻信號輸入。輸入可以為4路CVBS或2路S視頻(Y/C)信號,通過內部寄存器的不同配置可以對輸入進行轉換,輸出8位VPO總線及一些場、行同步控制信號,其中輸出圖像數據為標準的ITU656 YUV4:2:2格式。SAA7113H內部具有一系列寄存器,可以配置為不同的參數,對色度、亮度等的控制都是通過對相應寄存器改寫不同的值,寄存器的讀寫需要通過I2C總線進行。由于TMS320C6713有自帶的I2C總線接口,所以系統設計里,利用DSP通過I2C總線對SAA7113H進行配置控制,簡易了系統的設計[6]。

        SAA7113H的VPO[7:0]總線以及RTS0、RTS1、LLCLK與FPGA相連,通過DSP的I2C總線把其中的RTS1、RTS0分別配置成場、行同步信號,只有在行場同步信號都同時有效時,才是有效的圖像數據輸出,否則一般為圖像的消隱信號。此時我們只要根據LLC時鐘來對VPO總線上的數據來采集即可得到完整的圖像數據(720*572大小)。SAA7113H與DSP和FPGA的連接方式如圖2所示。

        22.jpg

        圖2 SAA7113H與DSP和FPGA的連接示意圖

        經過實際操作,通過DSP的I2C總線對其進行正確配置,然后由Verilog編寫的FPGA程序來進行圖像數據的采樣,再用Quartus II自帶的SignalTap II Logic Analyzer(邏輯分析儀)對波形進行相應的分析,驗證了系統中一些重要的信號,結果顯示是正確可行的。圖3顯示的行、場同步信號RTS0、RTS1與VPO數據輸出的關系,達到了預期的結果。

        33.jpg

        圖3 行場同步信號(RTS0、RTS1)及VPO波形

        2.2 DSP功能模塊

        DSP作為本系統的核心芯片,主要有兩方面的關鍵技術:一是DSP硬件平臺的搭建;二是DSP程序的開發,包括DSP的算法移植及底層驅動編寫。

        2.2.1 DSP硬件搭建

        TMS320C6713B是TI公司的一款高性能的32位浮點DSP[7]。其工作頻率最高可達300MHz,每秒可執行2400MIPS和1800MFLOPS,非常適合在大數據量的圖像處理場合中使用。集成了豐富的片上外設,包括PLL、多通道EDMA控制器、多通道緩沖串口(MCBSP)、I2C接口、HPI接口、EMIF接口等。其中32位高性能外部存儲器接口(EMIF)能與SRAM、SDRAM、SBSRAM等同步/異步存儲器進行很方便的無縫連接接口,兼容8/16/32位外部存儲器總線[7]。本系統上的FLASH、SDRAM及FPGA都掛在DSP的EMIF總線上,方便DSP對其訪問和操作:

        (1)DSP與FLASH接口:FLASH是一種高密度、非易失性的電可擦寫存儲器,主要用來存放一些應用程序和其他信息,保證掉電不丟失數據。本系統采用的FLASH芯片為SST公司的SST39LF1601,其容量為2M字節,可在3V~3.6V電壓下工作,存取速度為70ns。并把FLASH映射在DSP的CE1空間上,對應的映射地址為0x90000000-0x901FFFFF。其中映射到CE1空間的好處是方便程序的BOOTLOADER,因為DSP上電復位后,DSP內部的EDMA控制器默認會把CE1空間的1KB數據拷貝到地址0處的內部存儲器中去,然后運行。所以只要把應用程序燒寫到FLASH中,系統就可以脫離計算機正常運行。這里FLASH的另一個作用是保存用于車牌處理算法的一些字符模板信息、特征點信息以及一些用戶信息。

        (2)DSP與SDRAM接口:SDRAM是同步動態隨機存取存儲器(Synchronous Dynamic RAM)的縮寫,其主要特點為:一是同步訪問,讀寫操作都需要時鐘;二是動態存儲,芯片需要定時刷新。TMS320C6713的內部存儲空間容量無法滿足系統程序的需要,而需要外擴高速存儲器來提供系統程序的運行空間。此系統中,使用了一片Hydix公司的16位SDRAM HY57V641620,其容量為8M,用于DSP對車牌進行處理時的數據暫存,并把它映射到DSP的CE0空間上,對應的地址為:0x80000000-0x807FFFFF。其工作時鐘由DSP提供,本系統設置為100MHz。通過配置DSP的EMIF控制寄存器,可以設置SDRAM的各種參數。

        (3)DSP與FPGA的連接:FPGA從視頻流中捕獲了車牌圖像,如何讓DSP獲取該圖像信息進行處理工作,也是本系統設計的一個重點。SBSRAM (Synchronous Burst Static RAM),即同步突發靜態存儲器,其最大的優點就是支持同步突發訪問,訪問速度高,而且屬于靜態RAM,不需要刷新。所以,相對DSP來說,本系統把FPGA配置成SBSRAM來進行訪問,會相對簡單些,并把其映射到DSP的外部CE3空間。由于本系統設計時,對從FPGA讀取的圖像數據是以行單位來計算的,每次在FPGA內部存滿一行數據,FPGA就發一個中斷信號給DSP,讓DSP從中把數據通過EMIF口讀走,而這里一行的圖像數據的信息量為720*8bit,所以系統設計中,地址總線只用到了10位,而數據總線只用到了8位,對應的映射到DSP的存儲地址為0xA0000000-0xA00003FF(1K Byte大小),這種設計方法很大程度上方便了DSP對FPGA的訪問操作,FPGA與DSP的連接如圖4所示。

        44.jpg

        圖4 FPGA與DSP硬件連接示意圖

        2.2.2 DSP軟件編寫

        DSP作為信號處理芯片,在處理各種信號方面都有著強大的優勢。本系統中,大部分圖像處理算法(車牌定位、分割、字符識別等)都在其上實現。在搭建好良好的硬件平臺后,接下來要做的就是對DSP的編寫,這里主要有兩塊程序的編寫:算法的移植和底層驅動的開發。

        CCS(Code Composer Studio)是TI公司推出的一套集成開發環境,用它來開發TI的DSP芯片應用程序;其中CCS 中集成的DSP/BIOS[8]是TI公司為C5000系列和C6000系列數字信號處理芯片量身定制的一個實時操作系統內核,具有圖形化界面、代碼快速成型功能以及完備的API函數庫等優勢,可極大的方便應用系統的開發和在線調試。本系統就是采用CCS2.2中自帶的DSP/BIOS操作系統進行程序的開發,使用任務、線程、旗語、郵箱等進行一系列編程,方便的控制程序的實時調度運行。

        (1)算法移植:一般算法的編寫都會在Matlab上實現,雖然它是一種類C語言,但和標準的C相比還是有著很多的差異,而且Matlab中往往提供了各種信號處理的工具箱,如圖像處理、神經網絡、小波變換等等。我們只要簡單的調用這些函數來,帶入幾個參數即可以方便的進行各種信號處理。所以,當把這些算法移植到本系統的DSP中時,一些函數還得重新編寫,還有編程格式、風格都要有所更改,有些地方為了提高算法的效率,充分利用DSP的資源,還應該把部分代碼編寫成匯編語言等等。當把整個算法都移植完后,最后封裝成一個函數,這樣更易于整個算法的維護及調用。然后,當觸發條件滿足時,用DSP/BIOS中的某個任務來調用這個算法處理函數來完成對車牌圖像的識別。

        (2)底層驅動的開發:底層驅動的編寫采用CCS自帶的CSL(Chip Support Library)來進行底層驅動開發,CSL提供一系列應用程序接口(API,Application Programming Interface)用于配置和控制DSP片上外設,從而簡化了DSP片上外設的開發工作,大大縮短了開發周期。

        2.3 FPGA功能模塊

        FPGA是英文Field Programmable Gate Array的縮寫,即現場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎上進一步發展的產物。FPGA的使用非常靈活,同一片FPGA通過不同的編程數據可以產生不同的電路功能。FPGA在通信、數據處理、網絡、軍事和航空航天等眾多領域得到了廣泛應用。

        本系統設計中,FPGA作為圖像采集、存儲以及傳輸的核心模塊,協調及控制著整個系統的正常運行,起著非常重要的作用。本系統選用了Altera公司性價比較高的Cyclone系列中的EP1C12Q240型號FPGA。該FPGA共有52個存儲塊,共239616bits。通過QUARTUS II自帶的MegaWizard工具可以將每個塊配置成不同的存儲模式,如單口RAM、簡單雙口RAM、移位寄存器、ROM和FIFO等,這樣有利于本系統在采集圖像時暫存圖像數據及把FPGA作為SBSRAM供DSP訪問的設計。該FPGA有著片上足夠多的IO口也為本系統以后擴展留下了空間。

        這里與FPGA相連的器件有:SAA7113H、SDRAM、DSP以及MAX3232。由于FPGA純粹是一個編程器件,其IO腳可以配置成任何我們需要的信號,與任何接口可以相接,所以硬件接口設計上比較簡單。難點在于編寫各種通信協議和不同的接口進行無縫傳輸。整個FPGA的程序設計總體框圖5所示:方框內的部分為FPGA的各個模塊以及它們之間的相互連接。方框以外的部分是FPGA的外圍器件。

        55.jpg

        圖5 FPGA的程序設計總體框圖

        該FPGA系統在整個車牌識別系統中起到圖像的采集、緩存和傳輸的功能。當車輛檢測器的感應信號sensor_cmd信號有效時,啟動SAA7113H_INTERFACE模塊內部的狀態機進行圖像的采集工作,SAA7113H_INTERFACE模塊從SAA7113H的視頻流中檢測到場開始信號時,開始一幀圖像數據的傳輸。由于視頻流為PAL制,所以一幀圖像分為奇場和偶場兩場圖像數據。

        系統采用了乒乓結構的設計方法,這種典型的設計方法在“以面積換速率”的FPGA設計方法中經常得到應用。由于EP1C12Q240C8內部共有52個存儲塊,共239616bits,所以在FPGA內部設計一個小存儲量的RAM是可行的。系統中設計了兩塊720*8bits(每行圖像數據大小)的空間,這兩個存儲器的寫時鐘信號是SAA7113H輸出時鐘LLC的2倍。SAA7113H INTERFACE模塊通過與SAA7113相連的VPO總線,采集標準的YUV4:2:2的Y分量(只采集Y分量目的是得到灰度圖像),即其中的亮度信號,一行的圖像含有720個亮度信息,亮度信息的位寬為8位。當FPGA_RAM1的圖像行滿時,發出行滿信號ram1_full給DSP_INTERFACE模塊,在DSP_INTERFACE模塊中將該信號轉好為中斷信號n_int_pulse以通知DSP調用EDMA獲取該行的圖像。同時進行內部RAM的切換,把下一行數據寫入FPGA_RAM2中,保證一邊DSP在讀取一行圖像數據,一邊FPGA在寫入下一行圖像數據給另一個RAM ,以完成一次乒乓操作。

        DSP在完成車牌圖像的處理后,將車牌圖像的識別結果通過EMIF寫回到FPGA的DSP_INTERFACE模塊內部的寄存器里,并通過UART模塊獲取這些寄存器的值,通過UART傳到PC。

        圖6所示波形是圖5內部框圖中的其中一個SAA7113_INTERFACE模塊在Modelsim上的仿真波形,從仿真波形中看出,與實際SAA7113輸出波形是符合的,達到我們預期的結果。

        66.jpg

        圖6 SAA7113_INTERFACE仿真波形

        3、結論

        本文所設計的基于DSP和FPGA的嵌入式車牌識別系統,具有速度快、穩定性高、體積小、功耗低等特點,為車牌識別算法提供一個較好的驗證平臺,如圖7所示。經過驗證,該車牌識別系統能夠實現實時的圖像采集、傳輸、識別。從時間上來考慮,在DSP內部單對一幅車牌圖像完成處理(定位、歸一化、特征提取與編碼)只需不足400ms的時間,速度上來說是非??斓?從識別率上來考慮,只要算法達到一定的要求,經過該車牌識別系統運算后,識別率也是能達到非常高的。總之,該系統在車牌識別方面有著一定的應用價值。

        最后,作為一個可以實際使用的車牌識別系統,在以后的系統設計中,還需要增加用于網絡通訊的部分、及一些更智能化的功能,如液晶顯示、聲音提示等等。總之,嵌入式車牌識別系統是當前智能交通應用領域的重要研究課題之一,擁有廣闊的應用前景。

        77.jpg77.jpg

        圖7 車牌識別系統實物圖

        參考文獻

        [1] 陳友仁.圖像中車牌自動識別的研究[D].上海: 上海交通大學,2001: 1-10.

        [2] 劉玲, 張興會. 智能化車牌識別系統研究[J]. 儀器儀表學報, 2004, 25(4)增刊:565-567.

        [3] 蘇厚勝. 車牌識別系統的設計與實現[J]. 機器視覺, 2006, (3): 103-107.

        [4] 洪健, 陳繼榮. 基于DSP+CPLD的車牌實時識別系統的設計[J]. 計算機應用研究, 2007, 24(7): 218-219.

        [5] 孔祥剛, 諸靜, 陽濤.SAA7113H在視頻采集接口設計中的應用[J]. 電子技術, 2003, (12): 26-29.

        [6] 張占鵬, 蘇秀琴, 呂帥華. 基于TMS320C620X系列DSP的SAA7113H控制實現[J]. 科學技術與工程, 2006, 6(12): 1693-1695.

        [7] 李方慧, 王飛, 何佩琨.TMS320C6000系列DSPs原理與應用[M]. 北京:電子工業出版, 2005: 337-380.

        [8] 宋勝利, 曾巒. DSP/BIOS在數字圖像處理中的應用[J]. 國外電子測量技術, 2005,24(12):33-36.

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        存儲器相關文章:存儲器原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 资阳市| 额敏县| 客服| 休宁县| 晋江市| 杭锦后旗| 永定县| 阳原县| 德令哈市| 郸城县| 海晏县| 汤原县| 连州市| 玉树县| 军事| 乌海市| 湘乡市| 日照市| 唐河县| 广水市| 尉氏县| 横峰县| 井研县| 阳山县| 乐昌市| 抚州市| 黄浦区| 鹿泉市| 东方市| 菏泽市| 琼中| 渝北区| 汝州市| 本溪| 雷波县| 古交市| 九江市| 洛扎县| 邮箱| 大庆市| 龙州县|