鄭晗,張榮川,唐凡,劉小衛(wèi),陳晨
(西安工程大學(xué)機電工程學(xué)院,西安 710600)
隨著對產(chǎn)品表面質(zhì)量和速度要求的不斷提高,基于機器視覺的表面檢測技術(shù)被廣泛運用在產(chǎn)品的表面缺陷檢測上。由于產(chǎn)品的加工工藝的不同,產(chǎn)品表面會形成不同的紋理,而表面上的缺陷也隱藏在紋理當(dāng)中,通常,人眼對其反應(yīng)很敏感,比較容易識別,但是檢測速度慢,而且人工成本高,通常采用基于機器視覺的方法進行缺陷的自動檢測。所以,迫切需要提出一種快速有效的紋理表面缺陷提取算法。
針對表面缺陷檢測技術(shù)的研究一直領(lǐng)域內(nèi)的熱點,各界人士也提出了很多方法,例如閾值法、邊緣檢測法、區(qū)域分割法等算法,但是紋理表面由于表面紋理復(fù)雜,缺陷一般隱藏在紋理之中,容易把表面紋理錯誤識別為缺陷,針對這種現(xiàn)象,各界人士也提出了很多基于圖像處理技術(shù)的缺陷提取方法,如小波去噪法[1]、經(jīng)驗?zāi)J椒纸夥╗2],但是以上方法存在檢測速度慢,不滿足在線檢測的要求,而且小波分析法對各向異性紋理抑制不明顯。
為了在提高速度,本文提出了基于頻域濾波的紋理表面缺陷提取算法。在頻域內(nèi)設(shè)計濾波器,濾除表面紋理信息和噪聲信息,然后,采用閾值分割方法,最后采用數(shù)學(xué)形態(tài)學(xué)處理,完整提取缺陷。
針對方向性紋理表面的缺陷提取,本文提出了一種基于頻域濾波的缺陷提取算法,主要流程如圖1所示。
圖1 流程圖
具體的算法流程如下:
(1)紋理抑制:通過Hough變換的方法確定紋理的主方向,據(jù)此設(shè)計相應(yīng)的頻域濾波器,濾除表面紋理信息,凸顯表面的缺陷。
(2)圖像分割:首先對頻域濾波后的圖像進行高斯濾波處理,減弱噪聲的干擾,然后利用經(jīng)典的Otsu算法對圖像進行分割。
(3)數(shù)學(xué)形態(tài)學(xué)處理:通過對分割后的二值圖像采用數(shù)學(xué)形態(tài)學(xué)處理,消除圖像中存在的“小點”和“毛刺”。
方向性紋理表面,主要特征是帶有明顯的方向性紋理,不同于各項同性紋理,方向性紋理帶有明顯的規(guī)律性和方向性。表面方向性紋理對缺陷檢測影響很大,與表面存在的缺陷交織在一起,大多呈條狀分布,如果直接用閾值法和邊緣檢測法,則經(jīng)常把紋理錯誤分割出來。
傅里葉變換屬于線性變換,空域圖像的信息可以無損地保持到頻域。通過對方向性紋理圖像作傅里葉變換,將圖像從空域變換到頻域,則可以觀察到非常明顯的“亮帶”,如圖2和圖3所示。這是由于圖像的能量主要存在于主紋理方向的垂直方向,因此這個方向區(qū)域的像素點的頻譜幅值較大,導(dǎo)致存在“亮帶”現(xiàn)象。通過采用相應(yīng)的頻域濾波器對圖像進行濾波處理,則可以對頻域中明顯減弱頻域能力集中區(qū)的能量,抑制表面紋理信息,凸顯缺陷,以利于缺陷的提取。
圖2 方向性紋理表面
圖3 方向性紋理頻譜圖
Hough變換是一種線性變換,可以將圖像中的直線和參數(shù)坐標(biāo)的點對應(yīng)起來[3],原理是先將圖像作邊緣提取,將經(jīng)過邊緣點所有直線的空間坐標(biāo)轉(zhuǎn)換成參數(shù)空間中的點,點的坐標(biāo)分別是原點到直線的距離ρ和原點到直線的垂線的向量角θ,變換關(guān)系為:
根據(jù)式(1),可以的得到參數(shù)空間的圖像,空間坐標(biāo)中的一個點就轉(zhuǎn)化成了參數(shù)空間中的一條正弦曲線,當(dāng)空間坐標(biāo)中的兩個點在一條直線上時,在參數(shù)空間中就表示為兩條曲線有一個交點,同理,參數(shù)空間中的直線上的所有點在參數(shù)空間中表現(xiàn)為眾多曲線相交一點,通過此點的坐標(biāo)(ρ,θ)就可以檢測空間坐標(biāo)中的直線。對于方向性紋理表面,大多數(shù)由直線組成,在參數(shù)空間中疊加程度最高的θ值,此角度即為紋理的主方向。具體過程如下:
(1)對圖像進行灰度化,利用邊緣檢測算子提取邊界;
(2)對其二值圖像進行Hough變換,即對經(jīng)過邊緣點的所有直線按照公式(1)做變換;
(3)在參數(shù)空間劃分面積大小相同的網(wǎng)格,通過設(shè)定閾值,找到參數(shù)空間疊加程度高的點,確定紋理的主方向。
合適的頻域濾波器,能夠在頻域范圍內(nèi),濾除由紋理信息組成的能量集中區(qū),從而抑制表面圖像的方向性紋理[4]。因此,理想的頻域濾波器的設(shè)計如下:
式中,Y區(qū)域為紋理能量集中區(qū)域,圖4(a)是一幅方向性紋理表面圖像的頻譜圖像,圖3(b)的空白區(qū)域即是能量集中區(qū)域Υ。為了避免將圖像低頻信息也濾除掉,從而丟失圖像缺陷的信息,因此,Υ區(qū)域并不包裹頻譜中心。其中,Y區(qū)域的方向α與紋理主方向θmax垂直,ω為Y區(qū)域的寬度,ω的取值大小要正好將能量集中區(qū)包括在內(nèi),取值太大會濾除圖像其他信息,取值太小則濾除紋理信息不徹底。因此,提出了一種基于曲線擬合的確定ω的方法,具體方法如下:
(1)預(yù)先設(shè)置最大寬度ωmax和最小寬度 ωmin,步長Δω;
(2)令 i=0,計算出區(qū)域?qū)挾葹?(ωmin+i*Δω)的單位面積內(nèi)的頻譜幅值總和,即:
(3)i=i+1,若 (ωmin+i*Δω)是否大于 ωmax,則進入步驟(4),否則,轉(zhuǎn)步驟(2);
(4)將區(qū)域?qū)挾圈氐淖鳛闄M坐標(biāo),單位面積內(nèi)的頻譜幅值總合作為縱坐標(biāo),建立二維坐標(biāo)系,進行曲線擬合,并根據(jù)擬合后的曲線求出斜率最小的ω,即單位面積內(nèi)的頻譜幅值總合和下降最快的點,作為ω的最佳值,即:
圖4 頻譜圖及理想濾波器
綜上所述,可以確定出Y區(qū)域的最佳角度和寬度,就可以設(shè)計出相應(yīng)的頻域濾波器。同時,為了避免采用理想濾波器,在圖像重構(gòu)時,產(chǎn)生振鈴現(xiàn)象和圖像模糊的現(xiàn)象,本文采用了Butterworth濾波器。
圖像經(jīng)過上一小節(jié)的濾波處理,已經(jīng)將表面紋理信息進行了抑制,但由于表面還會出現(xiàn)噪聲的現(xiàn)象,因此,本文首先采用高斯濾波的方法對上一小節(jié)中的圖像進行去噪處理。然后,就可以利用閾值分割算法提取缺陷,本文采用的是Otsu算法[5],計算簡單速度快。
Otsu算法是一種常用的自動閾值分割算法,能夠自動選取全局閾值將將目標(biāo)從圖像中提取出來,主要原理是利用類間方差自動選取閾值,假設(shè)圖像像素數(shù)為N,則灰度的選取范圍為(0,L-1),則灰度級為i的出現(xiàn)概率為:
式中,ni表示灰度值為i的像素數(shù)的個數(shù),pi表示灰度級為i的出現(xiàn)概率。用閾值k表示圖像中的背景和目標(biāo)的閾值,即背景C0由閾值(0,k)組成,目標(biāo)C1由閾值(k+1,L-1)組成。背景 C0和目標(biāo) C1的方差分別為:
式中,ω0和ω1分別C0和C1出現(xiàn)的概率,μ0和 μ1分別為C0和C1的灰度級均值,計算公式為:經(jīng)過推斷,目標(biāo)和背景的類間方差σ2k為:
當(dāng)σ2k取值越大,說明背景和目標(biāo)的像素差別越大,分離效果就會越好,當(dāng)σ2k取值最大時候的k值,就可以找到最佳分割閾值,利用此閾值,就可以分割出圖像的缺陷,即:
式中,F(xiàn)(x ,y )是原圖像,f(x ,y)是缺陷提取的二值圖像,kmax是當(dāng)σ2k取值最大時候的k值。
形態(tài)學(xué)運算是一種非線性濾波器,主要原理是用一定形態(tài)的結(jié)構(gòu)元素去量度和提取圖像中的對應(yīng)形狀來進行圖像分析和識別[7]。主要運算有腐蝕和膨脹,定義為:
式中,S為結(jié)構(gòu)元素,腐蝕的結(jié)果就是把結(jié)構(gòu)元素S平移后使S包含于B的所有點構(gòu)成的集合。膨脹的結(jié)果就是把結(jié)構(gòu)元素S平移后使S與B的交集非空的點構(gòu)成的集合。腐蝕能夠消除物體的邊界點,使剩下的物體沿其周邊比原物體小幾個像素。膨脹,能夠物體膨脹和邊界增大,合并多個相近物體。
因此,本文對二值圖像先進行閉運算,即先膨脹后腐蝕,然后再進行開運算,即先腐蝕后膨脹,就可以有效地對缺陷連通區(qū)域進行整合,去除圖像中的“小點”和缺陷邊界的“毛刺”,邊界會變得較平滑。對結(jié)構(gòu)元素的選取可以根據(jù)圖像中無關(guān)信息的現(xiàn)狀來進行選擇。
采用以下編譯環(huán)境對上述算法進行調(diào)試分析:In?tel Core i5,8G內(nèi)存,MATLAB 2018a編譯環(huán)境。
實驗圖片的選取原則如下:
(1)待檢圖像中包含目標(biāo)缺陷,但不包含金屬輪廓;
(2)待檢圖像可以具有復(fù)雜方向性表面紋理,但不存在其他干擾因素。
本文的實驗選取是文獻[6]中的金屬表面圖片,如圖5所示,表面帶有明顯的污漬缺陷,還具有方向性的金屬紋理,對此圖片,運用本文算法,結(jié)果如圖5所示。
圖5 實驗驗證圖
由圖5可以看出,原圖像在經(jīng)過本文設(shè)計的濾波器處理后,圖像表面紋理被抑制,如圖5(b)所示,突出了缺陷,但還存在噪聲,再經(jīng)過高斯濾波后,噪聲得到了有效控制,如圖5(c)所示,緊接著,用Otsu算法處理過后,污漬缺陷被很好地分出來,如圖5(d)所示,同時,圖像中還存在著小點和毛刺,對圖像采用3.2小節(jié)中的算法,缺陷邊界得到了平滑,去除了圖像中存在的“小點”,如圖 5(e)所示。
對比實驗選取文獻[4]一張金屬圖像,如圖6所示,表面帶有方向性紋理,也具有污漬和劃痕等缺陷,在對比算法的選擇上,選取在對比算法的選擇上,選擇了傳統(tǒng)的Otsu算法,即不經(jīng)過紋理抑制,代表經(jīng)典全局閾值法,Canny算法代表邊緣檢測法,二維Wellner方法是目前應(yīng)用較為廣的經(jīng)典鄰域法,因此可以作為局部鄰域法的代表,結(jié)果如圖6所示。
如圖5所示,在其他算法中,圖像都受到很嚴(yán)重的紋理影響,Otsu算法提取缺陷最完整,但同時將不是缺陷的紋理背景給錯誤的提取出來,同樣的,Canny算法和二維Wellner算法也將紋理的邊界提取出來,而本文算法,則避免了紋理的影響,完整的提取出了缺陷。
針對方向性紋理表面的缺陷提取問題,本文所提出了基于頻域濾波的缺陷提取方法。首先設(shè)計通過Hough變化的方式計算出缺陷紋理的主方向,然后設(shè)計相應(yīng)的頻域濾波器濾除紋理信息,最終通過簡單的Otsu算法和數(shù)學(xué)形態(tài)學(xué)的方法完整地提取出邊界。由實驗可以看出,本文算法能夠很好地避免方向性紋理的困擾,完整地提取出缺陷。
圖6 實驗對比圖