楊凌霄 馮慶修



摘 要:針對模糊、光照不均情況下獲得的低質量QR碼難以識別的問題,設計一種低質量QR碼識別算法,包括加權平均值法灰度化、中值濾波算法降噪、二值化、基于位置探測圖形定位、基于透視變換法的旋轉矯正,以及基于Zbar開源庫的譯碼算法等。重點研究針對模糊、光照不均QR碼圖像的二值化算法,提出一種基于Bernsen算法思想的改進算法,將全局閾值引入該算法中,實現對圖像的二值化處理。在VS2010環境下基于Opencv2.4.9圖像處理庫對識別算法進行驗證,結果表明,通過該算法得到的QR碼圖像完整且噪聲少,有效克服了低質量QR碼的影響,提高了圖像識別率,具有一定的實用性。
關鍵詞:低質量QR碼;二值化;Bernsen;Zbar;圖像識別
DOI:10. 11907/rjdk. 191689
中圖分類號:TP319 ? 文獻標識碼:A??????????????? 文章編號: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碼識別技術是一門不僅將數據采集、處理、傳輸等過程融為一體,而且跨越了多門學科的新興科學技術。當前,人們對QR碼識別技術的相關研究主要集中在以下3個方面:QR碼圖像采集、圖像預處理與圖像譯碼。首先,通過圖像采集模塊對QR碼圖像進行采集,然后通過處理器對采集到的圖片進行預處理,具體過程包括圖像灰度化、濾波、二值化、濾波、校正與定位。預處理的目的是為了提高圖片質量,以便于下一步解碼,是整個識別過程中的關鍵環節。最后對處理后的圖像進行解碼,識別QR碼格式及版本,完成掩膜消除、糾錯等過程,并輸出QR碼攜帶的字符信息。但在實際應用中,噪聲、抖動、光照不均等因素都會導致采集設備獲得的圖像質量不高,若預處理方法選取不當則會使處理后的圖像出現信息丟失的情況,導致圖像無法識別。
圖像灰度化是指將彩色圖像轉化為灰度圖像的過程,可以減少輸入圖像的信息量以及后續運算量[1],不僅可以加快后續算法處理速度,還提高了系統效率[2-3]。加權平均值法是常用的圖像灰度化處理算法[4],根據重要性或其它指標賦予R、G、B不同權值,并使R、G、B的值均等于其原值的加權和。不同權值形成的灰度圖像亮度不同,由于人眼對顏色的敏感程度是根據綠紅藍順序遞減的,因此將R、G、B權值由大到小取值將得到比較合理的灰度圖像[5]。通過實驗與理論推導證明,R、G、B權值分別為0.30、0.59、0.11時得到的灰度圖像最為合理[6]。本文采用該方法獲得QR二維碼的灰度圖像。
通過采集模塊獲取到的QR碼圖像或多或少都包含噪聲成分,如加性噪聲、乘性噪聲等,從而使圖像變得模糊,因此有必要對圖像進行濾波處理,即在最大程度保留圖像細節特征的前提下抑制目標圖像噪聲,其處理結果將直接影響對后續QR碼圖像的識別。圖像濾波包括線性濾波和非線性濾波,如果輸出像素是輸入像素鄰域像素的線性組合,則稱為線性濾波,如均值濾波和高斯濾波,否則為非線性濾波,如中值濾波、邊緣保持濾波等。針對圖像濾波研究,鄒雄等[7]對二維碼圖像預處理過程中的噪聲濾除方法進行研究,對幾種常用的中值濾波方法進行比較分析并得出規律,繼而提出一種基于窗口系數的中值濾波算法,該方法先對圖像進行二值化,之后進行中值濾波,對于特定噪聲具有較好的處理效果;Andria[8]利用小波線性濾波器對超聲醫學圖像進行去噪處理,可能會損失圖像中的細節信息;羅學剛等[9]提出一種選擇性計算的快速非局部均勻去噪算法,利用 L2范數逐次消元法剔除大量相似像素點,提高了去噪速度;郭強等[10]根據圖像的低秩特性和最小方差估計理論提出迭代去噪算法,能有效抑制殘留噪聲;李博等[11]提出一種小概率策略的全局自適應分數階積分去噪算法,在去噪的同時還能增強與保留圖像紋理。目前在QR碼噪聲預處理方法中,中值濾波算法簡單且處理效果較好,因此本文選擇該算法并將其應用于QR碼識別系統中。
(1)采用加權平均法對圖像進行灰度化處理。
(2)遍歷圖像所有灰度值,將使類間方差目標函數值最大的灰度值記為全局閾值[Τ1]。
(3)令[S=15,T=0.5×(Τ1+128)],[fx,y]為當前像素[(x,y)]的灰度值,計算以當前像素為中心、大小為[2w+1×2w+1]的窗口內,所有灰度值中最大灰度值[M]和最小灰度值[N]的均值[Τ2]。
(4)計算窗口內所有灰度值的平均值[average]和均方差SS,其中[x-w xx+w],[y-wyy+w]。
(5)令[T=αT1+βT2],其中[α+β=1,α0,β0],對圖像像素逐點進行二值化處理,規則如下:
將全局閾值引入局部閾值法中,使每一個窗口內的信息與圖像整體信息相關聯,將窗口內所有灰度值的均方差引入算法中。當[SSS]時,說明該窗口內灰度值較為寬泛,像素處于前景和背景交叉區域,此時應以[T]為閾值,使得邊緣更加連續、平滑;當[SS
3 實驗結果
3.1 改進二值化算法實驗
二值化算法中有3個參數[w、α、β]需要手動設定。[w]決定局部窗口大小,算法運行時間與其有一定關系,選取的局部窗口越大,耗時越長,也會影響計算結果的準確性。[α、β]決定全局閾值與局部閾值在算法中的權重,α越大,二值化后的圖像中弱光或強光區域凸顯的細節越少,而[α]過小會導致[β]過大,誤判概率增大。為了保證二值化處理效果,參數選取以[α<β]為原則。經過多次實驗,確定算法參數[w、α、β]分別取值為1、0.3、0.7。
利用筆記本攝像頭拍攝獲得OR碼圖像,并從中選取標準、模糊、光照不均,且大小均為640*480的QR碼圖像各50幅對算法可行性進行驗證。在VS2010環境下基于Opencv2.4.9圖像處理庫編寫程序,分別采用Bernsen算法、Otsu算法與本文算法對圖像進行二值化處理,3種算法處理結果如圖2-圖4所示。
在3組圖像中,將方框區域放大后觀察可發現:Bernsen算法對圖像進行二值化處理的效果最差,對前景與背景誤判比較嚴重,處理后的圖像無法識別。但對比圖2(b)、圖3(b)、圖4(b)可以發現,模糊、光照不均等因素對Bernsen算法二值化的影響很小,這一點也反映出該算法的優勢;Otsu算法處理結果分別表現出白斑、有毛刺、不完整的現象,但該算法的前景和背景誤判問題遠沒有Bernsen算法嚴重;通過對比圖3(c)與圖3(d)發現,在圖像模糊的情況下,本文方法獲得的二值化圖像邊緣平滑、連通性好,解決了Otsu二值化方法出現大量毛刺、白斑的問題,并克服了Bernsen算法出現大量誤判的缺陷;通過對比圖4(c)與圖4(d)可以發現,在圖像受到不均勻光照的情況下,本文方法獲得的二值化圖像比較完整,較好地解決了Otsu二值化方法因存在區域缺失導致QR碼無法識別的問題。
3.2 QR碼識別算法可靠性實驗
將QR碼識別過程分為3部分:圖像采集、圖像預處理與圖像譯碼。圖像采集是指通過筆記本攝像頭拍攝獲得QR碼圖像數字信息;圖像預處理是指以獲得的QR碼圖像數字信息為基礎,利用圖像處理技術通過Opencv庫函數對該圖像進行濾波、灰度化、二值化、定位與旋轉矯正;圖像譯碼是指利用Zbar開源庫譯碼算法進行譯碼,獲取QR碼存儲的數據信息。其中圖5(a)表示采集設備獲得的原圖;圖5(b)為灰度圖;圖5(c)為二值化圖;圖5(d) 、圖5(e)和圖5(f)是QR碼定位檢測結果;圖5(g)為最終定位標記圖;圖5(h)為最終校正圖。
由于顯示介質的亮度不唯一,且QR碼載體(如手機)在掃描過程中難免出現抖動,造成識別設備拍攝到的圖像出現亮度不均、模糊等情況,分別針對這兩種情況下QR碼識別效果進行測試。通過筆記本攝像頭拍攝手機顯示屏上顯示的QR碼圖像,在拍攝過程中采用抖動手機的方式獲得50張模糊的QR碼圖像,并采用補光方式獲得50張光照不均的QR碼圖像,其識別結果如表1所示。通過對100 張QR碼識別時間進行測試,然后求平均值以得到相對準確的識別時間。實驗得到的8組數據如表2所示,其中“A”表示該程序對一張QR碼進行預處理與譯碼的時間,“B”表示該算法識別一張QR碼的時間。
通過分析識別結果可以發現,算法針對模糊、光照不均圖像的識別率均為94%。QR碼圖像的預處理與譯碼時間在100ms以內,識別時間集中在260ms~300ms之間,100次識別時間的平均值為275.746ms。實驗結果驗證了本文提出的基于VS2015平臺的QR碼識別算法的可行性與實用性。
4 結語
本文提出一種針對QR碼圖像的識別算法,并重點對識別過程中的二值化算法進行改進,在結合局部閾值和全局閾值的同時,引入局部窗口灰度值均方差。在對模糊、光照不均情況下的二維碼圖像進行處理時,通過多重規則選取不同閾值進行二值化處理,能夠得到比Otsu算法與Bernsen算法細節更豐富的圖像。在VS2010環境下基于Opencv2.4.9圖像處理庫與Zbar解碼庫驗證識別算法可靠性,實驗結果表明,本文提出識別算法得到的OR碼圖像完整且噪聲少,有效克服了模糊、光照不均等因素對識別過程的影響,識別率高,具有一定的實用性。然而,在預處理過程中,本文雖然利用透視變換法校正傾斜圖像,但如果形變較為嚴重,或選用的攝像頭模組出現非線性畸變(桶形畸變或枕形畸變),該算法處理效果則不夠理想,如何克服該問題是下一步研究的重點。
參考文獻:
[1]陸一濱. 二維碼在醫療設備標識中的應用[J]. 中國醫療設備, 2015,30(4): 140-141.
[2]劉凱,羅凱耀,姜代紅. 基于VC++的車牌圖像預處理設計與實現[J]. 軟件導刊,2015,14(6): 189-190.
[3]張芳,王璐,付立思,等. 復雜背景下黃瓜病害葉片的分割方法研究[J]. 浙江農業學報,2014(5): 1346-1355.
[4]彭溦汐,趙冠先,王志前. 基于圖像識別系統的灰度化算法研究與效率分析[J]. 電子世界,2014(7): 105.
[5]朱其剛,朱志強. 彩色圖像轉換為灰度圖像的算法研究[J]. 山東科技大學學報,2004, 23(3): 120-123.
[6]李貞培,李平,郭新宇,等. 三種基于GDI+的圖像灰度化實現方法[J].? 計算機技術與發展,2009, 19(7): 73-75,79.
[7]鄒雄,何翠群,劉國棟,等. 一種快速響應碼的圖像二值化方法[J]. 傳感技術學報, 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]羅學剛,呂俊瑞,王華軍, 等. 選擇性計算的快速非局部均值圖像去噪[J]. 電子科技大學學報,2015, 44(1): 84-90.
[10]郭強,張彩明,張云峰,等. 基于最小方差估計的圖像低秩去噪[J]. 計算機輔助設計與圖形學學報, 2015, 27(12): 2237-2246.
[11]李博,謝巍. 基于自適應分數階微積分的圖像去噪與增強算法[J]. 系統工程與電子技術, 2016, 38(1): 185-192.
[12]賈坤昊,夾尚豐,楊栩,等. 改進Niblack算法及其在不均勻光照條件下的應用[J]. 軟件導刊, 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]袁璐, 李仁發. 一種改進的字符圖像二值化算法[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]孟立娜,韓其睿. 一種全局和局部相結合的二值化方法研究[J]. 計算機技術與發展, 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].? 計算機輔助設計與圖形學學報, 2005, 17(4): 734-739.
[23]胡東紅, 汪浩, 艾君,等.? 兩種圖像校正算法在實際應用中的比較[J].? 計算機工程與應用, 2009, 45(13): 191-193,226.
(責任編輯:黃 健)
收稿日期:2019-05-13
作者簡介:楊凌霄(1964-),女,碩士,河南理工大學電氣工程與自動化學院教授、碩士生導師,研究方向為智能控制與信息處理;馮慶修(1992-),男,河南理工大學電氣工程與自動化學院碩士研究生,研究方向為現代檢測技術與裝置。本文通訊作者:馮慶修。