鄭如新,孫青云,馬素慧,程 冬
(1.南京林業(yè)大學(xué)機械電子工程學(xué)院,江蘇南京 210037;2.河北科技師范學(xué)院機電工程學(xué)院,河北秦皇島 066000)
20世紀50年代,機器視覺在國外開始興起,當時只是簡單的在一些圖像處理和模式識別上面的應(yīng)用,到了60年代機器視覺技術(shù)開始慢慢往三維上面去發(fā)展。機器視覺現(xiàn)在發(fā)展迅速,在各行各業(yè)中得到廣泛的應(yīng)用,機器視覺可以代替人工來實現(xiàn)一些人工無法進行的操作,不但可以解放人的勞動力,而且還可以避免因為人工的操作失誤帶來的損失,機器視覺的關(guān)鍵是對采集的圖像進行處理與識別[1]。HALCON 是德國Mvtec 公司開發(fā)的一套完善的機器視覺算法包,在機器視覺開發(fā)領(lǐng)域應(yīng)用廣泛,在工業(yè)界已經(jīng)是公認具有最佳效能的Machine Vision軟件[2]。
這里基于使用HALCON 圖像處理軟件對工件進行圖像處理,通過利用HALCON 軟件中的多種算法對相機所采集到的工件圖像進行處理,最終確認是否能夠正確識別出相應(yīng)工件。
整個系統(tǒng)平臺的采集硬件選用的是大恒水晶系列相機(型號為MER?500?7UC),如圖1所示。其中,分辨率是(2592×1944),并且搭載了型號為gx?0816,焦距為8mm的光學(xué)鏡頭,一臺內(nèi)存為8G的工業(yè)計算機,相機是通過USB2.0標準接口與計算機相連接并實時采集圖像。將采集到的圖像通過USB2.0傳輸?shù)接嬎銠C上面,開始對圖像進行處理操作。
圖1 MER?500?7UC相機Fig.1 MER?500?7UC Camera
當相機采集到了圖片之后往往不能直接使用,需要對圖片進行一定程度上的處理,主要包括:圖片的預(yù)處理、閾值分割、形態(tài)學(xué)運算等操作,然后對提取出的工件進行相關(guān)識別并計數(shù),工作流程圖,如圖2所示。
圖2 工作流程圖Fig.2 Work Flow Chart
在HALCON中圖片的采集主要分為三個步驟,如圖3所示。
圖3 HALCON圖像采集流程圖Fig.3 Flow Chart of Halcon Image Acquisition
(1)開啟圖像采集接口:連接相機并返回一個圖像采集句柄,采用算子open_framegrabber打開相機。
(2)讀取圖像:設(shè)置采集參數(shù)并讀取圖像。
(3)關(guān)閉圖像采集接口:在圖像采集結(jié)束后斷開與相機的連接以釋放資源。
圖像預(yù)處理技術(shù)包括圖像的增強,圖像的平滑與去噪,圖像的二值化等。圖像的增強主要是為了突出圖像中的細節(jié),為了后續(xù)的特征識別或者檢測做準備[3]。在HALCON圖像處理中,可以使用emphasize算子實現(xiàn)這一操作,相機采集到的原始工件圖片,如圖4所示。圖像增強后的工件圖片,如圖5所示。可以看出圖5相對于圖4有明顯的增強效果,使得工件的邊緣更加清晰、特征更加容易識別。
圖4 工件原始圖片F(xiàn)ig.4 Original Picture of Workpiece
圖5 工件增強圖Fig.5 Workpiece Enhancement Diagram
平滑與去噪主要是用濾波進行處理,濾波的主要作用是去除圖像采集過程中噪聲及其他各種因素對圖像質(zhì)量造成的影響。在圖像處理的過程中,能夠使用到的濾波方法有中值濾波、均值濾波、低通濾波等。在這里主要采用中值濾波對采集到的圖片進行濾波去噪。中值濾波就是選擇一定形式的窗口,使其在圖像的各點上移動,用窗內(nèi)像素灰度值的中值代替窗中心點處的像素灰度值[4]。并且選取像素點鄰域內(nèi)所有像素灰度值的中值作為其灰度值,能夠有效的消除椒鹽噪聲及板塊噪聲,在平滑圖像的同時又能保護邊緣信息。在這里則主要采取空間域上的濾波方法,通過特定的算法對選定像素點鄰域內(nèi)的所有像素點進行處理,將處理結(jié)果作為這一像素點的輸出值。對圖像進行濾波處理的過程可表示為:
式中:g(x,y)—濾波處理后的像素點(x,y)處的灰度值;a,b—以像素點為中心建立的矩形窗口的長寬的一半,a,b應(yīng)為奇數(shù)。k(s,t)—濾波器,又稱為核函數(shù)(Kernel);f(x?s,y?t)—窗口內(nèi)一個像素點的灰度值。
圖片表面帶有噪音,經(jīng)過中值濾波處理之后達到了圖7的效果,如圖6所示。
圖6 工件椒鹽噪音圖Fig.6 Salt and Pepper Noise of Workpiece
圖7 中值濾波Fig.7 Median Filtering
圖像的灰度化也是圖像預(yù)處理中的一種手段,灰度圖像是指只有亮度差別,而沒有顏色差別的圖像[5]。如拍攝黑白照片或者將彩色圖像轉(zhuǎn)為灰度圖像,用Y來代表亮度大小,其轉(zhuǎn)化公式如下:
但是在光照不均勻的情況下,對目標物體進行灰度化處理,如果光照強度較亮,則采集到的圖像灰度值主要分布在高灰度值區(qū)域,如果光照強度較弱,則采集到的圖像的灰度值主要分布在低灰度值區(qū)域,這樣就會直接會影響到圖像處理的質(zhì)量。這里用了Gamma校正方法對圖像的灰度進行非線性修正,基本形式如下:
式中:g—輸出圖像的像素值;q—輸入圖像的像素值;c—比例系數(shù),一般取1;γ—Gamma校正的冪指數(shù),當γ<1時,灰度級擴展,當γ>1時,灰度級壓縮。
在中值濾波處理之后,將工件圖像灰度化,并且使用Gamma對其進行修正,使用算子rgb1_to_gray(ImageMedian,GrayImage)來實現(xiàn)這一操作,工件灰度圖像,如圖8所示。
圖8 工件灰度圖Fig.8 Gray Scale of Workpiece
閾值分割是一種按圖像像素灰度幅度進行分割的方法,把圖像的灰度分成不同等級,然后設(shè)置灰度門限(閾值)的方法確定目標區(qū)域或邊界,閾值法也是一種簡單有效的圖像分割方法[6?8]。這里采用根據(jù)直方圖谷底確定閾值法來將圖像從背景中分割開來,達到提取目標的目的。按下式進行二值化,就可將目標有效的提取出來。
式中:g(x)—閾值運算后的二值圖像。
按照上述閾值分割方法在拍攝的圖像中將工件與背景分割開來,如圖9所示。
圖9 工件分割、工件閾值分割灰度直方示意圖Fig.9 Gray Square Diagram of Workpiece Segmentation and Workpiece Threshold Segmentation
調(diào)用算子threshold,并設(shè)定閾值在(173~255)的范圍,在這范圍之內(nèi)的像素都會被選中,這樣就可以將工件成功的從背景中分割開來。
腐蝕與膨脹是形態(tài)學(xué)的基礎(chǔ),在圖像處理過程之中,往往需要將腐蝕與膨脹相結(jié)合起來運用對圖像進行處理[9]。腐蝕與膨脹都是屬于一次運算,而一次運算往往不能達到令人滿意的圖像處理效果,所以就需要涉及到開運算和閉運算的二次運算,所謂的開運算就是先腐蝕后膨脹,減少圖像像素,閉運算就是先膨脹后腐蝕,增加圖像像素[10?11]。
集合A被結(jié)構(gòu)元素B作開運算,記為A°B,其定義為:
集合A被結(jié)構(gòu)元素B作開運算,記為A?B,其定義為:
B元素緊貼A的內(nèi)部邊緣平移、B元素、C區(qū)域為開運算后的結(jié)果示意圖,如圖10所示。
圖10 B元素緊貼A的內(nèi)部邊緣平移、B元素、C區(qū)域為開運算后的結(jié)果示意圖Fig.10 The Translation of Element B Close to the Inner Edge of A,and the Schematic Diagram of the Result After the Open Operation of Element B and Region C
HALCON中實現(xiàn)閉運算采用算子opening_circle 來對圖像進行處理。在閾值分割之后,由于光照的影響,圖像中出現(xiàn)了不規(guī)則的孔洞,如圖11所示。這樣會使得圖像不完整。
圖11 閾值分割后的孔洞Fig.11 Holes After Threshold Segmentation
采用閉運算來填充孔洞結(jié)果,如圖12所示。
圖12 孔洞填充Fig.12 Hole Filling
在經(jīng)過了上述處理之后就可以將工件識別出來,再采用count_obj算子,來對識別出的工件進行計數(shù)操作,具體算法如下:
count_obj(SelectedRegions,Number)
dev_set_color(′blue′)
set_tposition(WindowHandle,50,50)
set_display_font(WindowHandle,30,′mono′,′true′,′false′)
write_string(WindowHandle,′有′+Number+′個工件′)
這里是基于一定的條件下,用閾值對工件進行識別分類結(jié)果,如圖13所示。
圖13 識別出工件的結(jié)果Fig.13 The Result of Identifying the Workpiece
此次識別主要是針對上述圖中的工件,而非此工件的則不需要識別出來,若是目標工件中混入了其他工件則不需要識別。本次識別驗證做了1組實驗,混有相同的目標工件和非目標工件,來驗證通過上述的算法是否能夠準確的識別出目標工件。如圖14、表1所示,結(jié)果表明,在目標工件和非目標工件比較少的情況下系統(tǒng)可以完全的識別出目標工件,識別率可以達到100%,如果在混合工件較多的情況下,可能會存在誤分,誤識。
表1 實驗的識別結(jié)果Tab.1 Experimental Recognition Results
圖14 待識別工件和識別出的結(jié)果示意圖Fig.14 Schematic Diagram of the Workpiece to be Identified and the Identified Tesult
這里論述了基于機器視覺的工件識別系統(tǒng)組成、識別原理及方法。相對于人工去識別更加的方便、高效、快捷并且不易出錯。但是這種方法也存在不足,容易受到光照的影響,在光照不均勻或者光照太強烈的情況下,會使得工件難以分割,造成一定的困難。但是本方法大絕大多數(shù)情況下是實現(xiàn)的,也具有更高的實用性。