李少波,王 錚,楊 靜,朱書德,全華鳳
(1.貴州大學(xué) 機(jī)械工程學(xué)院,貴州 貴陽 550025; 2.貴州大學(xué) 現(xiàn)代制造技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽 550025)
隨著大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)量愈加龐大,而在數(shù)據(jù)的存儲方式中,條碼是存儲數(shù)據(jù)的良好介質(zhì),具有存儲信息量大、解碼速度高、穩(wěn)定強(qiáng)等特點(diǎn)。對生產(chǎn)線上產(chǎn)品的信息數(shù)據(jù)分類與保存具有重要的意義[1]。當(dāng)今科技迅猛發(fā)展,現(xiàn)代企業(yè)正朝著高效、大型和集成化方向轉(zhuǎn)型,傳統(tǒng)依賴于人工的信息入庫與分類方法具有主觀性強(qiáng)、成本高和易產(chǎn)生視覺疲勞的缺點(diǎn),已不能滿足市場對生產(chǎn)數(shù)據(jù)在線處理的需求。因此,在數(shù)據(jù)采集過程中,如何采用高速度、高精度和高效率的數(shù)據(jù)分類與存儲技術(shù),保障企業(yè)生產(chǎn)節(jié)奏與產(chǎn)品信息精準(zhǔn)追溯已逐漸成為企業(yè)生產(chǎn)領(lǐng)域的首要任務(wù)[2]。
在條碼分類、識別和存儲技術(shù)的前期研究中,文獻(xiàn)[3]針對QR(quick response)碼圖像捕捉中的噪聲問題,運(yùn)用圖像預(yù)處理與中值濾波算法優(yōu)化了傳統(tǒng)QR碼識別算法,但在識碼速度方面略有不足。文獻(xiàn)[4]通過圖像混合將二維碼賦予視覺效果,保留了碼值的錯(cuò)誤修正預(yù)算,但該方法在具有復(fù)雜的環(huán)境噪聲中識別率較低。文獻(xiàn)[5]對條碼信息進(jìn)行加密并搭建了二維碼檢測系統(tǒng),提出了具有較高安全性的二維碼識別方法。為提高QR碼的識別速度,文獻(xiàn)[6]研究了圖像的編碼和解碼過程,將QR碼轉(zhuǎn)換成不同像素的黑白圖像,并設(shè)計(jì)了一種QR碼解碼系統(tǒng),該方法對靜態(tài)的條碼檢測具有較好的檢測效果。針對貼在圓柱體表面的扭曲二維碼,文獻(xiàn)[7]提出一種圓錐曲線糾偏方案,實(shí)驗(yàn)表明該方案有效糾正了扭曲的二維碼圖像,但其識別速率較低且無法實(shí)時(shí)掃碼。文獻(xiàn)[8]提出一種基于二維碼識別的光纜標(biāo)簽,通過對具有光纜標(biāo)簽二維碼的定位與識別,實(shí)現(xiàn)信號回路的實(shí)時(shí)查看,但該方法需人工手持光纜標(biāo)簽設(shè)備進(jìn)行碼值識別。針對拍攝的PDF(portable data file)二維條碼圖像的特點(diǎn),文獻(xiàn)[9]利用梯度特征并結(jié)合數(shù)學(xué)形態(tài)學(xué)的方法,提出一種復(fù)雜背景下條碼圖像的定位方法,對復(fù)雜背景中的條碼具有較好的分割效果。文獻(xiàn)[10]構(gòu)建了西克激光條碼與PLC(programmable logic controller)可編程控制器相結(jié)合的倉儲配送系統(tǒng),通過對一維條碼進(jìn)行掃描檢測,完成商品的自動分揀與配送,但該系統(tǒng)只適用于一維條碼,沒有對二維條碼進(jìn)行有效處理。文獻(xiàn)[11]通過在條碼溯源電子秤上集成條碼識別模塊,構(gòu)建了社區(qū)菜店交易管理與追溯系統(tǒng),實(shí)現(xiàn)了產(chǎn)品稱量、身份驗(yàn)證、標(biāo)簽打印和數(shù)據(jù)上傳等功能。也有學(xué)者嘗試對工業(yè)生產(chǎn)中復(fù)雜背景下的條碼識別,文獻(xiàn)[12]提出一種基于邊緣及水平集的復(fù)雜背景金屬零件二維條碼精確定位方法,實(shí)現(xiàn)了金屬零件表面二維條碼識別。文獻(xiàn)[13]提出一種改進(jìn)的SUSAN(smallest univalue segment assimilating nuclues)角點(diǎn)檢測和半監(jiān)督機(jī)制下的DPM(direct part marking)條碼定位算法,實(shí)現(xiàn)了不同材料上基于角點(diǎn)聚類結(jié)果的DPM條碼定位。針對車間的作業(yè)流程,文獻(xiàn)[14]結(jié)合機(jī)器視覺光源優(yōu)化問題,分析了不同類型和不同強(qiáng)度的噪聲對恢復(fù)信息可分辨性的影響,提出一種基于圖像溢出的信息恢復(fù)方法。而針對二維碼定位的準(zhǔn)確性,文獻(xiàn)[15]提出了基于機(jī)器學(xué)習(xí)和級聯(lián)過濾器結(jié)合的方法去除背景區(qū)域,實(shí)現(xiàn)復(fù)雜背景下二維條碼區(qū)域的快速定位,但該方法處理時(shí)間較長,不適宜定位高速運(yùn)動中的條碼。文獻(xiàn)[16]提出一種基于計(jì)算機(jī)視覺、FPGA(field-programmable gate array)和DSP(digital signal processing)混合設(shè)計(jì)的條碼識別系統(tǒng),對高速移動的二維碼進(jìn)行定位與識別。文獻(xiàn)[17]提出一種基于不變矩和BP(back propagation)網(wǎng)絡(luò)結(jié)合的條碼識別方法,提取不變矩特征向量作為特征值輸入BP網(wǎng)絡(luò),對其進(jìn)行訓(xùn)練與測試,在一維條碼中的識別準(zhǔn)確率為92.9%。文獻(xiàn)[18]提出一種改進(jìn)的EAN-13(European article numbel-13)條形碼定位和識別算法。
綜上所述,在條碼精準(zhǔn)識別領(lǐng)域,針對圖像背景、噪聲等對條碼識別率的影響,過濾背景噪聲、利用聚類特征加快目標(biāo)的檢測速度和準(zhǔn)確率是目前的主流方法,但對于高速運(yùn)動條碼識別的穩(wěn)定性和準(zhǔn)確性有待進(jìn)一步提高?;诖耍疚奶岢鲆环N復(fù)雜背景下一維條碼與二維條碼同步定位與特征提取方法,計(jì)算出系統(tǒng)中各個(gè)參數(shù)與系統(tǒng)最高識碼系數(shù)的關(guān)系,并提出了二維碼和一維碼混合的條碼在線識別算法,以期為帶條碼包裝、產(chǎn)品質(zhì)量追溯、產(chǎn)品分類,故障診斷提供借鑒和參考。
隨著目前數(shù)據(jù)存儲形式的多樣化發(fā)展,條碼成為了產(chǎn)品信息的良好存儲載體。通過識別條碼信息,對相關(guān)產(chǎn)品進(jìn)行分類、信息存儲以及追溯是較為便捷的數(shù)據(jù)處理方式。如今,條碼識別算法的識別時(shí)間已經(jīng)控制在50 ms以內(nèi),可滿足在線識別、分類,存儲等一系列處理過程。經(jīng)典的條碼識別流程如圖1所示。
如圖1所示,條碼隨傳送帶高速移動,經(jīng)過CCD(charge-coupled device)工業(yè)相機(jī)讀取條碼信息后將數(shù)據(jù)存入云端,系統(tǒng)將各個(gè)條碼背景信息與條碼信息一一對應(yīng),對條碼進(jìn)行分類與處理。針對條碼背景復(fù)雜、背景動態(tài)變化快、噪聲多等特點(diǎn),利用高速CCD工業(yè)相機(jī)在條碼高速運(yùn)動時(shí),迅速捕捉條碼圖像,并同時(shí)進(jìn)行條碼背景信息采集與信息云存儲。具體編碼方式原理如下。如圖2所示為QR碼的結(jié)構(gòu)圖。
二維碼圖形分為功能區(qū)和編碼區(qū)兩部分,每個(gè)QR碼符號由一個(gè)正方形陣列組成,它由編碼區(qū)域、尋像圖形、分隔符、定位圖形和校正圖形等區(qū)域組成。符號的四周由空白區(qū)包圍。編碼過程中,實(shí)現(xiàn)在不降低識碼速度的前提下,通過二維碼糾錯(cuò)區(qū)進(jìn)行碼值糾錯(cuò),保證二維碼信息識別的準(zhǔn)確性。以QR二維碼為例,在任何q階伽羅華域GF(q)中都能找到一個(gè)α,能用它的冪次表示q-1個(gè)非零元素。通過GF(28)生成QR條形碼的糾錯(cuò)碼,使用GF(28)中的元素組成一個(gè)循環(huán)隊(duì)列:(1,α1,…,α254),其中α255=α0=1,稱α是GF(28)的本原域元素。α0~α254可用0000 0001~1111 1111來表示。同時(shí),α為P(X)=0的根。其中,以P(X)為模的多項(xiàng)式剩余類環(huán)構(gòu)成28階伽羅華域[19],可定義本原多項(xiàng)式為:
P(X)=X8+X4+X8+X3+X2+1。
(1)
設(shè)置校檢矩陣與編碼碼字矩陣乘積即為編碼碼字多項(xiàng)式:
(2)
即編碼碼字多項(xiàng)式為:
C(X)=c0+c1x1+c2x2+c3x3+…+c25x25。
(3)
在編碼過程中,編碼機(jī)首先確定編碼的字符類型,選擇所需版本信息和糾錯(cuò)等級,采用既定規(guī)則,將數(shù)據(jù)字符轉(zhuǎn)換為位流,再將位流轉(zhuǎn)換為碼字,將生成的糾錯(cuò)碼字加到數(shù)據(jù)碼字后,再按照設(shè)定的規(guī)則在QR結(jié)構(gòu)圖中將尋像圖形、分隔符、矯正圖形和碼字,按規(guī)則排列,放入二維碼矩陣。用8種掩模圖形依次對符號的編碼區(qū)域的位圖進(jìn)行掩模處理,生成版本信息和格式信息,構(gòu)成QR結(jié)構(gòu)圖的符號區(qū)域。
在對二維碼進(jìn)行識別的過程中,利用CCD工業(yè)相機(jī)的高速曝光特性,實(shí)現(xiàn)每秒30幀以上的圖像實(shí)時(shí)采集,當(dāng)相機(jī)采集到完整二維碼時(shí),系統(tǒng)識碼并返回碼值。主要操作包括以下兩步驟:①進(jìn)行格式信息譯碼,確定二維碼編碼版本,消除碼上的掩模,獲得數(shù)據(jù)和糾錯(cuò)碼字;②判斷糾錯(cuò)碼字是否錯(cuò)誤,若無錯(cuò)誤則進(jìn)行數(shù)據(jù)碼字譯碼,輸出保存數(shù)據(jù),若糾錯(cuò)碼字檢查出錯(cuò),則進(jìn)行糾錯(cuò)計(jì)算,將譯碼輸出,保存。
在高速視覺檢測系統(tǒng)中,條碼的不同屬性和環(huán)境參數(shù)是影響系統(tǒng)穩(wěn)定性的重要因素。通過分析系統(tǒng)各部分性能與實(shí)驗(yàn)參數(shù),定義反映系統(tǒng)對條碼識別優(yōu)良情況的指標(biāo):單位時(shí)間內(nèi)系統(tǒng)識別條碼的能力系數(shù)φ。
當(dāng)條碼(以二維碼為例)經(jīng)過相機(jī)視野時(shí),如圖3a所示,定義相機(jī)視野為L視和W視,條碼邊長為L1和W1,待識別條碼距視野底部邊緣為d1,兩條碼間距始終為D1,傳送帶帶速為v,運(yùn)動方向?yàn)榧^所指方向。
當(dāng)只關(guān)注一張條形碼的采集情況時(shí),如圖3b所示,根據(jù)條碼尺寸,當(dāng)鏡頭視野大于條碼尺寸,此時(shí)有,W視>W1,L視>L1。條碼的運(yùn)動過程為:當(dāng)條碼上邊緣與鏡頭視野邊緣重合,即開始采集條碼,當(dāng)條碼上邊緣與鏡頭上邊緣重合時(shí),采集結(jié)束。
考慮計(jì)算機(jī)處理圖像時(shí)間,假設(shè)T為程序識別的必要時(shí)間。若T?t,即當(dāng)程序識別的必要時(shí)間絕對小的情況下,采集一張圖片并識別的必要時(shí)間為:
(4)
若超過時(shí)間t后仍沒有識別圖片,則產(chǎn)生漏檢。單位時(shí)間內(nèi)系統(tǒng)識別條碼的能力系數(shù)φ計(jì)算公式可表示為:
(5)
φ值越高,表示系統(tǒng)識別運(yùn)動中條碼的能力越強(qiáng),將式(4)代入式(5),建立識碼系數(shù)與條碼運(yùn)動速度關(guān)系模型:
(6)
由式(6)可知,當(dāng)條碼尺寸與鏡頭視野保持不變時(shí),系統(tǒng)識碼系數(shù)φ與帶速v成正比。若T>t,則表示計(jì)算機(jī)處理時(shí)間過長,會產(chǎn)生正在處理的條碼未處理完,而待處理?xiàng)l碼已經(jīng)進(jìn)入相機(jī)視野的情況。稱其為滯后時(shí)間:
Δt=T-t。
(7)
因此,在起始階段,Δt時(shí)間內(nèi)條碼運(yùn)行的路程可表示為
ΔS=Δt·v。
(8)
當(dāng)ΔS=W視時(shí),此時(shí)剛好錯(cuò)過一張條碼。則系統(tǒng)丟失率為
ε=50%。
(9)
系統(tǒng)此時(shí)識碼系數(shù)為:
(10)
當(dāng)d1≤ΔS≤W視時(shí),若ΔS恰好等于d1,則第二張條碼也可識別,但第三張卻無法識別,造成數(shù)據(jù)丟失。按此推算,當(dāng)ΔS>d1時(shí),第n張條碼與標(biāo)準(zhǔn)位置相差的距離為:
S差=n·ΔS。
(11)
則S差=W視時(shí),即可認(rèn)為是一個(gè)誤差循環(huán)周期,此時(shí)有
(12)
將式(7)和式(8)代入式(12)可得:
(13)
考慮條碼個(gè)數(shù),假設(shè)一個(gè)視野中條碼個(gè)數(shù)為
P=W視/(D1+W1),
(14)
此時(shí)條碼丟失率為
(15)
將式(14)代入式(15)推導(dǎo)可得:
(16)
此時(shí)系統(tǒng)識碼系數(shù)為
(17)
顯然,當(dāng)帶速vv,相機(jī)視野范圍W視,條碼尺寸確定時(shí),系統(tǒng)識碼系數(shù)與程序識別速度T成反比。式(17)中出現(xiàn)v2項(xiàng),說明當(dāng)其他條件不變時(shí),v對于系統(tǒng)識碼系數(shù)的影響程度較大。
當(dāng)W視≤ΔS≤2W視時(shí),同理有:
(18)
依此類推,當(dāng)2W視≤ΔS≤3W視時(shí)有:
(19)
當(dāng)(m-1)W視≤ΔS≤mW視時(shí)(m>1且m為正整數(shù)),
(20)
將式(20)代入式(10),可計(jì)算出此時(shí)系統(tǒng)識碼系數(shù)為
(21)
對于條碼識別流程,傳統(tǒng)方式為采用如圖4所示的處理步驟對條碼進(jìn)行定位和識別。首先通過預(yù)處理將原來彩色圖像或灰度圖像轉(zhuǎn)化為二值圖像;其次,為了簡化計(jì)算量,通過定位確定二維條碼的大致區(qū)域,裁切圖像,去除無用背景干擾;然后,通過邊界檢測算法,確定二維條碼的四條邊界,實(shí)現(xiàn)精準(zhǔn)定位;最后劃分網(wǎng)格對二維條碼的數(shù)據(jù)信息進(jìn)行提取,將提取的數(shù)據(jù)傳給后續(xù)的解碼程序[20]。
為了提高識碼效率,本文將條碼圖像預(yù)處理,對條碼識別區(qū)域進(jìn)行尺寸偏好設(shè)置,具體處理流程如下:
步驟1將條碼極性設(shè)置為條碼較亮,而底色較暗。
步驟2設(shè)置實(shí)驗(yàn)中條碼屬性數(shù)值條碼碼粒數(shù)和碼粒像素的大小。
步驟3設(shè)置條碼掃描線的條數(shù)。
在圖像預(yù)處理之后,采用改進(jìn)XLD(extended line descriptions)算法進(jìn)行二維碼定位,直接在復(fù)雜背景中定位出二維碼的準(zhǔn)確位置,從而提高系統(tǒng)的識碼系數(shù)。圖5為XLD二維碼定位圖,表1為條碼識別算法中應(yīng)用的Halcon算子。
具體算法流程如下:
步驟1創(chuàng)建XLD,調(diào)用Halcon中的亞像素邊緣提取算子進(jìn)行輪廓提取。
步驟2對XLD輪廓進(jìn)行分割,采用線段分割方式。調(diào)用Halcon中的select_obj函數(shù)選擇條碼分割的輪廓。
步驟3將圓、直線等形狀進(jìn)行擬合。
步驟4將前三步的結(jié)果轉(zhuǎn)化成世界坐標(biāo),獲得圖像的坐標(biāo)信息。
步驟5提取輪廓特征。
步驟6獲得輪廓的原始數(shù)據(jù)或?qū)⑵滢D(zhuǎn)化成其他的數(shù)據(jù)類型。
步驟7輸出結(jié)果并進(jìn)行保存。
為了使算法能同步識別一維碼與二維碼,提出一種雙模板中間變量識別算法,具體算法流程如圖6所示。
具體處理流程如下:
步驟1初始化中間變量μ0=0,μ1=0。
步驟2工業(yè)相機(jī)抓取一幀圖片。
步驟3創(chuàng)建一維條形碼識別模板ω1,嘗試進(jìn)行一維碼預(yù)識別。
步驟4判斷識別結(jié)果δ1是否為零,若結(jié)果為零,表示該條形碼為二維碼或未識別條碼,則創(chuàng)建二維碼識別模板ω2,嘗試進(jìn)行二維碼預(yù)識別。
步驟5若在步驟3中識別碼值不為零,表示該條形碼為一維碼,將碼值δ1賦值給中間變量μ1。
步驟6若在步驟3中δ1為零,但二維碼碼值δ2不為零,表示該條形碼為二維碼,將碼值δ2賦值給中間變量μ1,此時(shí)中間變量μ1為當(dāng)前條碼(一維或二維)的碼值。
步驟7若μ1-μ0≠0,則說明與之前一張圖片中的碼值不同,將μ1賦值給μ0并保存μ0與采集的圖片;否則,說明前后兩張條碼的碼值相同,則返回步驟2重新采圖。
表1 算法所應(yīng)用的Halcon算子
如圖7所示為筆者設(shè)計(jì)的一維與二維混合高速條碼檢測實(shí)驗(yàn)平臺系統(tǒng)流程圖。如果圖8所示為課題組搭建的一維與二維混合高速條碼檢測實(shí)驗(yàn)平臺,包括傳送帶、數(shù)據(jù)處理器、數(shù)據(jù)采集傳感器、光源和其他機(jī)械支架等部分,其中用于輸入與顯示數(shù)據(jù)的觸摸顯示屏是32寸的工業(yè)觸摸屏;視覺傳感設(shè)備采用的是具有電子滾動快門的MindVision高速工業(yè)相機(jī),它可以實(shí)時(shí)采集高速運(yùn)動的待檢測樣本。數(shù)據(jù)處理器為樹莓派B3;為了保證系統(tǒng)箱體內(nèi)光線充足,在箱體上安裝亮度可調(diào)的帶狀環(huán)境光源LED光;在工業(yè)相機(jī)外部安裝Microscope LED Ring Light專用環(huán)形光源對檢測樣本進(jìn)行補(bǔ)光,便于獲得清晰的樣本圖像。設(shè)備采用可調(diào)速的電機(jī)驅(qū)動傳送帶工作;箱體外側(cè)配有顯示器,用于將檢測結(jié)果可視化,用于降低數(shù)據(jù)處理器運(yùn)算負(fù)荷的工作站是GPU1080顯卡的戴爾工作站,主要用于數(shù)據(jù)分析。同時(shí),樹莓派B3具有無線通訊模塊,可以實(shí)現(xiàn)檢測實(shí)驗(yàn)平臺與工作站間端到端的通信。工作站中裝有SQL SERVER 2008 R2數(shù)據(jù)庫,實(shí)現(xiàn)本地?cái)?shù)據(jù)實(shí)時(shí)抓取作業(yè),并自動進(jìn)行實(shí)時(shí)數(shù)據(jù)云端存儲。
傳送帶上貼有條形碼,光纖傳感器探測到條形碼經(jīng)過后,向圖像采集部分發(fā)送觸發(fā)脈沖;圖像采集部分按照事先設(shè)定的程序和延時(shí),分別向工業(yè)相機(jī)和照明系統(tǒng)發(fā)出啟動脈沖,工業(yè)相機(jī)開始圖像抓取,Microscope LED Ring Light專用環(huán)形光源提供照明,照明開啟時(shí)間與工業(yè)相機(jī)的曝光時(shí)間匹配。相機(jī)抓取圖像后,圖像采集部分接收模擬信號通過A/D(analog to digital)轉(zhuǎn)換將其數(shù)字化;圖像采集部分將數(shù)字圖像存放在處理器或計(jì)算機(jī)的內(nèi)存中;處理器對條碼圖像進(jìn)行處理、分析、識別,獲得檢測結(jié)果并保存。
為了驗(yàn)證本文所提的方法,實(shí)驗(yàn)中所使用的一維條形碼與二維條形碼均采用條碼生成軟件Active Barcode自動生成。條碼代表的內(nèi)容由隨機(jī)字母和數(shù)字以及不同位數(shù)的“1”組成。需要說明的是:為更好地模擬實(shí)際生產(chǎn)中條碼反光以及背景模糊復(fù)雜等情況,在各條碼上均貼有反光透明貼紙,并將條形碼隨機(jī)貼在實(shí)驗(yàn)臺的傳送帶表面。
為存儲系統(tǒng)識別的條形碼內(nèi)容,本文采用SQL Server 2008 R2數(shù)據(jù)庫對所識別的條形碼進(jìn)行存儲,并通過數(shù)據(jù)庫作業(yè)服務(wù)進(jìn)行本地?cái)?shù)據(jù)實(shí)時(shí)云存儲并可視化,如圖9所示。
系統(tǒng)識別條碼之后,將碼值數(shù)據(jù)上傳于SQL Server 2008 R2數(shù)據(jù)庫中儲存,如圖10所示,值得說明的是:data的數(shù)值表示為條碼的內(nèi)容。條碼背景圖片保存入本地文件以便實(shí)時(shí)調(diào)用查詢識別情況。
4.3.1 實(shí)驗(yàn)參數(shù)設(shè)置
在搭建的實(shí)驗(yàn)平臺上對所提出的方法進(jìn)行應(yīng)用驗(yàn)證。根據(jù)系統(tǒng)整體識碼系數(shù)的計(jì)算分析,以及實(shí)驗(yàn)設(shè)備與待識別條形碼結(jié)構(gòu),設(shè)置如表2所示的物理量值和參數(shù)值。同時(shí)根據(jù)式(21)推導(dǎo)求得實(shí)驗(yàn)參數(shù)下的條碼最優(yōu)運(yùn)動速度,推導(dǎo)過程如下:
該函數(shù)為二次函數(shù),且拋物線開口向下,導(dǎo)數(shù)為零的點(diǎn)為其唯一極大值點(diǎn),對其求導(dǎo)后得:
令其導(dǎo)數(shù)為零,則有:
進(jìn)而求得:
采用MATLAB工具對本文所提方法的系統(tǒng)識碼系數(shù)和帶速關(guān)系進(jìn)行仿真分析,其結(jié)果如圖11所示。
表2 實(shí)驗(yàn)系統(tǒng)物理量與參數(shù)
4.3.2 條碼移動速度與系統(tǒng)識碼系數(shù)的關(guān)系
基于Halcon算子實(shí)現(xiàn)了混合條碼高速識別算法,實(shí)驗(yàn)中采樣圖片1 000張其中一維碼500張,二維碼500張,圖像像素為520×520 pix。在采樣過程中,結(jié)合實(shí)際生產(chǎn)線上的反光、復(fù)雜背景干擾等因素,識別條碼情況與算法對比如表3所示,在帶速處于系統(tǒng)最優(yōu)識碼系數(shù)左右時(shí),在1 000張測試條碼中,實(shí)驗(yàn)設(shè)備在條碼高速運(yùn)行狀態(tài)下,準(zhǔn)確識別了971張條碼,準(zhǔn)確率達(dá)97.1%。
觀察圖11可知,當(dāng)運(yùn)動速度從0 mm/ms增加到8.00 mm/ms的過程中,整個(gè)系統(tǒng)識碼系數(shù)隨著速度增加而逐漸增加到最大值,后又由于程序識別時(shí)間與條碼運(yùn)動速度的限制逐漸減小。實(shí)際上,當(dāng)條碼速度從0 mm/ms逐漸增加時(shí),隨著其運(yùn)動速度增加,系統(tǒng)單位時(shí)間識別出的條碼數(shù)量增加,表現(xiàn)為φ逐漸增加。當(dāng)條碼運(yùn)動速度過快,會導(dǎo)致在條碼經(jīng)過鏡頭視野時(shí),計(jì)算機(jī)程序沒能完成識別的工作從而導(dǎo)致漏檢,表現(xiàn)為φ逐漸降低。當(dāng)條碼運(yùn)動速度達(dá)到3.75 mm/ms時(shí),當(dāng)前實(shí)驗(yàn)系統(tǒng)識碼系數(shù)達(dá)到理論最優(yōu)。但考慮到實(shí)際生產(chǎn)設(shè)備、實(shí)驗(yàn)中傳送帶的穩(wěn)定性以及工業(yè)相機(jī)的曝光時(shí)間等實(shí)際參數(shù)的限制。在實(shí)驗(yàn)時(shí),將帶速控制在3.00 mm/ms左右,模擬實(shí)際生產(chǎn)中的實(shí)時(shí)條碼信息抓取與存儲。
由圖12對比各參數(shù)對系統(tǒng)識碼系數(shù)的影響可知,當(dāng)條碼運(yùn)動速度保持不變(3.00 mm/ms)時(shí),兩條碼間距越小、條碼寬度越窄、系統(tǒng)處理時(shí)間越短、鏡頭視野越大,系統(tǒng)整體識碼系數(shù)越高;反之系統(tǒng)識碼系數(shù)越低。當(dāng)兩條碼間距為2.00 mm,條碼寬度為7.00 mm,鏡頭視野為36.00 mm時(shí),實(shí)驗(yàn)平臺識碼系數(shù)較高。
4.3.3 不同算法的實(shí)驗(yàn)結(jié)果對比
為了進(jìn)一步驗(yàn)證本文所提算法的有效性和優(yōu)越性,與目前較優(yōu)的條碼識別算法進(jìn)行對比,其中包括基于計(jì)算機(jī)視覺、FPGA和DSP混合設(shè)計(jì)的條碼識別系統(tǒng)、基于不變矩和BP網(wǎng)絡(luò)的條形碼識別算法、中值濾波算法、基于二維碼的光纜標(biāo)簽定位算法以及基于機(jī)器學(xué)習(xí)和級聯(lián)過濾器聯(lián)立算法,對比結(jié)果如表3與圖13所示。
表3 不同算法的實(shí)驗(yàn)結(jié)果對比
續(xù)表3
對比圖13可知,實(shí)驗(yàn)中所用條形碼數(shù)量較多,較好地反映了系統(tǒng)識碼的性能。本文提出的算法對條形碼定位時(shí)間較短,由于實(shí)驗(yàn)中條碼運(yùn)動速度較快,以及相機(jī)等硬件設(shè)備的限制,識碼準(zhǔn)確性適當(dāng)降低,但仍可滿足實(shí)際生產(chǎn)中高速運(yùn)動條形碼定位識別的需求。圖14給出了移動條碼在實(shí)驗(yàn)設(shè)備中的部分檢測結(jié)果。值得說明的是:本文提出的方法需要檢測設(shè)備周期性運(yùn)動,檢測環(huán)境和外界光線保持恒定不變;條碼運(yùn)動速度在3 mm/ms左右時(shí),算法在有效時(shí)間內(nèi)的實(shí)時(shí)計(jì)算與數(shù)據(jù)存儲能力較優(yōu)。
本文針對高速運(yùn)動中的一維和二維條碼檢測識別和高速運(yùn)動中多類條碼分類,摒棄了傳統(tǒng)識碼的冗雜流程,通過XLD亞像素邊緣檢測對多類條碼進(jìn)行邊緣定位并進(jìn)行特征提取,結(jié)合二維碼校準(zhǔn)編碼方式,提高了條碼高速運(yùn)動過程中算法的穩(wěn)定性與準(zhǔn)確性。通過理論分析與實(shí)驗(yàn)得到以下結(jié)論:提出了一種基于Halcon的XLD邊緣檢測識碼方法,有效提高了系統(tǒng)定位條碼的速度與準(zhǔn)確性;對反映系統(tǒng)整體運(yùn)行情況的識碼系數(shù)(φ)物理量并進(jìn)行仿真運(yùn)算,找到了針對實(shí)驗(yàn)中常量的系統(tǒng)最高識碼系數(shù)點(diǎn);本系統(tǒng)對于高速運(yùn)動條碼具有良好的魯棒性。未來將針對噴碼零件分類與表面缺陷檢測進(jìn)行研究,并提高系統(tǒng)的穩(wěn)定性和執(zhí)行效率,為高速運(yùn)動產(chǎn)品的非接觸檢測提供一種高效可視化的檢測方法。