摘要:以Meteor II Standard圖像采集卡為基礎(chǔ),以識(shí)別金屬零件上的Data Matrix二維碼為目的,對(duì)攝像頭采集的圖像進(jìn)行處理。實(shí)現(xiàn)了該方法在工業(yè)流水線睥實(shí)時(shí)識(shí)別應(yīng)用。
二維碼是在平面二維方向上都記錄信息的符號(hào)。它充分利用了平面上的二維空間,大大提升了信息密度,使得在小面積上編碼大數(shù)據(jù)成為可能。其次由于它超強(qiáng)的糾錯(cuò)能力,即使大面積受損也能被準(zhǔn)確識(shí)別。目前二維碼應(yīng)用于工業(yè)自動(dòng)化、物流、郵政、醫(yī)療、商業(yè)、金融、交通運(yùn)輸、身份識(shí)別、政府管理、公共安全、海關(guān)及國(guó)防等領(lǐng)域。在我國(guó),二維碼的應(yīng)用尚屬起步階段,應(yīng)用地區(qū)和領(lǐng)域也相當(dāng)有限。但是可以預(yù)見,二維碼以其獨(dú)特的優(yōu)勢(shì)必將像條形碼一樣在我國(guó)的各個(gè)領(lǐng)域被推廣和應(yīng)用。
本文通過Matrox公司的圖像采集卡Meteor-II Standard,利用MIL函數(shù)庫對(duì)氣動(dòng)打印在金屬零件上的Data Matrix二維碼進(jìn)行了實(shí)時(shí)捕捉識(shí)別,并對(duì)采集來的Data Matrix圖像進(jìn)行具體的圖像處理,命名其達(dá)到被識(shí)別的要求。最后,通過實(shí)驗(yàn)討論提高識(shí)別率的方法。
圖1
1 Data Matrix概述
二維碼有多種類型,本文只討論矩陣式Data Matrix。
Data Matrix最大特點(diǎn)就是“小”,能在25mm2面積上編碼30個(gè)數(shù)字,因此被廣泛用于標(biāo)示集成電路、藥品等小件物品。另外在制造業(yè)的流水線生產(chǎn)過程中,打印生成Data Matrix也較容易。
如圖1所示,Data Matrix符號(hào)看起來像一個(gè)由深淺兩種顏色組成的國(guó)際象棋棋盤,每一個(gè)相同大小的黑色或白色方格稱為一個(gè)數(shù)據(jù)單位。Data Matrix符號(hào)由許多這樣的數(shù)據(jù)單位組成。在尋邊區(qū)外層有寬度為一個(gè)數(shù)據(jù)單位的靜區(qū)。尋邊區(qū)是“棋盤”的邊界,只用于定位和定義數(shù)字單位的大小,而不含 有任何編碼信息。被尋邊區(qū)包圍的數(shù)據(jù)區(qū)包含著編碼信息。矩陣中的0、1就是Data Matrix的黑白兩色小方格,即數(shù)據(jù)單位。
Data Matrix采用了Reed-Solomon交織交插編碼,編碼時(shí)加入了糾錯(cuò)碼,使Data Matrix的糾錯(cuò)性能比較強(qiáng)。以一個(gè)5位的流水號(hào)“12345”為例,通過編碼規(guī)則得到Data Matrix的3位碼字和5位糾錯(cuò)碼,可糾錯(cuò)2位碼字,糾錯(cuò)率為2/8=25%。
2 用MIL識(shí)別Data Matrix碼
Meteor-II Standard是Matrox公司的一塊圖像采集卡,通過攝像頭采集外界圖像,然后實(shí)時(shí)地傳輸給主機(jī)內(nèi)存。MIL函數(shù)開發(fā)包是一個(gè)獨(dú)立于硬件的32位圖像處理函數(shù)庫,其中有大量基本的圖像處理函數(shù)。
2.1 基本過程
Data Matrix識(shí)別的基本過程如圖2所示。通過MIL提供的函數(shù)采集圖像,并將采集的圖像以數(shù)字化方式存儲(chǔ)在圖像緩沖區(qū)中;對(duì)圖像進(jìn)行增強(qiáng)處理,提高圖像的識(shí)別準(zhǔn)確率。實(shí)驗(yàn)中通過平滑濾波方法,減少圖像噪聲,很好地解決了采集金屬零件的Data Matrrix碼時(shí),由于碼符號(hào)邊沿亮度過亮影響圖像分割問題;然后對(duì)圖像進(jìn)行直方圖均衡化,擴(kuò)大對(duì)比度的動(dòng)態(tài)范圍,解決由于光照或攝像頭的原因,造成采集的圖像偏暗,對(duì)比度不夠顯著,引起圖像中明暗模糊不清的問題。
由于采集后的圖像有很多無用背景,Data Matrix符號(hào)所在區(qū)域只占整個(gè)圖像很上的比重。采用遮罩的方法,用一個(gè)固定位置的子緩沖區(qū)限制圖像處理區(qū)域,忽略區(qū)域外的圖像,實(shí)現(xiàn)Data Matrix的符號(hào)提取。最后用MIL函數(shù)直接譯碼,并將譯碼結(jié)果放在指定的字符串中,用顯示語句在屏幕上打印結(jié)果。
2.2 Data Matrix符號(hào)的膨賬
金屬零件上的Data Matrix碼是氣動(dòng)打印而成的成點(diǎn)陣式,與標(biāo)準(zhǔn)的Data Matrix符號(hào)不完全一樣,其點(diǎn)間空隙大。如對(duì)這種碼毫無處理地進(jìn)行識(shí)別,則識(shí)別率會(huì)很低。為了解決這個(gè)問題,采用數(shù)學(xué)形態(tài)學(xué)的膨脹算法。為了提高識(shí)別準(zhǔn)確度,可以將Data Matrix符號(hào)膨脹若干次,縮小數(shù)據(jù)單位之間的空隙。這樣,計(jì)算機(jī)在“尋找”Data Matrix的“L”型尋邊區(qū)時(shí)就容易準(zhǔn)確得多。
2.3 偽實(shí)時(shí)識(shí)別的實(shí)現(xiàn)
由于MIL本身不支持圖像的實(shí)時(shí)處理,所以要實(shí)現(xiàn)實(shí)時(shí)識(shí)別需要用一種叫做比緩沖的方法實(shí)現(xiàn)偽實(shí)時(shí)的圖像處理,CPU每次處理的圖像其實(shí)是攝像頭采集的上一幀圖像。
雙緩沖區(qū)使一邊采集圖像一邊處理圖像成為可能,如圖3所示。攝像頭將圖像采集到圖像緩沖區(qū)1中等待處理,與此同時(shí)CPU利用這段時(shí)間處理圖像緩沖區(qū)2中(上一幀)的圖像,完畢后兩個(gè)緩沖區(qū)的職能交換;CPU處理緩沖區(qū)1中采集的前一時(shí)刻的圖像,而此時(shí)緩沖區(qū)2中的圖像已被處理完畢,可以接收攝像頭下一幀的采集圖像。如此往復(fù),兩個(gè)緩沖區(qū)互換,不間斷地運(yùn)動(dòng)便可實(shí)現(xiàn)偽實(shí)時(shí)處理。在處理環(huán)節(jié)上加Data Matrix識(shí)別功能,就能實(shí)現(xiàn)實(shí)時(shí)識(shí)別Data Matrix。采集圖像和處理圖像正好相差一幀,所以是“偽”實(shí)時(shí)的,但是假如計(jì)算機(jī)運(yùn)算速度足夠快,時(shí)間延遲的影響便可忽略。
這種方法的優(yōu)點(diǎn)是既實(shí)現(xiàn)了實(shí)時(shí)性,又將采集和處理這兩項(xiàng)進(jìn)程分開,讓CPU和攝像頭分別獨(dú)立并行地處理,充分利用了空閑時(shí)間。
3 識(shí)別結(jié)果統(tǒng)計(jì)與分析
通過編程,實(shí)現(xiàn)了對(duì)金屬上的Data Matrix碼進(jìn)行識(shí)別,并統(tǒng)計(jì)了總的采集幀數(shù)(f)、幀率(f/s)、識(shí)別成功的總幀數(shù)、識(shí)別率等信息。實(shí)驗(yàn)證明在攝像頭焦距以及光源都相當(dāng)理想的情況下,識(shí)別率很高。
Data Matrix識(shí)別的成功率與很多因素有關(guān),首先是Data Matrix符號(hào)本身,打印在紙上與打印在金屬零件上的點(diǎn)陣式Data Matrix差異很大;其次是檢測(cè)時(shí)的運(yùn)動(dòng)失真,會(huì)影響識(shí)別成功率;再次是背景圖像的影響,Data Matrix符號(hào)與背景色反差越大,背景中干擾圖像越少,識(shí)別成功率越高;光源、符號(hào)的旋轉(zhuǎn)等都會(huì)對(duì)識(shí)別造成影響。
3.1 運(yùn)動(dòng)檢測(cè)的影響
Data Matrix檢測(cè)常用在流水線上,這時(shí)需要考慮攝像頭與被檢測(cè)零件相對(duì)運(yùn)動(dòng)對(duì)識(shí)別的影響。在實(shí)驗(yàn)中用固定零件、移動(dòng)攝像頭的方法來模擬流水線中的運(yùn)動(dòng)檢測(cè),記錄每次檢測(cè)時(shí)攝像頭的運(yùn)動(dòng)速度,以此找出零件上的Data Matrix能夠被識(shí)別的最大相對(duì)運(yùn)行速度。
現(xiàn)通過實(shí)驗(yàn)測(cè)得20組數(shù)據(jù),以6mm×6mm的Data Matrix為考慮對(duì)象,結(jié)果如表1所示。
上結(jié)果,在光照和攝像頭焦理想的情況下,最大識(shí)別的相對(duì)速度為2.00cm/s,比該速度再快可能會(huì)因運(yùn)動(dòng)失真導(dǎo)致Data Matrix無法識(shí)別。
3.2 干擾圖像的影響
在相同條件下,背景干擾少的圖像識(shí)別率較高,尤其當(dāng)北京具有與Data Matrix類似矩形狀圖形時(shí)。在光照較好的條件下,測(cè)試金屬零件上的Data Matrix識(shí)別率。在有背景干擾的情況和用子緩沖區(qū)屏蔽一些背景干擾的情況各測(cè)得10組數(shù)據(jù),分別如表2所示。
表1 待測(cè)Data Matrix與攝像頭的相對(duì)運(yùn)動(dòng)對(duì)識(shí)別的影響
| 速度(cm/s) | 1.04 | 1.06 | 1.41 | 1.56 | 1.69 | 1.70 | 1.75 | 2.00 | 2.03 | 2.09 |
| 能否識(shí)別 | √ | √ | √ | √ | √ | √ | √ | √ | × | √ |
| 速度(cm/s) | 2.14 | 2.23 | 2.32 | 2.38 | 2.52 | 2.52 | 2.63 | 2.64 | 2.70 | 2.71 |
| 能否識(shí)別 | √ | √ | × | × | × | × | √ | × | × | × |
表2 背景干擾對(duì)識(shí)別的影響
| 有干擾 | 83% | 84% | 62% | 81% | 68% | 92% | 85% | 60% | 87% | 74% |
| 屏蔽干擾 | 97% | 88% | 87% | 84% | 92% | 90% | 99% | 83% | 85% | 90% |
可見,用于緩沖區(qū)屏蔽一些無用的背景圖像后,識(shí)別效果總體上要略好于未屏蔽。
3.3 光源的影響
光源對(duì)識(shí)別成功率的影響反映在圖像整體的明暗對(duì)比度上。對(duì)金屬零件上的Data Matrix而言,其更多的是影響符號(hào)的清晰程度。光源位置如果選取不得當(dāng),由于金屬的反光特性,金屬表面會(huì)形成一片亮度特別大的鏡面反射區(qū),給Data Matrix圖像造成強(qiáng)烈的干擾。
一種比較好的方法是用側(cè)光的方法。由于金屬零件上的Data Matrix碼是氣動(dòng)打印產(chǎn)生的,打印處會(huì)有高低起伏,這些區(qū)域的反光是溫反射,不同于其他區(qū)域的鏡面反射光,側(cè)光助于把點(diǎn)陣與金屬反光的背景分開,將攝像頭避開了金屬的鏡面反光。圖4對(duì)比了側(cè)光和反射光下的二維碼狀態(tài)。
3.4 識(shí)別程序的適應(yīng)性
識(shí)別程序的適應(yīng)性指適應(yīng)不同尺寸和打印類型Data Matrix的能力。本文中考慮的打印類型有金屬表面氣動(dòng)打印、金屬表面電動(dòng)針式打印和標(biāo)準(zhǔn)紙面激光打印三種。實(shí)驗(yàn)結(jié)果表明,程序?qū)鈩?dòng)式打印Data Matrix碼的識(shí)別能力普遍好于同樣是金屬材質(zhì)的電動(dòng)針式打印Data Matrix碼。不同尺寸的識(shí)別率基本相等。打印在紙上的標(biāo)準(zhǔn)Data Matrix由于圖形標(biāo)準(zhǔn)、顏色穩(wěn)定、分辨率高等因素?zé)o需作太多的圖像增強(qiáng)和膨脹就能夠被計(jì)算機(jī)識(shí)別,識(shí)別率非常高。
- Data(39071)
基于RK3576開發(fā)板的二維碼識(shí)別算法
858
基于TMS320DM642的CCD二維碼Data Matri
2103二維碼的算法?
二維碼識(shí)別
二維碼識(shí)別的范例,放入其他的二維碼圖片不能識(shí)別。
二維碼識(shí)別的范例,放入其他的二維碼圖片不能識(shí)別。
二維碼軟件中制作Dot Code二維碼的步驟
HarmonyOS教程—基于AI的碼生成能力,實(shí)現(xiàn)二維碼生成與掃碼功能
LabVIEW如何編程識(shí)別多個(gè)二維碼,校準(zhǔn)位置和測(cè)量深度
Labview不能讀長(zhǎng)方形Data Matrix二維碼嗎?
NI VISION二維碼讀取問題
OpenHarmony應(yīng)用實(shí)現(xiàn)二維碼掃碼識(shí)別
VBAI中讀取data matrix二維碼自動(dòng)計(jì)算參數(shù)
labview二維碼識(shí)別
labview識(shí)別二維碼問題
labview識(shí)別多個(gè)二維碼
【嘉楠堪智K230開發(fā)板試用體驗(yàn)】+二維碼識(shí)別
分享一款二維碼掃描軟件
單片機(jī)顯示二維碼的原理及實(shí)現(xiàn)
在二維碼軟件中制作含GS1應(yīng)用標(biāo)識(shí)符的data Matrix二維碼的操作步驟
基于STM32的二維碼識(shí)別源碼+二維碼解碼庫lib
基于STM32的二維碼識(shí)別源碼+二維碼解碼庫lib
如何利用STM32單片機(jī)去生產(chǎn)一種二維碼呢
如何把基于myrio識(shí)別二維碼系統(tǒng)識(shí)別到的二維碼信息寫到pc端的txt文本里?
怎么在Framewin里顯示二維碼?
怎么實(shí)現(xiàn)基于cotex M0的ARM處理器的二維碼的設(shè)計(jì)?
求 data matrix 二維碼 制作的方式
求助labview可以調(diào)用的掃碼二維碼的DLL文件,謝謝。
用stm32f103能否實(shí)現(xiàn)二維碼掃描功能
識(shí)別二維碼成功率不高的問題
請(qǐng)問怎么制作自己定義二維碼轉(zhuǎn)到PCB上面
天波智能云TPM300嵌入式二維碼讀頭
二維碼OCDMA通信系統(tǒng)的研究
15二維碼在醫(yī)療行業(yè)中的應(yīng)用
1461Xilinx為器件添加二維碼標(biāo)記
7910固定二維碼與變動(dòng)二維碼防偽標(biāo)簽的作用
1二維碼技術(shù)的編譯規(guī)則分析
29注意了!二維碼支付存隱患:掃碼共享單車后丟失299元押金
2552
智能化訪客管理,二維碼在智能訪客機(jī)中的應(yīng)用
1316如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行殘缺二維碼的識(shí)別算法詳細(xì)資料介紹
25如何將視頻轉(zhuǎn)換生成二維碼掃碼觀看
13550二維碼門禁系統(tǒng)的應(yīng)用實(shí)用性怎樣
1223立功科技嵌入式平臺(tái)“軟”實(shí)力——二維碼算法篇
1988
二維碼門禁系統(tǒng)是怎樣的工作原理
7320訪客的二維碼門禁是否足夠安全
1213二維碼在智能門禁中的應(yīng)用,二維碼門禁如何保證安全性
4583
詳解二維碼的安全與隱私保護(hù)機(jī)制
8063
NLS-EM25二維碼掃描模組形象,二維掃描模組適合哪些場(chǎng)所應(yīng)用
3103工業(yè)二維碼是什么,如何使用工業(yè)二維碼
5139工業(yè)二維碼掃碼槍的選擇需要考慮什么
2676讀取二維碼掃描設(shè)備有哪些類型
5190鴻蒙系統(tǒng)生成二維碼技術(shù)
3551單片機(jī)顯示二維碼
15使用OpenCV與微信二維碼引擎實(shí)現(xiàn)二維碼識(shí)別
5126QR二維碼解碼流程與使用方法
12299鴻蒙上生成專屬“二維碼”
2637二維碼掃描器,多樣化場(chǎng)景應(yīng)用
2201
二維碼讀碼器應(yīng)用無處不在 高速讀取二維碼和條形碼
1910
二維碼模組用途廣泛 精準(zhǔn)高效識(shí)別和讀取條碼、二維碼
2068
二維碼掃碼讀頭有什么功能?如何選擇二維碼讀頭?
2702
工業(yè)級(jí)二維碼掃碼器的產(chǎn)品特性及應(yīng)用領(lǐng)域
2577
什么是二維碼掃描模組模塊?售取票機(jī)上安裝二維碼掃碼模塊有什么作用?
2413
如何選購到性價(jià)比更高的二維碼識(shí)別掃描器?
1660
二維碼掃描模塊多少錢一臺(tái)?二維掃描模組價(jià)格?
2004
各類自助機(jī)嵌入二維碼模塊,以實(shí)現(xiàn)一維碼、二維碼掃描等功能
1767
二維碼掃碼模塊有哪些功能?二維條形碼讀取設(shè)備詳解
2784
二維碼掃描器模塊 嵌入式掃碼模塊價(jià)格
3471
遠(yuǎn)距離二維碼掃描器如何選擇?看看以下三款遠(yuǎn)距離二維碼掃碼模塊
1831
二維碼掃碼器/二維碼讀取設(shè)備嵌入園區(qū)閘機(jī)系統(tǒng)中的應(yīng)用
1065
二維碼識(shí)讀設(shè)備有哪些類型
1599
工業(yè)視覺在條碼/二維碼識(shí)別領(lǐng)域的應(yīng)用
1207
一“碼”當(dāng)先!看二維碼模組如何重塑智能門鎖掃碼體驗(yàn)
880
二維碼讀取器是干嘛的
1049
二維影像掃描引擎在門禁二維碼刷卡梯控行業(yè)中的應(yīng)用
211
電子發(fā)燒友App


評(píng)論