《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種基于ADI低成本DSP實(shí)現(xiàn)的QR碼識(shí)別系統(tǒng)
一種基于ADI低成本DSP實(shí)現(xiàn)的QR碼識(shí)別系統(tǒng)
來源:電子技術(shù)應(yīng)用2013年第4期
余維克,黎福海
湖南大學(xué) 電氣與信息工程學(xué)院,湖南 長(zhǎng)沙410082
摘要: 設(shè)計(jì)了一種可在ADI低成本DSP(小內(nèi)存平臺(tái))上實(shí)現(xiàn)的QR碼識(shí)別系統(tǒng),并在以BF592為核心的硬件平臺(tái)上實(shí)現(xiàn)。系統(tǒng)基于圖像處理方法,在32 KB的數(shù)據(jù)空間內(nèi)實(shí)現(xiàn)了二值化壓縮并行的圖像采集時(shí)序、多個(gè)方向掃描對(duì)QR碼進(jìn)行定位、采樣解碼等功能。經(jīng)測(cè)試,該系統(tǒng)取得了良好的識(shí)別效果。
中圖分類號(hào): TP368.2
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)04-0042-03
QR code decoding system based on ADI low-cost DSP
Yu Weike,Li Fuhai
College of Electrical and Information Engineering, Hunan University,Changsha 410082,China
Abstract: A QR code decoding system which can be implemented on ADI low-cost DSP is designed. The system is based on image processing and implemented on the hardware platform with center processor BF592. The whole system is running within 32 KB data memory, including image capturing and displaying, image storing and thresholding using paralleled timing, QR code detection with multi-direction scanning, sampling and decoding and so on. The experimental result shows the good performance of the system.
Key words : QR decode;image processing;small-memory;BF592

    近年來,隨著數(shù)字圖像處理技術(shù)的發(fā)展,二維碼技術(shù)獲得了廣泛應(yīng)用。QR(Quick Response)碼是常見二維碼中的一類,于1994年由日本DENSO WAVE公司發(fā)明,目前在火車票、門票、網(wǎng)站、廣告等多種信息傳播媒介中得到普及。與常見的條形碼相比,同等面積的QR碼具有更大的信息容量。

    QR碼識(shí)別設(shè)備一般為嵌入式設(shè)備,與個(gè)人電腦相比,嵌入式設(shè)備對(duì)成本和功耗等方面有較高的要求,因此其內(nèi)部存儲(chǔ)空間通常較小。本文針對(duì)這種情況,在以ADSP-BF592為核心處理器的硬件平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)了一種QR碼識(shí)別系統(tǒng)。該系統(tǒng)通過采集與二值化并行的方法采入二值圖像以提高內(nèi)存對(duì)圖像的容納力,識(shí)別過程中避免了常規(guī)圖像處理算法中大量的內(nèi)存分配,成功地在小內(nèi)存平臺(tái)上實(shí)現(xiàn)了QR碼識(shí)別功能。
1 系統(tǒng)硬件平臺(tái)
    系統(tǒng)以ADSP-BF592為核心處理單元,采用一個(gè)CMOS單板攝像頭拍攝QR碼圖像信息,在DSP內(nèi)部存儲(chǔ)空間運(yùn)行QR碼識(shí)別算法,并將識(shí)別結(jié)果顯示在LCD屏上。系統(tǒng)硬件平臺(tái)框圖如圖1所示。

    ADSP-BF592是ADI公司Blackfin系列處理器產(chǎn)品系列中的一款DSP,低成本、低功耗的特點(diǎn)使其通常用于嵌入式產(chǎn)品中。BF592提供200 MHz和400 MHz內(nèi)核時(shí)鐘速度,具有豐富的外設(shè),包括2個(gè)SPORT口、1個(gè)PPI、2個(gè)SPI、4個(gè)通用計(jì)數(shù)器以及1個(gè)包含VDK RTOS和C運(yùn)行庫的工廠編程指令ROM塊[1-2]。但是BF592的內(nèi)部?jī)H有32 KB的代碼空間和32 KB數(shù)據(jù)空間,且沒有外部總線,這在一定程度上限制了其實(shí)現(xiàn)常見的圖像處理算法。
    CMOS攝像頭通過PPI和TWI接口與DSP連接,分別用于采集圖像和配置攝像頭;顯示拍攝到的灰度圖像的TFT屏通過SPORT接口與DSP連接;顯示QR碼識(shí)別結(jié)果的LCD屏通過SPI接口與DSP連接。

 


2 圖像采集與二值化
2.1 二值化

    QR碼存儲(chǔ)的信息均為二值信息,所以二值化是QR碼識(shí)別中必要的一步。本文采用最大類間方差法對(duì)圖像進(jìn)行全局二值化[3]。該方法是一種自適應(yīng)的閾值確定的方法,又叫大津法,簡(jiǎn)稱OTSU。二值化即依據(jù)灰度特征將圖像分割為前景和背景兩類,OTSU法通過最大化前景與背景之間的方差選取最佳閾值。類間方差?滓b2(t)可表示為:

    為簡(jiǎn)化描述,假設(shè)采集的二值圖像的寬和高均為448像素,具體時(shí)序可描述如下:
    (1)采集一幅158×158像素的低分辨率灰度圖像。利用OTSU法算出其閾值t*;
    (2)釋放低分辨率灰度圖像,分配大小為25 088 B的二值圖像內(nèi)存,并開辟兩塊臨時(shí)內(nèi)存A、B,大小均為448 B,分別用于臨時(shí)存儲(chǔ)灰度圖像中的一行;
    (3)將內(nèi)存A中的每個(gè)字節(jié)與閾值t*進(jìn)行比較,并將每8個(gè)像素拼成1 B存入二值圖像內(nèi)存。與此同時(shí),用DMA方式將一行圖像的448個(gè)像素點(diǎn)存入內(nèi)存B;
    (4)與步驟(3)類似,將內(nèi)存A中的字節(jié)二值化壓縮存入二值圖像中,同時(shí)將一行圖像的448個(gè)像素點(diǎn)存入內(nèi)存B;
    (5)重復(fù)步驟(3)與步驟(4),直到圖像傳輸完畢;
    (6)釋放內(nèi)存A、B。
    基于以上方法,本文設(shè)計(jì)的系統(tǒng)可采集448×448像素的二值圖像,圖像分辨率顯著提高,降低了QR碼的識(shí)別難度。
3 QR碼的定位與識(shí)別
3.1 定位

    QR碼定位通常使用傳統(tǒng)的圖像處理方法,如邊沿檢測(cè)、Hough變換、離散余弦變換[4]等,然而這些方法都需要較大的內(nèi)存,無法適應(yīng)小內(nèi)存的場(chǎng)景。本文針對(duì)小內(nèi)存平臺(tái),利用QR碼位置探測(cè)圖形(Finder Pattern)的比例關(guān)系對(duì)QR碼進(jìn)行搜索定位。QR碼的結(jié)構(gòu)如圖3所示,在QR碼有3個(gè)相同的位置探測(cè)圖形,分別位于其左上角、右上角和左下角。每個(gè)位置探測(cè)圖形可以看作3個(gè)重疊的同心正方形組成,它們分別為7×7個(gè)深色模塊、5×5個(gè)淺色模塊、3×3個(gè)深色模塊。

    位置探測(cè)圖形的特征如圖4所示,其模塊的寬度比為1:1:3:1:1,且此特征具有縮放和旋轉(zhuǎn)不變性。符號(hào)中其他地方遇到類似圖形的可能性極小,因此可以在視場(chǎng)中迅速識(shí)別可能的QR碼符號(hào)[5]。通過識(shí)別QR碼的3個(gè)位置探測(cè)圖形,可以明確地確定視場(chǎng)中QR碼的位置和方向。具體過程可描述為:
    (1)對(duì)圖像進(jìn)行多個(gè)方向的掃描,對(duì)于每個(gè)方向,都標(biāo)記出模塊寬度比接近1:1:3:1:1的位置;
    (2)尋找在每個(gè)方向上都有標(biāo)記的特征位置并求其交點(diǎn)。所求交點(diǎn)即可作為位置探測(cè)圖形的中心。
    該方法同樣可應(yīng)用于定位QR碼的校正圖形(Alignment Pattern)。

位置探測(cè)圖形定位結(jié)果,其他網(wǎng)格線為采樣網(wǎng)格。
    對(duì)于位置探測(cè)圖形受到嚴(yán)重污染的情況,由于內(nèi)存對(duì)于算法的限制,本文并沒有做相應(yīng)處理,可能造成識(shí)別失敗。這種情況可通過適當(dāng)增加系統(tǒng)內(nèi)存解決,如采用BF52x系列處理器[8-9]。
    本文主要針對(duì)小內(nèi)存平臺(tái)上的圖像處理情形,主要設(shè)計(jì)了圖像采集、QR碼定位算法。本文介紹的圖像采集方法也可運(yùn)用在其他小內(nèi)存的圖像處理系統(tǒng)中。實(shí)驗(yàn)結(jié)果表明,本算法占用內(nèi)存小,速度快,適應(yīng)性較強(qiáng),能適用于實(shí)際系統(tǒng)。
參考文獻(xiàn)
[1] ADSP-BF59x blackfin processor hardware reference(Revision 1.0)[Z].Analog Devices Inc,2011.
[2] ADSP-BF592 blackfin embedded processor data sheet(Rev A)[Z].Analog Devices Inc,2011.
[3] OTSU N.A threshold selecti on method from gray-level histograms[J].IEEE Trans.on Systems Man and Cybernetics,1979,9(1):62-66.
[4] 李璐.面向手機(jī)的二維條碼定位識(shí)別算法的研究[D].合肥:合肥工業(yè)大學(xué),2007.
[5] 張民,鄭建立.基于符號(hào)特征的QR碼識(shí)別算法[J].計(jì)算機(jī)工程,2011,37(4):278-280.
[6] FALAS T,HOSSEIN K.Two-dimensional bar-code decoding with camera-equipped mobile phones[C].Fifth Annual IEEE  International Conference,White Plains,NY,2007.
[7] 國家質(zhì)量技術(shù)監(jiān)督局.GB/T18284-2000快速響應(yīng)矩陣碼[S].2000.
[8] ADSP-BF52x blackfin processor hardware reference(Revision 1.0)[Z].Analog Devices Inc,2010.
[9] ADSP-BF522/ADSP-BF523/ADSP-BF524/ADSP-BF525/ADSP-BF526/ADSP-BF527 blackfin embedded processor data sheet(Rev C)[Z].Analog Devices Inc,2012.

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