《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于SoPC的QR二維碼識別系統設計
基于SoPC的QR二維碼識別系統設計
2014年微型機與應用第10期
李婉婉,胡文龍,李 宏,雷 霞
寧波大學 信息科學與工程學院,浙江 寧波
摘要: 隨著信息技術的發(fā)展,條碼技術作為一種在全球范圍內廣泛使用的自動識別技術,在交通運輸、物流倉儲、商品銷售、生產自動化管理等領域發(fā)揮了巨大的作用,條碼技術的使用,極大地提高了數據采集和信息處理的速度,為現代社會的發(fā)展做出了重要貢獻[1-2]。
關鍵詞: SoPC QR二維碼 NiosII FPGA
Abstract:
Key words :

  摘  要: 介紹了一種基于SoPCQR二維碼識別系統,其目的在于為手持和嵌入式設備提供一種識別速度快、成本低、接口靈活的QR碼識讀方案。該系統包括圖像采集、圖像預處理、QR碼解碼及糾錯、外設接口等組成單元。圖像采集單元驅動CMOS攝像頭獲取QR碼圖像,圖像預處理單元將QR碼圖像進行一系列預處理以方便解碼,QR碼解碼及糾錯單元實現對QR碼的糾錯與解碼。

  關鍵詞: SoPC;QR二維碼;NIOS II;FPGA

  隨著信息技術的發(fā)展,條碼技術作為一種在全球范圍內廣泛使用的自動識別技術,在交通運輸、物流倉儲、商品銷售、生產自動化管理等領域發(fā)揮了巨大的作用,條碼技術的使用,極大地提高了數據采集和信息處理的速度,為現代社會的發(fā)展做出了重要貢獻[1-2]。

  二維條碼是在一維條碼無法滿足實際應用需求的前提下產生的,相比一維條碼,其具有信息容量大、支持多種字符、可加密、可糾錯等突出優(yōu)點。但由此產生的問題是二維條碼的識別比一維條碼復雜,識讀設備成本高、耗時長,限制了二維條碼的進一步發(fā)展[3]。

  本文選取二維條碼中使用最廣的QR(Quick Response)二維碼,在分析國內外QR二維條碼識讀方案的基礎上,提出了一種基于SoPC的QR二維條碼識別系統設計,能夠降低識讀設備成本,對QR二維條碼在國內的推廣普及、便利人們的生活具有重要意義。

  1 基于SoPC的QR二維碼識別系統設計

  1.1 系統平臺設計

  基于DE2開發(fā)板搭建的識別系統平臺如圖1所示。圖中虛線框為基于友晶DE2開發(fā)平臺定制的SoPC系統,包括NIOS II處理器、圖像采集、圖像預處理、QR碼識別硬件加速、外設接口及存儲等組成單元[4]。圖像采集單元通過圖像采集模塊驅動CMOS攝像頭獲取QR碼圖像。圖像預處理單元根據攝像頭獲取的QR碼圖像進行一系列預處理以方便解碼。QR碼識別硬件加速單元結合NIOS II處理器對處理后的QR圖像進行解碼。外設接口單元主要包括按鍵及LCD顯示,存儲單元包括SRAM、SDRAM、Flash等存儲器及其控制接口[4]。

008.jpg

  1.2 圖像采集與顯示

  QR碼圖像由OV7670攝像頭獲取,有兩種顯示方式,一種是拍攝QR碼圖像時實時顯示拍攝畫面;另一種是解碼完成后,由NIOS II處理器驅動LCD顯示解碼結果。其結構圖如圖2所示。

009.jpg

  1.3 圖像預處理的FPGA實現

  圖像采集單元獲得的為RGB彩色圖像,首先將其灰度化以方便處理,然后進行中值濾波以濾除噪聲,再進行二值化以分離背景,最后通過幾何校正消除拍照角度的影響,其處理流程如圖3所示[3]。

010.jpg

  1.3.1 圖像的灰度化

  圖像灰度化是將攝像頭獲取的RGB565數據提取亮度分量Y,FPGA實現方式如下:

  (1)將RGB565數據轉變?yōu)镽GB888數據;

  (2)RGB888數據提取亮度分量Y:

  Y=0.299R+0.587G+0.114B(1)

  將式(1)兩邊系數分別乘以256,將系數取整后變形為:

  256Y=(64+8+4)R+(128+16+4+2)G+(16+8+4+2)B

  (2)

  通過式(2)可以將小數乘法轉換為移位和加法,可方便地在FPGA中實現。

  1.3.2 圖像的中值濾波

  圖像中值濾波可以有效濾除攝像頭引入的噪聲,并能很好地保持圖像的邊沿[2]。在FPGA實現時,需要先產生濾波窗口,然后對窗口中的數據進行快速排序,選取中值替換原來的灰度值。由FPGA實現的中值濾波框圖如圖4所示。由圖4可知,生成3×3濾波窗口后,可以進行快速排序選取中值。

011.jpg

  1.3.3 圖像的二值化

  以某一灰度t為門限將圖像分割成2個區(qū)域:灰度小于等于t的像素區(qū)域A(目標類)和灰度大于t的像素區(qū)域B(背景類)。大津法把兩類的類間方差作為判別準則,認為使得σ2值最大的t即為所求的最佳閾值(方差越大,說明構成圖像的兩部分差別越大)。

  

33.png

  其中,PA、PB表示A、B兩類出現的概率,?棕A、?棕B表示A、B兩類的灰度均值,?棕O表示總的灰度均值,σ2為類間方差。為方便在FPGA中進行處理,對式(3)化簡如下:

433E_45}`F0IF4$8QP(NI}I.jpg

  ini為灰度值>t的所有像素點的累計灰度。因為N是已知的,只要求得式(4)右邊式子中最大的t即為所求的最佳閾值。FPGA實現框圖如圖5所示。

012.jpg


  其中,統計模塊1統計圖像總像素數和總的累計灰度,統計模塊2統計各灰度值對應的像素點數,統計模塊3統計小于等于灰度值i的所有像素點數,統計模塊4統計小于等于灰度值i的所有像素點的累計灰度。得到上述值后就可以送到計算模塊計算各灰度值對應的類間方差,取類間方差最大的灰度值作為最佳閾值,對圖像進行二值化。

  1.3.4 圖像的幾何校正

  由于攝像頭拍攝角度的原因,二維碼圖像一般都會有一定的偏轉角度,為方便解碼,通常先將二維碼進行旋轉使其端正[3]。QR碼圖像在左上角、左下角和右上角各有一個位置探測圖形,每個位置探測圖形可以看作是由3個重疊的同心正方形組成的,其模塊寬度比為1:1:3:1:1,符號中其他地方遇到類似圖形的可能性極小,因此可以通過掃描整個二維碼圖像來找出3個位置探測圖形,根據3個位置探測圖形的相對位置判斷出圖像的偏轉角度θ,如圖6所示。

013.jpg

  設(x,y)為原圖像旋轉角度后的新坐標,(x′,y′)為原圖像中的對應坐標。則(x,y)與(x′,y′)的對應關系為[5]:

  x′=cosθ(x+y×tanθ)

  y′=cosθ(y-x×tanθ)(5)

  由式(5),結合NIOS II處理器,就可以將圖像旋轉至端正,使其便于解碼。

  1.4 QR二維碼解碼實現

014.jpg

  圖7所示為QR碼符號版本7的結構圖,每個QR碼符號由名義上的正方形模塊構成,組成一個正方形陣列,由編碼區(qū)域和包括位置探測圖形、分隔符、定位圖形、校正圖形在內的功能圖形組成。功能圖形不能用于數據編碼。符號的四周由空白區(qū)包圍。另外有格式信息區(qū)域、版本信息區(qū)域以及數據和糾錯碼字區(qū)域[5,2]。

015.jpg

  根據QR二維碼圖像特點,在NIOS II中進行解碼的子程序的軟件流程圖如圖8所示。當采集到QR碼圖像經過圖像預處理后,得到的是端正的二值圖像,進行以下操作:(1)掃描位置探測圖形以定位QR圖像;(2)確定校正圖形中點,求取模塊寬度;(3)對圖像建立采樣網絡以獲取采樣數據,從采樣數據中可以得到格式以及掩膜信息;(4)根據格式及掩膜信息從采樣數據中提取QR編碼數據并糾錯;(5)解碼數據得到最終信息[2,7]。

016.jpg

  2 系統測試

  系統搭建完成后,利用PsqrEdit_Zh軟件制作了一系列QR碼來測試系統的性能,圖9所示為其中一幅QR碼圖像的識別,可以看到其版本為2、糾錯等級為L、包含的信息為一張英文名片。本設計制作了不同版本、不同糾錯等級的QR碼30張,可以識別其中的23張,識別率為76.7%。分析識別不了的主要原因是所采用的攝像頭的分辨率只有320×240,當QR碼模塊數較多時,該分辨率下不足以對QR碼圖像進行正確采樣。這一問題可以通過更換性能更好的攝像頭解決。

  實驗證明本系統工作穩(wěn)定、識別速度快、識別率較高,并且具有集成度高、接口靈活、成本低等優(yōu)點,可以很方便地用于手持設備和嵌入式設備中。該系統對QR二維條碼在國內的推廣普及、便利人們的生活具有重要意義。

  參考文獻

  [1] 國家質量技術監(jiān)督局.快速響應矩陣碼[M].北京:中國標準出版社,2001.

  [2] 中國物品編碼中心.二維條碼技術與應用[M].北京:中國計量出版社,2007.

  [3] 劉東,高兩全.QR碼圖像處理及識別算法研究[J].信息技術,2004,28(1):61-63.

  [4] 基于SoPC的二維條碼PDF417識別系統的設計[D].重慶:重慶大學,2009.

  [5] 陳怡,張萌.基于FPGA的二維碼圖像旋轉系統[J].電子技術應用,2012,38(7):12-14.

  [6] Altera.SoPC builder handbook[EB/OL].http://www.altera.com.cn/literature/lit-sop.jsp,2011-07.


此內容為AET網站原創(chuàng),未經授權禁止轉載。