何 昊 賀福強 李思佳 張明月 謝 丹
(貴州大學機械工程學院 貴州貴陽 550025)
硅鋼片是一種很重要的磁性材料,主要用于制作變壓器、電動機和發(fā)電機的鐵芯。變壓器、電動機、發(fā)電機都是農業(yè)裝備中重要供電、動力設備。在農業(yè)生產中,設備運行環(huán)境較為惡劣,較好的零部件質量能提升裝備運行壽命。通過對零部件硅鋼片進行缺陷檢測,增加零部件的合格率。硅鋼片的表面質量好壞是決定其磁性能的主要因素[1]。視覺檢測具有實時性、高效率、精度高等的優(yōu)點[2],故視覺檢測可以實現(xiàn)檢測的自動化,極大降低誤檢率、減少人工檢測主觀性的影響。
圖像分割就是把圖像根據(jù)性質分成多個區(qū)域的過程,主要是指灰度值、像素強度值、紋理等特征。分割的方法主要有基于閾值、聚類法、遺傳算法、變形模型、區(qū)域生長等[3]。Fabricio 等[4]提出了一種基于梯度向量流的自動種子區(qū)域生長方法,對較多目標的分割也有不錯的效果。Cui等[5]提出了一種改進的SRG 算法,利用Harris 角點檢測原理自動選擇起始種子點;區(qū)域生長準則里引入了圖像的不確定性,使分割更具有魯棒性。Mohammed 等[6]提出了一種可以自動提取 ROI 并且用機器學習算法篩選比較適合的種子點的SRG算法,明顯改善圖像分割后的噪聲。Rajkumar等[7]依據(jù)預選擇的像素區(qū)域的中值來自動選擇種子點,提取出種子ROI,利用梯度算子分割出ROI的邊界。Sheng等[8]利用深度學習找到比較有效的分割閾值進行閾值分割后,再進行區(qū)域生長。
拍攝圖像會產生隨機的擾動,圖像有一定的噪聲,為消除掉圖像中的無關信息,對圖像進行預處理。
為降低運算量,需要將拍攝的三通道的RGB圖像轉化為單通道的灰度圖像。采用加權平均法的灰度化方法,其中心理學灰度公式根據(jù)人眼對RGB三色的敏感程度選擇不同的權重:
式(1)中,R、G、B分別為RGB 三通道灰度值,灰度化結果如圖1(a)所示。
為了盡可能避免將背景當作缺陷,需要對圖像進行平滑處理,這樣雖然會使缺陷的邊界模糊,但是有利于減少背景的干擾。注意所采用的去噪處理為均值濾波,均值濾波公式為:
式(2)中,m、n分別為所選擇的濾波核的長和寬,Sxy是以(x,y)為中心的濾波核對應像素的位置集合,平滑處理結果如圖1(b)所示。均值濾波的缺點是會使一些細節(jié)如邊緣等信息丟失,因此在找到種子點后,對沒有經過平滑處理的圖像進行區(qū)域生長,找到缺陷邊界。
圖1 均值濾波處理
閾值分割是圖像分割中最簡單、基礎的方法,性能比較穩(wěn)定,計算量較小,運算速度快;它主要有全局閾值分割、局部閾值分割、自適應閾值分割等方法。閾值算法基于閾值T,將像素灰度值大于閾值T 和小于閾值T 的部分分別叫做前景和背景。變換函數(shù)表達式:
式(3)中,T 為閾值,g(x,y)為原圖像像素點(x,y)的灰度值,f(x,y)為分割后圖像像素點(x,y)的灰度值,閾值分割結果如圖2所示。
圖2 閾值分割結果
數(shù)學形態(tài)學簡稱形態(tài)學,其處理方式為領域運算,即把領域結構元素與圖像對應位置像素進行邏輯運算,這種運算的影響因素主要有結構元素大小、形狀和邏輯運算的規(guī)則。形態(tài)學操作主要有膨脹、腐蝕、梯度運算、禮帽運算、黑帽運算、開運算和閉運算等,但其基礎為腐蝕和膨脹,利用膨脹和腐蝕就能完成不同形式的運算。
腐蝕運算能消除輪廓邊界點,使邊界向內縮小,主要用于細化二值圖像目標輪廓、去除噪聲等。
式(4)中,A為原圖像,B為結構元素。首先給結構元素B定義一個原點,當結構元素B的原點移動到圖像A的(x,y)上時,如果結構元素B上等于1 的像素點對應圖像A也等于1,則將圖像A的(x,y)的灰度值置為1,否則置為0,腐蝕示意圖如圖3所示。
圖3 腐蝕示意圖
膨脹運算則與腐蝕運算相反,使邊界向外擴張,主要用于填補圖像分割后的空白,使相近的不相連的輪廓相連。其公式為:
式(5)中,A為原圖像,B為結構元素。首先給結構元素B定義一個原點,當結構元素B的原點移動到圖像A的(x,y)上時,如果結構元素B上等于1 的像素點對應圖像A中至少有一個等于1,則將圖像A的(x,y)的灰度值置為1,否則置為0。
先進行腐蝕操作,然后在腐蝕的基礎上進行膨脹操作,主要用于去噪和計數(shù)等。其公式為:
式(6)中,A為原圖像,B、C為結構元素。開運算效果如圖4 所示,圖5 為開運算處理的結果。
圖4 開運算效果
圖5 形態(tài)學開運算結果
區(qū)域生長的思想就是把領域(四領域、八領域等)相同的化為一個區(qū)域。首先需要一個種子點作為生長的開始,然后將種子點領域內滿足相似準則要求的像素點合并到種子的區(qū)域,將這個區(qū)域的像素做為種子點,繼續(xù)進行生長,直到沒有符合要求的點,生長結束,所有種子點像素作為生長的區(qū)域。分割的好壞由初始種子點和相似準則決定。
2.3.1 種子點選擇與檢測
經過閾值分割和形態(tài)學處理后,將二值圖像各輪廓中心作為待定種子點。如果選擇的種子點位于缺陷的絕對區(qū)域,那么種子點總有一個方向各像素的深度值呈現(xiàn)高-低-高的形態(tài)。設計檢測模板如圖 6 所示,計算出種子點在 0°、45°、90°、135°方向上的深度變化,判斷其變化是否呈高低高形態(tài)。
圖6 檢測模板
種子點左右兩側r個像素的灰度平均值分別為:
各方向的灰度變化為:
深度形Si態(tài)變化判定:
式(10)中,I(u)為檢測模板中第u個像素的灰度值,w= 1,2,3,4,分別代表 0°,45°,90°,135°方向,mwm為w方向兩側的最小灰度值,T1為形態(tài)變化閾值。如果種子點不滿足深度形態(tài)變化判定,則去除該待定種子點。
2.3.2 生長過程
區(qū)域生長的具體流程如下:
(1)將種子點坐標放入種子點集seeds。
(2)頂出種子點集中的一個種子點,對種子點八鄰域的像素點進行相似準則判斷;滿足相似準則條件的點,視為種子點放入種子點集seeds。
(3)將頂出的種子點存入種子集S。
(4)如果種子點集內沒有元素,則跳到步驟(4); 如 果 種 子 點 集 中 還 有 元 素 , 則 跳 到步驟(2)。
(5)生成一張和輸入圖像長寬一致,像素值全為0的圖像I。
(6)將圖像I中對應種子集S坐標的像素值置為255,得到分割圖像I'。
其中生長的相似準則為:
式(11)中,gray(seed)為當輪種子點的灰度值,gray(8_n)為其八鄰域各點的像素值,Thresh為設置的閾值。區(qū)域生長結果如圖7所示。
圖7 區(qū)域生長結果
圖像分割就是按照預先設定的規(guī)則,將圖像分割為有意義的前景和背景的過程。區(qū)域生長是一個分割效果比較好的算法,但前提是需要找到適合的種子點。單一的分割算法就容易遇到這種不足的情況,結合使用形態(tài)學和閾值分割的方法來找到合適的種子點,幫助區(qū)域生長算法完成分割任務,達到滿足要求的分割效果,分割方法流程如圖8所示。
圖8 分割流程圖
首先對輸入的圖片進行灰度化處理,變成單通道的灰度圖片,然后濾波去除噪聲,使圖像更平滑,選擇合適的閾值進行閾值分割,在利用開運算去除掉分割后較小的前景,以各前景區(qū)域的中心點為起始種子點,進行區(qū)域生長,得到最終所滿足要求的前景。
本文采用的圖像來自開源數(shù)據(jù),實驗是在Windows10,OpenCV 上實現(xiàn)的。電腦配置為i5-8300H,NVIDIA GeForce GTX1060;軟件 Py‐thon3.7,OpenCV_Python4.1.2;圖像的灰度值范圍為[0,255]區(qū)間。
本文提出的自動種子區(qū)域生長算法部分實驗效果如圖9所示,分割比較飽滿,誤判較少(噪聲較少)。其中a(1)~a(6)為硅鋼片微表面原圖,b(1)~b(6)為對應圖像的人工標注圖像,c(1)~c(6)為對應圖像算法分割結果。
本文對比實驗了閾值分割算法、人工選擇種子點的區(qū)域生長法以及本文提出的自動種子區(qū)域生長算法。
對比人工標注圖像,計算各算法分割圖像的精確率P、F1值,進行分割效果客觀比較。
精確率:
圖9 自動種子區(qū)域生長算法效果
式(12)(13)中,TP、TN、FP、FN分別為正類判定為正類、負類判定為負類、負類判定為正類,正類判定為負類的數(shù)目。
根據(jù)各算法各分割圖像的精確率、F1 值繪制折線圖。各算法分割性能如圖10 所示,圖10(a)為各算法F1值,圖10(b)為各算法精確值。
從圖10 可以看出,自動種子區(qū)域生長算法基本達到人工種子點區(qū)域生長算法的性能,甚至有所增強,這是由于該算法選擇缺陷中心點作為種子點,而人工工選擇種子點的算法由于偶爾種子點選擇靠近缺陷邊緣,缺陷中心的種子點生長更有優(yōu)勢。
圖10 各算法性能比較
對于在復雜背景下分割缺陷,單一的算法很難奏效。例如閾值分割算法,很難找到一個固定的閾值可以有效分割所有的圖像;由于缺陷所占比例不清楚且所占比例很小,多種自動閾值方法都會失效;單一的自動種子區(qū)域生長算法也因為類似的原因而不能有很好的分割效果?;诖耍疚奶岢隽艘环N基于形態(tài)學的自動種子區(qū)域生長算法,該算法結合了形態(tài)學、閾值分割、區(qū)域生長方法,其分割效果比單一的算法都要好。對硅鋼片微表面缺陷圖像的測試結果表明,該方法缺陷分割的準確性表現(xiàn)不錯。
表1 各算法性能比較