《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的二維碼圖像旋轉(zhuǎn)系統(tǒng)
基于FPGA的二維碼圖像旋轉(zhuǎn)系統(tǒng)
來(lái)源:電子技術(shù)應(yīng)用2012年第7期
陳 怡,張 萌
電子科技大學(xué) 電子薄膜與集成器件國(guó)家重點(diǎn)實(shí)驗(yàn)室,四川 成都610054
摘要: 闡述了在圖像預(yù)處理階段將二維碼圖像旋轉(zhuǎn)至端正的必要性。設(shè)計(jì)了一種求取QR二維碼圖像旋轉(zhuǎn)角度的算法以及一種可將二維碼圖像旋轉(zhuǎn)任意角度的算法。求取旋轉(zhuǎn)角度算法簡(jiǎn)捷有效,能以較低的硬件代價(jià)實(shí)現(xiàn)。圖像旋轉(zhuǎn)算法利用了CORDIC算法以及雙線性插值算法,采用高速流水線架構(gòu)在FPGA上實(shí)現(xiàn)。整個(gè)設(shè)計(jì)在Altera公司的DE2平臺(tái)下進(jìn)行了驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,這兩種算法結(jié)合使用可以快速有效地將帶有一定歪斜角度的二維碼圖像旋轉(zhuǎn)端正,速度可以達(dá)到90.9 MHz,旋轉(zhuǎn)后的圖像細(xì)節(jié)清晰,能有效提高二維碼的識(shí)別率。
中圖分類(lèi)號(hào): TP391
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)07-0012-02
2-D barcode image rotation system based on FPGA
Chen Yi,Zhang Meng
State key Laboratory of Electronic Thin Films and Integrated Devices, University of Electronic Science and Technology of China,Chengdu 610054,China
Abstract: Image rotation is a necessity for 2-D barcode identification. This paper presents a novel VLSI structure for image rotation which can calculate the tilt angle of 2-D barcode image and rotate image to the horizontal way. The circuit to calculate the tilt angel of 2-D barcode is simple and effective and can be implemented with low hardware complexity. Image rotation algorithm takes use of improved CORDIC algorithm and Bi-linear interpolation and is implemented by high-speed pipelined architecture. The proposed architecture is implemented on the Altera Stratix IV FPGA. The whole design is validated in Altera's DE2 workbench. Experimental results show that the proposed architecture can rotate 2-D barcode images with arbitrary tilt angles to the horizontal way at 90.9MHz. Moreover, it can keep image details clear thus improving 2-D barcode identification rate.
Key words : image rotation;FPGA;2-D barcode;CORDIC

    近年來(lái),物聯(lián)網(wǎng)技術(shù)高速發(fā)展,已成為各國(guó)的發(fā)展戰(zhàn)略,受到高度重視。在物聯(lián)網(wǎng)的應(yīng)用和實(shí)現(xiàn)過(guò)程中,條碼技術(shù)(可分為一維條碼和二維條碼)是信息識(shí)別領(lǐng)域最為重要和關(guān)鍵的技術(shù)之一。如今二維條碼技術(shù)已經(jīng)在物流、通信和工業(yè)領(lǐng)域中得到了廣泛應(yīng)用[1]。

    因圖像采集環(huán)境復(fù)雜多變,采集到的二維碼必須進(jìn)行圖像處理才能達(dá)到理想的識(shí)別率。二維碼圖像預(yù)處理包括灰度化、濾波去噪、二值化、圖像旋轉(zhuǎn)和圖像去光照等步驟。由于通過(guò)攝像頭采集到的圖像或多或少都會(huì)有一定的歪斜,所以將圖像旋轉(zhuǎn)端正對(duì)二維碼圖像識(shí)別來(lái)說(shuō)是必不可少的[2-3]。
    本文基于CORDIC算法,設(shè)計(jì)了一種高速流水線的圖像旋轉(zhuǎn)算法。算法只包含加法和移位操作,在FPGA上的驗(yàn)證結(jié)果表明,本設(shè)計(jì)的電路精度高,速度快,可以適用于實(shí)時(shí)二維碼圖像識(shí)別。
1 二維碼圖像采集和顯示
    在本系統(tǒng)中,圖像采集采用OV7620攝像頭。OV7620是一種CMOS圖像傳感器,具有軟件可編程性,可以通過(guò)SCCB總線協(xié)議進(jìn)行其工作模式的配置,被廣泛應(yīng)用在網(wǎng)絡(luò)攝像頭、攝像手機(jī)等產(chǎn)品中。首先基于SCCB協(xié)議的寄存器配置電路對(duì)OV7620進(jìn)行初始化,然后設(shè)計(jì)了攝像頭圖像采集程序,通過(guò)SRAM控制器將采集到的圖像存入SRAM中,并在LCD上實(shí)時(shí)顯示出來(lái)。攝像頭采集與顯示框圖如圖1所示。

2 圖像旋轉(zhuǎn)角度的獲取
    由于受采集環(huán)境、攝像頭和圖像采集者等多種因素的影響,采集到的二維碼圖像一般都會(huì)有一定的歪斜。要將二維碼圖像旋轉(zhuǎn)端正,首先需要知道二維碼圖像歪斜的角度。QR碼圖像在左上角、左下角和右上角各有一個(gè)位置探測(cè)圖形,每個(gè)位置探測(cè)圖形可以看作是由3個(gè)重疊且同心的正方形組成,它們分別為7×7個(gè)深色模塊、5×5個(gè)淺色模塊和3×3個(gè)深色模塊。如圖2所示,位置探測(cè)圖形的模塊寬度比為1:1:3:1:1。符號(hào)中其他地方遇到類(lèi)似圖形的可能性極小,因此可以通過(guò)掃描整個(gè)二維碼圖像找出3個(gè)位置探測(cè)圖形,根據(jù)3個(gè)位置探測(cè)圖形的相對(duì)位置判斷出圖像的歪斜角度。

    式(3)為CORDIC算法的基本旋轉(zhuǎn)公式??梢钥闯?,CORDIC算法是由一系列簡(jiǎn)單的移位和加法操作組成的。它實(shí)際上是一種逐次逼近的坐標(biāo)旋轉(zhuǎn)方法,每次旋轉(zhuǎn)都使累加的旋轉(zhuǎn)角度之和與目標(biāo)旋轉(zhuǎn)角更接近。迭代次數(shù)n越大,旋轉(zhuǎn)的角度就與真實(shí)的角度越接近。在實(shí)際應(yīng)用中,受硬件資源限制,不可能迭代很多次。實(shí)際上,對(duì)于n次迭代,CORDIC算法的旋轉(zhuǎn)精度為arctan2-(n-1)。當(dāng)n=8時(shí),旋轉(zhuǎn)精度可達(dá)0.447 6°,滿(mǎn)足實(shí)際應(yīng)用的需要[4]。
 

 


    由于計(jì)算過(guò)程中包含小數(shù),所以在硬件結(jié)構(gòu)中將原始數(shù)據(jù)左移8位進(jìn)行擴(kuò)張,在CORDIC單元最后將計(jì)算得到的數(shù)據(jù)的低8位提取出來(lái)作為小數(shù)部分即可。
5 實(shí)驗(yàn)結(jié)果分析
    本實(shí)驗(yàn)中設(shè)計(jì)了攝像頭采集程序以及液晶驅(qū)動(dòng)程序。可以通過(guò)攝像頭實(shí)時(shí)采集圖像;將采集到的圖像通過(guò)灰度化、中值濾波和二值化處理后,存入SRAM中;隨后電路開(kāi)始讀取SRAM中的圖像并求出歪斜角度,通過(guò)圖像旋轉(zhuǎn)電路將圖像旋轉(zhuǎn)端正。整個(gè)設(shè)計(jì)全部采用Verilog HDL語(yǔ)言編寫(xiě)。采用Synplify Pro、Quartus II 9.1和Modelsim 6.5SE仿真和實(shí)現(xiàn)了整個(gè)設(shè)計(jì),并在DE2開(kāi)發(fā)板上對(duì)本設(shè)計(jì)進(jìn)行了驗(yàn)證。
    通過(guò)實(shí)驗(yàn)結(jié)果可知,電路最大工作頻率可以達(dá)到90.9 MHz;整個(gè)系統(tǒng)消耗了1 289個(gè)組合邏輯單元和483個(gè)寄存器單元;求得一個(gè)旋轉(zhuǎn)過(guò)后的像素值需要6個(gè)時(shí)鐘周期,因此本二維碼圖像旋轉(zhuǎn)系統(tǒng)處理640×480像素的圖像的幀率為49 f/s,該速度完全可以滿(mǎn)足實(shí)際要求。上述驗(yàn)證結(jié)果表明,本設(shè)計(jì)的二維碼圖像旋轉(zhuǎn)系統(tǒng)具有速度快、復(fù)雜度低的特點(diǎn)。
參考文獻(xiàn)
[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] 李杰明,鄭學(xué)仁.基于CORDIC算法的數(shù)字圖像旋轉(zhuǎn)實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2009,35(6):72-74.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。