鄒斯逸,宋輝
(沈陽工業大學中央校區,遼寧沈陽,110000)
冰勺是人們食用雪糕時所需要使用的工具。由于受木材本身材質的影響以及生產冰勺的過程中的工藝問題,會使得冰勺表面出現缺陷,影響產品的美觀以及產生安全隱患。雖然人工智能和機器視覺等先進檢測技術已逐漸成熟,但肉眼缺陷檢測仍占很大比重,在中小企業中廣泛存在。
毛刺通常出現在冰勺的邊緣,表現為冰勺邊緣多出來一撮木材,由于冰勺在使用雪糕過程中會接觸到舌頭,可能會對舌頭造成劃傷,因此屬于嚴重缺陷。如圖1 中紅框所示,下面介紹兩種提取冰勺毛刺的方法。

圖1 冰勺毛刺缺陷
冰勺的毛刺處于冰勺的邊緣,基于這一特性,對冰勺區域采用形態學的處理,將冰勺邊緣提出出來,在此基礎之上再進行篩選,去除干擾區域,最終提取到毛刺區域,具體步驟如下:
(1)對冰勺圖像進行預處理,冰勺在采集到的圖像中占大概總像素的一半左右,通過截取包含冰勺的部分圖像,能夠減少算法運行的時間。
(2)使用全局閾值分割提出冰勺區域。全局閾值的表達式如(1)所示,f(x,y)是圖像像素點的灰度值,經過觀察支出型毛刺灰度直方圖并不斷測試,將閾值設為固定值25-255。

(3)接著對選中的區域進行連通域計算。連通域是指計算一個區域的連通分量,即判斷一個元素是否和區域相鄰,如果是,則屬于同一個區域。對于鄰域的判斷,一般是采用4鄰域和8 鄰域,4 鄰域是指一個元素其上下左右相鄰的元素都算其鄰域,而8 鄰域則是多了左上、右上、左下、右下。這里采用8 鄰域,8 鄰域對前景的計算效果較好。
(4)連通域計算之后需要過濾掉噪聲區域,由于冰勺區域相較于其他連通域面積無限大,因此選擇將最大面積作為篩選條件,只保留冰勺區域。
(5)然后對冰勺區域進行形態學處理,提取毛刺候選區域。形態學操作就是基于形狀的一系列圖像處理操作。這里采用開運算,結構元素為半徑10 的圓。開運算是先腐蝕運算,再膨脹運算。選擇開運算之后再和原有區域進行做差,這樣可以得到冰勺外部區域的信息,其中包含毛刺區域。
(6)對毛刺候選區域進行篩選,提取毛刺。提取毛刺主要會收到冰勺鏈條尺反光的影響,根據鏈條尺區域的平均灰度值低于毛刺區域的特征,計算各個候選區域的灰度均值,根據灰度均值的大小實現毛刺的提取。
數字圖像可以理解為笛卡爾三維坐標系空間中的灰度分布曲面,其中X-Y 軸所構成的平面反映的是圖像像素的位置坐標,Z 軸的數值反映的是圖像的灰度值。而三維灰度分布曲面所在的空間稱為灰度空間。
在與X-Y 軸平面垂直的任意平面內,與灰度分布曲面相交的部分是一條波動的曲線,稱作灰度分布曲線。上述垂直平面與X 軸的夾角定義為灰度分布曲線的方向,方向灰度分布曲線的集合構成了方向灰度分布曲面,方向灰度分布曲面所在的空間稱為方向灰度空間,簡稱方向灰度空間。
沿方向灰度分布曲線,可以求取凸線段和凹線段的幅值,幅值點所在的空間稱為方向幅值空間,簡稱方向幅值空間。
沿方向灰度分布曲線,可以求取相鄰像素點的灰度變化值,或稱為梯度,由此構成方向梯度分布曲線。方向梯度分布曲線的集合構成了方向梯度分布曲面。方向梯度分布曲面所在的空間稱為方向梯度空間,簡稱方向梯度空間。
在方向梯度空間提取的邊界像素點的集合,構成了方向的邊界曲線,方向邊界曲線所在的空間稱為方向邊界空間,簡稱方向邊界空間。需要說明的是,方向的邊界曲線不是指邊界曲線的方向為方向,而是指在方向梯度空間提取的邊界曲線。
在X 方向和Y 方向對冰勺灰度圖像進行遍歷,得到冰勺灰度圖像中每一個像素的灰度值,存放進數組中。
無論是灰度分布曲線,還是梯度分布曲線,都存在凸線段和凹線段。對于灰度分布曲線而言,凸線段反映了圖像中較亮的區域,通過尋找局部灰度極大值,就可以找到凸線段;凹線段反映了圖像中較暗的區域,通過尋找局部灰度極小值,就可以找到凹線段。對于梯度分布曲線而言,如果梯度具有方向性,凸線段和凹線段的極大值反映了圖像中邊界所在的位置;如果梯度不具有方向性,凸線段的極大值反映了圖像中邊界所在的位置。
對于一維數據而言,求取極值點并不困難,以下給出如下的一種尋找極大值的解決方案,尋找極小值的方法與其類似,只是方向相反,不在此重復列出:
(1)對于只有一個極大值的情況,如果當前像素點的灰度值分別大于前一個像素點和后一個像素點的灰度值,則當前點為極大值點。
(2)對于只有兩個極大值相鄰的情況,如果當前像素點與后一個像素點的灰度值相等,并且當前像素點的灰度值分別大于前一個像素點和后兩個像素點的灰度值,則當前點和后一個像素點均為極大值點。
(3)對于兩個以上灰度極大值點相鄰的情況,判斷方法同上,直到滿足極大值條件為止。
將之前遍歷圖像得到的灰度值進行判定,尋找極值,并存放在灰度極值數組中,在此數組中,將極值點的值賦值為對應該圖像像素點的灰度值,而將其余點的數值賦值為0。
對于冰勺而言,在Y 方向上只存在兩個邊緣,即上邊緣和下邊緣,對應在冰勺灰度空間中為灰度變化劇烈的部分,而這部分灰度突變是極小值隨著像素點變化為極大值,也就是灰度曲線從凹區域變化為凸區域。針對這種情況,在算法實現過程中,將邊界定義為滿足從凹區域到凸區域的第一個梯度大于閾值的點,閾值的設定是基于對冰勺圖像測試圖庫進行測試得來。
根據灰度分布曲線的凸線段和凹線段的高度,我們能夠直觀感受到它們與圖像中對比度的對應關系。由于凸線段和凹線段通常情況下是不對稱結構,如何來度量它們的高度。以下給出一種度量凹線段和凸線段高度的定義,引入絕對幅值和相對幅值的概念。以下僅以凸區域為例進行說明。
設f(J)表示凸區域灰度極大值點J的灰度值;
f(J-1)表示與當前凸區域相鄰的前一個凹區域灰度極小值點(J-1)的灰度值;
f(J+1)表示與當前凸區域相鄰的后一個凹區域灰度極小值點(J+1)的灰度值;
如果f(J-1) <f(J+1),則令
fr(J) =f(J) -f(J-1)表示J點的凸區域相對幅值;
fa(J) =f(J) -f(J+1)表示J點的凸區域絕對幅值。
否則,令
fr(J) =f(J) -f(J+1)表示J點的凸區域相對幅值;
fa(J) =f(J) -f(J-1)表示J點的凸區域絕對幅值。
在尋得了圖像的極值以及標記邊界點之后,需要進行幅值的計算,由相對幅值和絕對幅值的定義可知,需要關注的信息是相對幅值,反映在圖像中是對比對明顯的像素區域。因此,對灰度極值數組的值進行操作,相鄰極值之間做差,得到的數值存進幅值數組中,接著遍歷幅值數組,當幅值為0 時跳過當前像素點;當幅值不為0 時,以當前像素點為基準,繼續尋找不為0 的幅值,接著對兩者進行比較,將較大的值定義為相對幅值。
在求得冰勺相對幅值之后,需要在幅值數組中尋找到檢測所需要的即邊界,從上文可知,對于冰勺而言,邊緣灰度變化劇烈,反映在冰勺灰度曲線中則是極其陡峭的曲線,而其對應的幅值則是遠大于幅值數組中其余的值。因此,根據這一情況來進行邊界的判定。
對相對幅值數組進行運算,以幅值為橫坐標,以幅值空間中該幅值所出現的次數作為縱坐標,建立直方圖,如圖2 所示。

圖2 相對幅值直方圖
從圖中可以看出,隨著幅值的增加,個數隨之減少,而幅值較大的點則是對應的邊界點,根據此特性,嘗試選取閾值點,該點滿足附近某個區間內其余相對幅值的個數為0。
基于方向空間的圖像分割是在非常小的尺度下進行,對于毛刺這類邊緣缺陷而言,當冰勺邊緣存在毛刺時,會使得提取的邊緣存在斷點,可以根據這個特點對毛刺進行判定。
為了檢測算法對于毛刺缺陷檢測的效果,根據采集到的冰勺毛刺缺陷圖庫對算法進行測試。
基于形態學算法對毛刺圖庫進行檢測,共測試圖片116張,漏檢30 張,漏檢率25.9%。結果顯示,此種算法對于毛刺漏檢效果不理想,主要原因在于部分毛刺缺陷較小,經過形態學處理后,會將毛刺缺陷區域丟失掉,造成漏檢,毛刺提取結果如圖3 所示。

圖3 毛刺提取結果
基于方向空間的圖像分割算法對毛刺圖庫進行檢測,共測試圖片100 張,漏檢5 張,檢測率為95%,檢測結果如圖4所示。

圖4 毛刺檢測結果
根據以上檢測算法結果對比,基于方向的圖像分割算法在原形態學分割毛刺算法檢測率74.1%基礎之上提升了20.9%,檢測率達到95%。
針對人工檢測冰勺缺陷不足的問題,提出了對94 型冰勺毛刺缺陷的在線檢測方法,基于形態學的算法和基于方向空間的圖像分割算法。其中形態學算法較為簡單,但是漏檢率相對較高,而基于方向空間的圖像分割算法彌補了漏檢率較高的問題,具有一定的實用價值。