易 忠,周 驊,趙 麒,袁學(xué)楓
(1.貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院,貴陽(yáng) 550025;2.貴州民族大學(xué)機(jī)械電子工程學(xué)院,貴陽(yáng) 550025)
銑刀作為機(jī)械加工中的重要銑削工具,是機(jī)械產(chǎn)品的加工基礎(chǔ),也是各種一體成形產(chǎn)品的主要工具,在機(jī)械加工、制造中具有重要地位,對(duì)銑刀質(zhì)量的檢測(cè)顯得尤為重要。目前,在專業(yè)的銑刀數(shù)控加工生產(chǎn)中心,對(duì)生產(chǎn)出的銑刀質(zhì)量檢測(cè),通常是工業(yè)相機(jī)加顯微鏡頭的組合,將樣本畫面放大以后通過人工來判斷樣本是否合格,因?yàn)槿搜鄣囊灼谛?這種檢測(cè)方法成本高且效率低。謝峰等[1]采用自適應(yīng)隨機(jī)共振算法來檢測(cè)立銑刀的磨損狀態(tài),通過采集轉(zhuǎn)動(dòng)的相關(guān)參數(shù)來判斷銑刀是否合格,但該種方法并不能定位缺陷類型和位置,且對(duì)設(shè)備要求較高;李宇庭等[2]通過建立特征數(shù)據(jù)集、使用遺傳算法和SVM模型實(shí)現(xiàn)了對(duì)腐蝕坑和裂紋兩種缺陷的高精度分類算法;劉浩[3]使用圖像差分算法和SVM分類算法對(duì)刀尖表面缺陷進(jìn)行檢測(cè)和分類。計(jì)算機(jī)視覺作為當(dāng)前缺陷檢測(cè)的主流,具有成熟的應(yīng)用范圍,常見的深度學(xué)習(xí)算法需要足夠的訓(xùn)練樣本和高性能的運(yùn)算單元,且存在許多的浮點(diǎn)運(yùn)算,在工業(yè)應(yīng)用的嵌入式平臺(tái)中普適性較差,且目前在公開的網(wǎng)絡(luò)資源中,并沒有銑刀的缺陷樣本集,很難有好的訓(xùn)練模型。傳統(tǒng)圖像差分和模板匹配算法對(duì)模板和樣本的相似性進(jìn)行評(píng)分,為了解決圖像采集時(shí)因縮放、旋轉(zhuǎn)等導(dǎo)致的目標(biāo)分辨率和角度不一致的問題,大多采用特征匹配的方法,需要對(duì)不同樣本設(shè)計(jì)相應(yīng)的特征評(píng)價(jià)體系,且對(duì)缺陷處進(jìn)行定位較為困難。
針對(duì)以上問題,本文提出一種基于改進(jìn)鏈碼計(jì)算機(jī)制的銑刀缺陷檢測(cè)方法,在對(duì)樣本圖像處理得到銑刀邊緣輪廓后,使用該方法對(duì)銑刀輪廓坐標(biāo)進(jìn)行曲度計(jì)算,通過對(duì)曲度峰值點(diǎn)的判斷和篩選定位到銑刀崩刃、多刃缺陷處位置。經(jīng)實(shí)驗(yàn)驗(yàn)證,該方法提高了檢測(cè)速度和精度,更貼合嵌入式平臺(tái)的使用。
常見的銑刀樣本,為外刀刃彎曲加上內(nèi)刀刃直線組成的四刀刃,相較于常見的直線型銑刀,圖像差分方法和直線擬合方法難以適用,因此提出以下的檢測(cè)方案:
(1)使用自主選型的相機(jī)、鏡頭和光源組成的實(shí)驗(yàn)平臺(tái)進(jìn)行樣本圖片采集。
(2)對(duì)樣本圖片進(jìn)行背景分離,得到銑刀主體。
(3)使用雙邊濾波平滑樣本內(nèi)部和強(qiáng)化邊緣,并進(jìn)行銑刀輪廓提取。
(4)使用改進(jìn)的鏈碼計(jì)算機(jī)制對(duì)輪廓像素點(diǎn)坐標(biāo)進(jìn)行曲度計(jì)算。
(5)篩選曲度峰值點(diǎn),去除標(biāo)準(zhǔn)點(diǎn),得到銑刀崩刃、多刃缺陷的位置(若樣本合格則不存在缺陷點(diǎn))。
如圖1所示,圖片背景區(qū)域雜色為相機(jī)所在環(huán)境反光所致,這部分對(duì)計(jì)算時(shí)會(huì)造成干擾,因此將前后背景分離,銑刀刀身顏色和背景色呈現(xiàn)明顯差異,且工業(yè)相機(jī)所在位置基本固定,所以采用RGB通道色彩抑制去除背景色,在拍攝環(huán)境和拍攝位置不變化情況下,對(duì)圖1所示的樣本環(huán)境,設(shè)置閾值分別為:R>97,G>59,B>91。
(a) 原圖 (b) 前景圖
在色彩分離過程中,刀身本身會(huì)受到色彩的略微影響,剔除小于閾值的色彩值后會(huì)有失真的情況出現(xiàn),選擇增加光照強(qiáng)度解決此問題,將RGB色彩影響降低,爭(zhēng)對(duì)現(xiàn)有的實(shí)驗(yàn)條件,該方法能直接應(yīng)用于背景雜色的環(huán)境,更換更高規(guī)格的相機(jī)和高質(zhì)量鏡頭后,此方法也可以用來降噪。
銑刀刀刃是圖1a中單邊外圍輪廓部分,為了提取刀刃的準(zhǔn)確輪廓,降低拍攝成像時(shí)噪聲的干擾,需要對(duì)圖片進(jìn)行濾波處理,常用的濾波算法有中值濾波、均值濾波、雙邊濾波等,銑刀需要得到清晰的邊緣,所以需要將刀刃銳化,將非邊緣處平滑,采用雙邊濾波算法,并將小的連通域當(dāng)作干擾刪除。雙邊濾波可以減少圖像中的鋸齒和亮度動(dòng)態(tài)范圍不平衡帶來的影響。
設(shè)定濾波半徑為5,全局方差為5,局部方差為0.2,濾波結(jié)果如下,圖2大小為1600*1200,設(shè)置小連通干擾區(qū)域面積閾值為10 000。
(a) 原圖 (b) 雙邊濾波圖 (c) 去小區(qū)域圖
(a) 刀刃二值圖 (b) 刀刃輪廓圖
將圖像二值化,不僅可以降低計(jì)算量,也更方便對(duì)邊緣進(jìn)行處理,將連通域標(biāo)記以后,使用下述流程提取邊緣并儲(chǔ)存邊緣點(diǎn)順序和坐標(biāo):
(1)使用LOG算子提取二值圖的邊緣,LOG算子在二值圖像中具有良好的邊緣提取效果,可以將邊緣提取為單個(gè)像素寬度。
(2)將邊緣輪廓內(nèi)值的索引存放在矩陣中,m為行坐標(biāo)索引,n為列坐標(biāo)索引。
(3)將陣列中第一個(gè)點(diǎn)作為初始點(diǎn),順時(shí)針判斷下一個(gè)點(diǎn)的位置并計(jì)算歐式距離是否等于1,如果距離為1,將該點(diǎn)標(biāo)記為下一個(gè)點(diǎn),將索引存入新的矩陣,單個(gè)連通域標(biāo)記完畢,繼續(xù)標(biāo)記下一個(gè)連通域,直到將所有連通域標(biāo)記完畢。
在圖像中,K鄰域鏈碼是指以某點(diǎn)為中心,從該點(diǎn)往右第K/8(K=8n,n=1,2,3…)點(diǎn)處賦值為0,再逆時(shí)針方向旋轉(zhuǎn)依次賦值1,2,3…K-1形成的矩陣。
銑刀的崩刃、多刃處在二值輪廓中會(huì)形成一個(gè)或多個(gè)拐點(diǎn),尚振宏等[4]提出一種在二值圖像中拐點(diǎn)的實(shí)時(shí)檢測(cè)算法(以下統(tǒng)稱該算法為SH算法):通過對(duì)像素點(diǎn)處的曲率進(jìn)行計(jì)算比較,得到圖像中的拐點(diǎn),其中Pi點(diǎn)處的曲率可由式(1)~式(4)得出,c(k,i)表示點(diǎn)Pi的鏈碼值,標(biāo)記與未標(biāo)記表示同一個(gè)點(diǎn)是否被使用兩次,當(dāng)同一個(gè)點(diǎn)第二次被輪廓計(jì)入時(shí)則此點(diǎn)為標(biāo)記點(diǎn),該點(diǎn)是拐點(diǎn)的可能性更大。
(1)
(2)
(3)
如果像素P(i+k/8)不位于Pi的K鄰域內(nèi),但位于Pi的k-8m鄰域內(nèi)(m=1,2,3,…,且k-8m≥8)。
c(k,i+k/8)≈c(k-8m,i+k/8)×[k/(k-8m)]
(4)
得到輪廓內(nèi)所有點(diǎn)的曲率以后,將大于設(shè)置閾值的峰值點(diǎn)作為拐點(diǎn)。
在銑刀輪廓中,因?yàn)橄袼刂档倪B續(xù)性,以及拍攝精度和角度導(dǎo)致的差異性,在刀刃尖端的位置,可能并不是由一個(gè)像素點(diǎn)構(gòu)成,也就是說,銑刀刀刃尖端處存在多個(gè)像素點(diǎn),在人眼觀察到尖銳處,將其像素化后反而是多個(gè)像素點(diǎn)構(gòu)成的扁平,將其變化到二維坐標(biāo)系后差異更明顯,如圖4所示。
(a) 刀刃像素邊界1(b) 刀刃像素邊界2
顯然,此時(shí)再將第一個(gè)拐點(diǎn)作為尖端點(diǎn)是不符合人的邏輯認(rèn)知規(guī)律的,因此提出一種多點(diǎn)單鄰域檢測(cè)算法以及一種多點(diǎn)多鄰域檢測(cè)算法,用來高精度的檢測(cè)銑刀刀口崩刃。
圖5 重構(gòu)鏈碼中心
圖6 圖像采集平臺(tái)
SH算法是將P(i+k/8)處的位置由Pi處的鏈碼表示而出,而Pi處的位置又由P(i-k/8)處的鏈碼表示,因此實(shí)際上是Pi點(diǎn)與左右第K/8個(gè)像素點(diǎn)構(gòu)成的兩線段所組成的角度來作為曲度,對(duì)于規(guī)則的像素級(jí)曲線拐點(diǎn),該方法具有良好的效果,但是在銑刀刀刃中,刀尖處并不是單像素點(diǎn)作為尖點(diǎn),在崩刃和尖端處可能存在多個(gè)并排像素點(diǎn),因此在此基礎(chǔ)上提出了一種基于鏈碼的多點(diǎn)單鄰域算法,將K鄰域鏈碼的中心重構(gòu),并融合多點(diǎn)鏈碼計(jì)算曲率值以增強(qiáng)抗噪能力和檢測(cè)準(zhǔn)確率。具體計(jì)算步驟為:
步驟1:對(duì)像素點(diǎn)Pi進(jìn)行計(jì)算時(shí),將其直接作為鏈碼矩陣的中心。
步驟2:分別計(jì)算鏈碼中心Pi處左邊和右邊第1至k/8個(gè)點(diǎn)相對(duì)于Pi的角點(diǎn)值(兩鏈碼差值的絕對(duì)值),不在鏈碼k鄰域內(nèi)但在k-8m鄰域內(nèi)的點(diǎn),仍使用倍率關(guān)系求取鏈碼值。
(5)
(6)
步驟3:將Pi左右對(duì)應(yīng)的角點(diǎn)值相減并取絕對(duì)值。
ce(n)=|θi+n-θi-n|
(7)
步驟4:若所得ce值為0,或大于k/2,則該值等于k減去本身。
(8)
步驟5:將得到的所有值求和。
(9)
步驟6:將得到的值使用最大值做差值并平方。兩線段構(gòu)成的角度越小,得到的c值越小,反之越大,數(shù)據(jù)平方化可以拉高曲點(diǎn)與平滑點(diǎn)的差距,更好的去除噪點(diǎn)干擾。
e(i)=(Max(c(i))-c(i))2
(10)
步驟4是因?yàn)橐訮i為中心時(shí),無(wú)論左右采用多少個(gè)點(diǎn)進(jìn)行計(jì)算,兩個(gè)點(diǎn)的鏈碼值之差越小則證明三點(diǎn)構(gòu)成的兩線段角度越小,差值為0則為直線。使用中心左右第K/8個(gè)點(diǎn)進(jìn)行計(jì)算,相比于使用多個(gè)點(diǎn),使用兩點(diǎn)的抗干擾性和準(zhǔn)確性都比較低。
綜上所述,動(dòng)物防疫不僅是技術(shù)工作,也是行政工作,工作量頻繁,涉及種類多,這也需要我們應(yīng)改革和創(chuàng)新動(dòng)物防疫管理制度,尤其是重大動(dòng)物疫病防控免疫措施,更需要加強(qiáng)注重政府管理,創(chuàng)新運(yùn)行制度,優(yōu)化防疫執(zhí)法,保證讓免疫工作落實(shí),讓畜禽業(yè)能夠健康穩(wěn)定發(fā)展。
在多點(diǎn)單鄰域算法中,對(duì)點(diǎn)Pi左右的點(diǎn)進(jìn)行角點(diǎn)值計(jì)算時(shí),使用的都是同一個(gè)鏈碼矩陣,對(duì)于大的拐點(diǎn)有較好的效果,為了檢測(cè)相對(duì)平滑處的小拐點(diǎn),提出一種多點(diǎn)多鄰域算法,將多點(diǎn)單鄰域算法中的步驟2做出修改:
(11)
(12)
通過圖像的預(yù)處理分離背景,使用雙邊濾波和LOG算子提取到銑刀的邊緣,再使用基于鏈碼的多點(diǎn)單鄰域算法提取到銑刀輪廓上的拐點(diǎn)以后,刀具輪廓上的所有拐點(diǎn)都已經(jīng)被檢測(cè)出,再次使用同樣的處理方法對(duì)合格的刀具樣本進(jìn)行處理,得到刀刃上本身存在的合格拐點(diǎn),將缺陷樣本拐點(diǎn)與合格拐點(diǎn)做差分,剩下的就是銑刀的崩刃和多刃缺陷處。
實(shí)驗(yàn)平臺(tái)PC環(huán)境為Intel(R) Core(TM) i5-3470 CPU,16 G運(yùn)行內(nèi)存,window10操作系統(tǒng),基于MATLAB R2018軟件平臺(tái)計(jì)算;200 W像素邁德威視MV-GED200C-T-CLccd相機(jī),海約HAYAER300倍光學(xué)顯微鏡頭,華康科技HK-DLR-84-35型號(hào)穹頂光源、多用金屬支架。
對(duì)同一段刀刃曲線使用3種算法計(jì)算,結(jié)果如圖7所示,矩形框標(biāo)記點(diǎn)為檢測(cè)到的拐點(diǎn)位置;在曲線規(guī)則度差,拐點(diǎn)復(fù)雜的情況下,SH算法受干擾較大,相同拐點(diǎn)容易被錯(cuò)檢,兩種多曲率融合的檢測(cè)算法檢測(cè)更精準(zhǔn)。
(a) SH算法檢測(cè) (b) 多點(diǎn)多鄰域算法檢測(cè) (c) 多點(diǎn)單鄰域算法檢測(cè)
對(duì)于像素點(diǎn)Pi處的曲度,由左右第1到k/8個(gè)點(diǎn)共同構(gòu)成,更貼合銑刀刀刃的實(shí)際像素點(diǎn)構(gòu)成的曲線,圖8是同一樣本不同鄰域下使用多點(diǎn)單鄰域算法計(jì)算到的曲率。
(a) 原圖 (b) 輪廓圖
使用3種算法分別計(jì)算單刃銑刀樣本(分辨率803*659),閾值設(shè)置為剛好能檢測(cè)到缺陷點(diǎn)又排除光滑合格點(diǎn),參數(shù)為K=64,曲率閾值分別為:200、200、550;圖9c~圖9e為3種算法計(jì)算到圖9b的曲率,圖9f~圖9h中邊緣標(biāo)記點(diǎn)為檢測(cè)到的拐點(diǎn),圖9i~圖9k中邊緣黑色點(diǎn)為檢測(cè)到的崩刃處;多點(diǎn)單鄰域算法對(duì)單刀刃銑刀比多點(diǎn)多鄰域算法多檢測(cè)出了一處崩刃點(diǎn),兩種融合多曲率的算法比SH算法多檢測(cè)到一處崩刃,而該處崩刃處所在輪廓曲線處較為光滑,證明融合多曲率的算法有更好的檢測(cè)能力。
(a) 原圖 (b) 刀刃輪廓圖
計(jì)算樣本2(分辨率1600*1200)結(jié)果為:圖10c~圖10e為3種算法計(jì)算到圖10b的曲率圖10f~圖10h中邊緣標(biāo)記點(diǎn)為檢測(cè)到的拐點(diǎn),圖10i~圖10k中邊緣白色標(biāo)記點(diǎn)為檢測(cè)到的崩刃處;因樣本2有3個(gè)閉合區(qū)域,其曲率圖為3區(qū)域并列,K=128,拐點(diǎn)閾值分別設(shè)置為:280、200、850。多點(diǎn)多鄰域算法對(duì)平滑處的檢測(cè)更敏感,而SH算法容易出現(xiàn)漏檢的現(xiàn)象,多點(diǎn)單鄰域算法不僅考慮了鄰域內(nèi)多點(diǎn)的值,也只使用最大的鏈碼矩陣,不僅有較高的檢測(cè)精度,也具有較強(qiáng)的抗噪能力。
(a) 原圖 (b) 刀刃輪廓圖
(a) 檢測(cè)速度 (b) 漏檢數(shù)目
SH算法檢測(cè)速度略快于多點(diǎn)單鄰域算法,但檢測(cè)精度比后者更低,漏檢率也最高,多點(diǎn)多鄰域算法因?yàn)槭褂枚鄠€(gè)鏈碼矩陣值,在速度上較之SH和多點(diǎn)單鄰域算法都要慢。本批次100個(gè)樣本中,SH算法檢測(cè)準(zhǔn)確率86%,平均檢測(cè)時(shí)間621.06 ms;多點(diǎn)多鄰域算法檢測(cè)準(zhǔn)確率為92%,平均檢測(cè)時(shí)間1 480.54 ms;多點(diǎn)單鄰域算法檢測(cè)準(zhǔn)確率為97%,平均檢測(cè)時(shí)間748.71 ms。
經(jīng)過實(shí)驗(yàn)分析,在同一個(gè)樣本的檢測(cè)中,SH算法存在漏檢現(xiàn)象,對(duì)于形狀對(duì)稱的銑刀,SH算法只檢測(cè)出了部分拐點(diǎn),兩對(duì)稱點(diǎn)的曲率理論相同,但受到成像質(zhì)量和邊緣提取效果的影響,對(duì)稱點(diǎn)的曲率可能存在略微差異,而SH算法只采用兩點(diǎn)來計(jì)算曲度,容易受到噪聲點(diǎn)的干擾,多點(diǎn)多鄰域算法對(duì)噪聲的包容性比SH算法更高,但在略微平滑處也存在多檢、漏檢現(xiàn)象,單鄰域鏈碼算法在整個(gè)銑刀刀刃曲線中有很好的檢測(cè)效果,能將封閉輪廓中的各拐點(diǎn)都檢測(cè)出來,同時(shí)也對(duì)光滑處的曲線不做標(biāo)記,具有更高的抗噪能力和檢測(cè)精度,在時(shí)間和檢測(cè)質(zhì)量上綜合優(yōu)于其他兩種算法。
實(shí)驗(yàn)證明,相比于傳統(tǒng)的銑刀缺陷檢測(cè)方法,本文提出的多點(diǎn)單鄰域鏈碼算法對(duì)銑刀的崩刃、多刃缺陷具有良好的檢測(cè)效果,能判斷銑刀是否存在缺陷并在有缺陷時(shí)準(zhǔn)確定位到銑刀的崩刃、多刃缺陷處。該檢測(cè)方法具有以下優(yōu)點(diǎn):
(1)速度快,基于多曲率融合的銑刀缺陷檢測(cè)算法對(duì)四刀刃銑刀樣本的平均檢測(cè)時(shí)間在0.8 s,能滿足工業(yè)在線檢測(cè)的要求。
(2)精度高,通過實(shí)驗(yàn)驗(yàn)證,對(duì)任意刀刃的銑刀,只要存在崩刃、毛刺缺陷,檢測(cè)結(jié)果精準(zhǔn),在崩刃或多刃大小相差較大時(shí)候,仍然有92%的準(zhǔn)確率。
(3)包容性強(qiáng),算法直接對(duì)像素坐標(biāo)數(shù)據(jù)進(jìn)行計(jì)算,不需要額外樣本,對(duì)任意形狀的銑刀都可以進(jìn)行檢測(cè),不受樣本采集時(shí)候角度、縮放等因素的影響。
(4)抗噪能力強(qiáng),算法對(duì)樣本進(jìn)行濾波、小連通域去除等操作,噪聲對(duì)檢測(cè)結(jié)果的影響可以忽略不記。
(5)設(shè)備要求低,本算法不涉及大量運(yùn)算,對(duì)平臺(tái)的算力要求較低,更貼合嵌入式計(jì)算環(huán)境,可以將其應(yīng)用到工業(yè)檢測(cè)的一體化產(chǎn)品中,具有良好的使用前景和發(fā)展優(yōu)勢(shì)。