李建剛,黃詩浩,鄭啟強,楊 鑫,黃 靖,周伯樂
(1.福建工程學院 微電子技術研究中心,福建 福州 350100;2.福建工程學院 工業(yè)自動化福建省高校工程研究中心,福建 福州 350118;3.深圳市智致物聯(lián)科技有限公司,廣東 深圳 518116)
二維碼能夠存儲商品的生產數(shù)據,如制造日期、原產地等,具有信息容量大、譯碼可靠性高以及讀取速度快等優(yōu)點,廣泛應用于工業(yè)、農業(yè)、生物醫(yī)療檢測等領域[1-3]。準確識別二維碼所包含的信息對商品數(shù)據的高效采集、分類、存儲等具有重要的意義。傳統(tǒng)識別二維碼的方法是通過手持二維碼掃描槍或智能手機進行識別,具有速度慢、效率低、誤檢及漏檢等缺點?;跈C器視覺的二維碼識別具有自動化程度高、速度快等優(yōu)點,在工業(yè)生產、生物檢測等領域具有較大的應用價值。
基于機器視覺的二維碼識別問題,主要的研究方向是針對不同的應用場景,通過數(shù)學算法提高二維碼的識別效率。如為了實現(xiàn)復雜背景下二維條碼區(qū)域的有效定位,文獻[4]基于透視N點投影算法,借助李群和李代數(shù)之間的局部同構關系,對二維碼進行定位識別,識別的穩(wěn)定性和精確度都比較高,但未見識別時間方面的報道;文獻[5]采用傳統(tǒng)的Hough 變換糾偏,無法滿足復雜背景下的二維碼定位工作。文獻[6]引入了機器學習和級聯(lián)過濾的策略提高定位精度,但該方法處理的時間較長,不適用于批量識別檢測。文獻[7]結合曲面擬合和改進的自適應閾值法,分割圖像,有效提升了二維碼的識別效率。文獻[8]提出一種基于二維碼的符號特征尋找滿足三層包圍關系的連通區(qū)域圖形,避免了變換校正不確定性等問題,從而達到對二維碼的定位,提高識別速度。這些算法均針對特殊的應用場合,能夠達到二維碼的準確識別,但是引入的算法往往比較復雜,導致二維碼的識碼時間較長,不適合實時識別二維碼的應用場合。
在噪聲干擾下的二維碼檢測方面,文獻[9]利用雙邊濾波消除圖像中的背景噪聲,提高二維碼識別成功率。文獻[10]采用圖像預處理與中值濾波算法優(yōu)化了傳統(tǒng)二維碼識別算法,但在識碼速度方面略有不足。文獻[11]提出一種基于稀疏表示和字典學習的自適應去噪算法,對每個圖像塊進行稀疏分解然后訓練,能在濾除噪聲的同時,保持圖像的細節(jié),提高了二維碼的識別效率,但實時識別能力較差。文獻[12]提出利用窗口系數(shù)的改進中值濾波方法,識別二維碼,識別率達到100%。文獻[13]通過改進的邊緣檢測方法,具有較強的抗噪聲能力,但所消耗的時間隨之增加。
綜上,針對復雜環(huán)境下圖像二維碼的定位及去除噪聲干擾方面,不同的算法可以提高二維碼的識別率,但是復雜的算法往往以犧牲識別時間為代價。本文立足于工業(yè)實際項目,提出利用藍牙芯片表面二維碼在視場中的幾何關系定位二維碼感興趣區(qū)域并批量處理識別二維碼的方法。開發(fā)了基于機器視覺的二維碼高速、批量識別系統(tǒng),記錄每個藍牙芯片上的二維碼信息,實現(xiàn)批量藍牙芯片的快速識別并準確出庫與入庫,解決實際應用中存在的問題。
本項目所要識別的二維碼被貼在藍牙芯片上,藍牙芯片按10×10 的陣列排布于物料盤上,應用機器視覺檢測技術識別物料盤中所有的二維碼信息,記錄每個藍牙芯片的生產編號,實現(xiàn)批量藍牙芯片的快速出入庫。所設計的二維碼識別系統(tǒng)方案如圖1 所示,裝滿藍牙芯片的物料盤放置在傳送帶上,當物料盤移動到相機視場時,相機采集圖像并由自主開發(fā)的檢測軟件對圖像中所有二維碼進行識別,并標注出具體的碼制正確、碼制錯誤、漏貼以及無法識別的二維碼等情況的位置。
圖1 二維碼識別系統(tǒng)原理圖Fig.1 Schematic of two-dimensional code recognition system
本項目需求是快速、批量識別二維碼,識別率達到99%以上,還需要考慮光反射等原因造成采集圖像不清晰以及圖像傳感器因長期工作溫度過高等原因引起的圖像噪聲問題。
依靠目標檢測等復雜的算法[14-15]實現(xiàn)二維碼的目標定位存在著定位時間過長等缺點,不適用于本項目的實時檢測識別二維碼特點。本文根據項目自身的特點,設計了一種基于位置幾何關系的二維碼自動定位方法。其原理如圖2 所示。首先通過模板匹配定位圖像中物料盤上的兩個標志點MP,得到物料盤與像素坐標原點PCO 的相對位置信息;其次根據標志點MP 的位置與每個藍牙芯片的位置關系,定位每個藍牙芯片的中心坐標位置,用(1)式和(2)式表示:
圖2 芯片二維碼自動定位示意圖Fig.2 Schematic of automatic locating for two-dimensional code on chip
其中:m,n均為1 至10 內的正整數(shù),m對應于本項目的100 個批量二維碼的列數(shù),n對應于行數(shù); Δx、Δy分別為從像素坐標原點PCO 到標志點MP 的橫、縱坐標的距離;w1、l1分別為標志點MP 到第1 個二維碼橫、縱坐標的距離,w2、l2為相鄰兩個二維碼之間橫、縱坐標的距離。以藍牙芯片的中心位置自動生成100 個600×375 像素的藍牙芯片感興趣的區(qū)域(region of interest,ROI)。最后對每個區(qū)域的ROI 進行圖像處理與二維碼識別,并顯示結果。該方法運用在二維碼初定位這一步驟,相比于其他的圖像定位方法,能節(jié)省更多的時間。值得說明的是被測藍牙芯片必須都放置在物料盤的指定位置(凹槽),且自動生成的ROI 尺寸需設定的足夠大。
圖像產生噪聲的因素有:電路各元器件相互影響、圖像傳感器長期工作溫度過高等,這些噪聲主要來源于電子器件產生的熱噪聲[16-17],熱噪聲是典型的高斯白噪聲。圖像噪聲如果不經過恰當?shù)姆椒ń档突蛉コ?,會給機器解碼增加一定的難度,降低識別效率,但是許多圖像去噪方法在降低噪聲的同時,也使得圖像邊緣模糊了,導致機器無法正確解碼,又或者是不恰當?shù)膱D像去噪處理導致二維碼識別時間過長,影響二維碼的識別。
本系統(tǒng)在光源設計部分結合線陣相機的特點,通過多次實驗調節(jié)光源位置消除了光反射對圖像采集質量的影響。同時綜合考慮了生產實際中可能產生的噪聲對圖像質量的影響,在實驗的過程中,采用了人為添加高斯噪聲對采集到的圖像進行了仿真模擬。在識別二維碼時首先把采集的彩色圖像轉化為灰度圖像,然后對圖像進行二值化處理,將二維碼轉換成黑白條碼,進而轉化為二進制信息;再根據二維碼的編碼規(guī)則進行譯碼和糾錯。其工作流程如圖3 所示。
圖3 系統(tǒng)工作流程圖Fig.3 Flow chart of image processing system
1) 獲取圖像:獲取線陣相機采集到的圖像;
2) 解碼優(yōu)化:創(chuàng)建二維碼模板,設置二維碼的極性、二維碼碼粒個數(shù)、二維碼模型的類型參數(shù),提高二維碼的識別率;
3) 二維碼初定位:根據模板匹配定位圖像標志點(定位精度為0.704 mm),進而獲取圖像上的多個ROI 區(qū)域;
對于有較大思考價值和討論空間的學習內容,學生分小組進行合作探究的方法是很好的選擇。這樣的教學方式把學習的主動權還給了學生,引發(fā)了學生主動學習的興趣,他們在主動思考的過程中得到了更多收獲。
4) 圖像預處理:對ROI 進行圖像預處理:灰度化、均值濾波、對比度增強、形態(tài)學分析,提取二維碼圖像,進一步提高二維碼識別率;
5) ROI 循環(huán)檢測:對每個ROI 進行逐一檢測識別;
6) 二維碼識別與精準定位:采用基于位置探測圖形的方法[18-19],精準定位二維碼,由二維碼解析庫,實現(xiàn)二維碼信息識別,并顯示二維碼信息,框出二維碼精準位置。
基于機器視覺的二維碼高速批量識別系統(tǒng),包括顯示屏、工控機、工業(yè)相機、工業(yè)鏡頭、光源、步進電機、傳送帶、可移動平臺和支架型材等部件。用于顯示數(shù)據的顯示屏是71.67 cm(21.5 寸)的AOC(admiral overseas corporation)智能顯示屏,具有可壁掛特性,便于工業(yè)現(xiàn)場使用;工控機型號為研祥IPC-710ECO-1816,具有耐高溫、防水、防塵等優(yōu)勢;工業(yè)鏡頭型號為Schneider Apo-Componon 4.0-60,像素尺寸為7.04 μm,適用大靶面線掃描相機;工業(yè)線掃描相機型號為DALSA LA-GM-08K08A,像素位深8 bit,可采集高速運動物體的圖像,所選用的工業(yè)鏡頭與工業(yè)線陣相機都具有較強的抗噪聲能力,因此去噪方法選用“均值濾波”去噪即可;光源采用長條形LED 燈,照射方向與相機采集方向一致,對高速運動的物體進行補光,獲取物體清晰的圖像。物料盤放置于可移動平臺上,可移動平臺固定于傳送帶上,由可調速步進電機驅動傳送帶,帶動可移動平臺移動,實現(xiàn)物體圖像的采集。工控機CPU 型號i5-2400,主頻3.10 GHz,8 GB 內存,在自主研發(fā)軟件下進行,圖4 是二維碼識別系統(tǒng)實驗平臺。
圖4 系統(tǒng)實驗平臺Fig.4 Experimental platform of system
使用該平臺測試得到的一組典型的實驗結果如圖5 所示。線陣相機采集到圖像后,經過二維碼初定位、圖像處理、二維碼精準定位及解碼后,將檢測結果顯示于工程界面。
分析圖5 的結果,圖中物料盤對角兩個方框為定位物料盤的準確位置,區(qū)域A 是工程界面用于顯示物料盤的檢測結果。插圖B、C 和D 分別表示機器識別得到的正確的二維碼、碼制錯誤的二維碼和漏貼的二維碼檢測結果,其余物料盤中矩形框均代表二維碼定位識別成功。
圖5 批量識別結果顯示Fig.5 Display for batch recognition
圖6 單個二維碼識別結果顯示Fig.6 Display for single two-dimensional code recognition
實驗采集1800 張藍牙芯片圖像,其中600 張為不添加高斯白噪聲的圖像,另外1200 張為噪聲圖像,分兩份,每份600 張,分別添加方差0.08 和0.09 的高斯白噪聲,每張二維碼圖像像素大小都為600×375。對1800 張圖像進行檢測,典型的結果如圖7 所示,其中(a)、(b)和(c)為一組,代表無噪聲情況下藍牙芯片二維碼的原始圖像、定位結果和識別結果;(d)、(e)和(f)為一組,代表在噪聲方差為0.08 情況下藍牙芯片二維碼的圖像、定位結果和識別結果;(g)、(h)和(i)為一組,代表在噪聲方差為0.09 情況下藍牙芯片二維碼的圖像、定位結果和識別結果。實驗結果顯示對噪聲方差小于0.09 的情況下,系統(tǒng)能穩(wěn)定定位并準確識別到藍牙芯片表面的二維碼,當噪聲方差大于0.09 時,檢測過程算法不能穩(wěn)定識別二維碼??芍到y(tǒng)針對噪聲方差小于0.09 的圖片具有較強的抗噪能力。一般工業(yè)相機產生的噪聲是人眼無法看到的,在實際檢測識別過程中噪聲不會超過方差0.09。定位到二維碼圖像后,本文采用基于位置探測圖形的方法精準定位二維碼,原理是定位二維碼中的3 個頂點,該方法具有較強的抗噪聲能力。
圖7 典型圖像定位以及檢測結果Fig.7 Typical image locating and testing results
系統(tǒng)采集到的圖像是否變形失真,直接影響到基于位置探測圖形的二維碼定位以及后續(xù)的二維碼識別。本文所采用的是線陣相機,與面陣相機采集圖像的方法不同,其采集的圖像成像質量會影響二維碼的識別率,該線陣相機最大行頻為13 kHz,此參數(shù)與線陣相機拍攝速度有關。由于生產線上的物料盤在可移動平臺的牽引下處于高速運動的狀態(tài),因此物料盤上裝載的芯片二維碼運動速度與線陣相機的拍攝速度不匹配必然導致采集到的圖像存在壓縮和拉伸現(xiàn)象。本系統(tǒng)中,二維碼的運動速度v與其他參數(shù)的關系如(3)式:
其中:n為步進電機的轉數(shù);k=0.4 為傳動比;Ld為電機每轉一圈驅動二維碼的移動距離。通過調節(jié)步進電機轉數(shù)進行多次實驗,得到系統(tǒng)識別率與二維碼運動速度的關系圖,如圖8 所示。
圖8 系統(tǒng)二維碼識別率與二維碼移動速度關系Fig.8 Relationship between recognition rate and movement speed
由圖8 可知,當二維碼移動速度未達到267.18 mm/s 時,二維碼未能移動到相機拍攝視場中,因此系統(tǒng)對二維碼識別率為0;當速度達到267.18 mm/s~274.46 mm/s 范圍內,系統(tǒng)開始檢測到二維碼,但是二維碼運動速度慢于線陣相機的拍攝速度,導致圖像壓縮,部分二維碼無法識別;當二維碼移動速度達到274.46 mm/s~319.14 mm/s 范圍內,系統(tǒng)能較好地檢測二維碼,該速度區(qū)間范圍內,對應的圖像質量由較小壓縮到完整圖像再到較小拉伸,該速度區(qū)間內,圖像存在著較小的變形情況,但不影響系統(tǒng)對二維碼的識別;繼續(xù)加快二維碼移動速度,速度在319.14 mm/s~325.82 mm/s 范圍內,二維碼運動速度比線陣相機拍攝速度快,導致圖像存在拉伸現(xiàn)象,識別率開始下降;當二維碼移動速度超過325.82 mm/s 后,線陣相機未能定位兩個標志點,系統(tǒng)識別率為0。
通過上述分析,為了盡可能地降低圖像變形情況,提高系統(tǒng)穩(wěn)定性,本文折中選取頭尾兩個識別率為100%的速度平均值,即二維碼移動速度為296.8 mm/s。計算機在二維碼高速運行狀態(tài)下,準確識別有無噪聲二維碼各594 張,無噪聲情況下,沒檢測到的3 張二維碼里,其中2 張是漏貼二維碼,另外1 張是DM(data matrix)碼,碼制錯誤,每個二維碼平均定位時間17.8 ms,識別率達到100%;噪聲情況下,沒檢測到的6 張二維碼里,其中3 張是漏貼二維碼,另外3 張是貼DM 碼,每個二維碼平均定位時間21.3 ms,識別率達到100%。
為了進一步評估系統(tǒng)的優(yōu)越性,本文實驗結果與目前其他二維碼識別系統(tǒng)各項指標進行了對比,如表1 所示。
表1 不同算法數(shù)據對比Table 1 Comparison of data with different algorithms
從表1 可知,本文實驗采集的二維碼圖片數(shù)量較多,能較好地反映系統(tǒng)算法的穩(wěn)定性。文獻[20]算法思想是初定位聯(lián)合精準定位,而文獻[21, 22]跳過初定位,直接精準定位二維碼位置;文獻[21]定位計算量大并且在旋轉角度為0 的情況下識別時間最快達到52 ms,文獻[22]采用二值化賦范梯度(BING)和自適應增強支持向量機(AdaBoost-SVM)算法對二維碼進行識別,雖然在識別率及識別時間方面有明顯的提高,但在工程應用領域其硬件成本較高。本文利用項目本身的特點,采用了幾何定位與基于位置探測圖形相結合的方法,因此大大縮短了識別時間。
本文根據工業(yè)實際項目,設計了基于機器視覺的二維碼高速批量識別系統(tǒng)。提出了基于位置幾何關系的二維碼自動定位方法,結合線陣相機圖像采集質量和步進電機速率兩者的關系,調試出系統(tǒng)二維碼識別率最高的系數(shù)點,最終實現(xiàn)了對藍牙芯片二維碼的批量、快速識別,解決實際應用中存在的問題。結果顯示,在無噪聲圖像中對每個二維碼定位識別的平均時間為17.8 ms;在有噪聲圖像中對每個二維碼定位識別的平均時間為21.3 ms,兩種情況下的識別率均為100%,該系統(tǒng)滿足實時在線檢測需求。目前該系統(tǒng)已經應用于實際生產中,系統(tǒng)經過一段時間測試使用,客戶公司反饋該系統(tǒng)識別率大約在99.7%。該數(shù)據符合預期目標,取得良好的檢測效果,對提高芯片出入庫生產線的自動化檢測水平具有一定的參考價值。