李琪 江齊 葉武劍 劉怡俊 陳穗霞 呂月圓 劉峰

摘要:伴隨著二維碼在現代生產、生活中的廣泛應用,高效、準確地識別二維碼變得愈發重要,但是傳統技術僅限于識別特定位置的二維碼,而且對圖像畫質有著較高要求。應用網絡攝像頭的二維碼動態識別系統可以解決以上問題,系統包括四個模塊;網絡攝像頭視頻處理、圖像增強、圖像粗粒度定位與分割、二維碼識別與信息獲取。相比直接調用二維碼識別算法獲取二維碼信息,擁有以上四個模塊的系統漏檢率更低,并且可以識別實時拍攝的視頻中的二維碼。
關鍵詞:網絡攝像頭;動態識別;圖像增強;二值化;輪廓檢測
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2019)04-0166-03
Abstract:With the wide application of two-dimensional code in modern production and life, it has become increasingly important to identify two-dimensional code efficiently and accurately.However, traditional technology is limited to the identification of two-dimensional code in specific locations,and it has high requirements on image quality.The dynamic identification system of two-dimensional code can solve the above problems,including four modules; network camera video processing,image enhancement,coarse-grained image localization and segmentation,and two-dimensional code recognition and information acquisition.Compared with direct use of two-dimensional code recognition algorithm to obtain two-dimensional code information,the system with the above four modules has a lower miss rate and can identify the two-dimensional code in real-time filmed video.
Key words: webcams; dynamic identification; image enhancement; binarization; contour detection
1引言
隨著二維碼技術的完善及智能手機的普及,越來越多的領域開始采用該技術實現信息傳遞。二維碼就是通過二進制編碼,把數字、字母、漢字等字符轉換成黑白方塊的圖案,由一個矩陣圖形和一個二維碼號,以及下方的說明文字組成。二維碼具有儲存量大、保密性高、追蹤性高、成本便宜等特性。
二維碼作為一種新的技術在人們生活中有著廣泛的應用,例如票據識別、網上購物、手機支付、圖書借閱、身份識別等。能在不同應用場景下對二維碼進行快速可靠地定位與識別也是目前研究的熱點,然而傳統的二維碼識別技術只限于識別靜態場景中的二維碼,僅限于某一區域或者特定位置,不具備實時、動態等特點。本文提出了一套具備現實生產意義的,可部署于生產現場投入使用的系統來解決以上問題,針對動態視頻中的二維碼進行識別。目前已在志高工業園3號廠區開展多次測試運作,已基本具備記錄貨物出入庫信息,并與志高后臺大數據庫協同工作的能力。
2相關工作
二維碼作為信息的主要載體之一,針對它的定位和識別技術已經被大量研究和開發,常用的定位檢測技術是結合圖像匹配的二維碼掃描算法的方法。
Zhao-lai Liao[2]等人提出了三點定位二維碼的有效方法,對二維碼的三個頂點的矩形塊進行圖像檢測,快速定位二維碼然后利用Hough transform(霍夫變換)得到二維碼傾斜角度,降低因角度導致識別產生的誤差。Tribak H[8]等人提出了一種基于HOG和SVM分類器的遠程二維碼識別方法。Yuji Katoh、Daisuke Deguchi[4]等人采用super resolution(超分辨率)技術從多個低分辨率圖像中生成高分辨率圖像,達到識別模糊圖像中二維碼的目的。Cheng X M, Hao Q, Zhang C[6]等人提出了一種針對失真圖像中的二維碼識別方法,利用固定區域內像素的方差和灰度值,求出區域內方差最小的位置,從而得到黑白數據塊,準確還原二維碼二值圖像。
以上這些方法僅限于識別特定位置的二維碼,不具備動態、實時等特性,而應用網絡攝像頭的二維碼動態識別系統可以識別不同攝像頭所拍攝視頻中的二維碼,應用場景更加廣闊。
3二維碼定位與識別關鍵技術
本系統首先應用網絡攝像頭動態拍攝視頻,再調用網絡攝像頭接口和算法對視頻進行處理,將視頻轉化為復數的圖像輸入到后臺計算機,隨后進行圖像增強處理,下一步對增強處理后的圖像進行粗粒度定位分割;其中包括背景分離,二值化,腐蝕濾波,輪廓檢測、圖像分割等一系列步驟,最后調用二維碼識別算法完成對粗粒度處理后得到二維碼圖像塊進行識別,讀取二維碼信息,流程如圖1所示:
我們利用OpenCV來完成對視頻圖像的處理。 OpenCV是一個基于BSD(伯克利軟件套件)許可(開源)發行的跨平臺計算機視覺庫,可以在Linux、Windows、Android和Mac OS的操作系統上運行。OpenCV提供的圖像處理算法非常豐富,包含我們要用到的:輪廓檢測函數、返回外部矩形邊界函數、圖像二值化函數等。
3.1網絡攝像頭視頻處理
本系統可以同時驅動多個攝像頭,并以編碼后的格式將二維碼數據發送到數據庫,同時控制二維碼掃描系統的控制端也能實現狀態查詢,啟動停止等控制功能。圖2、3是在實驗室環境測試系統的示意圖,圖中二維碼距離攝像頭距離約2.5米,且在黑暗背光條件下的測試。由測試圖可看出,本系統識別率較高,環境適應能力較強,能適應各種不同環境的生產現場,提高各個行業領域的生產效率。
在進入下一模塊處理之前,首先調用網絡攝像頭端口和函數對視頻進行幀處理,利用軟件工具開發包SDK中的函數進行抓圖,捕獲實時流,將實時流解碼成YV12格式,然后轉換成RGB圖像。將圖像數據傳輸到后臺計算機,為接下來的模塊處理做準備。
3.2圖像增強
本模塊是為了應對網絡攝像頭拍攝過程中出現的圖像不清晰,亮度過低等問題,避免遺漏部分二維碼,降低漏檢率。這里本文使用OpenCV的常用圖像增強算法。
3.2.1對數圖像增強算法
3.3圖像粗粒度定位與分割
本系統創新性地將二維碼識別重點放在“白紙”上,即我們選取的視頻圖像的特點是二維碼和背景有著較大的色差,也就是我們常說的“白底黑碼”。通過檢測圖像中出現的矩形白色區域,實現二維碼的粗粒度定位。具體有以下幾個步驟:
3.3.1背景分離
本系統使用網絡攝像頭來記錄場景中的二維碼圖片和大背景,我們需要從視頻圖像中提取前景。使用常見的高斯模型去除背景法。本方法的基準是判斷像素點變化率,把變化慢的學習為背景,變化快的視為前景,從而完成背景分離。
3.3.2二值化
3.3.3濾波與腐蝕
經過上一步處理后得到的二值圖像中大體能夠顯示出二維碼區域。但是不可避免地會出現不連通和多噪點的瑕疵,會影響接下一步的輪廓檢測,因此我們對二值圖像進行濾波去除圖像中的噪點,并進行腐蝕處理來解決內部不連通的問題。這一系列的形態學處理有助于分割出獨立的圖像元素,在圖像中連接相鄰的元素,可以降低漏檢率。
3.3.4輪廓檢測與圖像分割
繼續上一步驟,我們要做的工作是將二維碼區域從原圖中分割出來,得到復數個矩形圖像塊,在OpenCV中調用輪廓檢測函數獲得二維碼區域輪廓,該函數可以對輸入的二值圖像進行改變,將輪廓繪制出來。隨后調用返回外部矩形邊界函數;該函數可以隨機生成一些點計算并包圍輪廓圖像的最小矩形。最后根據輪廓檢測的坐標,對原本圖像進行圖像分割,得到相應坐標位置的矩形塊。
3.4二維碼識別與信息獲取
應用二維碼識別算法,調用函數庫和接口對粗粒度處理得到的復數圖像塊進行掃描,并獲取其中的信息,獲得的二維碼信息可以通過后臺的計算機顯示。
4實驗結果及其分析
各個模塊的實驗結果如下所示:
經過圖像增強模塊處理后效果如圖4所示。(a)為增強前,(b)為增強后,可以明顯看出圖像清晰度得到了提高。
經過模塊粗粒度定位與分割模塊后的效果如圖5所示,(a)為處理前,(b)為處理后。經過該模塊的處理,系統已經定位出的二維碼部分的矩形。
利用二維碼識別算法掃描后的最終實驗結果如圖6所示,其中各項參數分別為:流水號、攝像機ID、mac地址、二維碼內容。我們已經成功識別了圖中的二維碼。并且將復數個二維碼的詳細信息在后臺計算機上顯示,至此整個識別流程結束。
5總結
本文著重介紹了一種應用網絡攝像頭的二維碼動態識別技術,系統包括四個模塊:網絡攝像頭視頻處理、圖像增強、圖像粗粒度定位與分割、二維碼識別與信息獲取。擁有漏檢率低、能夠實時動態地識別視頻中的二維碼的優點。本系統有著廣泛的應用前景,可在生產線上設置攝像頭采集二維碼所包含的信息,并發給遠方的接收端,批量識別二維碼,不同場景下二維碼識別技術的應用是今后工業化生產發展的必然方向。
參考文獻:
[1] Hogpracha W, Vongpradhip S. Recognition system for QR code on moving car[C]//International Conference on Computer Science & Education. IEEE, 2015:14-18.
[2] Liao Z L, Huang T L, Wang R, et al. A method of image analysis for QR code recognition[C]// International Conference on Intelligent Computing and Integrated Systems. IEEE, 2010:250-253.
[3] Chen J, Wu B. A Otsu Threshold Segmentation Method Based on Rebuilding and Dimension Reduction of the Two-Dimensional Histogram[J]. Journal of Graphics, 2015.
[4] Kato Y, Deguchi D, Takahashi T, et al. Low Resolution QR-Code Recognition by Applying Super-Resolution Using the Property of QR-Codes[C]// International Conference on Document Analysis and Recognition. IEEE Computer Society, 2011:992-996.
[5] Jtc1/Sc I. Information technology -- Automatic identification and data capture techniques -- QR Code 2005 bar code symbology specification[J]. 2006.
[6] Cheng X M, Hao Q, Zhang C, et al. Distortion Correction of a Quick Response Code Image[J]. Applied Mechanics & Materials, 2013, 431:312-317.
[7] Qian K, Yu Y, Wang D, et al. Design for two-dimensional barcode dynamic recognition system in the environment of large-scale logistics[C]// Advanced Information Technology, Electronic and Automation Control Conference. IEEE, 2016:878-882.
[8] Tribak H, Moughyt S, Zaz Y, et al. Remote QR code recognition based on HOG and SVM classifiers[C]//International Conference on Informatics and Computing. IEEE, 2017:137-141.
[9]Qian K, Yu Y, Wang D, et al. Design for two-dimensional barcode dynamic recognition system in the environment of large-scale logistics[C]//Advanced Information Technology, Electronic and Automation Control Conference. IEEE, 2016:878-882.
[10]Sun H, Ma Y, Wu H, et al. An improved OTSU's method for CT image boundary contour extraction[C]// IEEE International Conference on Imaging Systems and Techniques. IEEE, 2016:493-497.
【通聯編輯:唐一東】