文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)04-0042-03
近年來,隨著數(shù)字圖像處理技術(shù)的發(fā)展,二維碼技術(shù)獲得了廣泛應(yīng)用。QR(Quick Response)碼是常見二維碼中的一類,于1994年由日本DENSO WAVE公司發(fā)明,目前在火車票、門票、網(wǎng)站、廣告等多種信息傳播媒介中得到普及。與常見的條形碼相比,同等面積的QR碼具有更大的信息容量。
QR碼識別設(shè)備一般為嵌入式設(shè)備,與個人電腦相比,嵌入式設(shè)備對成本和功耗等方面有較高的要求,因此其內(nèi)部存儲空間通常較小。本文針對這種情況,在以ADSP-BF592為核心處理器的硬件平臺上設(shè)計并實現(xiàn)了一種QR碼識別系統(tǒng)。該系統(tǒng)通過采集與二值化并行的方法采入二值圖像以提高內(nèi)存對圖像的容納力,識別過程中避免了常規(guī)圖像處理算法中大量的內(nèi)存分配,成功地在小內(nèi)存平臺上實現(xiàn)了QR碼識別功能。
1 系統(tǒng)硬件平臺
系統(tǒng)以ADSP-BF592為核心處理單元,采用一個CMOS單板攝像頭拍攝QR碼圖像信息,在DSP內(nèi)部存儲空間運行QR碼識別算法,并將識別結(jié)果顯示在LCD屏上。系統(tǒng)硬件平臺框圖如圖1所示。
ADSP-BF592是ADI公司Blackfin系列處理器產(chǎn)品系列中的一款DSP,低成本、低功耗的特點使其通常用于嵌入式產(chǎn)品中。BF592提供200 MHz和400 MHz內(nèi)核時鐘速度,具有豐富的外設(shè),包括2個SPORT口、1個PPI、2個SPI、4個通用計數(shù)器以及1個包含VDK RTOS和C運行庫的工廠編程指令ROM塊[1-2]。但是BF592的內(nèi)部僅有32 KB的代碼空間和32 KB數(shù)據(jù)空間,且沒有外部總線,這在一定程度上限制了其實現(xiàn)常見的圖像處理算法。
CMOS攝像頭通過PPI和TWI接口與DSP連接,分別用于采集圖像和配置攝像頭;顯示拍攝到的灰度圖像的TFT屏通過SPORT接口與DSP連接;顯示QR碼識別結(jié)果的LCD屏通過SPI接口與DSP連接。
2 圖像采集與二值化
2.1 二值化
QR碼存儲的信息均為二值信息,所以二值化是QR碼識別中必要的一步。本文采用最大類間方差法對圖像進(jìn)行全局二值化[3]。該方法是一種自適應(yīng)的閾值確定的方法,又叫大津法,簡稱OTSU。二值化即依據(jù)灰度特征將圖像分割為前景和背景兩類,OTSU法通過最大化前景與背景之間的方差選取最佳閾值。類間方差?滓b2(t)可表示為:
為簡化描述,假設(shè)采集的二值圖像的寬和高均為448像素,具體時序可描述如下:
(1)采集一幅158×158像素的低分辨率灰度圖像。利用OTSU法算出其閾值t*;
(2)釋放低分辨率灰度圖像,分配大小為25 088 B的二值圖像內(nèi)存,并開辟兩塊臨時內(nèi)存A、B,大小均為448 B,分別用于臨時存儲灰度圖像中的一行;
(3)將內(nèi)存A中的每個字節(jié)與閾值t*進(jìn)行比較,并將每8個像素拼成1 B存入二值圖像內(nèi)存。與此同時,用DMA方式將一行圖像的448個像素點存入內(nèi)存B;
(4)與步驟(3)類似,將內(nèi)存A中的字節(jié)二值化壓縮存入二值圖像中,同時將一行圖像的448個像素點存入內(nèi)存B;
(5)重復(fù)步驟(3)與步驟(4),直到圖像傳輸完畢;
(6)釋放內(nèi)存A、B。
基于以上方法,本文設(shè)計的系統(tǒng)可采集448×448像素的二值圖像,圖像分辨率顯著提高,降低了QR碼的識別難度。
3 QR碼的定位與識別
3.1 定位
QR碼定位通常使用傳統(tǒng)的圖像處理方法,如邊沿檢測、Hough變換、離散余弦變換[4]等,然而這些方法都需要較大的內(nèi)存,無法適應(yīng)小內(nèi)存的場景。本文針對小內(nèi)存平臺,利用QR碼位置探測圖形(Finder Pattern)的比例關(guān)系對QR碼進(jìn)行搜索定位。QR碼的結(jié)構(gòu)如圖3所示,在QR碼有3個相同的位置探測圖形,分別位于其左上角、右上角和左下角。每個位置探測圖形可以看作3個重疊的同心正方形組成,它們分別為7×7個深色模塊、5×5個淺色模塊、3×3個深色模塊。
位置探測圖形的特征如圖4所示,其模塊的寬度比為1:1:3:1:1,且此特征具有縮放和旋轉(zhuǎn)不變性。符號中其他地方遇到類似圖形的可能性極小,因此可以在視場中迅速識別可能的QR碼符號[5]。通過識別QR碼的3個位置探測圖形,可以明確地確定視場中QR碼的位置和方向。具體過程可描述為:
(1)對圖像進(jìn)行多個方向的掃描,對于每個方向,都標(biāo)記出模塊寬度比接近1:1:3:1:1的位置;
(2)尋找在每個方向上都有標(biāo)記的特征位置并求其交點。所求交點即可作為位置探測圖形的中心。
該方法同樣可應(yīng)用于定位QR碼的校正圖形(Alignment Pattern)。
位置探測圖形定位結(jié)果,其他網(wǎng)格線為采樣網(wǎng)格。
對于位置探測圖形受到嚴(yán)重污染的情況,由于內(nèi)存對于算法的限制,本文并沒有做相應(yīng)處理,可能造成識別失敗。這種情況可通過適當(dāng)增加系統(tǒng)內(nèi)存解決,如采用BF52x系列處理器[8-9]。
本文主要針對小內(nèi)存平臺上的圖像處理情形,主要設(shè)計了圖像采集、QR碼定位算法。本文介紹的圖像采集方法也可運用在其他小內(nèi)存的圖像處理系統(tǒng)中。實驗結(jié)果表明,本算法占用內(nèi)存小,速度快,適應(yīng)性較強(qiáng),能適用于實際系統(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ī)的二維條碼定位識別算法的研究[D].合肥:合肥工業(yè)大學(xué),2007.
[5] 張民,鄭建立.基于符號特征的QR碼識別算法[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.