董夙慧, 孫中廷, 徐永剛
(1. 中國礦業(yè)大學(xué) 信息與電氣工程學(xué)院, 江蘇 徐州 221008;2. 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院 徐州財(cái)經(jīng)分院, 江蘇 徐州 221011)
采用GPU并行計(jì)算與圖像匹配的工件條碼識別算法
董夙慧1,2, 孫中廷1,2, 徐永剛1
(1. 中國礦業(yè)大學(xué) 信息與電氣工程學(xué)院, 江蘇 徐州 221008;2. 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院 徐州財(cái)經(jīng)分院, 江蘇 徐州 221011)
設(shè)計(jì)基于圖形處理器(GPU)并行計(jì)算與圖像匹配的條碼識別算法.首先,設(shè)計(jì)基于歸一化協(xié)方差的圖像匹配算子,定位每個條碼的位置.然后,根據(jù)條碼面積、周長、形狀因子,確定條碼種類.最后,采用GPU并行計(jì)算方式完成條碼解析.實(shí)驗(yàn)數(shù)據(jù)顯示:與當(dāng)前條碼識別技術(shù)相比,所提算法能夠同步識別多種條碼,且在面對光照強(qiáng)度較暗或過高時,該算法具有更高的穩(wěn)定性與抗干擾性,其仍具有更高的識別精度與效率. 關(guān)鍵詞: 條碼識別; 圖形處理器; 圖像匹配; 并行計(jì)算; 歸一化協(xié)方差
制造工廠生產(chǎn)產(chǎn)品或中間件,都需要使用條碼標(biāo)識產(chǎn)品信息與狀態(tài)[1-2].因此,各行各業(yè)要對大量的條碼完成解析.目前,主流的條碼解析機(jī)制分為人工機(jī)制和智能讀碼器.人工機(jī)制由人力手持激光條碼掃描槍,對條碼逐個掃描入終端PC;智能讀碼器機(jī)制由架設(shè)好的品牌讀碼器完成自動讀碼[3-4].但是,人工機(jī)制效率低且易受主觀差異影響,智能讀碼器機(jī)制價(jià)格昂貴.當(dāng)同一產(chǎn)品具有多個且多種類型的條碼時,由于需要切換掃描槍或讀碼器模式,這兩種機(jī)制往往不能完整解碼且切換效率低.對此,研究人員將圖像處理與計(jì)算機(jī)視覺技術(shù)引入條碼識別中,對其展開研究,取得了一定成果.胡大輝[5]提出了邊緣檢測算法在污損條碼識別,達(dá)到了多條碼的目的.王鵬[6]提出了基于CPU和GPU結(jié)構(gòu)的條碼識別,使用GPU并行計(jì)算技術(shù),實(shí)現(xiàn)了快速讀碼的目的.胡智宏[7]提出了基于平移匹配的傾斜條碼快速識別系統(tǒng),達(dá)到了多條碼解析的目的.然而,上述圖像處理技術(shù)在多種條碼混合的情況下,難以用于高效率的條碼識別中.為了提高條碼識別系統(tǒng)的適應(yīng)性,使其在多種條碼且碼制種類不同的環(huán)境下仍然能夠精確高效地完成條碼識別,本文提出了基于GPU并行計(jì)算與圖像匹配的多種類條碼同步識別算法.
圖1 文中算法的機(jī)制架構(gòu)Fig.1 Architectural mechanism of this algorithm
首先,產(chǎn)品隨傳送帶運(yùn)動到工業(yè)相機(jī)鏡下采集圖像,隨后基于歸一化協(xié)方差的圖像匹配完成每個條碼定位,再提取每個條碼的幾何信息(面積、周長、形狀因子).由于不同碼制的幾何信息不同,因此,可根據(jù)這些特征完成碼制的判斷.然后,構(gòu)建GPU并行計(jì)算平臺,對多個條碼進(jìn)行同步解析,達(dá)到高效識別的目的.最后,根據(jù)條碼黑白條寬度與排序規(guī)則,完成多條碼的快速識別.算法流程,如圖1所示.
圖2 多條碼圖像Fig.2 Bar code images
多條碼圖像,如圖2所示.圖2中,表面含有多個條碼,且含有Code3,Code128兩種碼制的條碼,而文中研究的碼制種類有UPC,Code3,Code128,Codabar,且同一個產(chǎn)品可能最多同時出現(xiàn)這4種條碼.因此,所提算法的目的是對多條碼完成同步識別.
圖3 文中算法的定位流程Fig.3 Locations flowchart of this algorithm
為了有效地對多碼制條碼進(jìn)行同步識別,需要準(zhǔn)確定位條碼位置與碼制判斷,定位流程如圖3所示.由于不同條碼的長度、寬度不同,顏色主要為黑白色,其中,黑條與背景顏色差別明顯,且黑色、白色子條間隔的區(qū)域灰度分布特征不同,因此,文中利用這些特征作為定位依據(jù).首先,采用Otsu算法[8],對圖2進(jìn)行分割,得到包含條碼的二值圖,如圖4(a)所示.把兩個條碼的區(qū)域分割出來,便于續(xù)圖像匹配與細(xì)定位,分割閾值的確定公式為
(1)
式(1)中:σ2為背景區(qū)域與條碼目標(biāo)區(qū)域間的灰度方差,方差最大時的灰度為分割閾值;u0為背景區(qū)域的灰度均值;u1為目標(biāo)區(qū)域的灰度均值;w0為背景區(qū)域在整張圖像的所占比例;w1為目標(biāo)區(qū)域在整張圖像的所占比例.
獲取條碼大致區(qū)域后,采用基于歸一化協(xié)方差進(jìn)行細(xì)定位[9],即目標(biāo)模板與圖像間的區(qū)域灰度協(xié)方差為
(2)
式(2)中:R(i,j)為圖像區(qū)域左上角(i,j)與目標(biāo)模板的相似性度量值;E為區(qū)域灰度期望值;S為圖像區(qū)域灰度能量;T為模板區(qū)域灰度能量.
基于歸一化協(xié)方差的圖像目標(biāo)匹配具有統(tǒng)計(jì)模型簡單、定位精度高、收斂速度快的優(yōu)勢[9].圖像匹配結(jié)果,如圖4(b)所示.由圖4(b)可知:2個條碼的位置被精確定位.完成精準(zhǔn)定位,再提取條碼長度、寬度、面積、周長和形狀因子,構(gòu)成碼制判斷向量.文中算法的形狀因子的定義為
(3)
式(3)中:X為形狀因子;c為長度;w為寬度;s為面積;l為周長.通過提取以上信息構(gòu)成碼制向量,由于不同碼制的幾何信息各不相同,因此,利用碼制向量可以完成碼制判斷.
(a) 分割二值圖 (b) 條碼定位結(jié)果圖4 文中算法的分割二值圖和條碼定位結(jié)果Fig.4 Segmentation binary image and locating result of this algorithm
圖5 條碼識別結(jié)果Fig.5 Recognition results of bar code
得到多個條碼的精確區(qū)域坐標(biāo)和對應(yīng)碼制后,基于GPU并行計(jì)算平臺,對多個條碼進(jìn)行同步解碼,以節(jié)約系統(tǒng)運(yùn)行時間.算法采用Navida公司主流獨(dú)立顯卡GPU430,開發(fā)環(huán)境為CUDA與VS2010.該GPU與傳統(tǒng)的普通CPU(i5)相比,不但能高速解決圖像復(fù)雜運(yùn)算,而且可以并行處理多項(xiàng)運(yùn)算任務(wù)整體效率.因此,文中算法采用該公司生產(chǎn)的GPU對多種條碼同步解析.解碼準(zhǔn)則:首先,識別條碼區(qū)域的白條、黑條寬度;然后,確定順序;最后,依據(jù)國際統(tǒng)一編碼規(guī)則,完成解碼.
由于已經(jīng)精準(zhǔn)定位條碼位置和碼制,逐一累計(jì)條碼白條、黑條的像素寬度,即可為解碼提供數(shù)據(jù)[10],從而完成條碼識別.計(jì)算復(fù)雜度由基于OpenCV的GPU模塊完成,在并行計(jì)算平臺上實(shí)現(xiàn)像素計(jì)數(shù)功能.該方法使用簡單,利用GpuMat管理CPU與GPU之間的數(shù)據(jù)傳輸,且不需要關(guān)注內(nèi)核函數(shù)調(diào)用參數(shù)的設(shè)置,使用過程中,只需要關(guān)注處理的邏輯操作[11].同步精準(zhǔn)解析出2個條碼,并實(shí)時顯示結(jié)果,如圖5所示.
圖6 GPU條碼同步識別流程Fig.6 Flow chart of GPU bar code synchronization recognition
通過采用GPU并行計(jì)算技術(shù),在加快條碼寬度運(yùn)算的同時,也提高了計(jì)算精度,整個基于GPU的多條碼識別機(jī)制,如圖6所示.
為了驗(yàn)證文中算法的抗干擾性與適應(yīng)性,選擇2組不同光照強(qiáng)度下的條碼作為實(shí)驗(yàn)對象,分別為光照強(qiáng)度較弱(50 lx)和較強(qiáng)(2 000 lx),如圖7(a),圖8(a)所示.若工件上有污漬,先用酒精輕微擦洗,待吹干后,采集圖像,每種光照強(qiáng)度下包含4種不同種類的條碼.
為了體現(xiàn)文中算法的優(yōu)勢,將當(dāng)前多條碼識別性能較好的技術(shù)(文獻(xiàn)[5],[7],[12])設(shè)為對照組.采用最大方差自動閾值分割,精準(zhǔn)分割出包含條碼區(qū)域的二值圖像,如圖7(b),圖8(b)所示.基于歸一化協(xié)方差的圖像匹配精確定位每個條碼位置坐標(biāo),并提取其幾何特征向量,以判斷碼制.采用GPU并行計(jì)算平臺完成對條碼的解析,實(shí)現(xiàn)多種條碼同步識別的功能,結(jié)果如圖9(a)所示.由圖9(a)可知:產(chǎn)品上的4個條碼被精確鎖定并提取,得到條碼信息并在界面顯示.
利用文獻(xiàn)[5]識別技術(shù)對圖7(a)進(jìn)行處理,如圖9(b)所示.由于單純采用幾何輪廓粗定位,條碼解析采用單線程模式,且缺乏碼制模式轉(zhuǎn)換,在多個條碼且條碼種類不一的復(fù)雜應(yīng)用背景下,往往對目標(biāo)定位不準(zhǔn)或識別失誤.由圖9(b)可知:右上角條碼定位錯誤,第1,3個條碼識別失誤.
(a) 條碼待識別圖像 (b) 二值圖 圖7 光照強(qiáng)度較弱的條碼待識別圖像和二值圖Fig.7 Bar code recognizes image and binary image in weak light
(a) 條碼待識別圖像 (b) 二值圖 圖8 光照強(qiáng)度過高的條碼待識別圖像和二值圖Fig.8 Bar code recognizes image and binary image in strong light
利用文獻(xiàn)[7]算法對圖7(a)進(jìn)行處理,如圖9(c)所示.圖9(c)中:條碼定位正確,但是第3個條碼識別失誤.由于使用傾斜算子優(yōu)化條碼成像,提高了條碼定位準(zhǔn)確率,但是缺乏健壯的識別運(yùn)算平臺,只是單純依靠普通CPU串行計(jì)算各個條碼寬度,在多個條碼且條碼種類不一的復(fù)雜應(yīng)用背景下,往往對目標(biāo)識別失誤.
(a) 文中算法 (b) 文獻(xiàn)[5]技術(shù)
(c) 文獻(xiàn)[7]技術(shù) (d) 文獻(xiàn)[12]技術(shù)圖9 4種算法對光照強(qiáng)度過弱的條碼識別結(jié)果Fig.9 Bar code recognition result of four algorithms in weak light
文獻(xiàn)[12]采用水印條碼檢測,水印不可見性良好,與普通條碼圖像一致,其采用灰度紋理定位識別條碼的技術(shù)具有通用性.因此,選擇文獻(xiàn)[12]技術(shù)與文中算法進(jìn)行對比.利用文獻(xiàn)[12]的識別技術(shù)對圖7(a)進(jìn)行處理,如圖9(d)所示.由于文獻(xiàn)[12]采用圖像紋理特征定位條碼,與文獻(xiàn)[5],[7]采用的灰度或幾何特征相比,其抗光照干擾較強(qiáng),因此,定位精準(zhǔn)度與文中算法相當(dāng).但是,其GPU是非并行模式,在多條碼同步計(jì)算時,往往存在丟幀現(xiàn)象,導(dǎo)致條碼最后幾位識別的失誤或遺漏,部分條碼識別錯誤.
采用文中算法和文獻(xiàn)[5],[7],[12]技術(shù)分別對圖8(a)進(jìn)行處理,結(jié)果如圖10所示.圖8(a)光照強(qiáng)度較強(qiáng),由文中算法處理后的二值圖(圖8(b))可知:由于文中的定位方法采用灰度協(xié)方差,即區(qū)域特征,對區(qū)域整體灰度特征分布差分析特征,對光照過高有抗干擾性,所提算法仍然能準(zhǔn)確解析條碼,具有更高的精度(圖10(a)).文獻(xiàn)[5],[7]均采用局部極值特征,在光照變化中,容易受到影響,從而導(dǎo)致定位不準(zhǔn)和識別失誤(圖10(b),10(c));文獻(xiàn)[12]通過設(shè)計(jì)相應(yīng)的提取算法獲取圖像紋理特征,具有較好的抗光照干擾能力,在面對光照強(qiáng)度較強(qiáng)時,仍然具有較高的定位精度(圖10(d)),但該算法只能對單一的條碼進(jìn)行識別,無法對多條碼同步識別,從而導(dǎo)致條碼識別失敗.
(a) 文中算法 (b) 文獻(xiàn)[5]技術(shù)
(c) 文獻(xiàn)[7]技術(shù) (d) 文獻(xiàn)[12]技術(shù)圖10 4種算法對光照強(qiáng)度過高的條碼圖像的解碼結(jié)果Fig.10 Bar code recognition result of four algorithms in strong light
為了體現(xiàn)算法的有效性與抗干擾性,測試6組不同光照條件下,4種算法的識別準(zhǔn)確率,共計(jì)1 200個條碼,測試結(jié)果如表1所示.表1中:Ev為光照強(qiáng)度;η為識別準(zhǔn)確率.依據(jù)電腦CPU運(yùn)行負(fù)荷,每次同步識別30個條碼,同一光照條件下采集的1 200個條碼,分40組進(jìn)行,通過統(tǒng)計(jì)每組試驗(yàn)中完全識別正確的數(shù)量表征識別準(zhǔn)確率,而測試識別失誤或漏識別均為失效(η=完全識別正確數(shù)量/1 200).
表1 不同光照強(qiáng)度下的各算法的條碼識別準(zhǔn)確率Tab.1 Bar code recognition rate of different algorithms in different light intensity
由表1可知:在各種復(fù)雜的光照條件下,文中算法的識別正確率始終保持最高,由于文中算法依據(jù)區(qū)域整體灰度特征分布差定位識別,降低了光照強(qiáng)度的干擾,即使當(dāng)光照亮度達(dá)到8 000 lx時,其識別正確率仍為89.26%;而文獻(xiàn)[5],[7]兩種算法受光照干擾影響較大,導(dǎo)致其識別正確率最低,即使在光照強(qiáng)度正常的條件下,由于這兩種算法均非同步識別技術(shù),其識別正確率只有60%左右;文獻(xiàn)[12]由于采用圖像紋理特征定位條碼,定位精度較高,但是其GPU計(jì)算是非并行模式,在面對多條碼同步識別時,易導(dǎo)致漏識別與局部識別錯誤.
再次以圖7(a)為目標(biāo),利用4種算法進(jìn)行測試,記錄各算法的識別時耗,結(jié)果如圖11所示.由圖11可知:文中算法的識別效率最高,時耗僅為43 ms;而文獻(xiàn)[5],[7],[12]的識別效率較低,分別為78,101,62 ms.原因是文中算法采用了Navida公司主流獨(dú)立顯卡GPU 430,通過對條碼完成并行計(jì)算實(shí)現(xiàn)條碼識別,有效縮短了識別時耗,而對照組技術(shù)則是利用傳統(tǒng)的CPU(i5)處理機(jī)制,該GPU屬于非并行模式,只能逐一對條碼完成識別,使解碼時耗較高.因此,文中識別技術(shù)具有更高的解碼速度.
(a) 文中算法 (b) 文獻(xiàn)[5]技術(shù) (c) 文獻(xiàn)[7]技術(shù) (d) 文獻(xiàn)[12]技術(shù) 圖11 4種算法的識別效率測試Fig.11 Test for recognition rate of four algorithms
可見,文中算法具有較高的抗干擾性與適應(yīng)性,在復(fù)雜環(huán)境下(光照強(qiáng)度較弱或過高),仍然能夠準(zhǔn)確識別定位條碼,繼而精確完成解碼,使所提算法兼顧了較高的條碼識別精度與效率.
為了解決多種條碼環(huán)境下難以同步識別的問題,設(shè)計(jì)了基于GPU并行計(jì)算與圖像匹配定位的多條碼同步識別系統(tǒng),實(shí)現(xiàn)對產(chǎn)品多條碼的準(zhǔn)確定位、碼制判斷、GPU并行計(jì)算.實(shí)驗(yàn)結(jié)果表明:與當(dāng)前多條碼識別技術(shù)相比,文中方法在多種條碼同步識別的應(yīng)用背景下,具有更好的精度和效率,為多種條碼的快速識別提供了技術(shù)保障.
[1] 殷銳,陳金亮.面向DNC車間的刀具全壽命周期管理技術(shù)研究[J].組合機(jī)床與自動化加工技術(shù),2013,2(3):134-136.
[2] 王宇,黃富貴,李興旺.平面度誤差統(tǒng)計(jì)特征實(shí)驗(yàn)[J].華僑大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,35(5):487-491.
[3] 胡輝.檢測算法在條碼識別中的應(yīng)用研究[J].計(jì)算機(jī)工程,2015,32(14):18-25.
[4] NARAYAN G R,JAMES M V.Barcode recognition from video by combining image processing and xilinx[J].Procedia Engineering,2012,38(12):2140-2146.
[5] 胡大輝.邊緣檢測算法在污損條碼識別中的應(yīng)用研究[J].包裝工程,2015,43(2):71-76.
[6] 王鵬.航空信息系統(tǒng)中基于CPU & GPU結(jié)構(gòu)的條碼識別技術(shù)的研究[J].計(jì)算機(jī)科學(xué),2015,33(10):86-100.
[7] 胡智宏.平移匹配在傾斜條碼快速識別中的應(yīng)用研究[J].包裝工程,2015,21(21):283-287.
[8] ZHOU Shengbo,SHEN Aiqin,LI Gengfei.Concrete image segmentation based on multiscale mathematic morphology operators and otsu method[J].Advances in Materials Science and Engineering,2015,11(7):124-135.
[9] LUO Nan,SUN Quansen,CHEN Qiang.A novel tracking algorithm via feature points matching[J].PloS One,2015,10(1):e0116315-e0116324.
[10] PENG Shiyou,DONG Qinghua.GPU-based parallel prewitt algorithm implementation and its application on GPR[J].Computer Science and Application,2013,3(3):153-158.
[11] HUANG Yao,XIAO Bingjia,LUO Zhengping,etal.Implementation of GPU parallel equilibrium reconstruction for plasma control in EAST[J].Fusion Engineering and Design,2016,34(10):134-145.
[12] SATOSHI O.Coevolutionary design of a watermark embedding scheme and an extraction algorithm for detecting replicated two-dimensional barcodes[J].Applied Soft Computing,2015,710(24):34-35.
(責(zé)任編輯: 黃曉楠 英文審校: 吳逢鐵)
Workpiece Barcode Identification Algorithm Using GPU Parallel Computing and Image Matching
DONG Suhui1,2, SUN Zhongting1,2, XU Yonggang1
(1. College of Information and Electrical Engineering, China University of Mining and Technology, Xuzhou 221008, China;2. Xuzhou Branch of Finance, Jiangsu Lianhe Technical Institute, Xuzhou 221001, China)
The workpiece barcode synchronization identification algorithm based on graphics processing unit (GPU) parallel computing and image matching was proposed in this paper. Firstly, the position of each barcode was located by designing image matching operator based on normalized covariance. Then the type of barcode was determined according to the barcode area, perimeter, and shape factor. Finally, the analysis of the barcode was finished by GPU parallel computing method. Experimental data shows that: compared with the current barcode recognition technique, this algorithm can identify a variety of barcode, this algorithm had a higher stability under the light intensity is dark or too high, and it had a higher recognition accuracy and efficiency. Keywords: barcode identification; graphics processing unit; image matching; parallel computing; normalized covariance
10.11830/ISSN.1000-5013.201701015
2016-03-04
董夙慧(1977-),男,副教授,主要從事圖像識別與應(yīng)用、網(wǎng)絡(luò)安全、大數(shù)據(jù)的研究.E-mail:dongsuhui1977@aliyun.com.
江蘇省自然科學(xué)基金資助項(xiàng)目(BD2011129)
TP 391
A
1000-5013(2017)01-0080-06