楊子鈺 周翔 鄧琬云 林智桂 陳林
關(guān)鍵詞:視覺識別;HALCON;漏裝監(jiān)測;OCR字符識別
0 引言
當前車間流水線生產(chǎn)大多設(shè)置有點檢工位,可用于沿線監(jiān)測當前零件是否存在誤裝漏裝,或確認當前零件編碼并通過人工掃碼來錄入系統(tǒng)等。無論何種用途,多設(shè)置一個工位就意味著多一份人工成本。為貫徹落實企業(yè)智能化發(fā)展及降本增效的理念,智能化視覺識別技術(shù)的引入能夠大大提高生產(chǎn)效率,加快流水線生產(chǎn)節(jié)拍,降低人工成本,為企業(yè)帶來可觀的效益。
1 HALCON 軟件簡介
HALCON 軟件是由德國MVtec 公司研發(fā)的一款數(shù)字圖像處理的機器視覺軟件,其界面提供了相當全面的視覺處理窗口,不僅提供功能全面的視覺處理庫,而且提供了幾乎所有最先進和最新的技術(shù)算法和算子[1]。該軟件有一個圖像處理庫,其包含了1 000 多個獨立的函數(shù),同時加上了底層的數(shù)據(jù)管理核心,從而擁有數(shù)學變換、色彩分析、數(shù)學幾何變換、校正分類、各類濾波、辨識、分類以及形狀搜索等各種圖像處理的功能[2]。
HALCON 軟件中的HDEVELOP 是能夠與用戶交互的集程序、分析、設(shè)計和編程于一體的圖像處理界面。其中,包含了圖像窗口、參變量值的變化觀察窗口、程序編輯窗口和算子窗口等數(shù)種能夠讓用戶直接對平面圖像或者影視圖像進行編輯和觀察變化的窗口[3]。
2 基于HALCON 視覺識別的產(chǎn)線監(jiān)測
采用HALCON 機器視覺監(jiān)測的辦法,通過產(chǎn)線相機抓取過線樣本圖片,并通過圖像處理模塊對已采集的樣本進行分析處理后輸出檢測結(jié)果,從而自動判斷過線零件是否合格。
2.1 發(fā)動機缸蓋挺柱漏裝監(jiān)測
發(fā)動機缸蓋挺柱通過流水線進行人工安裝,共計16 根挺柱。由于人工操作的不確定性,容易出現(xiàn)漏裝、錯裝的問題,故需設(shè)立點檢工位對是否正確安裝挺柱進行檢查判斷。該辦法不僅效率低,且人為判斷也存在一定的失誤率,而采用機器視覺識別的辦法能大大提高生產(chǎn)效率及準確率,并且一定程度上減輕人工負擔,降低人工成本。
發(fā)動機缸蓋挺柱安裝監(jiān)測邏輯圖如圖1 所示。
2.1.1 圖像采集模塊
為減輕人工成本,取消原有點檢工位,采取在流水線上安裝攝像頭自動抓拍的方式來代替人工目檢。攝像頭監(jiān)測成本低、效率高且準確率高,有效避免人工監(jiān)測疲勞帶來的失誤錯漏。
在產(chǎn)線相機安裝固定完成后,將產(chǎn)線生產(chǎn)節(jié)拍調(diào)整,使得缸蓋進入相機點檢位時做一個3 s 的停留。此時相機自動抓拍圖片進入系統(tǒng),程序中調(diào)用Image Acquisition 選擇圖像獲取途徑,選中產(chǎn)線所安裝的攝像頭。設(shè)置完成后系統(tǒng)可自動打開圖片捕捉器open_framegrabber 并進行圖片抓取grab_image_start,圖像抓取成功后進入圖像處理單元。
2.1.2 圖像處理模塊
HALCON 通過圖像處理模塊對采集到的樣本圖片進行分析處理。圖像處理模塊通常包含圖像讀取、圖像分割、形態(tài)學處理、特征提取及最后的結(jié)果輸出,從而最終實現(xiàn)自動監(jiān)測和自動識別。
2.1.2.1 圖像分割
在圖像處理模塊中,首先需要對圖片中的判斷區(qū)域進行選取。根據(jù)缸蓋挺柱安裝部分的形狀位置,采用創(chuàng)建ROI 生成圓的方式,自定義選取判斷部分的形狀及位置坐標。此辦法能更精確地選擇不同形狀、不同大小的各個區(qū)域的判定目標。由于發(fā)動機缸蓋共有16 個挺柱需要安裝,在完成16 個判定區(qū)域框選的同時,還需采用concat_obj 命令將每個Region 合并到一起,便于后續(xù)進行批量判斷處理(圖2)。
判斷區(qū)域選擇完成后,通過采用difference 算子實現(xiàn)原圖像區(qū)域與所選判斷區(qū)域的邊緣提取,獲得二者間的差集。然后采用select_shape 算子,選取面積area 作為判斷條件,根據(jù)發(fā)動機缸蓋挺柱安裝區(qū)域的實際面積,選擇1000 作為閾值進行判斷;選取面積閾值內(nèi)的區(qū)域做為分析對象,運用reduce_domain 算子,將閾值外的區(qū)域進行裁剪。裁剪后得到所需判斷區(qū)域如圖3 所示。
2.1.2.2 灰度特征提取
裁剪完成后,對判斷區(qū)域進行灰度篩選。首先采用var_threshold 算子根據(jù)局部的均值和方差二值化,通過灰度均值對比可以得到區(qū)域內(nèi)較暗的部分。再利用intensity 算子計算出灰度的均值和方差,后通過expand_gray_ref 算子填充各區(qū)域之間的間隙并分割重疊的區(qū)域,最后運用connection 算子將區(qū)域進行分割。
分割完成后,利用fill_up 算子對區(qū)域中的孔隙進行填充,可形成完整的區(qū)域。再次通過面積裁剪,裁掉不符合條件的小塊面積,獲得最終監(jiān)測區(qū)域如圖4 所示。
2.1.3 檢測結(jié)果輸出
通過批量灰度篩選后,可發(fā)現(xiàn)是否安裝挺柱的灰度閾值存在差異化。通過批量確定判定區(qū)域的閾值,結(jié)合灰度判定與面積的裁剪,能夠判斷該區(qū)域是否存在漏裝現(xiàn)象。最后對是否安裝挺柱個數(shù)進行計數(shù),對已安裝及未安裝的數(shù)量進行目視化顯示。
系統(tǒng)采用count_obj 算子讀取篩選后region 的個數(shù)。若此時region 個數(shù)小于16,則意味著存在漏裝現(xiàn)象,有未安裝的區(qū)域被篩選裁剪,同時輸出漏裝個數(shù)。當系統(tǒng)判斷漏裝個數(shù)大于0 時,則該發(fā)動機缸蓋存在挺柱漏裝,系統(tǒng)輸出NOT OK 并報警;否則系統(tǒng)判斷該件合格,輸出OK,零件過檢。
為便于查看漏裝數(shù)量,系統(tǒng)還會分別輸出該件缸蓋挺柱已安裝個數(shù)及未安裝個數(shù)??紤]后期統(tǒng)計漏裝率及漏裝件的過線時間、狀態(tài)等信息,系統(tǒng)通過使用get_image_time 算子,獲得系統(tǒng)監(jiān)測時間。同時運用write_image 算子,將錯誤漏裝件監(jiān)測結(jié)果以時間命名并歸檔在目標文件夾中,以便于后續(xù)管理。
產(chǎn)線發(fā)動機缸蓋挺柱漏裝測試最終監(jiān)測結(jié)果如圖5 所示。
2.2 發(fā)動機下線標簽檢測
在流水線生產(chǎn)過程中,產(chǎn)品下線掃碼入庫工位,同樣可設(shè)立攝像機自動視覺識別產(chǎn)品身上標簽,自動過線,來取代人工掃碼工位。標簽識別的流程同樣采用攝像機拍照讀取標簽數(shù)據(jù)后,將數(shù)據(jù)進行存儲,流程簡單操作便利。標簽自動識別的邏輯如圖6 所示。
算法采用read_ocr_class_mlp 算子讀取OCR 分類器,選定判斷區(qū)域后,運用do_ocr_multi_class_mlp 對區(qū)域字符進行識別,最后通過tuple_regexp_match正則表達式提取子字符串。本例中需識別提取的字符如圖7 所示,所有貼標下方的字符均為10-xx-xxxxx 的格式,故選擇10 為識別的目標。將10 的2 位數(shù)字位置固定,識別后方的12 位字符。
3 結(jié)束語
隨著工業(yè)4.0 的到來,智能化生產(chǎn)日益變成現(xiàn)今車間生產(chǎn)的主流選擇。機器代替人工,一方面能大大提高車間產(chǎn)線的生產(chǎn)效率,另一方面使得生產(chǎn)過程更加安全可靠。機器視覺逐漸進入人們的視野,通過視覺識別技術(shù),能夠大大降低人工目檢的失誤率。通過視覺監(jiān)測取代人工工位,貫徹落實降本增效理念的同時,更有利于企業(yè)未來長期可持續(xù)發(fā)展。