鄭晗,張榮川,唐凡,劉小衛,陳晨
(西安工程大學機電工程學院,西安 710600)
隨著對產品表面質量和速度要求的不斷提高,基于機器視覺的表面檢測技術被廣泛運用在產品的表面缺陷檢測上。由于產品的加工工藝的不同,產品表面會形成不同的紋理,而表面上的缺陷也隱藏在紋理當中,通常,人眼對其反應很敏感,比較容易識別,但是檢測速度慢,而且人工成本高,通常采用基于機器視覺的方法進行缺陷的自動檢測。所以,迫切需要提出一種快速有效的紋理表面缺陷提取算法。
針對表面缺陷檢測技術的研究一直領域內的熱點,各界人士也提出了很多方法,例如閾值法、邊緣檢測法、區域分割法等算法,但是紋理表面由于表面紋理復雜,缺陷一般隱藏在紋理之中,容易把表面紋理錯誤識別為缺陷,針對這種現象,各界人士也提出了很多基于圖像處理技術的缺陷提取方法,如小波去噪法[1]、經驗模式分解法[2],但是以上方法存在檢測速度慢,不滿足在線檢測的要求,而且小波分析法對各向異性紋理抑制不明顯。
為了在提高速度,本文提出了基于頻域濾波的紋理表面缺陷提取算法。在頻域內設計濾波器,濾除表面紋理信息和噪聲信息,然后,采用閾值分割方法,最后采用數學形態學處理,完整提取缺陷。
針對方向性紋理表面的缺陷提取,本文提出了一種基于頻域濾波的缺陷提取算法,主要流程如圖1所示。

圖1 流程圖
具體的算法流程如下:
(1)紋理抑制:通過Hough變換的方法確定紋理的主方向,據此設計相應的頻域濾波器,濾除表面紋理信息,凸顯表面的缺陷。
(2)圖像分割:首先對頻域濾波后的圖像進行高斯濾波處理,減弱噪聲的干擾,然后利用經典的Otsu算法對圖像進行分割。
(3)數學形態學處理:通過對分割后的二值圖像采用數學形態學處理,消除圖像中存在的“小點”和“毛刺”。
方向性紋理表面,主要特征是帶有明顯的方向性紋理,不同于各項同性紋理,方向性紋理帶有明顯的規律性和方向性。表面方向性紋理對缺陷檢測影響很大,與表面存在的缺陷交織在一起,大多呈條狀分布,如果直接用閾值法和邊緣檢測法,則經常把紋理錯誤分割出來。
傅里葉變換屬于線性變換,空域圖像的信息可以無損地保持到頻域。通過對方向性紋理圖像作傅里葉變換,將圖像從空域變換到頻域,則可以觀察到非常明顯的“亮帶”,如圖2和圖3所示。這是由于圖像的能量主要存在于主紋理方向的垂直方向,因此這個方向區域的像素點的頻譜幅值較大,導致存在“亮帶”現象。通過采用相應的頻域濾波器對圖像進行濾波處理,則可以對頻域中明顯減弱頻域能力集中區的能量,抑制表面紋理信息,凸顯缺陷,以利于缺陷的提取。

圖2 方向性紋理表面

圖3 方向性紋理頻譜圖
Hough變換是一種線性變換,可以將圖像中的直線和參數坐標的點對應起來[3],原理是先將圖像作邊緣提取,將經過邊緣點所有直線的空間坐標轉換成參數空間中的點,點的坐標分別是原點到直線的距離ρ和原點到直線的垂線的向量角θ,變換關系為:

根據式(1),可以的得到參數空間的圖像,空間坐標中的一個點就轉化成了參數空間中的一條正弦曲線,當空間坐標中的兩個點在一條直線上時,在參數空間中就表示為兩條曲線有一個交點,同理,參數空間中的直線上的所有點在參數空間中表現為眾多曲線相交一點,通過此點的坐標(ρ,θ)就可以檢測空間坐標中的直線。對于方向性紋理表面,大多數由直線組成,在參數空間中疊加程度最高的θ值,此角度即為紋理的主方向。具體過程如下:
(1)對圖像進行灰度化,利用邊緣檢測算子提取邊界;
(2)對其二值圖像進行Hough變換,即對經過邊緣點的所有直線按照公式(1)做變換;
(3)在參數空間劃分面積大小相同的網格,通過設定閾值,找到參數空間疊加程度高的點,確定紋理的主方向。
合適的頻域濾波器,能夠在頻域范圍內,濾除由紋理信息組成的能量集中區,從而抑制表面圖像的方向性紋理[4]。因此,理想的頻域濾波器的設計如下:

式中,Y區域為紋理能量集中區域,圖4(a)是一幅方向性紋理表面圖像的頻譜圖像,圖3(b)的空白區域即是能量集中區域Υ。為了避免將圖像低頻信息也濾除掉,從而丟失圖像缺陷的信息,因此,Υ區域并不包裹頻譜中心。其中,Y區域的方向α與紋理主方向θmax垂直,ω為Y區域的寬度,ω的取值大小要正好將能量集中區包括在內,取值太大會濾除圖像其他信息,取值太小則濾除紋理信息不徹底。因此,提出了一種基于曲線擬合的確定ω的方法,具體方法如下:
(1)預先設置最大寬度ωmax和最小寬度 ωmin,步長Δω;
(2)令 i=0,計算出區域寬度為 (ωmin+i*Δω)的單位面積內的頻譜幅值總和,即:

(3)i=i+1,若 (ωmin+i*Δω)是否大于 ωmax,則進入步驟(4),否則,轉步驟(2);
(4)將區域寬度ω的作為橫坐標,單位面積內的頻譜幅值總合作為縱坐標,建立二維坐標系,進行曲線擬合,并根據擬合后的曲線求出斜率最小的ω,即單位面積內的頻譜幅值總合和下降最快的點,作為ω的最佳值,即:

圖4 頻譜圖及理想濾波器
綜上所述,可以確定出Y區域的最佳角度和寬度,就可以設計出相應的頻域濾波器。同時,為了避免采用理想濾波器,在圖像重構時,產生振鈴現象和圖像模糊的現象,本文采用了Butterworth濾波器。
圖像經過上一小節的濾波處理,已經將表面紋理信息進行了抑制,但由于表面還會出現噪聲的現象,因此,本文首先采用高斯濾波的方法對上一小節中的圖像進行去噪處理。然后,就可以利用閾值分割算法提取缺陷,本文采用的是Otsu算法[5],計算簡單速度快。
Otsu算法是一種常用的自動閾值分割算法,能夠自動選取全局閾值將將目標從圖像中提取出來,主要原理是利用類間方差自動選取閾值,假設圖像像素數為N,則灰度的選取范圍為(0,L-1),則灰度級為i的出現概率為:

式中,ni表示灰度值為i的像素數的個數,pi表示灰度級為i的出現概率。用閾值k表示圖像中的背景和目標的閾值,即背景C0由閾值(0,k)組成,目標C1由閾值(k+1,L-1)組成。背景 C0和目標 C1的方差分別為:

式中,ω0和ω1分別C0和C1出現的概率,μ0和 μ1分別為C0和C1的灰度級均值,計算公式為:經過推斷,目標和背景的類間方差σ2k為:


當σ2k取值越大,說明背景和目標的像素差別越大,分離效果就會越好,當σ2k取值最大時候的k值,就可以找到最佳分割閾值,利用此閾值,就可以分割出圖像的缺陷,即:

式中,F(x ,y )是原圖像,f(x ,y)是缺陷提取的二值圖像,kmax是當σ2k取值最大時候的k值。
形態學運算是一種非線性濾波器,主要原理是用一定形態的結構元素去量度和提取圖像中的對應形狀來進行圖像分析和識別[7]。主要運算有腐蝕和膨脹,定義為:

式中,S為結構元素,腐蝕的結果就是把結構元素S平移后使S包含于B的所有點構成的集合。膨脹的結果就是把結構元素S平移后使S與B的交集非空的點構成的集合。腐蝕能夠消除物體的邊界點,使剩下的物體沿其周邊比原物體小幾個像素。膨脹,能夠物體膨脹和邊界增大,合并多個相近物體。
因此,本文對二值圖像先進行閉運算,即先膨脹后腐蝕,然后再進行開運算,即先腐蝕后膨脹,就可以有效地對缺陷連通區域進行整合,去除圖像中的“小點”和缺陷邊界的“毛刺”,邊界會變得較平滑。對結構元素的選取可以根據圖像中無關信息的現狀來進行選擇。
采用以下編譯環境對上述算法進行調試分析:In?tel Core i5,8G內存,MATLAB 2018a編譯環境。
實驗圖片的選取原則如下:
(1)待檢圖像中包含目標缺陷,但不包含金屬輪廓;
(2)待檢圖像可以具有復雜方向性表面紋理,但不存在其他干擾因素。
本文的實驗選取是文獻[6]中的金屬表面圖片,如圖5所示,表面帶有明顯的污漬缺陷,還具有方向性的金屬紋理,對此圖片,運用本文算法,結果如圖5所示。

圖5 實驗驗證圖
由圖5可以看出,原圖像在經過本文設計的濾波器處理后,圖像表面紋理被抑制,如圖5(b)所示,突出了缺陷,但還存在噪聲,再經過高斯濾波后,噪聲得到了有效控制,如圖5(c)所示,緊接著,用Otsu算法處理過后,污漬缺陷被很好地分出來,如圖5(d)所示,同時,圖像中還存在著小點和毛刺,對圖像采用3.2小節中的算法,缺陷邊界得到了平滑,去除了圖像中存在的“小點”,如圖 5(e)所示。
對比實驗選取文獻[4]一張金屬圖像,如圖6所示,表面帶有方向性紋理,也具有污漬和劃痕等缺陷,在對比算法的選擇上,選取在對比算法的選擇上,選擇了傳統的Otsu算法,即不經過紋理抑制,代表經典全局閾值法,Canny算法代表邊緣檢測法,二維Wellner方法是目前應用較為廣的經典鄰域法,因此可以作為局部鄰域法的代表,結果如圖6所示。
如圖5所示,在其他算法中,圖像都受到很嚴重的紋理影響,Otsu算法提取缺陷最完整,但同時將不是缺陷的紋理背景給錯誤的提取出來,同樣的,Canny算法和二維Wellner算法也將紋理的邊界提取出來,而本文算法,則避免了紋理的影響,完整的提取出了缺陷。
針對方向性紋理表面的缺陷提取問題,本文所提出了基于頻域濾波的缺陷提取方法。首先設計通過Hough變化的方式計算出缺陷紋理的主方向,然后設計相應的頻域濾波器濾除紋理信息,最終通過簡單的Otsu算法和數學形態學的方法完整地提取出邊界。由實驗可以看出,本文算法能夠很好地避免方向性紋理的困擾,完整地提取出缺陷。

圖6 實驗對比圖