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