李筱楠 鄭 華 劉會杰
(石家莊鐵路職業(yè)技術學院 河北石家莊 050041)
QR碼圖像預處理方案研究
李筱楠 鄭華 劉會杰
(石家莊鐵路職業(yè)技術學院 河北石家莊050041)
圖像預處理是QR碼解碼過程中的重要步驟。在傳統(tǒng)識別方案基礎上,提出一種實用的QR碼圖像預處理方法,對采集到的圖像進行濾波和二值化處理,由位置探測圖形定位QR碼的位置和畸變角度,并通過透視變換矯正圖像幾何形變。實驗結果表明,該方案可以克服QR碼易受噪聲干擾、光照不均和幾何失真等影響的問題,顯著提高了QR碼的識別率。
QR碼 濾波 二值化 透視變換
QR(Quick Response)碼是一種矩陣二維碼,具有可靠性高、防偽性強等優(yōu)點,在物流、郵政、證件、電子車票等領域有廣泛應用。然而,受到張貼位置、制作材料等因素的影響,暴露在外的QR碼常被污損、撕扯,導致圖像不完整;另外,拍攝角度、攝影設備不穩(wěn)定,也會致使圖像傾斜、變形、失真;此外,受到光照和陰影影響,圖像中還可能存在曝光過度、不足等噪聲。以上情況都會導致QR碼圖像辨識困難。
本文通過分析QR碼自身特點和降晰信息,在現(xiàn)有多種圖像預處理算法基礎上,提出一種更有效的QR碼圖像預處理算法,提高QR碼的識別率和識別速度。
ISO18004規(guī)定QR碼是由nxn個正方形碼元模塊構成的陣列,如圖1所示。根據(jù)模塊功能不同,可以將QR碼圖像分為編碼區(qū)和功能區(qū)。編碼區(qū)主要用于存儲數(shù)據(jù)、糾錯信息版本信息和格式信息;功能區(qū)則包括位置探測圖形、分隔符、定位圖形和校正圖形等。
位置探測圖形位于符號的3個頂點[1],用于快速定位QR碼在原圖像中的位置。每個位置探測圖形由深、淺色模塊按照1∶1∶3∶1∶1交替排列而成,該比例具有水平不變性。這一特性使得條碼圖像在全方位旋轉下也可以通過搜索3個位置探測圖形實現(xiàn)定位和矯正。
受到拍攝條件和隨機干擾的影響,用戶拍攝采集的QR碼原始圖像很難直接識別,必須經(jīng)過濾波、矯正等圖像處理過程后才能有效解碼。
圖1 QR碼結構圖
3.1圖像濾波
原始圖像中存在兩種噪聲:一種是由于QR碼本身被污染或者破損而產(chǎn)生的自然噪聲;另一種是在圖像采集、傳輸過程產(chǎn)生的電子噪聲[2]。自然噪聲可以在解碼時通過糾錯信息排除;而電子噪聲一般為椒鹽噪聲,表現(xiàn)為圖像中的黑白雜點,很難與QR碼的黑白兩色碼元模塊徹底區(qū)分,只能使用濾波消除。另外,QR碼在解碼過程中需要測量模塊面積,因此模塊邊緣信息非常重要。為了保留圖像邊緣銳度,本文中采用中值濾波[3]進行降噪。
中值濾波是基于排序統(tǒng)計理論的非線性數(shù)據(jù)處理技術,其基本原理是通過鄰域運算把圖像傅里葉空間的高頻分量減弱或消除,高頻分量正是對應圖像中亮度變化劇烈的區(qū)域,過濾除這些分量可以讓圖像整體更加平滑,從而消除電子噪聲。本文采用3x3模板進行中值濾波,其步驟如下:(1)將模板中心置于原始圖像的某像素點上;(2)讀取模板中該像素鄰域各點的灰度值;(3)建立模板矩陣;(4)計算模板矩陣中值;(5)將中值賦給模板中心處像素點;(6)將模板在圖像中遍歷。
經(jīng)測試,中值濾波對版本12(65x65碼元模塊)以下的QR碼圖像有比較好的濾波效果,高版本的QR碼由于碼元模塊數(shù)量多、面積小,很難排除其中的電子噪聲。
3.2圖像二值化
攝像裝備采集到的圖像是彩色圖像或灰度圖像,數(shù)據(jù)量較大,不利于識別,因此有必要對原圖進行二值化處理。二值化過程的關鍵是確定二值化閾值,閾值選取算法可以分為全局閾值法和局部閾值法兩類。
全局閾值法[4]使用固定值對圖像進行二值化,對直方圖中存在明顯雙波峰的圖像效果最佳。但由于QR碼本身由黑白兩色組成,在光照條件不好時,其直方圖中并沒有明顯的波峰信息,即便是目前公認最有效的OTSU算法也無法很好地解決QR碼原始圖像的二值化問題。
局部閾值法中每個像素位置的二值化閾值是由其鄰域像素狀態(tài)所決定。不同亮度、對比度的圖像區(qū)域將會有相對應的局部閾值。在文獻[5]中,提出了一種改進的Bernsen算法,對于光照不勻的QR碼圖像有很好的處理效果,但是其占用資源多,在Android系統(tǒng)中運行較慢。
3.3圖像矯正
由于采集角度、QR碼附著對象本身不是平面等原因,可能造成原始圖像中存在幾何失真??梢酝ㄟ^定位QR碼的3個位置探測圖形確定QR碼的位置和畸變角度,將其從原圖中提取并加以修正。
QR碼中位置探測圖形是整個圖像中的特有部分,可以通過邊緣檢測算法進對其進行搜索和定位。圖像邊緣檢測是指通過算法搜索鄰近像素點的灰度值具有階躍變化或者屋頂變化特性的那些像素集合,經(jīng)過二值化后,圖像中的像素值只有255和0兩種,邊緣檢測比較容易。本文使用了第三方openCV庫中的一階搜索算子Sobel算子[6]實現(xiàn)。
將得到的3個探測圖形連成三角形,如果圖像無畸變,則該三角形為等腰直角三角形,圖像可直接識別;如果圖像有畸變,則三角形斜邊所對的頂點即為QR碼中左上角探測圖形的中心點,其夾角減去π/2即為畸變角度。獲取圖像頂點和畸變角度后,既可通過文獻[7]提出的透視變換算法對圖像進行矯正。
為測試版本方案對QR碼畸變圖像的處理時間和處理后的圖像識別率,現(xiàn)使用QR碼版本3、Level M生成一幅480X480像素的QR碼圖像作為標準圖像;使用PhotoShop編輯標準圖像,產(chǎn)生畸變角度為15°、30°、45°的失真圖像;使用紅米Note手機同時安裝本方案APK和谷歌提供的ZXing APK掃描標準圖像和3種畸變圖像各50次,記錄識別次數(shù)和解碼時間,測試數(shù)據(jù)如表1所示。
表1 測試結果統(tǒng)計表
可見,本方案對于畸變角度不大于30°的QR碼圖片有很好的矯正效果,矯正后的圖片識別成功率明顯提高。但由于手機處理器性能不足,修正和變換圖片消耗時間比較長,下一步還需要優(yōu)化處理算法的時間復雜度,盡量減少運算時間。
[1]快速響應矩陣碼GB/T18284-2000.國家質量技術監(jiān)督局. 2000
[2]一種基于圖像增強的圖像濾波方法.康牧.武漢大學學報.2009-9
[3]一種基于自適應神經(jīng)模糊推理系統(tǒng)的圖像濾波方法.羅海馳;李岳陽;孫俊.計算機科學.2013-7
[4]Otsu準則的閾值性質分析.許向陽;宋恩民;金良海.電子學報.2009-12
[5]改進的Bernsen算法實證研究.張紅穎.電子世界.2013-02
[6]基于改進Sobel算子的邊緣檢測算法的研究.何春華;張雪飛;胡迎春.光學技術.2012-05
[7]基于改進Hough變換和透視變換的透視圖像矯正.代勤;王延杰;韓廣良.液晶與顯示.2012-08
Research of QR Code Image Preprocessing Scheme
LI Xiao-nan ZHENG Hua LIU Hui-jie
(Shijiazhuang Institute of Railway Technology ShijiazhuangHebei050041China)
Image preprocessing is an important step in the process of QR code decoding. In this paper, a practical image preprocessing method for QR code recognition is proposed. Image binarization can reduce process computation, and locate QR code based on its symbol characteristics. Experimental results demonstrate that the proposed approach can overcome the influence from noise,inhomogeneous light and geometric distortion, and thus increase the recognition rate of the QR code
QR code filtering binarization perspective transformation
文獻標識碼:A文章編號:1673-1816(2016)03-0069-03
2016-06-18
李筱楠(1981-),男,漢,河北石家莊人,講師,學士,研究方向網(wǎng)絡通信。
河北省科技計劃項目(15270330);河北省高等學校科學技術研究青年基金項目(QN2016215);河北省高等學校科學技術研究自籌項目(ZC2016109)