關鍵詞:灰度分布曲線;組合線段;冰勺;毛刺缺陷檢測
0 引言
冰勺是一種食用盒裝冰淇淋等冷飲類食品的木質(zhì)工具[1]。其在制作的過程中可能會出現(xiàn)毛刺缺陷。冰勺的毛刺可能會劃傷使用者的口舌,嚴重威脅人身健康。目前很多廠家對冰勺進行缺陷檢測仍然以人工為主,人工目測的效率和準確率已經(jīng)無法滿足現(xiàn)代工業(yè)的需求。在工業(yè)現(xiàn)場,基于機器視覺的缺陷檢測系統(tǒng)可在一定程度上提高生產(chǎn)檢測效率。目前針對毛刺缺陷的檢測中,傳統(tǒng)的毛刺特征提取有一定的局限性,容易丟失信息。賈國靖[2]利用邊緣檢測法提取毛刺線條并使用輪廓合并的方法將提取的毛刺線條合并在一起,并通過區(qū)域生長法區(qū)分毛刺和礦物線這兩種缺陷。李紹麗[3]提出將基于閾值分割方法的邊緣檢測和基于Canny算子的邊緣檢測法兩種邊緣檢測模型相結(jié)合的檢測方法。由于毛刺出現(xiàn)在冰勺邊緣,對此有學者提出了一系列輪廓提取算法來檢測毛刺,如采用基于布朗運動的線輪廓提取方法[4]、基于計算幾何的輪廓提取算法[5]。綜上所述,對于毛刺檢測,現(xiàn)有的算法可能會造成誤檢甚至漏檢。
1 冰勺毛刺檢測算法原理
冰勺毛刺缺陷通常出現(xiàn)在冰勺的腰部位置,由于冰勺的木質(zhì)紋理沿著X方向分布,毛刺缺陷的分布也符合這一特點,所以沿著冰勺正面圖像的Y方向的進行毛刺檢測會大大提高檢測準確性并減小算法復雜度(如圖1所示)。
灰度分布曲線可以看作由多個凸線段交替組成。凸線段是由兩個灰度極小值點之間的點組成的曲線,該線段內(nèi)包含一個灰度極大值點,且該灰度極大值點及其附近的像素代表圖像中的亮區(qū)域。
灰度極值點的定義為:若當前像素點的灰度值大于其前一個像素點的灰度值和后一個像素點的灰度值,則當前的像素點為灰度極大值點。
如圖2所示為某個冰勺正面某列的部分灰度分布曲線,其中,f (a)為凹線段的極小值,f (b)、f (c)為凹線段的極大值。
定義當中幅值大的為相對幅值fr (a),幅值小的為絕對幅值fa (a),如下式所示:
fr (a) = f (c) - f (a) (1)
fa (a) = f (b) - f (a) (2)
毛刺位置有較大的相對幅值特征,所以可以通過提取毛刺位置的相對幅值來實現(xiàn)對毛刺的檢測。
2 冰勺毛刺缺陷檢測算法
2.1 冰勺輪廓提取
冰勺輪廓提取是冰勺毛刺缺陷檢測算法的關鍵步驟,由于不同的輪廓提取算法決定了檢測的速度與精確度,因此輪廓提取這一步驟至關重要,直接影響毛刺缺陷的標記與判定。毛刺位于冰勺邊緣,有的毛刺支出程度較大,也即意味著這些毛刺末端的支出部分位于背景暗區(qū)域中。判定條件如下:
式中,m 為判定獨立凸線段的幅值閾值,k 為判定獨立凸線段的幅值差的閾值。
在冰勺輪廓位置,圖像灰度呈現(xiàn)突變,凹凸線段的相對幅值能夠反映冰勺輪廓位置的灰度突變。因此提出組合幅值的概念,對于貼近冰勺邊緣的毛刺根部而言,從背景的暗區(qū)域到冰勺表面的亮區(qū)域之間往往呈現(xiàn)出過渡線段上存在凸線段的特點,可以看作由兩個或多個凸線段共同構(gòu)成過渡線段,因此采用一種組合線段的方法,當相對幅值fr (a)和fr (b)都無法代表該邊緣處的幅值時,將兩個凸線段組合后的幅值fr (c)作為該處幅值。
組合幅值的計算方法如式(5) 所示:
其中,f (a)為組合凹線段的極大值,f (c)為組合凹線段的極小值。
用上述方法可以將毛刺支出部分和輪廓部分對應的線段提取出來。
2.2 冰勺輪廓像素檢測
篩選出毛刺支出部分和輪廓部分對應的線段后,需要對二者進行標記,即確定毛刺支出部分和輪廓部分對應的像素位置。毛刺的像素位置確定為各自凸線段的灰度極大值點,直接在各自對應的線段集合中標記對應的像素點即可。
傳統(tǒng)的輪廓標記方法中有標記最外側(cè)梯度極大值的像素點的方法,該方法可以將灰度變化劇烈、對比度明顯的像素點標記出來,符合輪廓處的灰度變化特點,該方法的思路為:若集合{x1,x2,x3,...,x } n 為某過渡線段上的像素點,每個像素點對應的灰度值用f (xi )(i = 1,2,3,...,n) 表示,則該過渡線段上梯度的計算方法如式(6) 所示,梯度構(gòu)成的集合為 {g1,g2,g3,...,g } n - 1 。
在梯度構(gòu)成的集合中,如果某梯度值gi 滿足式(7)和式(8) ,則該梯度值為該過渡線段上的梯度極大值gi max,對應的像素點為梯度極大值點,優(yōu)先選擇靠近外側(cè)的梯度極大值點作為輪廓標記像素點。
對于無缺陷的冰勺輪廓,選取大于過渡線段極小值點一定灰度級的像素點,這種方法不同于傳統(tǒng)的標記梯度極大值的像素點的方法,對于目標與背景之間的明暗關系更為敏感。該方法的思路為:若集合{x1,x2,x3,...,x } n 為某過渡線段上的像素點,每個像素點對應的灰度值用f (xi )(i = 1,2,3,...,n) 表示,則該過渡線段上每個點與極小值點的灰度差的計算方法如式(9) 所示,灰度差構(gòu)成的集合為{d1,d2,d3,...,d } n - 1 。
當某個點與極小值點的灰度差di 滿足di 大于等于所設閾值Td 即式(10) 時,將點xi 作為冰勺輪廓像素位置。
結(jié)合現(xiàn)有的標記方法和實際情況,當過渡線段上有凸線段出現(xiàn)時,通過測試圖庫,提出一種分線段進行標記的方法,即將凸線段前后的上升沿分為線段1和線段2,比較線段1和線段2的梯度,判斷整個過渡線段上最大的梯度位于哪個線段上,當選擇線段以后在該線段上進行標記,標記方法仍然使用大于極小值點某個灰度級的點,簡而言之就是利用梯度選擇,利用灰度值標記。
該方法效果較好,可以將鏈條齒的標記點與冰勺邊緣的標記點分開,可以根據(jù)標記后的特征對標記點分類,從而達到去除鏈條齒的目的。
如圖3所示為去除鏈條齒的結(jié)果,可以看出該方法效果較好,可以在保留冰勺輪廓標記點的前提下將鏈條齒的標記點去除。
2.3 冰勺毛刺缺陷檢測
通過觀察對比毛刺標記結(jié)果圖可知,支出型毛刺的標記結(jié)果中,整個輪廓被分為兩段或多段,前面對于毛刺支出部分的標記結(jié)果始終位于另一段輪廓的外側(cè),因此逐列遍歷標記后的結(jié)果圖,如果存在標記為支出部分的點位于標記為輪廓部分的點的外側(cè),即上邊緣支出部分標記點Y方向的坐標值小于輪廓部分標記點Y方向的坐標值而下邊緣支出部分標記點Y方向的坐標值大于輪廓部分標記點Y方向的坐標值時,認為該處存在支出型毛刺。
3 算法測試與結(jié)果分析
為了驗證算法對冰勺毛刺缺陷檢測的有效性,使用冰勺在線檢測系統(tǒng)采集冰勺正面圖像建立圖庫,共采集319張,均能正確檢出,未出現(xiàn)漏檢,大大降低了誤檢率和漏檢率(如圖4所示)。
上述測試結(jié)果表明,本算法對冰勺毛刺缺陷檢測準確率較高,漏檢率低,適合用于冰勺生產(chǎn)線上的在線檢測。
4 結(jié)束語
本文針對冰勺毛刺特征進行分析,并設計出一種冰勺毛刺缺陷檢測方法。經(jīng)過實際測試,結(jié)果表明本研究的方法能夠有效檢測出冰勺毛刺,對冰勺毛刺檢測有一定的實用價值。