?

基于多曲率融合的銑刀缺陷檢測*

2024-02-29 14:27袁學楓
組合機床與自動化加工技術 2024年2期
關鍵詞:鏈碼刀刃拐點

易 忠,周 驊,趙 麒,袁學楓

(1.貴州大學大數據與信息工程學院,貴陽 550025;2.貴州民族大學機械電子工程學院,貴陽 550025)

0 引言

銑刀作為機械加工中的重要銑削工具,是機械產品的加工基礎,也是各種一體成形產品的主要工具,在機械加工、制造中具有重要地位,對銑刀質量的檢測顯得尤為重要。目前,在專業的銑刀數控加工生產中心,對生產出的銑刀質量檢測,通常是工業相機加顯微鏡頭的組合,將樣本畫面放大以后通過人工來判斷樣本是否合格,因為人眼的易疲勞性,這種檢測方法成本高且效率低。謝峰等[1]采用自適應隨機共振算法來檢測立銑刀的磨損狀態,通過采集轉動的相關參數來判斷銑刀是否合格,但該種方法并不能定位缺陷類型和位置,且對設備要求較高;李宇庭等[2]通過建立特征數據集、使用遺傳算法和SVM模型實現了對腐蝕坑和裂紋兩種缺陷的高精度分類算法;劉浩[3]使用圖像差分算法和SVM分類算法對刀尖表面缺陷進行檢測和分類。計算機視覺作為當前缺陷檢測的主流,具有成熟的應用范圍,常見的深度學習算法需要足夠的訓練樣本和高性能的運算單元,且存在許多的浮點運算,在工業應用的嵌入式平臺中普適性較差,且目前在公開的網絡資源中,并沒有銑刀的缺陷樣本集,很難有好的訓練模型。傳統圖像差分和模板匹配算法對模板和樣本的相似性進行評分,為了解決圖像采集時因縮放、旋轉等導致的目標分辨率和角度不一致的問題,大多采用特征匹配的方法,需要對不同樣本設計相應的特征評價體系,且對缺陷處進行定位較為困難。

針對以上問題,本文提出一種基于改進鏈碼計算機制的銑刀缺陷檢測方法,在對樣本圖像處理得到銑刀邊緣輪廓后,使用該方法對銑刀輪廓坐標進行曲度計算,通過對曲度峰值點的判斷和篩選定位到銑刀崩刃、多刃缺陷處位置。經實驗驗證,該方法提高了檢測速度和精度,更貼合嵌入式平臺的使用。

1 銑刀崩刃檢測原理

常見的銑刀樣本,為外刀刃彎曲加上內刀刃直線組成的四刀刃,相較于常見的直線型銑刀,圖像差分方法和直線擬合方法難以適用,因此提出以下的檢測方案:

(1)使用自主選型的相機、鏡頭和光源組成的實驗平臺進行樣本圖片采集。

(2)對樣本圖片進行背景分離,得到銑刀主體。

(3)使用雙邊濾波平滑樣本內部和強化邊緣,并進行銑刀輪廓提取。

(4)使用改進的鏈碼計算機制對輪廓像素點坐標進行曲度計算。

(5)篩選曲度峰值點,去除標準點,得到銑刀崩刃、多刃缺陷的位置(若樣本合格則不存在缺陷點)。

1.1 銑刀背景的分離

如圖1所示,圖片背景區域雜色為相機所在環境反光所致,這部分對計算時會造成干擾,因此將前后背景分離,銑刀刀身顏色和背景色呈現明顯差異,且工業相機所在位置基本固定,所以采用RGB通道色彩抑制去除背景色,在拍攝環境和拍攝位置不變化情況下,對圖1所示的樣本環境,設置閾值分別為:R>97,G>59,B>91。

(a) 原圖 (b) 前景圖

在色彩分離過程中,刀身本身會受到色彩的略微影響,剔除小于閾值的色彩值后會有失真的情況出現,選擇增加光照強度解決此問題,將RGB色彩影響降低,爭對現有的實驗條件,該方法能直接應用于背景雜色的環境,更換更高規格的相機和高質量鏡頭后,此方法也可以用來降噪。

1.2 銑刀樣本的去噪

銑刀刀刃是圖1a中單邊外圍輪廓部分,為了提取刀刃的準確輪廓,降低拍攝成像時噪聲的干擾,需要對圖片進行濾波處理,常用的濾波算法有中值濾波、均值濾波、雙邊濾波等,銑刀需要得到清晰的邊緣,所以需要將刀刃銳化,將非邊緣處平滑,采用雙邊濾波算法,并將小的連通域當作干擾刪除。雙邊濾波可以減少圖像中的鋸齒和亮度動態范圍不平衡帶來的影響。

設定濾波半徑為5,全局方差為5,局部方差為0.2,濾波結果如下,圖2大小為1600*1200,設置小連通干擾區域面積閾值為10 000。

(a) 原圖 (b) 雙邊濾波圖 (c) 去小區域圖

(a) 刀刃二值圖 (b) 刀刃輪廓圖

1.3 銑刀輪廓提取

將圖像二值化,不僅可以降低計算量,也更方便對邊緣進行處理,將連通域標記以后,使用下述流程提取邊緣并儲存邊緣點順序和坐標:

(1)使用LOG算子提取二值圖的邊緣,LOG算子在二值圖像中具有良好的邊緣提取效果,可以將邊緣提取為單個像素寬度。

(2)將邊緣輪廓內值的索引存放在矩陣中,m為行坐標索引,n為列坐標索引。

(3)將陣列中第一個點作為初始點,順時針判斷下一個點的位置并計算歐式距離是否等于1,如果距離為1,將該點標記為下一個點,將索引存入新的矩陣,單個連通域標記完畢,繼續標記下一個連通域,直到將所有連通域標記完畢。

1.4 基于K鄰域鏈碼的拐點檢測

在圖像中,K鄰域鏈碼是指以某點為中心,從該點往右第K/8(K=8n,n=1,2,3…)點處賦值為0,再逆時針方向旋轉依次賦值1,2,3…K-1形成的矩陣。

銑刀的崩刃、多刃處在二值輪廓中會形成一個或多個拐點,尚振宏等[4]提出一種在二值圖像中拐點的實時檢測算法(以下統稱該算法為SH算法):通過對像素點處的曲率進行計算比較,得到圖像中的拐點,其中Pi點處的曲率可由式(1)~式(4)得出,c(k,i)表示點Pi的鏈碼值,標記與未標記表示同一個點是否被使用兩次,當同一個點第二次被輪廓計入時則此點為標記點,該點是拐點的可能性更大。

(1)

(2)

(3)

如果像素P(i+k/8)不位于Pi的K鄰域內,但位于Pi的k-8m鄰域內(m=1,2,3,…,且k-8m≥8)。

c(k,i+k/8)≈c(k-8m,i+k/8)×[k/(k-8m)]

(4)

得到輪廓內所有點的曲率以后,將大于設置閾值的峰值點作為拐點。

在銑刀輪廓中,因為像素值的連續性,以及拍攝精度和角度導致的差異性,在刀刃尖端的位置,可能并不是由一個像素點構成,也就是說,銑刀刀刃尖端處存在多個像素點,在人眼觀察到尖銳處,將其像素化后反而是多個像素點構成的扁平,將其變化到二維坐標系后差異更明顯,如圖4所示。

(a) 刀刃像素邊界1(b) 刀刃像素邊界2

顯然,此時再將第一個拐點作為尖端點是不符合人的邏輯認知規律的,因此提出一種多點單鄰域檢測算法以及一種多點多鄰域檢測算法,用來高精度的檢測銑刀刀口崩刃。

圖5 重構鏈碼中心

圖6 圖像采集平臺

1.5 基于鏈碼的多點單鄰域拐點檢測算法

SH算法是將P(i+k/8)處的位置由Pi處的鏈碼表示而出,而Pi處的位置又由P(i-k/8)處的鏈碼表示,因此實際上是Pi點與左右第K/8個像素點構成的兩線段所組成的角度來作為曲度,對于規則的像素級曲線拐點,該方法具有良好的效果,但是在銑刀刀刃中,刀尖處并不是單像素點作為尖點,在崩刃和尖端處可能存在多個并排像素點,因此在此基礎上提出了一種基于鏈碼的多點單鄰域算法,將K鄰域鏈碼的中心重構,并融合多點鏈碼計算曲率值以增強抗噪能力和檢測準確率。具體計算步驟為:

步驟1:對像素點Pi進行計算時,將其直接作為鏈碼矩陣的中心。

步驟2:分別計算鏈碼中心Pi處左邊和右邊第1至k/8個點相對于Pi的角點值(兩鏈碼差值的絕對值),不在鏈碼k鄰域內但在k-8m鄰域內的點,仍使用倍率關系求取鏈碼值。

(5)

(6)

步驟3:將Pi左右對應的角點值相減并取絕對值。

ce(n)=|θi+n-θi-n|

(7)

步驟4:若所得ce值為0,或大于k/2,則該值等于k減去本身。

(8)

步驟5:將得到的所有值求和。

(9)

步驟6:將得到的值使用最大值做差值并平方。兩線段構成的角度越小,得到的c值越小,反之越大,數據平方化可以拉高曲點與平滑點的差距,更好的去除噪點干擾。

e(i)=(Max(c(i))-c(i))2

(10)

步驟4是因為以Pi為中心時,無論左右采用多少個點進行計算,兩個點的鏈碼值之差越小則證明三點構成的兩線段角度越小,差值為0則為直線。使用中心左右第K/8個點進行計算,相比于使用多個點,使用兩點的抗干擾性和準確性都比較低。

綜上所述,動物防疫不僅是技術工作,也是行政工作,工作量頻繁,涉及種類多,這也需要我們應改革和創新動物防疫管理制度,尤其是重大動物疫病防控免疫措施,更需要加強注重政府管理,創新運行制度,優化防疫執法,保證讓免疫工作落實,讓畜禽業能夠健康穩定發展。

1.6 基于鏈碼的多點多鄰域拐點檢測算法

在多點單鄰域算法中,對點Pi左右的點進行角點值計算時,使用的都是同一個鏈碼矩陣,對于大的拐點有較好的效果,為了檢測相對平滑處的小拐點,提出一種多點多鄰域算法,將多點單鄰域算法中的步驟2做出修改:

(11)

(12)

1.7 基于多曲率融合的銑刀崩刃定位

通過圖像的預處理分離背景,使用雙邊濾波和LOG算子提取到銑刀的邊緣,再使用基于鏈碼的多點單鄰域算法提取到銑刀輪廓上的拐點以后,刀具輪廓上的所有拐點都已經被檢測出,再次使用同樣的處理方法對合格的刀具樣本進行處理,得到刀刃上本身存在的合格拐點,將缺陷樣本拐點與合格拐點做差分,剩下的就是銑刀的崩刃和多刃缺陷處。

2 實驗分析

2.1 實驗平臺

實驗平臺PC環境為Intel(R) Core(TM) i5-3470 CPU,16 G運行內存,window10操作系統,基于MATLAB R2018軟件平臺計算;200 W像素邁德威視MV-GED200C-T-CLccd相機,海約HAYAER300倍光學顯微鏡頭,華康科技HK-DLR-84-35型號穹頂光源、多用金屬支架。

2.2 不同算法拐點定位

對同一段刀刃曲線使用3種算法計算,結果如圖7所示,矩形框標記點為檢測到的拐點位置;在曲線規則度差,拐點復雜的情況下,SH算法受干擾較大,相同拐點容易被錯檢,兩種多曲率融合的檢測算法檢測更精準。

(a) SH算法檢測 (b) 多點多鄰域算法檢測 (c) 多點單鄰域算法檢測

2.3 銑刀樣本崩刃檢測

對于像素點Pi處的曲度,由左右第1到k/8個點共同構成,更貼合銑刀刀刃的實際像素點構成的曲線,圖8是同一樣本不同鄰域下使用多點單鄰域算法計算到的曲率。

(a) 原圖 (b) 輪廓圖

使用3種算法分別計算單刃銑刀樣本(分辨率803*659),閾值設置為剛好能檢測到缺陷點又排除光滑合格點,參數為K=64,曲率閾值分別為:200、200、550;圖9c~圖9e為3種算法計算到圖9b的曲率,圖9f~圖9h中邊緣標記點為檢測到的拐點,圖9i~圖9k中邊緣黑色點為檢測到的崩刃處;多點單鄰域算法對單刀刃銑刀比多點多鄰域算法多檢測出了一處崩刃點,兩種融合多曲率的算法比SH算法多檢測到一處崩刃,而該處崩刃處所在輪廓曲線處較為光滑,證明融合多曲率的算法有更好的檢測能力。

(a) 原圖 (b) 刀刃輪廓圖

計算樣本2(分辨率1600*1200)結果為:圖10c~圖10e為3種算法計算到圖10b的曲率圖10f~圖10h中邊緣標記點為檢測到的拐點,圖10i~圖10k中邊緣白色標記點為檢測到的崩刃處;因樣本2有3個閉合區域,其曲率圖為3區域并列,K=128,拐點閾值分別設置為:280、200、850。多點多鄰域算法對平滑處的檢測更敏感,而SH算法容易出現漏檢的現象,多點單鄰域算法不僅考慮了鄰域內多點的值,也只使用最大的鏈碼矩陣,不僅有較高的檢測精度,也具有較強的抗噪能力。

(a) 原圖 (b) 刀刃輪廓圖

2.4 性能分析

(a) 檢測速度 (b) 漏檢數目

SH算法檢測速度略快于多點單鄰域算法,但檢測精度比后者更低,漏檢率也最高,多點多鄰域算法因為使用多個鏈碼矩陣值,在速度上較之SH和多點單鄰域算法都要慢。本批次100個樣本中,SH算法檢測準確率86%,平均檢測時間621.06 ms;多點多鄰域算法檢測準確率為92%,平均檢測時間1 480.54 ms;多點單鄰域算法檢測準確率為97%,平均檢測時間748.71 ms。

經過實驗分析,在同一個樣本的檢測中,SH算法存在漏檢現象,對于形狀對稱的銑刀,SH算法只檢測出了部分拐點,兩對稱點的曲率理論相同,但受到成像質量和邊緣提取效果的影響,對稱點的曲率可能存在略微差異,而SH算法只采用兩點來計算曲度,容易受到噪聲點的干擾,多點多鄰域算法對噪聲的包容性比SH算法更高,但在略微平滑處也存在多檢、漏檢現象,單鄰域鏈碼算法在整個銑刀刀刃曲線中有很好的檢測效果,能將封閉輪廓中的各拐點都檢測出來,同時也對光滑處的曲線不做標記,具有更高的抗噪能力和檢測精度,在時間和檢測質量上綜合優于其他兩種算法。

3 結論

實驗證明,相比于傳統的銑刀缺陷檢測方法,本文提出的多點單鄰域鏈碼算法對銑刀的崩刃、多刃缺陷具有良好的檢測效果,能判斷銑刀是否存在缺陷并在有缺陷時準確定位到銑刀的崩刃、多刃缺陷處。該檢測方法具有以下優點:

(1)速度快,基于多曲率融合的銑刀缺陷檢測算法對四刀刃銑刀樣本的平均檢測時間在0.8 s,能滿足工業在線檢測的要求。

(2)精度高,通過實驗驗證,對任意刀刃的銑刀,只要存在崩刃、毛刺缺陷,檢測結果精準,在崩刃或多刃大小相差較大時候,仍然有92%的準確率。

(3)包容性強,算法直接對像素坐標數據進行計算,不需要額外樣本,對任意形狀的銑刀都可以進行檢測,不受樣本采集時候角度、縮放等因素的影響。

(4)抗噪能力強,算法對樣本進行濾波、小連通域去除等操作,噪聲對檢測結果的影響可以忽略不記。

(5)設備要求低,本算法不涉及大量運算,對平臺的算力要求較低,更貼合嵌入式計算環境,可以將其應用到工業檢測的一體化產品中,具有良好的使用前景和發展優勢。

猜你喜歡
鏈碼刀刃拐點
怎樣把力氣用在刀刃兒上
——分清“主”和“次”
秦國的“拐點”
新拐點,新機遇
刀刃向內
恢復高考:時代的拐點
一種新壓縮頂點鏈碼
《廉潔拐點》
游走在刀刃上的CPI指數
基于鏈碼特征的幾何圖形快速識別算法*
閱讀理解Ⅱ
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合