文獻標識碼: A
文章編號: 0258-7998(2012)07-0012-02
近年來,物聯網技術高速發展,已成為各國的發展戰略,受到高度重視。在物聯網的應用和實現過程中,條碼技術(可分為一維條碼和二維條碼)是信息識別領域最為重要和關鍵的技術之一。如今二維條碼技術已經在物流、通信和工業領域中得到了廣泛應用[1]。
因圖像采集環境復雜多變,采集到的二維碼必須進行圖像處理才能達到理想的識別率。二維碼圖像預處理包括灰度化、濾波去噪、二值化、圖像旋轉和圖像去光照等步驟。由于通過攝像頭采集到的圖像或多或少都會有一定的歪斜,所以將圖像旋轉端正對二維碼圖像識別來說是必不可少的[2-3]。
本文基于CORDIC算法,設計了一種高速流水線的圖像旋轉算法。算法只包含加法和移位操作,在FPGA上的驗證結果表明,本設計的電路精度高,速度快,可以適用于實時二維碼圖像識別。
1 二維碼圖像采集和顯示
在本系統中,圖像采集采用OV7620攝像頭。OV7620是一種CMOS圖像傳感器,具有軟件可編程性,可以通過SCCB總線協議進行其工作模式的配置,被廣泛應用在網絡攝像頭、攝像手機等產品中。首先基于SCCB協議的寄存器配置電路對OV7620進行初始化,然后設計了攝像頭圖像采集程序,通過SRAM控制器將采集到的圖像存入SRAM中,并在LCD上實時顯示出來。攝像頭采集與顯示框圖如圖1所示。
2 圖像旋轉角度的獲取
由于受采集環境、攝像頭和圖像采集者等多種因素的影響,采集到的二維碼圖像一般都會有一定的歪斜。要將二維碼圖像旋轉端正,首先需要知道二維碼圖像歪斜的角度。QR碼圖像在左上角、左下角和右上角各有一個位置探測圖形,每個位置探測圖形可以看作是由3個重疊且同心的正方形組成,它們分別為7×7個深色模塊、5×5個淺色模塊和3×3個深色模塊。如圖2所示,位置探測圖形的模塊寬度比為1:1:3:1:1。符號中其他地方遇到類似圖形的可能性極小,因此可以通過掃描整個二維碼圖像找出3個位置探測圖形,根據3個位置探測圖形的相對位置判斷出圖像的歪斜角度。
式(3)為CORDIC算法的基本旋轉公式。可以看出,CORDIC算法是由一系列簡單的移位和加法操作組成的。它實際上是一種逐次逼近的坐標旋轉方法,每次旋轉都使累加的旋轉角度之和與目標旋轉角更接近。迭代次數n越大,旋轉的角度就與真實的角度越接近。在實際應用中,受硬件資源限制,不可能迭代很多次。實際上,對于n次迭代,CORDIC算法的旋轉精度為arctan2-(n-1)。當n=8時,旋轉精度可達0.447 6°,滿足實際應用的需要[4]。
由于計算過程中包含小數,所以在硬件結構中將原始數據左移8位進行擴張,在CORDIC單元最后將計算得到的數據的低8位提取出來作為小數部分即可。
5 實驗結果分析
本實驗中設計了攝像頭采集程序以及液晶驅動程序??梢酝ㄟ^攝像頭實時采集圖像;將采集到的圖像通過灰度化、中值濾波和二值化處理后,存入SRAM中;隨后電路開始讀取SRAM中的圖像并求出歪斜角度,通過圖像旋轉電路將圖像旋轉端正。整個設計全部采用Verilog HDL語言編寫。采用Synplify Pro、Quartus II 9.1和Modelsim 6.5SE仿真和實現了整個設計,并在DE2開發板上對本設計進行了驗證。
通過實驗結果可知,電路最大工作頻率可以達到90.9 MHz;整個系統消耗了1 289個組合邏輯單元和483個寄存器單元;求得一個旋轉過后的像素值需要6個時鐘周期,因此本二維碼圖像旋轉系統處理640×480像素的圖像的幀率為49 f/s,該速度完全可以滿足實際要求。上述驗證結果表明,本設計的二維碼圖像旋轉系統具有速度快、復雜度低的特點。
參考文獻
[1] GHOSH I,MAJUMDAR B.Design of an application specificVLSI chip for image rotation[C].Calcutta:Proceedings of the Seventh International Conference on VLSI Design,
1994:275-278.
[2] SUCHITRA S,LAM S K,SRIKANTHAN T.Novel schemes for high-throughput image rotation[C].Singapore:Conference Record of the Thirty-Eighth Asilomar Conference on Signals, Systems and Computers,2004,2:1884-1888.
[3] Jiang Xiaogang,Zhou Jianyang,Shi Jianghong,et al.FPGA implementation of image rotation using modified compensated CORDIC[C].6th International Conference on ASIC,2005:752-756.
[4] 李杰明,鄭學仁.基于CORDIC算法的數字圖像旋轉實現[J].電子技術應用,2009,35(6):72-74.