在工業領域,想必有很多朋友們對毛刺一定不陌生,尤其是機械加工過程中,它是無處不在的,不論你采用多么高級的精密的設備,它都會伴隨產品一起誕生。
機械零件上的毛刺, 有些是由于切削加工過程中塑性變形引起的;有些是鑄造、模鍛等加工的飛邊, 還有些是焊接擠出的殘料。毛刺的存在對零件的加工精度、裝配精度、再加工定位和外觀質量等許多方面都會產生不良影響。
這個時候就會有廣大群眾惆悵到:腫么辦???這毛刺到底腫么辦??
今天,小編就為大家分享如何運用SGVision去毛刺的方法。
既然要去毛刺那必然是用到咱們SGVision軟件當中毛刺檢測這一算法了,針對毛刺呢軟件提供了四種不用的檢測工具,分別是毛刺檢測、毛刺對比、圓孔毛刺、直線毛刺。不同的檢測算法相應的檢測功能與適用性也有所不同,那接下來就一一來學習一下這四種毛刺檢測的運用吧!
毛刺檢測 :本算法用于在劃定的檢測區域內檢測出毛刺并測量出毛刺面積大小,從而判斷產品的OK/NG。
?參數學習
【灰度低閾值】:設置值應≤目標區域灰度值,界定毛刺灰度范圍的最小值;
【灰度高閾值】:設置值應≥目標區域灰度值,界定毛刺灰度范圍的最大值;
【領域尺寸】:用來界定凸起或者凹陷是否為毛刺的參數,小于此值則是毛刺;
【面積閾值】:預設最小毛刺的下限面積,超過該值則為毛刺;
毛刺檢測算法實際應用場景:檢測產品是否存在飛邊、毛刺(如手機外殼等);
我們先打開SGVision軟件,按【F4】快捷鍵進入算法頁面,【導入需要檢測的圖片】—【選擇檢測欄目】—【選中毛刺檢測】。
我們可以看一下它的參數,設定一個灰度范圍,用來表示目標灰度是什么。同時可以選擇說檢測凸起或者檢測凹陷。領域尺寸呢就是限定說我在多少范圍內檢測凸起、凹陷。
毛刺檢測的算法工具呢使用范圍比較有限,因為它沒有辦法設置太多的東西。
先來檢測一下這張圖片
可以看到把上面的毛刺都檢測出來了
但是沒有基準之類的鮮艷信息
假設我們把檢測凹陷勾選起來,
檢測凸起去掉的話,
來看看是什么結果
可以看到它就幫我們找到了內凹的缺陷,但是我們發現檢測結果出現了差異,把背景位置的地方也檢測出來了,實際上不屬于凹陷。所以說毛刺檢測工具整體的功能只限于說它自己會判斷圖片當中有一些邊角的地方NG的區域,它就是適用于比較小的比較平整的物體。
毛刺對比:本算法用于比對輪廓尋找毛刺。
?參數學習
【邊緣低閾值】:根據邊緣灰度值設置,設置值<=邊緣灰度值;
【邊緣高閾值】:根據邊緣灰度值設置,設置值>=邊緣灰度值;
【寬度閾值】:毛刺在水平方向像素點個數;
【高度閾值】:毛刺在豎直方向像素點個數;
【使用直線距離】:毛刺寬度和高度在計算判斷的時候,是指毛刺根部到最外面端點的最小直線距離(點到點之間的直線距離),與最外面的端點有關,與毛刺的彎曲程度無關;
【使用連通域距離】:毛刺寬度和高度在計算判斷的時候,是指毛刺從根部到最外面端點的彎曲距離(點到點之間的曲線長度),與最外面的端點有關,與毛刺的彎曲程度有關;
毛刺對比算法實際應用場景 :檢測物體有無毛刺(如金屬端子鍍層檢測);
比如說我們要檢測比較大的物體的話
如圖檢測這個圓
▲合格品 ▲不良品
這種情況我們就可以使用【毛刺對比】工具了!
首先,先添加這張OK的圓來打開【毛刺對比】的工具。打開之后能看到【毛刺對比】有很多的輔助選項,比如說它可以設置【忽略區域】,還有一個模板的概念,我們先把這張添加為模板圖,顧名思義判斷它的毛刺就是跟模板來對比,它的好處就是能適應各種奇形怪狀的物體!如果說用剛才的毛刺檢測工具隨便怎么檢可能永遠都是各種各樣NG報警出來。
可以通過毛刺對比的方式添加一個【基準圖】,再去判斷兩者之間的差異,這種情況下就不會說因為物體本身形狀造成誤檢,
那我們現在導入這張NG圖,這張NG圖不僅是有毛刺缺陷而且有一定的位置偏移,那我們就來看看毛刺對比算法能不能把他檢測出來!
點擊測試之后果然NG了,還畫出了兩個圓,左邊的這個圓其實就是模板輪廓所在的位置,右邊的這個圓就是實際要檢測他的輪廓的位置,可以看懂到他把這兩個輪廓框出來了。所以這個算法的原理其實就是對比兩個輪廓之間有沒有存在什么差異,高度范圍與寬度范圍就是為了限制差異的多少我要當做是OK/NG的。
除此之外這個圓還有位置偏移的問題,那這里就要穿插我們之前學習到的【模板匹配】了,結合模板匹配之后呢就會得到一個更吻合的效果了!
先打開算法工具,選擇【模板匹配】,把OK的這張良品圖設置為模板圖,然后測試一下找到了,接著在毛刺對比算法當中匹配源就選擇這個模板匹配。
這個時候再測試一下也找到了
我們切回NG圖那我們再點開這個毛刺對比,匹配源依舊選擇模板匹配,測試一下發現找到了新的位置,可以看到這個模板匹配位置有發生偏移了,是這個位置的經過我們糾偏之后就把他找到了.
圓孔毛刺、直線毛刺 :本算法用于比對輪廓檢測毛刺,設置毛刺檢測的合格范圍,從而判斷產品的 OK/NG。
?參數學習
【灰度低閾值】:設置值應<=目標毛刺灰度值;
【灰度高閾值】:設置值應>=目標毛刺灰度值;
【使用圓形】:如果檢測輪廓比較接近圓形,點選此命令;
【使用橢圓】:如果檢測輪廓比較接近橢圓,點選此命令;
【寬度閾值】:代表檢測毛刺的寬度參考值大小;
【高度閾值】:代表檢測毛刺的高度參考值大小;
【使用直線距離】:毛刺寬度和高度在計算判斷的時候,是指毛刺根部到最外面端點的最小直線距離(點到點之間的直線距離),與最外面的端點有關,與毛刺的彎曲程度無關;
【使用連通域距離】:毛刺寬度和高度在計算判斷的時候,是指毛刺從根部到最外面端點的彎曲距離(點到點之間的曲線長度),與最外面的端點有關,與毛刺的彎曲程度有關;
圓孔毛刺算法實際應用場景: 檢測產品加工后為圓形或者橢圓形的表面毛刺(如手機攝像頭孔的毛刺檢測);
【圓孔毛刺】跟【直線毛刺】其實都是建立在毛刺對比的基礎上,但是又不需要設置模板。
我們先來看一下【圓孔毛刺】,旁邊合格標準的參數跟毛刺對比是一模一樣的,只是多了一個使用圓形還是使用橢圓,他會把這個目標擬合一個圓,假設我們物體是一個圓的前提下或者說橢圓的前提下,把找到的物體嘗試去擬合一個圓或者橢圓,拿這個實際的物體跟圓做對比。
原理就是把找到的輪廓去擬合圓或者橢圓,然后把圓或者橢圓作為模板基準的形狀,來跟現在實際找到的這個輪廓做一個毛刺對比。
只要他是圓或者橢圓的話,我們就可以用這個圓孔毛刺,這對于我們很多弓箭的話,比如說我們想要測量物體的內孔毛刺啊,是可以直接采用這個圓孔毛刺的。
那顧名思義【直線毛刺】也是一樣的道理,就是在檢測區域內找一個輪廓,參數都是一樣的,他會找一條直線,然后去判斷實際檢測到的這條有沒有坑坑洼洼。
可以看到只要在我們這個檢測內他自動的找到了這條直線,也無所謂方向什么的,通過比對就找出了這些坑坑洼洼的地方。
審核編輯:湯梓紅
評論