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