楊凌霄 馮慶修
摘 要:針對(duì)模糊、光照不均情況下獲得的低質(zhì)量QR碼難以識(shí)別的問題,設(shè)計(jì)一種低質(zhì)量QR碼識(shí)別算法,包括加權(quán)平均值法灰度化、中值濾波算法降噪、二值化、基于位置探測(cè)圖形定位、基于透視變換法的旋轉(zhuǎn)矯正,以及基于Zbar開源庫的譯碼算法等。重點(diǎn)研究針對(duì)模糊、光照不均QR碼圖像的二值化算法,提出一種基于Bernsen算法思想的改進(jìn)算法,將全局閾值引入該算法中,實(shí)現(xiàn)對(duì)圖像的二值化處理。在VS2010環(huán)境下基于Opencv2.4.9圖像處理庫對(duì)識(shí)別算法進(jìn)行驗(yàn)證,結(jié)果表明,通過該算法得到的QR碼圖像完整且噪聲少,有效克服了低質(zhì)量QR碼的影響,提高了圖像識(shí)別率,具有一定的實(shí)用性。
關(guān)鍵詞:低質(zhì)量QR碼;二值化;Bernsen;Zbar;圖像識(shí)別
DOI:10. 11907/rjdk. 191689
中圖分類號(hào):TP319 ? 文獻(xiàn)標(biāo)識(shí)碼:A??????????????? 文章編號(hào):1672-7800(2020)003-0163-05
The Improvement Binarization Algorithm for QR Code Recognition
YANG Ling-xiao, FENG Qing-xiu
(School of Electrical Engineering and Automation, Henan Polytechnic University, Jiaozuo 454000, China)
Abstract:The paper devises an improved computing method for low quality QR code, including graying, the de-nosing median filtering algorithm, binarization, positioning, correction and a decoding computing method based on Zbar open source library, so as to address the problem of the inability to recognize the QR code caused by blur images and uneven lighting. The paper attaches great importance to the binarization of blurring and uneven light QR images, thus proposing an improved computing method based on Bernsen method with the introduction of global thresholding to achieve the binarization of QR code. The author tests this computing method based on OpenCV2.4.9 computer vision open source library in VS2010 setting. The study indicates that this approach will efficiently overcome the negative impact low quality QR code have on the recognition, consequently and proficiently create a full image with less noises and improve the recognition rate of QR code.
Key Words: low quality QR code; binarization; Bernsen method ; Zbar; image recognition
0 引言
QR碼識(shí)別技術(shù)是一門不僅將數(shù)據(jù)采集、處理、傳輸?shù)冗^程融為一體,而且跨越了多門學(xué)科的新興科學(xué)技術(shù)。當(dāng)前,人們對(duì)QR碼識(shí)別技術(shù)的相關(guān)研究主要集中在以下3個(gè)方面:QR碼圖像采集、圖像預(yù)處理與圖像譯碼。首先,通過圖像采集模塊對(duì)QR碼圖像進(jìn)行采集,然后通過處理器對(duì)采集到的圖片進(jìn)行預(yù)處理,具體過程包括圖像灰度化、濾波、二值化、濾波、校正與定位。預(yù)處理的目的是為了提高圖片質(zhì)量,以便于下一步解碼,是整個(gè)識(shí)別過程中的關(guān)鍵環(huán)節(jié)。最后對(duì)處理后的圖像進(jìn)行解碼,識(shí)別QR碼格式及版本,完成掩膜消除、糾錯(cuò)等過程,并輸出QR碼攜帶的字符信息。但在實(shí)際應(yīng)用中,噪聲、抖動(dòng)、光照不均等因素都會(huì)導(dǎo)致采集設(shè)備獲得的圖像質(zhì)量不高,若預(yù)處理方法選取不當(dāng)則會(huì)使處理后的圖像出現(xiàn)信息丟失的情況,導(dǎo)致圖像無法識(shí)別。
圖像灰度化是指將彩色圖像轉(zhuǎn)化為灰度圖像的過程,可以減少輸入圖像的信息量以及后續(xù)運(yùn)算量[1],不僅可以加快后續(xù)算法處理速度,還提高了系統(tǒng)效率[2-3]。加權(quán)平均值法是常用的圖像灰度化處理算法[4],根據(jù)重要性或其它指標(biāo)賦予R、G、B不同權(quán)值,并使R、G、B的值均等于其原值的加權(quán)和。不同權(quán)值形成的灰度圖像亮度不同,由于人眼對(duì)顏色的敏感程度是根據(jù)綠紅藍(lán)順序遞減的,因此將R、G、B權(quán)值由大到小取值將得到比較合理的灰度圖像[5]。通過實(shí)驗(yàn)與理論推導(dǎo)證明,R、G、B權(quán)值分別為0.30、0.59、0.11時(shí)得到的灰度圖像最為合理[6]。本文采用該方法獲得QR二維碼的灰度圖像。
通過采集模塊獲取到的QR碼圖像或多或少都包含噪聲成分,如加性噪聲、乘性噪聲等,從而使圖像變得模糊,因此有必要對(duì)圖像進(jìn)行濾波處理,即在最大程度保留圖像細(xì)節(jié)特征的前提下抑制目標(biāo)圖像噪聲,其處理結(jié)果將直接影響對(duì)后續(xù)QR碼圖像的識(shí)別。圖像濾波包括線性濾波和非線性濾波,如果輸出像素是輸入像素鄰域像素的線性組合,則稱為線性濾波,如均值濾波和高斯濾波,否則為非線性濾波,如中值濾波、邊緣保持濾波等。針對(duì)圖像濾波研究,鄒雄等[7]對(duì)二維碼圖像預(yù)處理過程中的噪聲濾除方法進(jìn)行研究,對(duì)幾種常用的中值濾波方法進(jìn)行比較分析并得出規(guī)律,繼而提出一種基于窗口系數(shù)的中值濾波算法,該方法先對(duì)圖像進(jìn)行二值化,之后進(jìn)行中值濾波,對(duì)于特定噪聲具有較好的處理效果;Andria[8]利用小波線性濾波器對(duì)超聲醫(yī)學(xué)圖像進(jìn)行去噪處理,可能會(huì)損失圖像中的細(xì)節(jié)信息;羅學(xué)剛等[9]提出一種選擇性計(jì)算的快速非局部均勻去噪算法,利用 L2范數(shù)逐次消元法剔除大量相似像素點(diǎn),提高了去噪速度;郭強(qiáng)等[10]根據(jù)圖像的低秩特性和最小方差估計(jì)理論提出迭代去噪算法,能有效抑制殘留噪聲;李博等[11]提出一種小概率策略的全局自適應(yīng)分?jǐn)?shù)階積分去噪算法,在去噪的同時(shí)還能增強(qiáng)與保留圖像紋理。目前在QR碼噪聲預(yù)處理方法中,中值濾波算法簡(jiǎn)單且處理效果較好,因此本文選擇該算法并將其應(yīng)用于QR碼識(shí)別系統(tǒng)中。
(1)采用加權(quán)平均法對(duì)圖像進(jìn)行灰度化處理。
(2)遍歷圖像所有灰度值,將使類間方差目標(biāo)函數(shù)值最大的灰度值記為全局閾值[Τ1]。
(3)令[S=15,T=0.5×(Τ1+128)],[fx,y]為當(dāng)前像素[(x,y)]的灰度值,計(jì)算以當(dāng)前像素為中心、大小為[2w+1×2w+1]的窗口內(nèi),所有灰度值中最大灰度值[M]和最小灰度值[N]的均值[Τ2]。
(4)計(jì)算窗口內(nèi)所有灰度值的平均值[average]和均方差SS,其中[x-w xx+w],[y-wyy+w]。
(5)令[T=αT1+βT2],其中[α+β=1,α0,β0],對(duì)圖像像素逐點(diǎn)進(jìn)行二值化處理,規(guī)則如下:
將全局閾值引入局部閾值法中,使每一個(gè)窗口內(nèi)的信息與圖像整體信息相關(guān)聯(lián),將窗口內(nèi)所有灰度值的均方差引入算法中。當(dāng)[SSS]時(shí),說明該窗口內(nèi)灰度值較為寬泛,像素處于前景和背景交叉區(qū)域,此時(shí)應(yīng)以[T]為閾值,使得邊緣更加連續(xù)、平滑;當(dāng)[SS
3 實(shí)驗(yàn)結(jié)果
3.1 改進(jìn)二值化算法實(shí)驗(yàn)
二值化算法中有3個(gè)參數(shù)[w、α、β]需要手動(dòng)設(shè)定。[w]決定局部窗口大小,算法運(yùn)行時(shí)間與其有一定關(guān)系,選取的局部窗口越大,耗時(shí)越長(zhǎng),也會(huì)影響計(jì)算結(jié)果的準(zhǔn)確性。[α、β]決定全局閾值與局部閾值在算法中的權(quán)重,α越大,二值化后的圖像中弱光或強(qiáng)光區(qū)域凸顯的細(xì)節(jié)越少,而[α]過小會(huì)導(dǎo)致[β]過大,誤判概率增大。為了保證二值化處理效果,參數(shù)選取以[α<β]為原則。經(jīng)過多次實(shí)驗(yàn),確定算法參數(shù)[w、α、β]分別取值為1、0.3、0.7。
利用筆記本攝像頭拍攝獲得OR碼圖像,并從中選取標(biāo)準(zhǔn)、模糊、光照不均,且大小均為640*480的QR碼圖像各50幅對(duì)算法可行性進(jìn)行驗(yàn)證。在VS2010環(huán)境下基于Opencv2.4.9圖像處理庫編寫程序,分別采用Bernsen算法、Otsu算法與本文算法對(duì)圖像進(jìn)行二值化處理,3種算法處理結(jié)果如圖2-圖4所示。
在3組圖像中,將方框區(qū)域放大后觀察可發(fā)現(xiàn):Bernsen算法對(duì)圖像進(jìn)行二值化處理的效果最差,對(duì)前景與背景誤判比較嚴(yán)重,處理后的圖像無法識(shí)別。但對(duì)比圖2(b)、圖3(b)、圖4(b)可以發(fā)現(xiàn),模糊、光照不均等因素對(duì)Bernsen算法二值化的影響很小,這一點(diǎn)也反映出該算法的優(yōu)勢(shì);Otsu算法處理結(jié)果分別表現(xiàn)出白斑、有毛刺、不完整的現(xiàn)象,但該算法的前景和背景誤判問題遠(yuǎn)沒有Bernsen算法嚴(yán)重;通過對(duì)比圖3(c)與圖3(d)發(fā)現(xiàn),在圖像模糊的情況下,本文方法獲得的二值化圖像邊緣平滑、連通性好,解決了Otsu二值化方法出現(xiàn)大量毛刺、白斑的問題,并克服了Bernsen算法出現(xiàn)大量誤判的缺陷;通過對(duì)比圖4(c)與圖4(d)可以發(fā)現(xiàn),在圖像受到不均勻光照的情況下,本文方法獲得的二值化圖像比較完整,較好地解決了Otsu二值化方法因存在區(qū)域缺失導(dǎo)致QR碼無法識(shí)別的問題。
3.2 QR碼識(shí)別算法可靠性實(shí)驗(yàn)
將QR碼識(shí)別過程分為3部分:圖像采集、圖像預(yù)處理與圖像譯碼。圖像采集是指通過筆記本攝像頭拍攝獲得QR碼圖像數(shù)字信息;圖像預(yù)處理是指以獲得的QR碼圖像數(shù)字信息為基礎(chǔ),利用圖像處理技術(shù)通過Opencv庫函數(shù)對(duì)該圖像進(jìn)行濾波、灰度化、二值化、定位與旋轉(zhuǎn)矯正;圖像譯碼是指利用Zbar開源庫譯碼算法進(jìn)行譯碼,獲取QR碼存儲(chǔ)的數(shù)據(jù)信息。其中圖5(a)表示采集設(shè)備獲得的原圖;圖5(b)為灰度圖;圖5(c)為二值化圖;圖5(d) 、圖5(e)和圖5(f)是QR碼定位檢測(cè)結(jié)果;圖5(g)為最終定位標(biāo)記圖;圖5(h)為最終校正圖。
由于顯示介質(zhì)的亮度不唯一,且QR碼載體(如手機(jī))在掃描過程中難免出現(xiàn)抖動(dòng),造成識(shí)別設(shè)備拍攝到的圖像出現(xiàn)亮度不均、模糊等情況,分別針對(duì)這兩種情況下QR碼識(shí)別效果進(jìn)行測(cè)試。通過筆記本攝像頭拍攝手機(jī)顯示屏上顯示的QR碼圖像,在拍攝過程中采用抖動(dòng)手機(jī)的方式獲得50張模糊的QR碼圖像,并采用補(bǔ)光方式獲得50張光照不均的QR碼圖像,其識(shí)別結(jié)果如表1所示。通過對(duì)100 張QR碼識(shí)別時(shí)間進(jìn)行測(cè)試,然后求平均值以得到相對(duì)準(zhǔn)確的識(shí)別時(shí)間。實(shí)驗(yàn)得到的8組數(shù)據(jù)如表2所示,其中“A”表示該程序?qū)σ粡圦R碼進(jìn)行預(yù)處理與譯碼的時(shí)間,“B”表示該算法識(shí)別一張QR碼的時(shí)間。
通過分析識(shí)別結(jié)果可以發(fā)現(xiàn),算法針對(duì)模糊、光照不均圖像的識(shí)別率均為94%。QR碼圖像的預(yù)處理與譯碼時(shí)間在100ms以內(nèi),識(shí)別時(shí)間集中在260ms~300ms之間,100次識(shí)別時(shí)間的平均值為275.746ms。實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出的基于VS2015平臺(tái)的QR碼識(shí)別算法的可行性與實(shí)用性。
4 結(jié)語
本文提出一種針對(duì)QR碼圖像的識(shí)別算法,并重點(diǎn)對(duì)識(shí)別過程中的二值化算法進(jìn)行改進(jìn),在結(jié)合局部閾值和全局閾值的同時(shí),引入局部窗口灰度值均方差。在對(duì)模糊、光照不均情況下的二維碼圖像進(jìn)行處理時(shí),通過多重規(guī)則選取不同閾值進(jìn)行二值化處理,能夠得到比Otsu算法與Bernsen算法細(xì)節(jié)更豐富的圖像。在VS2010環(huán)境下基于Opencv2.4.9圖像處理庫與Zbar解碼庫驗(yàn)證識(shí)別算法可靠性,實(shí)驗(yàn)結(jié)果表明,本文提出識(shí)別算法得到的OR碼圖像完整且噪聲少,有效克服了模糊、光照不均等因素對(duì)識(shí)別過程的影響,識(shí)別率高,具有一定的實(shí)用性。然而,在預(yù)處理過程中,本文雖然利用透視變換法校正傾斜圖像,但如果形變較為嚴(yán)重,或選用的攝像頭模組出現(xiàn)非線性畸變(桶形畸變或枕形畸變),該算法處理效果則不夠理想,如何克服該問題是下一步研究的重點(diǎn)。
參考文獻(xiàn):
[1]陸一濱. 二維碼在醫(yī)療設(shè)備標(biāo)識(shí)中的應(yīng)用[J]. 中國(guó)醫(yī)療設(shè)備, 2015,30(4): 140-141.
[2]劉凱,羅凱耀,姜代紅. 基于VC++的車牌圖像預(yù)處理設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件導(dǎo)刊,2015,14(6): 189-190.
[3]張芳,王璐,付立思,等. 復(fù)雜背景下黃瓜病害葉片的分割方法研究[J]. 浙江農(nóng)業(yè)學(xué)報(bào),2014(5): 1346-1355.
[4]彭溦汐,趙冠先,王志前. 基于圖像識(shí)別系統(tǒng)的灰度化算法研究與效率分析[J]. 電子世界,2014(7): 105.
[5]朱其剛,朱志強(qiáng). 彩色圖像轉(zhuǎn)換為灰度圖像的算法研究[J]. 山東科技大學(xué)學(xué)報(bào),2004, 23(3): 120-123.
[6]李貞培,李平,郭新宇,等. 三種基于GDI+的圖像灰度化實(shí)現(xiàn)方法[J].? 計(jì)算機(jī)技術(shù)與發(fā)展,2009, 19(7): 73-75,79.
[7]鄒雄,何翠群,劉國(guó)棟,等. 一種快速響應(yīng)碼的圖像二值化方法[J]. 傳感技術(shù)學(xué)報(bào), 2010, 23(9):1277-1280.
[8]ANDRIA G,ATTIVISSIMO F,CAVONE G. Linear filtering of 2-D wavelet coefficients for denoising ultrasound medical images[J].? Measurement, 2012, 45(7): 1792-1800.
[9]羅學(xué)剛,呂俊瑞,王華軍, 等. 選擇性計(jì)算的快速非局部均值圖像去噪[J]. 電子科技大學(xué)學(xué)報(bào),2015, 44(1): 84-90.
[10]郭強(qiáng),張彩明,張?jiān)品澹? 基于最小方差估計(jì)的圖像低秩去噪[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2015, 27(12): 2237-2246.
[11]李博,謝巍. 基于自適應(yīng)分?jǐn)?shù)階微積分的圖像去噪與增強(qiáng)算法[J]. 系統(tǒng)工程與電子技術(shù), 2016, 38(1): 185-192.
[12]賈坤昊,夾尚豐,楊栩,等. 改進(jìn)Niblack算法及其在不均勻光照條件下的應(yīng)用[J]. 軟件導(dǎo)刊, 2019, 18(4): 82-86.
[13]SUDEEP T,RIK D,SAURAV G. A novel feature extraction technique using binarization of bit planes for content based image classification[J]. Journal of Engineering, 2014.
[14]HEMASK. To detect the text stroke in degraded document images using cannysmap, binarization technique[J]. International Journalof Engineering Sciences&Research Technology,2014,3(6):157-162.
[15]袁璐, 李仁發(fā). 一種改進(jìn)的字符圖像二值化算法[J]. 微計(jì)算機(jī)信息,2012,28(3): 140-141,180.
[16]NOBUYUKI O. A threshold selection method from gray-level histogram[J].? IEEE Trans on Syst Man Cybernet, 1979, 9(1): 62-69.
[17]JOHN B. Dynamic Thresholding of gray-level image[C].? IEEE International Conference on Pattern Recognition, 1986: 1251-1255.
[18]SHANG W, CHENG Y.An improved OTSU method based on Genetic Algorithm[C].? International Conference on Machinery, 2016.
[19]孟立娜,韓其睿. 一種全局和局部相結(jié)合的二值化方法研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2012, 22(11): 116-119.
[20]HU H, XU W, HUANG Q. A 2D barcode extration method based on texture direction analysis[C]. IEEE Compture Society,2009: 759-762.
[21]LIU Q, LI X, MEI Z, et al. The multi-QR codes extraction method in illegible image based on contour tracing[C]. IEEE International Conference on Anti-counterfeiting,2011.
[22]何援軍.? 透視和透視投影變換論圖形變換和投影的若干問題之三[J].? 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2005, 17(4): 734-739.
[23]胡東紅, 汪浩, 艾君,等.? 兩種圖像校正算法在實(shí)際應(yīng)用中的比較[J].? 計(jì)算機(jī)工程與應(yīng)用, 2009, 45(13): 191-193,226.
(責(zé)任編輯:黃 ?。?/p>
收稿日期:2019-05-13
作者簡(jiǎn)介:楊凌霄(1964-),女,碩士,河南理工大學(xué)電氣工程與自動(dòng)化學(xué)院教授、碩士生導(dǎo)師,研究方向?yàn)橹悄芸刂婆c信息處理;馮慶修(1992-),男,河南理工大學(xué)電氣工程與自動(dòng)化學(xué)院碩士研究生,研究方向?yàn)楝F(xiàn)代檢測(cè)技術(shù)與裝置。本文通訊作者:馮慶修。