陳 杰
(溫州大學(xué)物理與電子信息工程學(xué)院,浙江溫州 325035)
QR碼圖像預(yù)處理技術(shù)研究
陳 杰
(溫州大學(xué)物理與電子信息工程學(xué)院,浙江溫州 325035)
針對(duì)光照不均條件下基于圖像模式采集到的QR(Quick Response)碼圖像存在背景比較復(fù)雜的情況,提出基于背景灰度擴(kuò)展的二值化處理方法.對(duì)于QR碼識(shí)別過(guò)程中的幾何失真,首先通過(guò)邊界掃描找到畸變矯正控制點(diǎn),再進(jìn)行雙線性變換矯正失真的條碼圖像,最后根據(jù)探測(cè)圖形對(duì)圖像進(jìn)行旋轉(zhuǎn)矯正.實(shí)驗(yàn)表明,方法簡(jiǎn)單有效,可提高QR碼的識(shí)別率.
QR碼;二值化;幾何失真矯正
隨著信息技術(shù)的發(fā)展,二維條碼技術(shù)在我國(guó)的應(yīng)用越來(lái)越廣.QR碼是二維條碼的一種,具有信息量大、可靠性高、超高速全方位識(shí)讀、高效漢字表示等優(yōu)點(diǎn).QR碼呈正方形,由名義上的正方形小模塊構(gòu)成,由編碼區(qū)域和包括尋像圖形、分隔符、定位圖形和校正圖形在內(nèi)的功能圖形組成,結(jié)構(gòu)如圖1所示.
圖1 QR碼符號(hào)的結(jié)構(gòu)Fig 1 Structure of QR Codes’ Symbols
二維條碼的識(shí)讀器主要分為兩類(lèi),一類(lèi)是激光讀取式,一類(lèi)是圖像讀取式.激光讀取式因?yàn)槭芟抻跅l碼的制式,其發(fā)展空間變得越來(lái)越小.圖像讀取式因其二維信號(hào)的獲取優(yōu)勢(shì)和可脫離專用識(shí)讀器的特點(diǎn),具有很大的發(fā)展空間.
目前主要采用以下算法對(duì)二維條碼圖像進(jìn)行預(yù)處理:首先將灰度圖像二值化,采用適當(dāng)?shù)倪吘壧崛∷阕犹崛∵吘?,接著利用Hough變換或投影變換計(jì)算二維條碼傾斜的角度,最后用雙線性變換插值,防止失真[1].使用通用設(shè)備采集的條碼圖像,很容易受到光照不均和采集裝置位置導(dǎo)致的幾何失真影響,這會(huì)給譯碼帶來(lái)很大困難,使譯碼的準(zhǔn)確率大大降低.因此,如何對(duì)圖像進(jìn)行正確的二值化和幾何矯正已成為QR碼圖像處理要解決的核心問(wèn)題.
本文針對(duì)光照不均條件下的QR碼,提出了一種基于背景灰度擴(kuò)展的QR碼圖像二值化處理方法.針對(duì)QR碼圖像的幾何失真,提出了通過(guò)邊界點(diǎn)掃描確定幾何校正控制點(diǎn)的方法.實(shí)驗(yàn)證明,本文的方法可以有效地提高QR碼的識(shí)別率.
與Ostu二值化算法[2]不同,本文提出的基于背景灰度擴(kuò)展的二值化方法,是通過(guò)取適當(dāng)?shù)拈撝凳贡婚撝捣珠_(kāi)的兩組的方差的加權(quán)和達(dá)到最小,這樣容易將QR碼中的弱目標(biāo)合并到背景中去.文獻(xiàn)[3]中自適應(yīng)亮度均衡化采用逐行掃描,這樣雖然能達(dá)到比較好的效果,但容易引起失真,不能取得滿意的結(jié)果.本文提出的算法首先對(duì)圖像的背景亮度進(jìn)行分塊,采取統(tǒng)計(jì)的方法,計(jì)算該區(qū)域中像素亮度的均值和標(biāo)準(zhǔn)差,然后根據(jù)統(tǒng)計(jì)值進(jìn)行背景灰度計(jì)算,這樣有利于排除噪聲點(diǎn)的干擾,使魯棒性更強(qiáng).處理的具體步驟如圖2所示.
圖2 系統(tǒng)流程圖Fig 2 Flow Diagram of System
選取圖像中適當(dāng)大小的圖形塊,計(jì)算該區(qū)域內(nèi)的像素灰度均值μ和標(biāo)準(zhǔn)差σ,以 min(max,μ+3σ)作為該區(qū)域的背景灰度,其中 max為該區(qū)域像素的最大灰度值.
根據(jù)得到的背景灰度矩陣,將背景灰度矩陣擴(kuò)展成和原始圖像大小相同的矩陣,從而得到背景灰度擴(kuò)展矩陣.
本文采用雙三次圖像插值[4],先對(duì)得到的背景灰度矩陣,以行為單位,每4點(diǎn)為插值點(diǎn)進(jìn)行三次插值,再以列為單位,每4點(diǎn)為插值點(diǎn)進(jìn)行三次插值.將經(jīng)過(guò)雙三次插值后得到的插值圖像矩陣作為原背景灰度矩陣的重建矩陣.例如,對(duì)128 × 128的圖像矩陣A,選取8 × 8大小的圖形塊計(jì)算得背景灰度矩陣B:
對(duì)背景灰度矩陣 B 的第一行進(jìn)行每4點(diǎn)的三次插值.先以該行的前4個(gè)值作為f(x)在背景灰度擴(kuò)展矩陣C中x=1,10,19,28的函數(shù)值,即以(),(),(1 9), (28,)為4個(gè)插值點(diǎn)代入下面的插值公式:
利用上面的插值公式可得a1,1,a1,10和a1,10,a1,19及a1,19,a1,28之間任一點(diǎn)的背景灰度值,即將求得的x=2,3,L,9,11,12,L,18,20,21,L,27的相應(yīng)的f(x)函數(shù)值分別作為a1,x的近似.然后再以為插值點(diǎn)進(jìn)行類(lèi)似的三次插值,直到完成第一行的三次插值為止.其它各行均照此處理,完成行的三次插值.用同樣方法完成各列的每4個(gè)點(diǎn)的三次插值.經(jīng)過(guò)這樣的行和列的雙三次插值,可得到其它像素的灰度值,從而得到矩陣 B 經(jīng)擴(kuò)展后重建的背景灰度矩陣 C.
用得到的背景灰度擴(kuò)展矩陣 C調(diào)整原始圖像各像素的亮度值,使得圖像亮度高的區(qū)域衰減,亮度低的區(qū)域增強(qiáng).
對(duì)采集的圖像分別用Otsu算法、自適應(yīng)亮度均衡化算法和本文的背景灰度擴(kuò)展二值化算法進(jìn)行處理,處理結(jié)果如圖3所示.
從圖3可以看出,對(duì)不均勻光照條件下的QR碼圖像,采用Otsu算法處理容易將弱目標(biāo)合并到背景中去;采用自適應(yīng)亮度均衡化算法,雖然能達(dá)到比較好的效果,卻容易引起失真;本文的背景灰度擴(kuò)展二值化算法的處理效果最好.
圖3 QR碼二值化Fig 3 Binarization for QR Codes
受圖像采集裝置中圖像傳感器平面與條碼平面之間的距離、相對(duì)角度和兩平面的傾角的影響,條碼圖像往往會(huì)發(fā)生幾何形變.傳統(tǒng)尋找控制點(diǎn)的做法是,首先找到3個(gè)尋像圖形,然后根據(jù)尋像圖形找到4條邊界,從而獲得4個(gè)控制點(diǎn).但是當(dāng)幾何失真比較嚴(yán)重,即探測(cè)圖形模塊序列相對(duì)比例嚴(yán)重偏離1∶1∶3∶1∶1時(shí),采用傳統(tǒng)算法是無(wú)法檢測(cè)到位置探測(cè)圖形的.對(duì)以上情況,可以首先通過(guò)邊界掃描找到畸變矯正控制點(diǎn),再進(jìn)行雙線性變換矯正失真的條碼圖像,最后根據(jù)探測(cè)圖形對(duì)圖像進(jìn)行旋轉(zhuǎn)矯正.
考慮到QR 碼的自身特點(diǎn),本文采用掃描邊緣點(diǎn)擬合直線的方法來(lái)選取QR碼4個(gè)頂點(diǎn),以得到的4個(gè)頂點(diǎn)為控制點(diǎn)矯正圖像.以圖4為例,對(duì)算法的具體步驟進(jìn)行說(shuō)明.
1)圖4(a)為畸變QR碼圖,對(duì)其進(jìn)行多次灰度腐蝕和膨脹運(yùn)算,目的是消除條碼黑白模塊之間的灰度差,最終得到如圖4(b)所示的結(jié)果.腐蝕運(yùn)算的結(jié)果表現(xiàn)為目標(biāo)圖像的邊界點(diǎn)被去除,可以把小于結(jié)構(gòu)元素的物體去除,或者去掉兩個(gè)物體之間的細(xì)小連通.膨脹運(yùn)算的結(jié)果則表現(xiàn)為圖像周?chē)谋尘包c(diǎn)合并到物體中.如果兩個(gè)物體之間距離比較近,膨脹運(yùn)算可能會(huì)將兩個(gè)物體連通在一起.
2)對(duì)得到的圖像即圖4(b),利用Canny算子進(jìn)行邊緣檢測(cè),可以得到如圖4(c)所示的包含條碼邊緣信息的圖像.
3)如圖4(d)所示,對(duì)所得到的條碼邊緣圖像,從圖像中心由內(nèi)向上進(jìn)行5次掃描,遇到第一個(gè)白點(diǎn)后停止本次掃描,并且記錄下白點(diǎn)位置.這樣,就可以得到邊界上的5個(gè)采樣點(diǎn).利用最小二乘法,對(duì)這5個(gè)采樣點(diǎn)進(jìn)行曲線擬合,可以得到條碼的近似邊界.同理,從下、左、右三個(gè)方向進(jìn)行掃描可以得到條碼的另外三條近似邊界.
4)如圖4(d)所示,兩相鄰條碼邊界的交點(diǎn)即為畸變條碼的頂點(diǎn)(4個(gè)白色的頂點(diǎn)),這就是我們所要求的4個(gè)畸變矯正控制點(diǎn).
5)根據(jù)得到的控制點(diǎn)建立起校正前后圖像的映射關(guān)系,利用這種映射關(guān)系對(duì)發(fā)生畸變的條碼圖像進(jìn)行畸變校正.
因?yàn)閹缀问д?,得到?個(gè)控制頂點(diǎn)會(huì)構(gòu)成一個(gè)四邊形,至少需要再進(jìn)行一次形狀上的轉(zhuǎn)換,將四邊形轉(zhuǎn)換為正方形才可以讓后續(xù)解碼器識(shí)讀,如圖5所示,A、B、C和D點(diǎn)分別必須對(duì)應(yīng)到條碼的左上角(A')、右上角(B′)、右下角(C′)和左下角(D′).
套用Perspective Transform[5]平面投影轉(zhuǎn)換公式,將原來(lái)的四邊形轉(zhuǎn)換為正方形.下面(1)式和(2)式中的(x,y)為原始拍攝影像上QR碼坐標(biāo),(u,v)為平面投影轉(zhuǎn)換后的正常坐標(biāo),a,b,c,d,e,f,g,h為轉(zhuǎn)換公式中待解的8個(gè)參數(shù),至少將轉(zhuǎn)換前后4組坐標(biāo)點(diǎn)對(duì)應(yīng)代入(1)式和(2)式后才可得參數(shù)解.
圖4 幾何變換Fig 4 Geometric Transformation
圖5 控制點(diǎn)變換原理圖Fig 5 Schematic Diagram of Control Point Transformation
整理后可得:
取QR碼左上角、右上角、右下角和左下角4點(diǎn)坐標(biāo)代入(3)式和(4)式后得:
經(jīng)過(guò)條碼定位流程取得的QR碼4個(gè)頂點(diǎn)坐標(biāo),透過(guò)平面投影轉(zhuǎn)換后,對(duì)應(yīng)到預(yù)先設(shè)置的形狀為正方形的坐標(biāo),將轉(zhuǎn)換后正方形的邊長(zhǎng)設(shè)為原先4條邊長(zhǎng)的平均值W,中心點(diǎn)不變,可得該4點(diǎn)坐標(biāo)對(duì)應(yīng)點(diǎn),依次為條碼左上角、右上角、右下角和左下角的4個(gè)坐標(biāo).將各點(diǎn)坐標(biāo)分別代入(5)式中計(jì)算可得:
將解出的8個(gè)參數(shù)代入(1)式和(2)式,得到 (u,v)坐標(biāo)點(diǎn)對(duì)應(yīng)到轉(zhuǎn)換前的原始圖像上的(x,y),QR碼平面投影轉(zhuǎn)換的結(jié)果如圖4(f)所示.
圖6(a)為幾何失真矯正后的結(jié)果,但是可以明顯看出QR碼并沒(méi)有旋正,本來(lái)應(yīng)該在左上角的探測(cè)圖形,這時(shí)候在右下角,所以還要通過(guò)定位探測(cè)圖形,來(lái)確定QR碼的旋轉(zhuǎn)角度,從而達(dá)到旋轉(zhuǎn)定向.確定3個(gè)位置探測(cè)圖形后,需要確定條碼的方向,此時(shí)可以連接3個(gè)探測(cè)圖形的中心點(diǎn),構(gòu)成一個(gè)三角形.設(shè)該三角形的3個(gè)角分別為α、β、δ.根據(jù)QR碼的結(jié)構(gòu)特征可知,3個(gè)角中度數(shù)最大的角的頂點(diǎn)就是QR碼符號(hào)左上角的探測(cè)圖形的中心點(diǎn).所以只要以此中心點(diǎn)位置為參考,旋轉(zhuǎn)一定角度(90°的整數(shù)倍)就可以實(shí)現(xiàn)條碼符號(hào)的定向,如圖6(c)所示.
圖6 QR碼旋轉(zhuǎn)矯正Fig 6 Revolving Correction of QR Codes
本文使用通用圖像采集裝置(照相手機(jī))采集40幅QR碼圖像,分為普通光照明、弱光照明、強(qiáng)光照明、不均勻光照明幾類(lèi),采樣的分辨率為640 × 480.從QR碼的下側(cè)、上側(cè)、右側(cè)、左側(cè)4個(gè)方向采集,分別用傳統(tǒng)算法和本文的算法確定控制點(diǎn),對(duì)圖像進(jìn)行幾何失真矯正,處理結(jié)果見(jiàn)表1.圖7所表示的為采集到的部分原始圖像與其用本文算法進(jìn)行幾何失真矯正后的結(jié)果.
圖7 QR碼圖像的幾何失真矯正Fig 7 Geometric Distortion Correction of QR Codes’ Images
從表1可以看出,本文提出的通過(guò)邊界點(diǎn)掃描確定幾何矯正控制點(diǎn)的矯正方法,可以有效提高QR碼的識(shí)別率.
表1 QR碼解碼結(jié)果統(tǒng)計(jì)Table 1 QR Code’s Decoding Result
[1]鄭河榮, 熊麗榮, 王天舟. 基于HOUGH變換的二維條碼圖像矯正[J]. 浙江工業(yè)大學(xué)報(bào), 2003, 31(2): 169-172.
[2]Otsu N.A threshold selection method from gray-level histo-grams [J]. IEEE Transactions Oil Systems, Man and Cybernetics, 1979, 9(1): 62-66.
[3]Hsia S C, Chen M H, Chen Y M. A cost-effective line-based light-balancing technique using adaptive processing [J]. IEEE Transactions on Image Processing, 2006, 19(5): 2719-2729.
[4]Durand C X, Faguy D. Rational zoom of bit maps using B-spline interpolation in computerized 2-D animation [J]. Computer Graphics Forum, 1990, 9(1): 27-37.
[5]Bleyl R L. Using Photographs to Map Traffic Accident Scenes: A Mathematical Technique [J]. Journal of Safety Research, 1976, 1: 59-64.
Research on Technique of QR Code Images Preprocessing
CHEN Jie
(College of Physics and Electronic Information Engineering, Wenzhou University, Wenzhou, China 325035)
Due to the ununiform lighting condition, the light background of QR (Quick Response) codes’images captured on the basis of image pattern might be complicated. Based on this phenomenon, a binary processing method, which is based on background gray-scale extension, was proposed. In the correction process of geometric distortion happened in recognition of QR codes’ images, control point of distortion correction should be identified by boundary scan in the first stage; distorted QR codes’ images should be corrected by means of bilinear transformation in the second stage; and the obtained images should be corrected by revolving the images at last. Experimental results showed that the method, which is simple and effective, can be used to improve precision of QR codes’ recognition rate.
QR Code; Binarization; Correction of Geometric Distortion
(編輯:王一芳)
TP391.41
A
1674-3563(2010)06-0016-08
10.3875/j.issn.1674-3563.2010.06.004 本文的PDF文件可以從xuebao.wzu.edu.cn獲得
2010-03-30
陳杰(1983- ),男,浙江寧海人,碩士研究生,研究方向:嵌入式圖像處理