?

FPGA實現車牌的傾斜校正

2014-10-21 19:53李佳悅
科學時代·下半月 2014年12期

李佳悅

【摘 要】作為車牌識別系統的關鍵環節,車牌傾斜直接導致車牌識別準確率降低。本文主要基于FPGA實現車牌傾斜校正算法,完成如下功能:采用Hough變換計算傾斜角度,采用CO RDIC(坐標旋轉數字計算)算法計算三角函數值;采用雙線性插值實現重采樣。

【關鍵詞】傾斜校正;FPGA;Hough變換;CO RDIC

引言

隨著我國科學和技術的日益發展,世界范圍內汽車數量的增長,城市智能化交通系統(ITS, Intelligent Traffic System)[1]受到人們越來越多的關注并且成為了一個熱門的研究領域。車牌識別(LPR, License Plate Recognition)作為重要技術已經成為系統關鍵部分的組成。采集到的車牌圖像在一定程度上存在著角度的傾斜,若傾斜角度偏大,則會干擾到了字符識別的準確性,對字符進行分割和識別等工作帶來相當大的困擾。所以說車牌傾斜校正在車牌識別系統中起到了重中之重的地位?;贔PGA在硬件層面對車牌圖像進行傾斜校正,根據傾斜校正算法的特點要求的是實時性和并行性,因此FPGA能很好的達到系統要求,無論是在速度、穩健性、存儲容量、復雜環境等方面都可以有可觀的改善。并且基于FPGA的車牌圖像傾斜校正系統可以廣泛的應用在車牌圖像處理和識別系統當中。

系統的整體框架設計

如圖1所示為系統的整體設計框圖,車牌圖像經過DA轉換模塊ADV7180轉換成圖像數據,將數字圖像輸入到圖片輸入FIFO,再進入到Hough變換模塊,同時由CORDIC算法得到的正余弦函數值存入片內ROM后,將函數值送到Hough變換模塊進行傾斜角度的測量,將角度存入片內RAM中,進入圖像旋轉模塊進行圖像旋轉,再對旋轉后的圖像進行雙線性插值,將經過傾斜校正的車牌圖像存入FIFO通過顯示控制器到D/A轉換模塊ADV7123,最后通過VGA顯示出傾斜校正后的車牌圖像。

車牌傾斜校正的軟件實現

對于車牌傾斜校正算法,要確定車牌的傾斜角,之后對其進行旋轉,采用Hough變換測得直線,從而得到傾斜角,在Hough變換的過程中通過CORDIC算法來實現正余弦三角函數值的確定,通過基于CORDIC算法的Hough變換實現得到傾斜角度,最后對圖像進行相應的旋轉和插值,最終達到傾斜校正的目的。

對于車牌傾斜校正算法的基本原理,Hough變換,CORDIC算法以及圖像旋轉原理和插值方法這些傳統的方法,經過進一步的研究后得出新的優化算法。首先,傾斜校正算法由兩部分來完成,一個是通過Hough變換來求得車牌圖像的傾斜角度,第二部分是通過得到的傾斜角度,對車牌圖像進行旋轉為了產生“空洞現象”再進行插值方法,最終得到結果圖像,以達到傾斜校正的目的。不論是Hough變換,還是旋轉變換,都需要大量的三角函數計算,在FPGA硬件實現中,通常都是使用三角函數查找表來完成,在這里,將用到的是基于CODRIC算法來得到三角函數值,并存在FPGA內部的ROM中,來配合Hough變換的進行。

采用CORDIC迭代算法的流水線結構[2],每一級CORDIC迭代運算都采用獨立的一組運算單元,流水線被填滿后,每個時鐘周期都會計算得到一組數據,它的快速處理確保了數據實現實時高速處理的前提,每一級功能的實現都迭代一次,移位的位數與當前的迭代級數相等,選擇加減法的依據由該級中Z的最高符號位來決定,從而得到下一級運算中的x、y、z值。經過流水線運算N級后,z等于0,x為初始值z0的余弦值,y為初始值z0的正弦值。每一級運算單元的結構主要由3個加(減)法器和2個移位器組成,級與級之間不需要其他的寄存器,直接相連。唯有值為arctan(2- i),可將其轉換為二進制數后,在存儲單元內提供查找表給每一級流水線。

對于FPGA實現Hough變換主要分為對ρ值的計算和Hough變換空間點坐標值累加兩部分。對于平面空間中的直線上的所有點,在參數空間中的正弦曲線都將交于一點,因此,對值進行計算,并且逐次加1,完成累加后,設定閾值,因此,在閾值上的點就是參數空間中相交的這個點,在平面空間中對應的就是要檢測得到的直線,最后獲得傾斜角度。ρ值的計算過程,用乘法模塊計算α從CODRIC算法模塊中sinα和cosα得出的值和空間坐標的x與y相乘的值,最后通過加法模塊的運算得出ρ的值[3]。

乘法模塊的作用是完成傾斜校正算法中Hough變換和旋轉算法中圖像坐標變換所需要的乘法運算。在Hough變換中x,y是8bit,在圖像旋轉中,正余弦三角函數值是16bit,由此,本系統中,構造乘法模塊的規格是8bit×16bit,這樣才能進行乘法運算,在乘法模塊的輸入端是8bit和16bit的變量,輸出端為24bit的數據。

符號運算模塊的作用是完成傾斜校正算法中符號數的處理和運算操作。這里主要是針對算法中的正余弦函數值以及在圖像旋轉算法中的減法運算結果可能為正也可能為負。對于sin和cos可以通過對sin_sign和cos_sign賦值來表示,0正,1負。在圖像旋轉中,x,y則用x_sign和y_sign賦值表示,0正,l負[4]。通過對符號進行異或運算得到疊加運算中的所有符號,最后得到運算結果。

仿真結果

采用ModelSim仿真工具進行仿真,下圖為對系統整體仿真的波形圖,并且對仿真的結果進行了分析。

角度的精確值與系統中處理過后的三角函數值,精度基本為10- 5,所得誤差在接受范圍內。從仿真圖可以看到,該系統能完成對傾斜車牌圖像的校正,對于圖像的效果需要接下來的車牌識別的步驟得以完善,最終呈現出一副端正清晰地車牌圖像。

參考文獻:

[l]史其信,陸化普.中國ITS發展戰略構想.公路交通科技.1998.

[2] 孔德元.針對正余弦計算的CORDIC算法優化及其FPGA實現:[碩士學位論文].長沙:中南大學,2008.

[3]商爾科,李健,安向京等.基于FPGA的實時Hough變換.計算機工程.2010,36(16).

[4]曾祥萍.實時圖像的電子消旋技術:[碩士學位論文].西安:中國科學院光電技術研究所,2006.

[5]李洪偉.圖像跟蹤器中視頻處理系統的設計與電子消像旋的實現:[碩士學位論文].成都:電子科技大學,2006.

[6]王新新,于素萍,趙小明.基于CORDIC算法的Hough變換及其FPGA實現.通信技術2010,7(43)

[7]Tso- Bing Juang,Ming- Y u Tsai.Para- CORDIC:Parallel CORDIC RotationAlgorithm[J].IEEE Transactions on Circuits and Systems,2004,51(8):1515- 1524.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合