李云飛
(安徽大學(xué) 江淮學(xué)院 理工部,合肥230031)
隨著我國現(xiàn)代化制造業(yè)的不斷發(fā)展及其社會需求量的持續(xù)增長,用戶對產(chǎn)品的質(zhì)量要求也越來越高.工件在實(shí)際生產(chǎn)過程中,由于受到設(shè)備條件、生產(chǎn)工藝以及材料本身因素的影響,導(dǎo)致工件表面產(chǎn)生不同類型的缺陷,如劃痕、缺損、凹坑、點(diǎn)傷等缺陷.而工件作為工業(yè)設(shè)備最重要的組成單位,它對工業(yè)產(chǎn)品的使用安全起到非常重要的作用,工業(yè)產(chǎn)品能否得到安全的使用主要取決于工件表面質(zhì)量是否良好.因此,如何對工件表面進(jìn)行有效的缺陷檢測成為了該領(lǐng)域中一個(gè)亟待解決的問題.目前,對于工件表面的缺陷檢測,大多數(shù)工廠采用傳統(tǒng)的人工目測法來檢測.這種檢測方法雖簡單易行,但也存在著較大的局限性,首先該方法對于工人的工作經(jīng)驗(yàn)要求較高,而且在長時(shí)間的檢測下容易使人產(chǎn)生視覺疲勞及受人主觀因素的影響,具有人工成本高、效率低、穩(wěn)定性差以及耗時(shí)長等缺點(diǎn).
本文通過對圖像處理技術(shù)、機(jī)器視覺技術(shù)以及工件表面缺陷檢測技術(shù)的學(xué)習(xí)與研究,提出了一種能夠準(zhǔn)確快速檢測出工件表面缺陷的算法,可以滿足當(dāng)前國內(nèi)一些企業(yè)在工件產(chǎn)品缺陷檢測技術(shù)方面的需求,這不僅提高了產(chǎn)品和生產(chǎn)線的自動(dòng)化程度,而且實(shí)現(xiàn)了在線檢測技術(shù)的信息集成化,具有檢測效率高、成本低的特點(diǎn),對國內(nèi)的工業(yè)生產(chǎn)領(lǐng)域以及產(chǎn)品缺陷檢測領(lǐng)域有著極大的意義.
K均值聚類分割算法由閾值分割算法衍生而來,其實(shí)質(zhì)是將待分割圖像中的某些參數(shù)包括圖像紋理、圖像灰度以及其他參數(shù)共同組成多維空間中的特征矢量,并根據(jù)多維空間中的特征向量值對像素進(jìn)行分類.聚類分割算法的具體過程為:將待分割圖像平面中的像素投射到特征空間并對應(yīng)成相應(yīng)的點(diǎn),根據(jù)在特征空間中不同目標(biāo)對象差異的特征變量,特征空間中的點(diǎn)會呈現(xiàn)成團(tuán)成簇的分布形態(tài),然后根據(jù)成團(tuán)成簇的現(xiàn)象在特征空間中進(jìn)行特征空間分類,最后映射回原圖像平面,得到分割后的圖像.由此可見,聚類分割算法將圖像平面的像素映射到了一個(gè)多維空間,克服了一維空間和二維空間研究問題的局限,但是該方法實(shí)時(shí)性差、計(jì)算量大.針對聚類分割算法存在的這些不足,一些學(xué)者們提出了基于圖像分層的聚類分割算法、基于小波特征的聚類分割算法等,本文將結(jié)合自適應(yīng)人類優(yōu)化算法對K-means聚類算法進(jìn)行優(yōu)化改進(jìn).
1.1.1 K-means聚類算法原理
K-means聚類算法是無監(jiān)督學(xué)習(xí)也是基于劃分的聚類算法,與隨機(jī)森林算法、邏輯回歸算法、支持向量機(jī)等的分類監(jiān)督學(xué)習(xí)算法有所區(qū)別,Kmeans聚類算法處理數(shù)據(jù)速度快、伸縮性好,而且在處理數(shù)據(jù)過程中僅需要變量X就能進(jìn)行后續(xù)的分類工作,Y變量對其沒有影響,該算法也是各類數(shù)據(jù)處理中最為流行的算法之一.K-means聚類算法是基于歐氏距離針對距離較近的對象進(jìn)行劃分,結(jié)合閾值分割和標(biāo)記過程,通過比較相似對象劃分到同一聚簇,是一種常用的基于全局的聚類劃分方法.K-means聚類算法通常用于圖像分割,則算法步驟如下所示:
第一步:定義一個(gè)等距離方法,并初始化聚類中心,公式如式(1)所示:
其中i=1,2,…,K,Centeri0表示第i類的初始化聚類中心,GLmax、GLmin分別表示最大和最小灰度值.
第二步:分配各樣本點(diǎn)到相似的聚類集合,樣本分配可根據(jù)(2)式分配:
其中i=1,2,…,K,j=1,2,…,N,Distancei,j表示第j個(gè)像素點(diǎn)到第i個(gè)像素點(diǎn)的聚類中心的距離,N為樣本空間中像素點(diǎn)的數(shù)量.
第三步:由步驟二得到聚類結(jié)果,得到更新后的聚類中心位置.公式如(3)所示:
其中i=1,2,…,K,Ni為步驟二中被分配到i類中的像素點(diǎn)的個(gè)數(shù).
第四步:當(dāng)聚類中心發(fā)生變化,可重復(fù)步驟二,直至循環(huán)結(jié)束.
第五步:第K-1類和K類聚類中心的均值被作為分割閾值,公式如(4)所示:
1.1.2 自適應(yīng)人類學(xué)習(xí)優(yōu)化算法
自適應(yīng)人類學(xué)習(xí)優(yōu)化算法是一種基于全局優(yōu)化的群智能算法,2015年由Wang等人最早提出.該算法可以通過模擬人類的學(xué)習(xí)行為機(jī)制對其需要解決的問題進(jìn)行尋優(yōu).自適應(yīng)人類學(xué)習(xí)算法可依據(jù)要求參數(shù)設(shè)置少、收斂速度快、全局尋優(yōu)能力好,不容易陷入局部最小值.該算法包括三種學(xué)習(xí)策略:隨機(jī)學(xué)習(xí)策略、個(gè)體學(xué)習(xí)策略、社會學(xué)習(xí)策略.
自適應(yīng)人類學(xué)習(xí)優(yōu)化算法利用二進(jìn)制編碼,每個(gè)個(gè)體可用一串二進(jìn)制碼表示.每個(gè)個(gè)體隨機(jī)初始化為包含“0”和“1”的二進(jìn)制碼,該二進(jìn)制碼就是代表人類想要學(xué)習(xí)的知識.在人類學(xué)習(xí)最初知識的時(shí)候,由于人類沒有任何的先驗(yàn)知識,所以在剛開始的時(shí)候,人類的學(xué)習(xí)過程通常是一個(gè)隨機(jī)學(xué)習(xí)和選擇的過程,隨機(jī)學(xué)習(xí)策略正是模擬人類學(xué)習(xí)機(jī)制的一種策略.則隨機(jī)學(xué)習(xí)策略可用(5)式表示:
其中rand()表示一個(gè)0到1之間的隨機(jī)數(shù).學(xué)習(xí)知識的過程可以理解為:個(gè)體學(xué)習(xí)表示人類對外界的激勵(lì)做出反應(yīng).在這個(gè)學(xué)習(xí)過程中,人類因積累了知識和經(jīng)驗(yàn)具有了先驗(yàn)知識,并利用先驗(yàn)知識來避免錯(cuò)誤,以此來提升自身的學(xué)習(xí)能力.則人的知識庫IKD(individual knowledge database)可用式(6)表示.
雖然人類可以通過自身的先驗(yàn)知識來解決困難,但是當(dāng)問題較難時(shí),解決問題的時(shí)間就會變長,人類的學(xué)習(xí)過程將會變慢.在社會環(huán)境中,可通過社會學(xué)習(xí)從集體經(jīng)驗(yàn)中學(xué)習(xí),可以極大地提高學(xué)習(xí)效率并快速解決困難,集體學(xué)習(xí)的經(jīng)驗(yàn)就代表知識庫SKD(social knowledge date).SKD可用公式(7)所示.
于是個(gè)體整個(gè)的學(xué)習(xí)過程包括隨機(jī)學(xué)習(xí)策略、個(gè)體學(xué)習(xí)策略、社會學(xué)習(xí)策略,則整個(gè)學(xué)習(xí)過程可
用公式(8)所示.
其中pr表示隨機(jī)學(xué)習(xí)的概率,( pi-pr)代表個(gè)體學(xué)習(xí)的概率,( 1-pi)代表社會學(xué)習(xí)的概率,由式(8)可以看出,參數(shù)pr和pi對于隨機(jī)學(xué)習(xí)策略、個(gè)體學(xué)習(xí)策略、社會學(xué)習(xí)策略有著非常重要的作用,因此針對問題的難易程度可以適當(dāng)?shù)卣{(diào)節(jié)參數(shù)pr和pi.本文為了提高算法的運(yùn)行效率和減少參數(shù)的設(shè)置,將采用的自適應(yīng)策略如公式(9)和(10)所示.
其中prmax和prmin分別表示pr的最大值和最小值;pimax和pimin分別表示pi的最大值和最小值;Ite表示當(dāng)前的迭代次數(shù);Itemax為最大迭代次數(shù).
1.1.3 改進(jìn)的K-means聚類的工件表面圖像分割算法
為了將自適應(yīng)人類優(yōu)化算法的優(yōu)點(diǎn)和Kmeans聚類算法的優(yōu)點(diǎn)充分地應(yīng)用,本文將利用自適應(yīng)人類優(yōu)化算法對其進(jìn)行全局搜索,這樣自適應(yīng)人類優(yōu)化算法就可以無限接近全局子空間,待該算法達(dá)到收斂之后,為了呈現(xiàn)出更好的聚類效果,將利用K-means聚類算法進(jìn)行局部搜索.針對自適應(yīng)人類優(yōu)化算法,由于每個(gè)粒子的適應(yīng)度值利用聚類誤差平方和計(jì)算.若粒子數(shù)為n,fi表示第i個(gè)粒子的適應(yīng)度值,則當(dāng)前粒子適應(yīng)度的平均值如公式(11).
自適應(yīng)人類優(yōu)化算法的收斂速度可由粒子適應(yīng)度的方差決定,則可用公式(12)表示.
在自適應(yīng)人類優(yōu)化算法更新迭代的過程中,隨著每一次的迭代更新,粒子的適應(yīng)度也逐漸達(dá)到一個(gè)平穩(wěn)的狀態(tài),此時(shí)在一個(gè)確定的區(qū)域內(nèi)會有一個(gè)方差,所以在這種情況下有最優(yōu)解,此時(shí)可采用Kmeans聚類算法進(jìn)行局部尋優(yōu),則改進(jìn)的K-means聚類的工件表面圖像分割算法流程圖如圖1所示.
圖1 基于改進(jìn)的K-means聚類的工件表面圖像分割流程圖
經(jīng)過本文改進(jìn)的K均值聚類分割算法得到的分割圖像,受環(huán)境等因素的影響會存在各種干擾,包括小面積的連接區(qū)域以及其他雜質(zhì).因此需要對分割之后的圖像進(jìn)行形態(tài)學(xué)處理,使得工件缺陷邊緣變得光滑連續(xù),并填補(bǔ)分割目標(biāo)的內(nèi)部空洞,將最終分割出的二值圖像映射回原圖像.本文主要用形態(tài)學(xué)運(yùn)算中的膨脹運(yùn)算和腐蝕運(yùn)算對分割后的圖像進(jìn)行處理.形態(tài)學(xué)處理流程圖如圖2所示.
圖2 形態(tài)學(xué)處理流程圖
(1)結(jié)構(gòu)元素
在待處理圖像進(jìn)行形態(tài)學(xué)處理操作時(shí),需要結(jié)合一定的結(jié)構(gòu)特點(diǎn)進(jìn)行處理.操作過程為:首先選定一個(gè)原點(diǎn),然后持續(xù)移動(dòng)該點(diǎn)并將其和初始圖像開始運(yùn)算,進(jìn)而可以過濾圖像當(dāng)中雜余部分.結(jié)構(gòu)元素的選定直接影響著整個(gè)處理過程的結(jié)果.通常情況下,結(jié)構(gòu)元素選擇范圍很小,與初始圖像存在較大的區(qū)別.
(2)圖像腐蝕
圖像腐蝕的作用就是使得區(qū)域從周圍向內(nèi)縮小,應(yīng)用給定的結(jié)構(gòu)元素s( x,y)對輸入圖像f( x,y)進(jìn)行灰度腐蝕,圖像腐蝕的定義如式(13)所示:
其中Df、Ds分別表示f和s的定義域.
(3)圖像膨脹
圖像膨脹的作用就是使得區(qū)域從周圍向外擴(kuò)大,應(yīng)用給定的結(jié)構(gòu)元素s( x,y)對輸入圖像f( x,y)進(jìn)行灰度值膨脹,圖像膨脹的定義如式(14)所示:
其中Df、Ds分別表示f和s的定義域.
對于經(jīng)過腐蝕操作和膨脹操作后的工件分割圖像,本章對其進(jìn)行區(qū)域填充最終獲取完整的圖像工件區(qū)域的分割圖像.最后將分割出的圖像映射回原圖像,即可準(zhǔn)確提取出輸工件圖像中的缺陷區(qū)域.
原圖與膨脹操作圖如圖3所示.
圖3 原圖 膨脹操作圖
圖4 原圖 腐蝕操作圖
1.3.1 扣式電池圖像缺陷檢測
為了驗(yàn)證本文改進(jìn)的K-means算法的有效性,采用256×256的扣式電池圖像驗(yàn)證聚類效果,選擇四個(gè)不同的分類數(shù)對扣式電池灰度圖像進(jìn)行分割,分別為k=2,k=4,k=6,k=9.則基于改進(jìn)的K-means聚類算法的分割效果如表1所示.
表1 不同k值下的分割效果
從表1中可以看出,隨著聚類中心k值的增大,圖像的分割效果越差,所以本文選擇k=2時(shí),對工件圖像進(jìn)行分割,則本文基于改進(jìn)的K-means聚類的工件表面缺陷分割算法所設(shè)置的參數(shù)如表2所示.
表2改進(jìn)的K-means聚類的工件表面缺陷分割算法參數(shù)
本文選擇扣式電池常見劃痕缺陷為代表,并對其進(jìn)行分割提取實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果圖如圖5(a)~圖5(c)、圖6(a)~圖6(c)所示.
其中圖5(a)~圖5(c)表示劃痕缺陷通過基于閾值的分割算法以及基于區(qū)域生長的分割算法的實(shí)驗(yàn)結(jié)果圖.從圖中可以看出,缺陷圖像的區(qū)域生長分割效果相比較于閾值分割效果更能有抑制圖像中的噪聲,且能夠獲得連續(xù)的目標(biāo)缺陷區(qū)域,但是分割后的圖像仍然存在噪聲,不能夠獲取完整的缺陷區(qū)域,效果不夠理想,計(jì)算復(fù)雜度也增加了.
圖5 劃痕原圖、基于閾值和區(qū)域生長的分割圖像
圖6 劃痕、K-means聚類分割以及改進(jìn)的K-means聚類分割結(jié)果圖
圖6(a)~圖6(c)表示劃痕缺陷類型通過基于K-means聚類分割以及改進(jìn)的K-means聚類的分割算法的實(shí)驗(yàn)結(jié)果圖.由實(shí)驗(yàn)結(jié)果可知,改進(jìn)的Kmeans相比于閾值分割、區(qū)域生長分割以及基于Kmeans聚類分割算法,對于缺陷目標(biāo)區(qū)域的分割更為完整,能夠保護(hù)感興趣區(qū)域的重要細(xì)節(jié).
1.3.2 濾網(wǎng)圖像缺陷檢測
本文所選擇樣本集大小為300,其中表面缺陷類型分為三種,包括劃痕、殘缺、擦傷等.樣本如圖7所示.
圖7(a)劃痕
圖7(b)殘缺
圖7(c)擦傷
經(jīng)過本文的算法后,測試后的結(jié)果如表3所示.
表3 測試結(jié)果
本文通過對基于BP神經(jīng)網(wǎng)絡(luò)算法、BP_CLPSO算法以及本文的基于改進(jìn)的K-means算法進(jìn)行試驗(yàn)仿真,則這三種算法的分類正確率如表4所示.由表4可知,經(jīng)過本文改進(jìn)K-means算法分類精度率較高.
表4 BP神經(jīng)網(wǎng)絡(luò)、BP_CLPSO以及本文算法的分類正確率
本文通過分析比較基于閾值的圖像分割方法和基于區(qū)域生長的圖像分割提取算法對工件表面缺陷的分割提取效果,分析現(xiàn)有算法的不足之處,提出了一種基于改進(jìn)的K-means聚類工件表面圖像分割方法,該算法利用自適應(yīng)人類優(yōu)化算法的全局搜索能力,快速逼近全局最優(yōu)聚類中心,然后將AHLO學(xué)習(xí)優(yōu)化算法輸出的聚類中心作為Kmeans聚類算法的初始聚類中心進(jìn)行迭代尋優(yōu).由于在分割過程中受各種因素的影響,分割處理后的圖像會存在一些噪聲的干擾,所以為了消除這些因素的干擾需對分割后的圖像進(jìn)行形態(tài)學(xué)處理.基于此,本文利用形態(tài)學(xué)的膨脹運(yùn)算和腐蝕運(yùn)算進(jìn)行分割后處理,最終獲取完整的工件表面缺陷區(qū)域.實(shí)驗(yàn)表明,本文改進(jìn)的K-means聚類分割算法能夠較理想地分割出工件表面的缺陷,具有分割精度高且能夠達(dá)到工件表面缺陷檢測的目的.由于受各種因素的影響會存在一定的干擾,分割結(jié)果圖像中可能包含小面積的連接區(qū)域以及其他雜質(zhì),所以需要對分割提取出的工件缺陷圖像進(jìn)行形態(tài)學(xué)處理,使其工件缺陷邊緣變得光滑連續(xù),并填補(bǔ)分割目標(biāo)的內(nèi)部空洞,將最終分割出的二值圖像映射回原圖像.