為了能讓密封圈與密封部件之間實現(xiàn)完全的黏合,工業(yè)用的石墨密封圈表面必須平整光滑,嚴禁出現(xiàn)裂縫、暗紋等瑕疵。 通過機器視覺捕獲的密封圈表面圖像可能因種種因素呈現(xiàn)出光照不均勻、對比度低、噪聲大,這時可以利用DSP捕捉圖像,對圖像特點進行分析,并通過中值濾波、二值化、圖像縮小、哈弗圓檢測法、區(qū)域生長等一系列圖像算法來識別密封圈缺陷(如表面裂縫、模影、暗紋等)。密封圈表面缺陷檢測系統(tǒng)將密封圈放置在合適的光源正下方,將工業(yè)智能相機搭載光源正上方。用相機模擬數(shù)據(jù)傳輸線或者以太網(wǎng)接口將相機數(shù)據(jù)傳送到嵌入式系統(tǒng)中。這樣密封圈的圖像就采集到圖像識別系統(tǒng)中了,我們就可以在該嵌入式系統(tǒng)內(nèi)對該圖像進行算法識別,判斷所拍密封圈是否為合格產(chǎn)品。
經(jīng)過反復(fù)的實驗測試,在紅色同軸光和紅色環(huán)形光的照射下,相機采集到的圖像瑕疵成像效果比較清晰。其中裂紋、暗紋等細瑕疵在紅色同軸光下比較明顯;模影等瑕疵在紅色環(huán)形光下成像明顯。兩套檢測系統(tǒng)共同使用,其中一套用紅色同軸光源,另一套用紅色環(huán)形光源,接上相應(yīng)的光源驅(qū)動后,就可以對密封圈分2次進行檢測。 圖像經(jīng)過智能識別系統(tǒng)處理過后,會出現(xiàn)合格與次品的兩種結(jié)果,利用PLC通信,對密封圈分類裝置進行電信號的通信。讓其對密封圈進行篩選歸類。在兩套系統(tǒng)檢測過程中,如果有其中任意一套將產(chǎn)品識別為不合格,那么在與密封圈分類裝置通信時,該產(chǎn)品便為不合格產(chǎn)品。
檢測系統(tǒng)的通信如圖所示,系統(tǒng)采用4個IO通信口與檢測平臺建立聯(lián)系。
通信IO口示意圖 工件靜止后,PLC給DSP拍照命令,out1高電平。 DSP處理完畢 DSP首先發(fā)生結(jié)果信號,DSP輸出到in2高電平,再發(fā)生確認處理完畢信號,DSP輸出到in1,OK為高電平,NG為低電平。 PLC接收到結(jié)果并不馬上回復(fù)給 DSP,而是等到進料機械手到達時,移位寄存器記錄并做30ms的延時后發(fā)出確認信號給DSP,確認信號發(fā)生的同時,要求DSP的確認信號同時有效。也就是DSP未收到PLC的確認信號之前要保持高電平狀態(tài),DSP 收到PLC的確認信號后需要把確認信號置為低電平。 系統(tǒng)在收到PLC的拍照信號后,檢測系統(tǒng)便會將當(dāng)前要檢測的密封圈圖像通過傳輸線從相機中寫入到系統(tǒng)內(nèi)存,如下圖密封圈8比特BMP位圖數(shù)據(jù)所示便是把從相機寫入內(nèi)存的數(shù)據(jù)以BMP8比特位圖格式輸出的圖像。
密封圈8比特BMP位圖數(shù)據(jù) 可以發(fā)現(xiàn)密封圈表面是呈淺色圓環(huán)狀的,在密封圈表面的左邊有一道黑色的縫,這就是我們需要檢測到的瑕疵。 考慮到不同種類的瑕疵在不同的光源下的清晰度不同,所以該系統(tǒng)用的是兩套不同的光源,一個是紅色同軸光源,另一個是紅色低角度環(huán)形光源。 同軸光源有內(nèi)部的光學(xué)鏡片經(jīng)過特殊的位置設(shè)置,使得光源的發(fā)光光路可以與相機成90°直角。間接地起到了棱鏡的使用效果。在該同軸光源的照射下,密封圈上比較細的裂紋都清晰可見。下圖是該同軸光源下的成像效果:
環(huán)形90度水平低角度光源,該光源LED后部基板與水平面成90度,因此LED顆粒變成水平方向,光源通常為1排LED顆粒,水平照射后可以實現(xiàn)對于光滑表面的裂痕和表面凹凸造成的細微缺陷形成很好的反光效果。如下圖低角度環(huán)形光源幾何原理所示:
在低角度環(huán)形光源的照射下,密封圈上的暗紋可以清晰可見。下圖便是密封圈在該環(huán)形光源下的成像效果:
由于密封圈表面的瑕疵往往都很細小,容易受到圖像噪聲的干擾。如果圖像傳輸?shù)倪^程中摻雜了過多的噪聲因素,無疑增加了識別算法的困難程度。所以為了避免產(chǎn)生過多的噪聲。只能選用抗噪性良好的相機。密封圈表面瑕疵檢測算法算法處理流程如下圖
捕捉源圖像 首先在相機里直接采集到的數(shù)組信息并不是灰度圖。因為相機除了灰度信息外,還帶有顏色上的分量。在圖像處理中,顏色分量起不到太大的作用,我們可以將它去掉。直接保留圖像的灰度信息。對于大部分的模擬相機,單位像素是以2像素4個數(shù)字保存的,如下圖相機中圖像灰度值保存的位置所示,表示相機捕捉到的圖像的8個像素,每個像素包含的信息都是用黑色的粗框圍成的,每個2像素包含4個數(shù)據(jù),以橫向2像素為1單位,其中藍色和綠色數(shù)據(jù)表示顏色信息,每個像素的紅色數(shù)據(jù)為灰度信息。因此要通過特定公式提取灰度值。
相機中圖像灰度值保存的位置 圖片預(yù)處理 由于圖像在傳輸線中傳輸?shù)臅r候不可避免會出現(xiàn)干擾,所以提取出的灰度圖像要進行濾波處理以便減小干擾。傳統(tǒng)的濾波方法是中值濾波和均值濾波,可以不同程度地減少噪聲干擾,但是這些方法也存在一些問題,可以看到這些噪聲的特點和瑕疵邊緣的特點近似,進行去噪的同時也模糊了瑕疵的邊緣。這不利于對瑕疵的識別。因此要克服這個問題,對這兩種經(jīng)典方法進行了改進,把這種干擾降到最低。 分角度的中值濾波法可以適應(yīng)瑕疵具有線性特征的特點,在二維的滑動窗口中,過中心點分別在0度,45度,90度,135度方向形成4個一維子窗口,分別對4 個子窗口求中值,然后取其最小值作為中心點的值。具體算法如下圖分角度中值濾波示意圖所示,分別統(tǒng)計二維滑動窗口中綠色、藍色、灰色、紫色部分的灰度分布。
分角度中值濾波示意圖 二值化 從密封圈8比特BMP位圖數(shù)據(jù)中可以觀察到,密封圈表面的顏色是比周邊顏色要亮出許多的。為了要盡快找到要檢測的目標(biāo)區(qū)域。粗略二值化時可以采用全局二值化法。
目標(biāo)提取 圖像二值化后,已經(jīng)去掉了大部分背景的干擾,因此在密封圈二值圖的基礎(chǔ)上可以繼續(xù)進行目標(biāo)提取過程。對于算法系統(tǒng),目標(biāo)提取實際上就是提取密封圈的圓環(huán)的過程。傳統(tǒng)的找圓算法是哈弗圓檢測法找圓。哈弗圓檢測法找圓的速度很慢,但是可以在哈弗圓檢測法上進行了優(yōu)化。具體算法步驟如下: 由于哈弗圓檢測法要遍歷整張圖像,所以圖像內(nèi)存越小,遍歷的速度越快,所以我們可以嘗試將圖像縮小后再處理。系統(tǒng)采用縮小16倍圖像(長寬各縮短4倍),再在縮小的圖像上進行哈弗圓檢測法找圓,為了盡可能保留原圖的信息,縮小時先申請一個縮小圖像內(nèi)存,構(gòu)建一個4×4的二維活動窗,當(dāng)窗里的灰度值為0的個數(shù)等于或超過8個時,縮小圖像相對應(yīng)的點的灰度值為0,反之,縮小圖像相對應(yīng)的點的灰度值為255。如下圖所示圖像縮小過程。
二值圖縮小16倍圖像 優(yōu)化哈弗圓檢測法找圓心 為了要快速找到圓心,首先要通過學(xué)習(xí)模式,讓系統(tǒng)掌握要搜索的圓環(huán)的外半徑和內(nèi)半徑,之后在圖像上遍歷各個點,對每個點往 24 個方向上掃描,如下圖優(yōu)化哈弗所示,每隔15°遍歷。
密封圖表面提取 在二值圖中確定內(nèi)圓心與外圓心的位置后便可以根據(jù)外半徑和內(nèi)半徑的長短,進行動態(tài)計算,取出最適合的內(nèi)半徑與外半徑的值,進行匹配。
密封圖目標(biāo)捕捉 瑕疵提取 我們知道密封圈在圖像上的位置后,就可以對原灰度圖進行更細致的分區(qū)域二值化,以便找到瑕疵位置。 OTSU法二值化是由日本學(xué)者大津提出的一種自適應(yīng)閾值確定方法,其原理是統(tǒng)計出圖片內(nèi)的灰度直方圖,根據(jù)直方圖的波谷位置分布來確定合適的閾值。其橫坐標(biāo)表示像素的灰度級別,縱坐標(biāo)表示該灰度出現(xiàn)的像素個數(shù),通過人工觀察輸入閾值的方法,來實現(xiàn)閾值分割圖像的目的。如下圖 OTSU法確定閾值示意圖所示,該曲線為圖像信息的灰度直方圖分布。紅線所示位置所對應(yīng)的圖像亮度值便是OTSU法計算出的閾值。
密封圈圓環(huán)的內(nèi)外半徑和圓心位置確定后,則可以在取區(qū)域過程中只對圓環(huán)表面上分布的像素點進行分區(qū)域統(tǒng)計。OTSU統(tǒng)計的區(qū)域劃分如下圖所示
分區(qū)域OTSU法示意圖 對藍色區(qū)域的a~h一共8個區(qū)域分別進行直方圖統(tǒng)計,每個區(qū)域都求出相對應(yīng)的閾值。當(dāng)像素值與閾值之間的灰度差距大于人為設(shè)定的參數(shù)時,就說明該點與周圍像素環(huán)境之間存在著明顯的不同。可將該點的灰度值賦值為0,否則該點賦值為255。 最終得到的新二值圖像內(nèi)存數(shù)組,該數(shù)組的亮度信息如下圖所示。
OTSU 二值圖 可以在上圖中看出,瑕疵的信息因為局部二值化的關(guān)系而被很好地保留了下來。 瑕疵特性參數(shù)計算 瑕疵特征的提取主要包括瑕疵面積、長度和寬度的計算等。為了要提取出這些信息,可以用區(qū)域生長法來完成。 區(qū)域生長法提取 普通的區(qū)域生長法是8連通法。就是對一個點的上,左上,右上,左,右,下,左下,左下,右下一共8個方向進行遍歷掃描,如果在該遍歷方向上也存在與當(dāng)前遍歷點的像素值相同的點時,就將該2個點看作都是屬于同一個瑕疵上的像素點。但是考慮到當(dāng)前系統(tǒng)中捕捉到的瑕疵往往是屬于狹長的縫。在使用 8 連通法提取狹長縫隙的信息時就很有可能就會造成縫的“斷裂”,導(dǎo)致將一條縫的信息分為了2塊或多塊連通區(qū)域信息來處理。為了避免這一現(xiàn)象,可將區(qū)域生長法做一定改進:采用可調(diào)節(jié)的全方位拓展法求區(qū)域生長,如下圖:
全方位拓展法求區(qū)域生長 瑕疵的判斷 雖然根據(jù)全方位拓展法求得了瑕疵數(shù)組。但是并不是所有的瑕疵都會影響產(chǎn)品的合格與否。所以還要通過計算各個瑕疵的特性,排除掉一些無關(guān)緊要的瑕疵。對于一般密封圈表面來說,一些很小的點瑕疵,極短的縫瑕疵,以及位于圓環(huán)表面的瑕疵都對密封圈的使用沒有任何影響。所以我們要通過計算,將這些瑕疵排除在外。 1. 瑕疵面積的計算法:當(dāng)瑕疵面積小于人為設(shè)定的參數(shù)時,我們就對該瑕疵判斷為合格。反之,則判斷為不合格。 2. 瑕疵長度的計算法:計算瑕疵長時,基于瑕疵的線性特征,首先對瑕疵做細化操作,得到單像素寬的瑕疵骨架曲線。瑕疵的長度實際上就是骨架圖像骨干點之間的長度之和。骨化后的圖像是一個單像素寬度的連通性好的骨干圖像。可以分別求取相鄰像素之間的長度,然后把所有的相鄰像素之間的距離求和即為所得。(總長度即為所有相鄰像素之間的長度之和。) 當(dāng)瑕疵長度小于人為設(shè)定的參數(shù)時,我們就對該瑕疵判斷為合格。反之,則判斷為不合格。 3. 瑕疵寬度的計算法:計算瑕疵寬時,仍然對瑕疵做細化操作后,骨架各點所在的瑕疵的位置的寬度反映出瑕疵各段的寬度。由于骨架曲線是單像素曲線,則一個骨架點與相鄰點的其他兩個骨架點相接,分別求出與相鄰點的斜率。則每個斜率的垂線與瑕疵邊緣相交兩點,兩點的連線的大小即為寬度值。比較這兩個寬度值其中較小的為這個瑕疵的寬度。 當(dāng)瑕疵寬小于人為設(shè)定的參數(shù)時,我們就對該瑕疵判斷為合格。反之,則判斷為不合格。 檢測結(jié)果如下,左圖為相機采集到的密封原圖,通過算法處理后的結(jié)果為右圖,可以看到,所有位于密封圈表面上的瑕疵都被檢測出來了:
密封圈灰度圖 算法最終的處理結(jié)果
審核編輯 :李倩
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5374瀏覽量
171100 -
機器視覺
+關(guān)注
關(guān)注
161文章
4343瀏覽量
120106 -
智能識別
+關(guān)注
關(guān)注
0文章
199瀏覽量
18112
原文標(biāo)題:基于機器視覺的密封圈表面缺陷檢測
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論