馬超
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
數(shù)字圖像處理算法在QR碼識(shí)別中的應(yīng)用
馬超
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
介紹了基于數(shù)字圖像處理的QR碼識(shí)別算法。該方案綜合運(yùn)用了圖像灰度化、濾波去噪、二值化、邊緣檢測(cè)、圖像旋轉(zhuǎn)等多種圖像處理方法對(duì)條碼圖像進(jìn)行預(yù)處理。理論分析和實(shí)驗(yàn)結(jié)果表明:該算法提高了識(shí)讀的靈活性和可靠性,為QR碼識(shí)別提供了一種新途徑。
QR碼;圖像處理;圖像定位;識(shí)別
QR碼是一種矩陣二維碼符號(hào)[1],它除具有二維條碼所有的信息容量大、可靠性高、可編碼漢字及圖象多種格式信息、保密防偽性強(qiáng)等優(yōu)點(diǎn)外,還具有超高速識(shí)讀、全方位識(shí)讀、糾錯(cuò)能力強(qiáng)等特點(diǎn),在我國具有廣泛的應(yīng)用前景,因此對(duì)二維QR碼識(shí)別技術(shù)的進(jìn)一步研究有著深遠(yuǎn)的意義。QR碼識(shí)別技術(shù)是計(jì)算機(jī)視覺和智能識(shí)別技術(shù)在現(xiàn)代物品標(biāo)識(shí)管理系統(tǒng)中的一項(xiàng)重要研究課題。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,物聯(lián)網(wǎng)在全國大規(guī)模的推廣應(yīng)用,QR碼識(shí)別設(shè)備也得到了更廣泛的應(yīng)用。筆者提出了一種QR碼圖像的預(yù)處理算法,可以對(duì)QR碼進(jìn)行準(zhǔn)確的譯碼。
QR碼圖像是由深淺相間的像素點(diǎn)組成,由攝像頭設(shè)備采集的圖像一般是彩色圖像[2]。通過RGB彩色圖像每個(gè)像素的R、G、B分量進(jìn)行加權(quán)平均,得到對(duì)應(yīng)的灰度圖的亮度,具體公式如下:Gray=0.299×R+0.586 6×G+0.114 5×B。
采集的圖像含有隨機(jī)噪聲,根據(jù)噪聲和信號(hào)的關(guān)系可以將其分為兩種形式:加法噪聲和乘法噪聲。設(shè)f(x,y)為觀測(cè)數(shù)據(jù),n(x,y)為噪聲數(shù)據(jù),輸出數(shù)據(jù)為 g(x,y)。 加法噪聲:輸出的數(shù)據(jù)為觀測(cè)數(shù)據(jù)和噪聲數(shù)據(jù)的加法疊加。其特點(diǎn)是無論觀測(cè)數(shù)據(jù)大小,噪聲n(x,y)與觀測(cè)數(shù)據(jù)無關(guān)。比如信道噪聲屬加性噪聲。 可以表示為 g(x,y)=f(x,y)+n(x,y)。 乘法噪聲:有的噪聲與圖像信號(hào)有關(guān),乘法噪聲輸出的數(shù)據(jù)為兩部分疊加,可表示為 g(x,y)=f(x,y)+n(x,y)× f(x,y)。 常用濾波方法有以下幾種:
1)均值濾波

2)中值濾波
中值濾波是一種非線性平滑技術(shù),它將每一像素點(diǎn)的灰度值設(shè)置為該點(diǎn)某鄰域窗口內(nèi)的所有像素點(diǎn)灰度值的中值[3]。記作 med{a1,a2,a3……an}。 具體步驟如下:
①將選好的窗口在圖像中漫游,并將窗口中心與圖像中心某個(gè)像素的位置重合;
②將該窗口下各像素灰度值從小到大排列成一列;
③將排列的中間值賦給對(duì)應(yīng)窗口中心位置的像素。
中值濾波對(duì)極限像素值遠(yuǎn)不如平均值那么敏感,從而可以消除孤立的噪聲點(diǎn),使圖像產(chǎn)生較少的模糊,保護(hù)圖像的邊緣信息。在MATLAB圖像處理工具箱中,提供了medfilt2函數(shù)用于實(shí)現(xiàn)中值濾波。
3)自適應(yīng)濾波
圖像噪聲的自適應(yīng)濾波可以使用MTLAB工具箱中的Wiener2函數(shù)。Wiener2函數(shù)根據(jù)圖像的局部方差來調(diào)整濾波器的輸出,當(dāng)局部方差大時(shí),濾波器的平滑效果較小,濾波器平滑效果強(qiáng)。Wiener2函數(shù)通常對(duì)于含有白色噪聲的圖像濾波效果較好,比如含有高斯白噪聲的圖像。Wiener2函數(shù)采用的算法是首先估計(jì)出像素的局部矩陣和方差:

η是圖像中每個(gè)像素的M×N的鄰域。然后,對(duì)每一個(gè)像素利用Wiener濾波器估計(jì)出其灰度值:

這里v2是圖像中噪聲的方差。
圖像二值化的關(guān)鍵在于選取合適的閾值將目標(biāo)與背景分開,既要盡可能保存圖像的信息,又要減少背景和噪聲的干擾。二值化的方法有全局和局部?jī)煞N。
最大類間方差法(簡(jiǎn)稱OTSU)屬于全局閾值算法,主要思想是選擇使得被閾值分開的兩組像素之間的方差達(dá)到最大的值。背景和目標(biāo)之間的類間方差越大,說明構(gòu)成圖像的兩部分的差別越大。 首先,對(duì)具有L級(jí)灰度圖像,記t為目標(biāo)與背景的分割閾值,將圖像分為兩類:C1∈[0,t],C2∈[t+1,L-1]。然后對(duì)圖像的直方圖進(jìn)行歸一化pi=ni/N,pi≥0,

其中N為圖像的總像素?cái)?shù),ni為灰度值i的像素?cái)?shù)。因此C1和C2類出現(xiàn)的概率及均值分別為:


為了得到最佳閾值,應(yīng)該使得類間方差最大,即最佳閾值為t=arg max σ2.OTSU算法一般采用遍歷閾值定義域[0,L-1]來搜索最佳閾值。在實(shí)際中,由于噪聲的存在類間方差可能比較平坦或者呈現(xiàn)雙峰或多峰,此時(shí)往往會(huì)采用局部閾值法。


根據(jù)QR碼圖像的特點(diǎn)應(yīng)該是離當(dāng)前點(diǎn)越近的像素對(duì)當(dāng)前點(diǎn)的影響越大,越遠(yuǎn)則越小,所以本文改進(jìn)Wellner算法,使用帶權(quán)重的滑動(dòng)函數(shù)窗口。積分圖(Integral Image)是將圖像從起點(diǎn)開始到右下方的各個(gè)點(diǎn)所形成的矩形區(qū)域內(nèi)所有像素之和作為數(shù)組的一個(gè)元素保存在內(nèi)存中,當(dāng)要計(jì)算某個(gè)區(qū)域的像素和時(shí)可以直接索引數(shù)組的元素。如圖1所示。

圖1 積分圖原理Fig.1 Theory of integral image

圖2 自適應(yīng)二值化法Fig.2 Self-adaptive binarization
本文提出一種基于Wellner算法的自適應(yīng)閾值法對(duì)圖像進(jìn)行二值化處理。如圖2所示。用一個(gè)s×s(s為奇數(shù))大小的核窗口來代替滑動(dòng)窗口,中心點(diǎn)像素是要進(jìn)行二值化運(yùn)算的像素Pi,則核窗口內(nèi)所有像素的均值與Pi進(jìn)行比較。

在本算法中影響二值化效果的兩個(gè)因素為核窗口的大小s和閾值T,經(jīng)過實(shí)驗(yàn)證明當(dāng)s等于圖像寬度的1/8時(shí),當(dāng)T等于15時(shí)二值化效果最好。
實(shí)際采集的QR碼往往存在不同程度的幾何失真。文獻(xiàn)[4]中用傳統(tǒng)的邊緣檢測(cè)和Hough變換確定條碼的邊界,計(jì)算出傾斜角再將圖像旋轉(zhuǎn)至水平位置進(jìn)行識(shí)別,此方法的運(yùn)算量比較大,影響識(shí)別效率??紤]到由于QR碼本身的碼圖特性,我們可采用基于位置探測(cè)圖形的方式結(jié)合Hough變換定位QR碼圖像。
QR碼的位置探測(cè)圖形依次是由1:1:3:1:1的深淺模塊組成,如圖3所示,而且這個(gè)比例不隨圖像的大小和旋轉(zhuǎn)而改變,當(dāng)對(duì)圖像進(jìn)行水平和豎直方向掃描時(shí),當(dāng)遇到深淺模塊比例按1:1:3:1:1出現(xiàn)時(shí),記錄其行或列的位置,直到所有行列被掃描完,記錄最邊界的行與列的位置。這樣可以計(jì)算得出一正方形對(duì)角線中心即為探測(cè)圖形的中心。同理,可以確定其他兩個(gè)探測(cè)圖形的中心。

圖3 QR位置碼探測(cè)圖形模塊Fig.3 Finder patterns of QR code


圖4 平面投影轉(zhuǎn)換示意圖Fig.4 Control point transformation
一般情況下,攝像頭分辨率越高,條碼細(xì)節(jié)處理越細(xì)膩,越有利于條碼的識(shí)別。此處使用130萬像素的普通攝像頭對(duì)QR條碼進(jìn)行采集,比較傳統(tǒng)算法和本文提出的圖像預(yù)處理算法后,可發(fā)現(xiàn)本文算法在識(shí)別率上優(yōu)于傳統(tǒng)算法,在識(shí)別時(shí)間上和傳統(tǒng)算法相當(dāng),但可以預(yù)計(jì)在提升硬件性能后識(shí)別時(shí)間會(huì)有較大的優(yōu)化。

表1 實(shí)驗(yàn)數(shù)據(jù)結(jié)果比較Tab.1 Comparison of experimental data

圖5 QR碼識(shí)別過程Fig.5 Process of QR Code recognition
文中在分析比較已有傳統(tǒng)算法后提出了一種QR碼圖像預(yù)處理算法,對(duì)使用通用設(shè)備采集的QR碼圖像,利用濾波處理、自適應(yīng)二值化、邊緣檢測(cè)等方法對(duì)條碼進(jìn)行定位識(shí)別,解決條碼畸變情況下難于識(shí)別的問題,具有較高的解碼效率,能夠滿足實(shí)際應(yīng)用的需要。
[1]GB/T18284.中華人民共和國國家標(biāo)準(zhǔn)-快速響應(yīng)矩陣碼(QR Code)[S].北京:中國標(biāo)準(zhǔn)出版社,2000.
[2]李軍.QR碼的圖像恢復(fù)和識(shí)別技術(shù)研究與實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2010.
[3]黃婷婷.QR碼識(shí)別方法研究[D].長(zhǎng)沙:中南大學(xué),2008.
[4]肖翔,劉曉明,王云柯.QR碼圖像的矯正與定位方法研究[J].計(jì)算機(jī)科學(xué),2007,34(11):217-219.
XIAO Xiang,LIU Xiao-ming,WANG Yunv-ke.Rectification and localization of quick response code image[J].Computer Science,2007,34(11):217-219.
[5]王明振.QR碼在Android手機(jī)平臺(tái)的解碼算法研究[D].鄭州:鄭州大學(xué),2011.
[6]夏正良,李久賢.數(shù)字圖像處理[M].2版.南京:東南大學(xué)出版社,2008.
[7]遠(yuǎn)朋,董海.計(jì)算機(jī)圖像處理技術(shù)基礎(chǔ)[M].北京:北京大學(xué)出版社,1996.
Digital image processing algorithm for QR code recognition
MA Chao
(College of Computer Science and Technology, Hangzhou Dianzi University, Hangzhou 310018, China)
This paper mainly focused on image processing algorithm for QR code recognition.The solution synthetically uses image graying,image denoising,image binarization,edge detection,and image rotation etc.to complete the preproceasing of bar codes.Theoretical analysis and experimental results show that the solution enhance the flexibility and reliability of Recognition,provide a new way for QR code recognition.
QR Code; image processing; image Location; recognition
TP391.4
A
1674-6236(2013)05-0027-03
2012-10-09稿件編號(hào)201210040
馬 超(1987—),男,浙江杭州人,碩士研究生。研究方向:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。