張 超,岳秀江,吳 雙,張可義,蘇 贊
(北京機械工業(yè)自動化研究所,北京 100120)
?
基于HALCON的玻纖紗錠車碼盤識別方法研究
張 超,岳秀江,吳 雙,張可義,蘇 贊
(北京機械工業(yè)自動化研究所,北京 100120)
摘 要:紗錠車是紗錠在玻纖物流生產線中流轉的載體,因此需要研究一種紗錠車碼盤識別系統(tǒng)來對紗錠車的碼盤進行識別。介紹了基于HALCON機器視覺平臺的紗錠車碼盤識別系統(tǒng)的構建以及實現紗錠車碼盤識別的圖像處理關鍵技術研究。
關鍵詞:機器視覺;圖像處理;HALCON;紗錠車碼盤識別
在玻纖生產過程中,紗錠車是玻纖產品-紗錠的物流載體,為了適應自動物流系統(tǒng)的需求,一般在紗錠車安裝一塊碼盤,碼盤一般包含有兩種信息:即紗錠車的車碼(ID),一般用字符表示,另一個是本紗錠車車上的紗錠產品信息,一般用二維碼表示。本文主要論述的是基于HALCON視覺平臺來實現對紗錠車碼盤的車碼和條碼信息進行識別,從而獲取其記錄的編號與產品信息,用于玻纖生產的智能物流系統(tǒng)。
機器視覺是利用機器代替人眼來實現人的視覺功能,通過機器實現對客觀三維世界的感知和識別[1]。機器視覺具備速度快、適應能力強、應用方便、精度與智能化程度高等特點,便于進行數字化處理和控制。目前機器視覺在非接觸在線檢測、工業(yè)圖像采集處理及實時監(jiān)控等方面得到了廣泛的應用,成為現代檢測和自動化技術中最為活躍的領域之一。
HALCON視覺軟件擁有廣泛的機器視覺集成開發(fā)環(huán)境,包含定位、匹配、識別等高級算法,能夠進行圖像獲取、模板匹配、Blob分析、邊緣提取等非常完善的函數庫。
機器視覺系統(tǒng)一般以計算機或者相關微處理器(比如DSP)為中心,通過視覺產品,即圖像獲取裝置,將被攝取目標轉換為圖像信號,傳送給中心處理器,從而得到被攝目標的相關信息,將其轉變成數字化信號,整個系統(tǒng)主要由視覺傳感器、高速圖像采集系統(tǒng)及專用圖像處理系統(tǒng)等模塊組成。圖1所示為典型的機器視覺系統(tǒng)構成。
圖1 典型的機器視覺系統(tǒng)構成
機器視覺的工作原理為通過照相機等圖像獲取裝置自動獲取一副目標物體的圖像,并對所獲取圖像的各種特征量進行處理、分析,做出定性或者定量的分析,從而得到相關物體的某種認識并做出相關決策的過程[2]。
整個玻纖物流生產線由5個工作單元組成:拉絲區(qū),烘干爐分配區(qū),立體庫存儲區(qū),絡紗區(qū),返空區(qū)。紗錠車作為物流載體,在5個工作單元之間流轉。圖2是玻纖物流生產線的單元組成。
圖2 玻纖物流生產線的單元組成
在最初的玻纖生產中,因沒有自動物流系統(tǒng),紗錠車的車碼通常打印在紗錠車的顯眼位置處,然后由人工將每個紗錠車上裝載的紗錠型號于紗錠車的車號對應起來,制作成一張對應表。
在早期的玻纖生產自動物流系統(tǒng)中,為了滿足自動識別車碼的要求,二進制碼盤作為紗錠車的標定載體,因紗錠車要經過烘干爐烘干,因此碼盤采用的是耐高溫的金屬材質。其模型如圖3所示。上排孔為同步用的,下排孔即為車碼信息,當紗錠車經過由光電開關組成的讀碼器時,獲取當前碼盤表示的車碼。而紗錠車上的產品信息是通過人工在計算機上輸入完成[3]。
圖3 二進制車碼碼盤模型
二進制碼盤與產品信息在人工綁定錄入的過程中,會出現漏綁與綁錯的現象;碼盤通過由光電開關組成的讀碼器時,由于碼盤為金屬材質,會出現反光現象,影響讀碼器的讀碼準確率。
在現在的玻纖生產物流系統(tǒng)中,為了提高信息的準確性,對紗錠車的碼盤進行了改進,采用同時記錄有車碼與產品信息的碼盤,當紗錠車在經過裝有相機的輸送設備時,對碼盤進行識別,將同時獲取的車碼與產品信息進行綁定,可以有效避免車碼與紗錠車產品信息人工綁定過程中出現綁錯或者漏綁的現象。由于紗錠車數量比較多,為了避免一碼多車的現象,每一輛紗錠車都擁有唯一的車碼,因此車碼與產品信息應當采用不同的信息載體。當前的物流系統(tǒng)中,應用比較廣泛的信息載體有一維碼、二維碼和字符等。圖4為改進后的紗錠車碼盤,碼盤中鏤空字符為紗錠車車碼,下方的二維碼為當前紗錠車上的產品信息。
圖4 改進后的紗錠車碼盤
對于碼盤信息的獲取,通過采用HALCON視覺平臺提供的字符與二維碼識別的算子,對碼盤圖像進行處理,其過程分兩個主要過程:一蘊含有產品信息的二維碼-DM碼的識別;二鏤空字符-車碼的識別。獲取信息的基本步驟為:讀取圖片、圖像預處理,分割圖像,訓練字符集合,顯示結果[4,5]。圖5為碼盤信息獲取流程。
圖5 碼盤信息獲取流程
3.1碼盤圖像的采集
調整好相機和光源的角度及位置后,當紗錠車在輸送設備上到達拍攝位停止后,由相機對碼盤進行拍照,然后調用HALCON平臺中的read_image()或者open_ framegrabber()算子獲取相機采集到的圖像。圖6為其采集到的圖像。
圖6 采集到的圖像
3.2二維碼的識別
在HALCON中二維碼的識別思路為創(chuàng)建二維碼模型、設置參數、條碼識別和結果處理。
圖6中的二維碼采用的是行排式DM碼,其碼的類型是Data Matrix ECC 200。采集到圖像后,調用mean_ image()算子對讀取到的圖像進行均值濾波,以此來減小噪聲對圖像的干擾。
圖7 均值濾波后的圖像
調用HALCON中的算子create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)來創(chuàng)建碼盤的二維碼模型,算子find_data_code_2d (Image05,SymbolXLDs, DataCodeHandle, [], [], ResultHandles,DecodedDataStrings)識別二維碼,disp_message (3600,DecodedDataStrings, 'window', 12, 12, 'black', 'true')顯示find_data_code_2d()識別到的二維碼信息。圖8為讀取二維碼信息后的圖像。
圖8 讀取二維碼信息后的圖像
3.3鏤空字符的識別
3.3.1圖像預處理
通過對碼盤鏤空字符的觀察,一個字符的鏤空區(qū)域為保持鏤空效果,并非是完全連接在一起的,如圖6中的字符‘0’和‘8’,因此為了避免非鏤空區(qū)域的干擾,需要將圖像進行濾波,腐蝕,膨脹等處理。調用mean_image(Image, ImageMean, 3, 3)算子對圖像進行均值濾波。
調用gray_erosion_rect(ImageMean, ImageMin, 10, 10)和gray_dilation_rect(ImageMin, ImageMax, 5, 5)對目標圖像采用10×10模板的腐蝕和5×5模板的膨脹。圖9為經過膨脹和腐蝕后的圖像。
圖9 經過膨脹和腐蝕后的圖像
為了得到清晰的字符,同時降低后續(xù)步驟的難度,通過HALCON平臺中提供的灰度直方圖獲得鏤空字符的灰度范圍[0,60],調用threshold(ImageMax, Region,0, 60)算子,將圖9中灰度值大于60的部分進行消除舍棄,如圖10所示。
圖10 灰度值調整后的圖像
為了將鏤空字符從圖10中分割出來,首先對其進行形態(tài)學運算,調用dilation_rectangle1()算子,分別對其進行10×10,8×8模板的膨脹處理,步驟如下:dilation_ rectangle1(Region, RegionDilation, 10, 10),dilation_ rectangle1(Region, RegionDilation2, 8, 8)。
調用connection(RegionDilation, ConnectedRegions)對生成的RegionDilation,感興趣區(qū)域進行聯通,將感興趣區(qū)域中的所有字符分割成單獨的個體,使用HALCON平臺中自帶的特征檢測功能獲取鏤空字符的相關特征的范圍,然后調用select_shape()算子對特征area,ra和row進行過濾選擇,將感興趣區(qū)域內噪點都過濾掉,只留下字符的區(qū)域,調用算子intersection(ConnectedRegions,RegionDilation2, RegionIntersection)返回要學習的字符,最后調用sort_region(SelectedRegions2,SortedRegions, 'character', 'true', 'row')將分割好的字符區(qū)域進行區(qū)域歸類。圖11為字符分割后的圖像。
圖11 字符分割后的圖像
圖12 識別結果顯示
3.3.2字符識別
字符識別的實質即是根據分割所得的字符所提取的特征,與系統(tǒng)中的模板進行對比,將置信度最大的值返回,以此達到識別的目的。由于本文的研究對象鏤空字符采用的是標準宋體,因此直接利用的是HALCON自帶的字符庫對處理后的字符進行識別。
調用分類器算子read_ocr_class_mlp ('Document_0-9. omc', OCRHandle),對HALCON自帶的字符庫--Document_0-9.omc進行讀取;然后利用算子do_ocr_ multi_class_mlp (SortedRegions, Image05, OCRHandle,Class, Confidence)將處理后的圖像與模板通過循環(huán)逐個匹配,最終返回識別的結果與每個字符與模板的置信度。最后,利用for循環(huán),調用算子disp_message (WindowID, Class[i], 'image', Row2[i], Column[i], 'yellow','true'),將識別結果顯示出來。圖12識別結果顯示。
玻纖物流生產線中對原來使用的二進制碼盤的識別是根據兩個對射開關的信號狀態(tài)來判斷當前位置的二進制是‘1’還是‘0’,進行計算從而獲得車碼,而產品信息是需要提前將車碼與產品信息在管理系統(tǒng)上進行綁定,會出現綁錯或者漏綁得現象。對改進后的碼盤,采用機器視覺的方法進行識別以后,可以有效避免綁錯或者漏綁得現象,同時提高其識別效率。下一步的工作將是在硬件選型和與上位機接口方面進行深入研究,爭取取得更大的成果。
參考文獻:
[1] Mori S.:Suen C.Y.Historical review of OCR research and development[J].1992,7.
[2] 張廣軍.機器視覺[M].北京:科學出版社,2005.
[3] 王勇,吳雙,張可義,等.車碼標定方法及其實施設備和玻纖物流生產線:中國,CN101792945A[P],2010-08-04.
[4] 孫懷遠,廖躍華,周夫之,黃憶君.基于HALCON的藥品包裝瓶批號檢測技術研究[D].上海:上海理工大學,2008.
[5] 彭曉輝.基于HALCON的IC卡噴碼符號識別技術研究與實現[D].廣州:廣州工業(yè)大學,2006.
Study of coded disc recognition of car in fiberglass industry based on HALCON
ZHANG Chao, YUE Xiu-jiang, WU Shuang, ZHANG Ke-yi, SU Zan
中圖分類號:TP315
文獻標識碼:A
文章編號:1009-0134(2016)05-0166-04
收稿日期:2016-03-07
作者簡介:張超(1989 -),男,河南人,碩士研究生,研究方向為控制理論與控制工程。