摘要:傳統(tǒng)的基于微機的車牌識別系統(tǒng)的方案,使得評價識別效果的識別速率和識別成功率兩個重要指標相互沖突。為了解決這個問題,很多文章提出了改進算法來調(diào)和識別算法的計算量和識別的成功率,但卻沒有考慮識別系統(tǒng)的成本問題。提出了一個基于DSP+CPLD的硬件識別平臺,可以大大提高各種識別算法的適應(yīng)性和降低系統(tǒng)成本。
關(guān)鍵詞:數(shù)字信息處理器;復(fù)雜可編程邏輯設(shè)備;車牌識別系統(tǒng)
中圖分類號:TP391.4文獻標志碼:A
文章編號:1001-3695(2007)07-0218-02
作為智能交通系統(tǒng)的一部分,針對車牌識別技術(shù)的算法研究也成為一個新的研究熱點。現(xiàn)在多數(shù)車牌識別系統(tǒng)主要是由攝像頭、帶圖像采集卡的微機組成。車牌識別算法主要是在微機上實現(xiàn)的。由于微機的處理能力限制了算法的選擇,一些識別成功率比較高的算法(如模板匹配神經(jīng)網(wǎng)絡(luò)等)卻又影響了識別的速率。本文從節(jié)省成本和增強平臺算法適應(yīng)性角度出發(fā),提出一個以DSP+CPLD板為識別平臺的方案,一方面代替了原來的圖像采集卡;另一方面采用專門處理數(shù)字信號的DSP芯片實現(xiàn)車牌的識別算法,大大提高了識別速率和成功率。
1系統(tǒng)設(shè)計
如圖1所示, 整個識別系統(tǒng)主要由圖像采集和DSP識別兩部分組成,除此之外還包括一些外圍電路如電源電路、晶振電路、邏輯控制電路、電平轉(zhuǎn)換電路等。
圖像采集電路把采集到的模擬圖像數(shù)據(jù)通過A/D轉(zhuǎn)換后變?yōu)閿?shù)字信號,然后存儲到SRAM中進行緩存;邏輯控制電路負責(zé)系統(tǒng)外圍電路之間的協(xié)調(diào)工作,主要是控制同步信號的處理和通知DSP芯片對采集到的車牌圖像進行識別,這部分主要由CPLD來完成;圖像采集芯片的寄存器控制由89C51單片機模擬I2C總線完成。DSP對采集的車牌圖像進行處理識別后,把識別的結(jié)果通過C6000的HPI接口,經(jīng)過PCI口傳給PC進行實時顯示或存儲到硬盤上面去。DSP側(cè)和主機的接口芯片采用S5933控制器。
1.1圖像采集部分
本系統(tǒng)的圖像采集部分由專用的圖像采集芯片SAA7110和相應(yīng)的外接電路等組成,如圖2所示。
SAA7110提供16位數(shù)據(jù)接口,通過此接口利用89C51單片機設(shè)置相應(yīng)的內(nèi)部寄存器,從而設(shè)置SAA7110的工作狀態(tài)。模擬圖像信號通過SAA7110進行A/D轉(zhuǎn)換后輸出8位數(shù)字格式的YUV格式信號。根據(jù)車牌識別系統(tǒng)的要求,只需對Y信號進行處理就可以了。采取這種圖像采集方案,處理器不需要參與采集過程,減輕了CPU的處理壓力,具有很高的實時性,可以提高車牌識別的速率。
該系統(tǒng)將SAA7110圖像處理方式定為場方式,與圖像采集有關(guān)的控制信號有垂直同步信號VS﹑水平同步信號HREF以及像素同步信號LLC2、奇偶場標志信號ODD,它們都是SAA7110的輸出信號。為有效獲取完整的車牌幀圖像,將以上幾個同步信號進行邏輯組合輸出同步信號。本文將VS和ODD兩個信號通過CPLD內(nèi)部進行邏輯“與”轉(zhuǎn)換,產(chǎn)生一個場同步信號VSODD。此信號代表一幀圖像的起始信號,將它直接連接到DSP的外部中斷4;將行同步信號連接到DSP的I/O口,采取查詢方式獲得行同步;像素同步信號LLC2經(jīng)分頻后連接到DSP的外部中斷5,獲得像素同步。當(dāng)DSP外部中斷4中斷一次時,說明一幀圖像數(shù)據(jù)的奇場數(shù)據(jù)開始傳輸,奇場傳輸完畢后傳輸偶場數(shù)據(jù),系統(tǒng)采集車牌圖像分辨率為512×256。采集到的圖像通過DSP控制SRAM的地址線,寫入SRAM中去。具體的圖像采集流程如圖3所示。
1.2車牌識別部分
實現(xiàn)車牌識別的算法所用DSP芯片采取TI公司的TMS320C6201芯片,這是TMS320C6X系列中的高速定點數(shù)字處理芯片,是TI公司20世紀90年代后期的最新一代DSP產(chǎn)品,最大處理能力為1 600 MIPs,具有特殊的VelociTI結(jié)構(gòu)獨特的指令集,從而保證了它強大的運算能力,高度的并行性和良好的靈活性。同時其外圍設(shè)備包括DMA控制器、主機接口(HPI)、中斷選擇器,能夠方便快速地與外圍設(shè)備進行數(shù)據(jù)交換。整個識別算法大致可分為以下幾個模塊,如圖4所示。
車牌獲取一般有兩種方法,即顏色分割方法和紋理方法。顏色分割算法需要預(yù)先定義顏色的RGB空間, 如提取藍色車牌時需要定義藍色的RGB分量空間。這種方法容易實現(xiàn), 并且算法復(fù)雜度比較低。可是很多時候分量空間的定義比較困難,比如白色和黑色的RGB分量空間就比較難定義。這是因為RGB各分量值在很大范圍內(nèi)均可以被人眼認定為白色或黑色。 紋理方法主要利用車牌區(qū)域水平和豎直方向像素值跳躍都比較快的紋理特點對車牌加以提取。這種方法對利用顏色分割方法容易失效的白色和黑色車牌的提取效果比較好。
車牌傾斜校正分為水平校正和豎直校正兩部分,都在二值化后的二值圖上進行。對水平校正采取Hough變換得到方法求出傾斜角,然后進行校正。豎直校正算法采用基于跨欄模型的方法。這種模型本質(zhì)上是一種投影模型, 通過對車牌區(qū)域進行不同角度的豎直方向的投影, 投影結(jié)果小于某個值的列的數(shù)目最大值對應(yīng)的即為車牌區(qū)域的豎直傾斜角度。
車牌的二值化微機上一般是采取全局閾值方法,如OSTU(最大類間誤差)法,主要是考慮局部閾值方法計算量比較大,影響識別的速率。但是前者一般要求物體與背景灰度差別比較明顯,實際上采集到的車牌圖像往往具有很多噪聲,而且有些時候受天氣等因素影響,車牌目標與背景的灰度差別并不是很大。本文采取兩者結(jié)合的方法進行二值化的閾值選取,一方面充分發(fā)揮全局閾值方法能夠反映全局像素統(tǒng)計特性的優(yōu)勢;另一方面又利用了局部閾值方法反映局部細節(jié)的特點。
為了避免把非車牌部分區(qū)域也進行局部二值化,首先進行車牌字符區(qū)域的定位:初步二值化后,計算每行灰度跳變的次數(shù),將跳變次數(shù)突變的行定位為車牌字符區(qū)域的上下邊界;計算每列的灰度梯度,梯度突變的列定位為車牌區(qū)域的左右邊界。為了考慮噪聲的影響,實際處理時也進行了一些調(diào)整。在粗略獲得車牌字符大致區(qū)域以后,在車牌字符區(qū)域,按照字符的大致尺寸分成三個分塊,即首字符、尾字符和中間其他字符,然后使用全局方法對每一個分塊進行二值化。
車牌的第一個字符一般是漢字,其余是數(shù)字和字母,數(shù)字和字母一般是連通的。漢字通過位置和大小信息可以進行連通合并。針對車牌字符的形態(tài)特征,該系統(tǒng)采取區(qū)域增長的方法進行字符分割,把水平投影與垂直投影相結(jié)合,切割出每一個字符。實際識別時,為了避免字符出現(xiàn)粘連的情況,一方面進行一些去噪和去除噪聲白線處理;另一方面根據(jù)前面模塊確立的信息和字符的尺寸信息,定位每一個字符的大致邊界,進行粘連去除處理。一般車牌包含七個字符,所以可以把分割出來的字符數(shù)作為切分的結(jié)束標志,同時根據(jù)確立的最后一個字符的位置信息,判斷分割的結(jié)果是否合理。最后采取零階內(nèi)插法把分割出來的字符歸一化為24×16的圖像。
傳統(tǒng)的字符識別算法主要有模板匹配法、神經(jīng)網(wǎng)絡(luò)法、數(shù)學(xué)形態(tài)法等。從算法識別效果來看,一般識別效果好的算法都比較復(fù)雜,如神經(jīng)網(wǎng)絡(luò)、模板匹配等算法。在微機上一般都需要進行很多針對運算量的改進,以便提高識別實時性。該系統(tǒng)是基于硬件平臺的,處理速度比較快,可以滿足實時性的要求,所以只需針對識別的成功率進行改進就可以了。該系統(tǒng)采取了一種利用Gabor變換[4]直接從灰度圖像進行特征提取,并針對此特征設(shè)計一個集成型神經(jīng)網(wǎng)絡(luò)模型進行分類識別的方法。
1.3主機通信部分設(shè)計
DSP處理完后,需要把處理結(jié)果傳輸給主機進行顯示或記錄后進行存儲。DSP與微機之間的數(shù)據(jù)傳輸和通信利用S5933控制器來實現(xiàn)。S5933提供與PCI總線、附加總線和非易失存儲器三種物理接口。DSP和微機通過對S5933中寄存器的讀寫實現(xiàn)相互間的數(shù)據(jù)傳輸和通信。圖5為接口框圖。
該系統(tǒng)將S5933設(shè)計成從設(shè)備模式,將附加總線映射到C6201的CE3空間內(nèi)。當(dāng)識別完后DSP就向特定的郵箱寄存器內(nèi)寫入信號。微機部分采用VC++環(huán)境進行通信軟件的編寫,使用兩個線程,一個線程查詢等待DSP的信號,另一個線程完成其他部分功能,如顯示結(jié)果、記錄當(dāng)前的具體時間并把識別的車牌號存儲到硬盤上等。
2系統(tǒng)的測試
由于車牌各個模塊算法不是在微機上實現(xiàn)的,調(diào)試就不能像VC++環(huán)境中那么方便。為了測試各個模塊算法處理效果,筆者首先在VC++環(huán)境下初步測試了一些模塊的算法。微機測試通過后,再把一些復(fù)雜而且計算量比較大的關(guān)鍵算法移植到了DSP上面,在CCS2進行了調(diào)試和仿真,并把處理結(jié)果到顯示PC機上。通過計算在兩個平臺上的處理時間并加以對比,驗證了DSP處理時間快的優(yōu)點。
3結(jié)束語
本文提出一個硬件平臺進行車牌的識別,相對于傳統(tǒng)的車牌識別系統(tǒng),該系統(tǒng)的創(chuàng)新點在于:一方面由于DSP的處理速度比較快,這樣可以使算法的選擇空間更大,可以只考慮識別的成功率,而減少對算法實現(xiàn)速度的要求,從而提高了車牌識別平臺對各種算法的適應(yīng)性;另一方面又集成了傳統(tǒng)車牌識別系統(tǒng)圖像采集的功能,降低了系統(tǒng)的成本。當(dāng)然在實際代碼編寫時,還可以進行代碼優(yōu)化如軟件流水等措施,進一步提高車牌識別系統(tǒng)的速度。
參考文獻:
[1]TMS320C6x evaluation module reference guide[R].[S.l.]:TI Company,1999.
[2]KIM In J.Multi-window binazition of camera image for document recongnition[C]//Proc of the 9th International Workshop on Frontiers in Handwriting Recognition,2004:323-327.
[3]鐘慶,戴禮榮,宋彥.基于DSP的脫機遠程視頻監(jiān)控終端[J].計算機工程,2004,30(17):186-189.
[4]金連文,覃劍釗.基于Gabor方向特征及神經(jīng)網(wǎng)絡(luò)的車牌灰度字符圖像識別[J].計算機工程,2004,30(20):32-35.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”