李 彥,朱凌云
(東華大學(xué)a.信息科學(xué)與技術(shù)學(xué)院;b.數(shù)字化紡織服裝技術(shù)教育部工程研究中心,上海 201620)
紐扣是非常重要的服裝輔料,它的優(yōu)劣會(huì)在很大程度上影響到服裝的品質(zhì)[1],因此紐扣的質(zhì)量檢測(cè)是非常重要的。紐扣的生產(chǎn)數(shù)量非常巨大,但目前大部分紐扣生產(chǎn)工廠采用人工方式進(jìn)行缺陷檢測(cè),檢測(cè)效率是極其低下的。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,圖像處理技術(shù)被廣泛應(yīng)用于工業(yè)產(chǎn)品缺陷檢測(cè),其不僅能提升產(chǎn)品的質(zhì)量,而且還能節(jié)約成本。目前,常用的表面缺陷檢測(cè)算法可以分為3種:統(tǒng)計(jì)法、頻譜法和模型法[2]。統(tǒng)計(jì)法一般是利用直方圖統(tǒng)計(jì)特征,并利用灰度共生矩陣等方法描述目標(biāo)圖像;頻譜法主要是傅里葉算法和小波法等;模型法則是利用各種算法模型。這些技術(shù)有十分廣闊的應(yīng)用平臺(tái),已經(jīng)可以在多個(gè)領(lǐng)域取代人工檢測(cè),比如玻璃板[3]、印刷品[4]、木材[5]等的檢測(cè)。
四眼紐扣是生活中最常見的一種紐扣,這種紐扣的缺陷較多,主要缺陷類別有內(nèi)孔變形、內(nèi)孔缺失、邊緣破損、污漬、劃痕及凹坑等。為了提高紐扣檢測(cè)效率和節(jié)約成本,基于圖像處理對(duì)四眼紐扣瑕疵進(jìn)行研究,設(shè)計(jì)一套基于圖像處理的紐扣次品檢測(cè)系統(tǒng)。
基于輪廓的紐扣瑕疵檢測(cè)算法流程如圖1所示。第一步基于連通域分析紐扣感興趣區(qū)域的分割及輪廓的提??;第二步檢測(cè)紐扣內(nèi)孔缺失與顏色瑕疵(包括污漬、劃痕及凹坑等瑕疵);第三步檢測(cè)紐扣外輪廓與內(nèi)孔輪廓的圓度與缺口檢測(cè)。
分割背景的目的是將特定的感興趣目標(biāo)與背景進(jìn)行分割,便于后期進(jìn)一步處理,分割的效果直接影響后期的邊緣提取等后續(xù)技術(shù)[6]。目前最常見的分割方法主要是基于閾值、區(qū)域、邊緣和特定理論這幾種方式。閾值分割相對(duì)于其他幾種方法的優(yōu)點(diǎn)是計(jì)算簡(jiǎn)單、運(yùn)算效率較高、速度快,很適合用于重視運(yùn)算效率的紐扣檢測(cè)場(chǎng)合。閾值分割法主要有全局閾值法、局部閾值法以及自適應(yīng)閾值法等,適用于背景灰度一致的圖像[7]。在紐扣生產(chǎn)線上,背景一般為顏色一致的傳送帶圖像,因此選取閾值分割算法用于分割紐扣區(qū)域。
1.1.1 閾值分割
圖2(a)是紐扣原圖,可以看出紐扣區(qū)域與背景區(qū)域的面積相差不大。最大類間方差法(大津法OTSU)將圖像分為背景與前景兩個(gè)區(qū)域,是一種基于最大方差的閾值分析方法[8],其實(shí)現(xiàn)方式簡(jiǎn)單,當(dāng)目標(biāo)與背景的面積相差不大時(shí),能夠有效地對(duì)圖像進(jìn)行分割,因此非常適合用于紐扣圖像的分割。本文先將獲取的紐扣圖像轉(zhuǎn)換為灰度圖,再運(yùn)用OTSU算法進(jìn)行圖像閾值分割,得到二值化圖像。但這些二值圖往往存在很多小毛刺,在一定程度上影響后期的輪廓檢測(cè)效果。因此,采用腐蝕、膨脹操作以去除這些毛刺,為了不影響整體的輪廓,采用了較小的3×3模板。圖2(a)所示紐扣原圖的閾值分割效果如圖2(b)所示。
圖1 紐扣瑕疵檢測(cè)算法流程圖Fig.1 Flow chart of button defect detection algorithm
圖2 紐扣分割與輪廓提取
1.1.2 基于輪廓的連通區(qū)域標(biāo)記
對(duì)紐扣圖像閾值分割,得到紐扣的二值圖像會(huì)有多個(gè)連通域。為了獲得紐扣的輪廓,需要獲得二值圖像紐扣的連通域,比較好的方法就是對(duì)每個(gè)連通域進(jìn)行標(biāo)記,利用標(biāo)記數(shù)判斷紐扣的連通區(qū)域。
連通區(qū)域標(biāo)記算法最常用的有兩種:一種是基于行程的連通區(qū)域標(biāo)記;另一種是基于輪廓的連通區(qū)域標(biāo)記[9]。整體而言,基于行程的連通區(qū)域標(biāo)記效率更高,其原理也比較復(fù)雜,但對(duì)于連通數(shù)小于100的圖像來(lái)說(shuō),兩者效率差不多,因此選擇更為簡(jiǎn)單的基于輪廓的連通區(qū)域標(biāo)記?;谳喞倪B通區(qū)域標(biāo)記能夠快速完成標(biāo)記,首先采用先上下后左右的方式遍歷圖像,尋找輪廓邊緣點(diǎn),并追蹤輪廓,然后根據(jù)輪廓從左到右依次標(biāo)記,直到標(biāo)記完所有不為黑色的點(diǎn)。
1.1.3 紐扣區(qū)域分割與輪廓提取
由圖2(b)的閾值分割圖可以看出,二值圖像存在很多的連通區(qū)域,這是由于紐扣周圍存在少許臟污和其他相鄰紐扣的邊緣區(qū)域等形成連通區(qū)域,而這些區(qū)域難以通過(guò)閾值分割出來(lái)。通過(guò)紐扣區(qū)域分割,可以快速地將這些不感興趣的連通區(qū)域剔除。采用區(qū)域分割和輪廓提取的方法能夠快速得到感興趣的紐扣輪廓,這也是后續(xù)輪廓檢測(cè)的基礎(chǔ)。圖2(c)是紐扣連通區(qū)域分割圖,圖2(d)是紐扣邊緣輪廓圖。紐扣區(qū)域分割與輪廓提取的具體步驟如下:
(1) 獲取基于輪廓的連通區(qū)域標(biāo)記;
(2) 計(jì)算每個(gè)連通域的標(biāo)記數(shù)目;
(3) 通過(guò)標(biāo)記數(shù)得到最大連通區(qū)域,并將其分割出來(lái),得到感興趣的紐扣連通區(qū)域;
(4) 利用OpenCV的findContours函數(shù)對(duì)紐扣連通區(qū)域進(jìn)行輪廓檢測(cè),找到并返回該二值圖像的輪廓信息[10];
(5) 保存輪廓信息并計(jì)算輪廓數(shù)。
在紐扣生產(chǎn)過(guò)程中,由于加工工藝和機(jī)械設(shè)備的影響,可能會(huì)出現(xiàn)一些瑕疵紐扣,其中堵孔、少孔以及各類顏色瑕疵(包括污漬、劃痕等)是比較常見的瑕疵[11]。正常四眼紐扣的輪廓數(shù)目為5(4個(gè)內(nèi)孔輪廓和1個(gè)外輪廓)。根據(jù)輪廓數(shù)量,可將含有內(nèi)孔缺失或顏色瑕疵的次品紐扣分為以下3種:
(1) 內(nèi)孔缺失(堵孔、少孔)的數(shù)目大于顏色瑕疵的輪廓數(shù)目,此時(shí)總的輪廓數(shù)≤4;
(2) 內(nèi)孔缺失(堵孔、少孔)的數(shù)目小于顏色瑕疵的輪廓數(shù)目,此時(shí)總的輪廓數(shù)目≤6;
(3) 內(nèi)孔缺失(堵孔、少孔)的數(shù)目等于顏色瑕疵的輪廓數(shù)目,此時(shí)總的輪廓數(shù)目=5;
對(duì)于前兩種次品紐扣,可直接通過(guò)輪廓數(shù)目進(jìn)行判斷。而對(duì)于第三種情況,由于顏色瑕疵的輪廓一般為不規(guī)則形,可與合格內(nèi)孔輪廓區(qū)分開來(lái),因此也可以使用輪廓檢測(cè)的辦法。本文先將獲取的污漬和劃痕紐扣圖像轉(zhuǎn)換為灰度圖,再運(yùn)用閾值分割得到二值化圖像,處理效果如圖3所示。由圖3可知,污漬與劃痕在閾值分割得到的二值化圖中依然存在。
圖3 污漬與劃痕紐扣的二值化處理效果
本文檢測(cè)的塑料紐扣為圓形紐扣,因此它的輪廓檢測(cè)可以使用圓度評(píng)價(jià)法[11]。目前圓度評(píng)價(jià)法主要有4種,分別為最小區(qū)域法、最小二乘法、最小外接圓法和最大內(nèi)切圓法[10, 12]。但是在實(shí)際的紐扣圖像中,由于拍攝角度和紐扣位置的原因,正常紐扣輪廓也不一定是完全的圓形,可能類似于橢圓形。文獻(xiàn)[13]提出一種多行紐扣的分揀裝置,在這種情況下,紐扣一般不是位于攝像頭正中央,因此拍攝的紐扣圖像會(huì)呈橢圓形。對(duì)于一些小缺口紐扣,圓形度評(píng)價(jià)的檢測(cè)效率也不高。針對(duì)這些問(wèn)題,提出一種多步輪廓檢測(cè)算法。
1.3.1 最小外接圓圓形度檢測(cè)
最小外接圓評(píng)價(jià)圓形度是指先求取輪廓的最小外接圓并得到圓心與半徑,然后將該圓心作為最大內(nèi)切圓圓心,兩個(gè)圓半徑之差即為圓度誤差值[14],其數(shù)學(xué)表達(dá)式如式(1)所示。
f=Rmax-Rmin
(1)
式中:f為文獻(xiàn)中圓度誤差值;Rmax為外接圓半徑;Rmin為內(nèi)切圓半徑。
內(nèi)孔與外輪廓半徑相差較大,為了統(tǒng)一內(nèi)孔輪廓與外輪廓圓度誤差評(píng)價(jià),本文對(duì)文獻(xiàn)中圓度誤差公式做了調(diào)整,以增強(qiáng)適用性。改進(jìn)之后的圓度誤差表達(dá)式如式(2)所示。表1為幾種紐扣的最小外接圓圓度誤差檢測(cè)結(jié)果。
(2)
式中:f0為文獻(xiàn)中圓度誤差與最小外接圓半徑的比值,本文代表調(diào)整后的圓度誤差值(后文直接稱為圓度誤差值);δ為閾值,以統(tǒng)一外輪廓和內(nèi)孔的圓度誤差評(píng)價(jià),經(jīng)過(guò)多次驗(yàn)證,當(dāng)δ=3時(shí)效果比較好。
表1 基于最小外接圓的圓度誤差情況
最小外接圓檢測(cè)出的圓度誤差值能夠?qū)Υ蟛糠值妮喞Υ眠M(jìn)行區(qū)分,但是難以檢測(cè)一些小缺口或者一些光滑性較差的輪廓。為了降低由于視角原因出現(xiàn)圓形紐扣呈現(xiàn)類似橢圓形狀而導(dǎo)致誤檢的風(fēng)險(xiǎn),在最小外接圓檢測(cè)的基礎(chǔ)上加入三次方差與局部最大二次方差檢測(cè),進(jìn)一步檢測(cè)圓形度和較小缺口。
1.3.2 三次方差圓形度評(píng)價(jià)
方差檢測(cè)的是紐扣輪廓像素點(diǎn)相對(duì)于最小外接圓圓心的波動(dòng)情況,因此計(jì)算每一個(gè)輪廓點(diǎn)到其外接圓圓心的距離,如式(3)所示,以便更好地對(duì)輪廓做進(jìn)一步分析。
(3)
式中:l為每個(gè)輪廓點(diǎn)到最小外接圓圓心的距離;(x,y)為輪廓點(diǎn)在圖像中像素點(diǎn)位置;(x0,y0)為外接圓圓心位置。
經(jīng)式(3)的轉(zhuǎn)換,輪廓變?yōu)榍€的形式,結(jié)果如圖4所示,其中,星點(diǎn)表示輪廓點(diǎn)到其外接圓圓心的距離,下面連續(xù)曲線(polyfit values)為進(jìn)行多項(xiàng)式擬合的曲線(擬合的值為輪廓點(diǎn)到其外接圓圓心的距離減去均值),這樣可以看出輪廓的大致形狀。
圖4 紐扣輪廓轉(zhuǎn)換圖Fig.4 Button contour conversion diagram
三次方差會(huì)有正負(fù)值。對(duì)于對(duì)稱輪廓,由于其三次方差相互抵消,也會(huì)呈現(xiàn)較小值;對(duì)于不對(duì)稱輪廓,比如有缺口的輪廓,一般三次方差會(huì)呈現(xiàn)較大值。三次方差圓形度評(píng)價(jià)表達(dá)式如式(4)所示。
(4)
1.3.3 局部最大二次方差缺口檢測(cè)
針對(duì)紐扣邊緣微小缺口難以檢測(cè)的問(wèn)題,提出局部最大二次方差檢測(cè)方法,這種方法可以用于檢測(cè)輪廓的平滑度。二次方差圓度誤差表達(dá)式如式(5)~(7)所示。
(5)
(6)
(7)
由圖4可知:對(duì)于沒(méi)有瑕疵的輪廓區(qū)域,其像素點(diǎn)可以擬合為平行的直線,相應(yīng)的局部方差較小;而對(duì)于有缺口的輪廓區(qū)域,其像素點(diǎn)可以擬合為折線或者斜線,像素點(diǎn)局部波動(dòng)情況較大,因此局部的方差較大。通過(guò)找到最大局部方差即可判斷輪廓的平滑度。表2為基于方差檢測(cè)的圓度誤差情況。通過(guò)k值來(lái)確定局部待測(cè)區(qū)域,通過(guò)多次試驗(yàn),最終確定k值大小為30,該局部待測(cè)區(qū)域能夠得到比較好的檢測(cè)效果。
表2 基于方差檢測(cè)的圓度誤差情況
1.3.4 外接圓方差輪廓檢測(cè)法
最小外接圓圓形度評(píng)價(jià)具有速度快、實(shí)現(xiàn)簡(jiǎn)單的特點(diǎn),并且能夠檢測(cè)出大部分的紐扣輪廓,因此其作為最主要的輪廓檢測(cè)步驟。由于視角的問(wèn)題,紐扣輪廓往往并不是標(biāo)準(zhǔn)的圓形,而是呈現(xiàn)類似橢圓的形狀,因此對(duì)于這類易于誤檢的紐扣輪廓,可以通過(guò)檢測(cè)平滑性檢測(cè)輪廓瑕疵。三次方差主要用于檢測(cè)輪廓內(nèi)凹但彎曲程度不大的輪廓,同時(shí)也是為了進(jìn)一步檢驗(yàn)圓形度。局部二次方差用于檢測(cè)局部平滑性,能夠?qū)θ笨诰哂休^好的檢測(cè)效果。外接圓方差輪廓檢測(cè)法是一種多步檢測(cè)法,其實(shí)現(xiàn)流程如圖5所示。
采用的實(shí)驗(yàn)設(shè)備CPU為i5 3320 M,操作系統(tǒng)為Ubuntu 18.04。根據(jù)上文方法,選取外輪廓缺陷紐扣55個(gè),內(nèi)孔缺陷(包括堵孔、少孔及輪廓瑕疵)29個(gè),顏色瑕疵(包括污漬、劃痕等)30個(gè),以及無(wú)瑕疵紐扣123個(gè)進(jìn)行試驗(yàn),結(jié)果如表3所示。由表3可知,該算法的平均檢測(cè)準(zhǔn)確率約為97.8%。同時(shí),該系統(tǒng)檢測(cè)每個(gè)紐扣的平均耗時(shí)約為0.1 s,完全可以達(dá)到實(shí)時(shí)性要求。
表3 不同紐扣樣品的檢測(cè)結(jié)果
若采用人工檢測(cè)方式,對(duì)于紐扣數(shù)量較少的情況,基本能完全檢測(cè)出次品紐扣,但對(duì)于紐扣數(shù)量較多的情況,工人注意力難以完全集中,其檢測(cè)的準(zhǔn)確度會(huì)大大降低。由于外接圓或內(nèi)切圓的方法不能檢測(cè)平滑度,若只采用這兩種方法進(jìn)行檢測(cè),則對(duì)小缺口等輪廓的檢測(cè)效果不佳,實(shí)際測(cè)試中,外輪廓的檢測(cè)準(zhǔn)確率約為89.1%,內(nèi)孔缺陷檢測(cè)準(zhǔn)確率約為93.1%,均低于本文提出的方法。
將圖像處理應(yīng)用于紐扣次品檢測(cè),提出一種基于輪廓的紐扣瑕疵檢測(cè)算法,采用閾值分割、紐扣區(qū)域分割和輪廓提取等預(yù)處理操作,利用輪廓數(shù)目判斷是否有內(nèi)孔缺失和顏色瑕疵等缺陷,利用外接圓方差檢測(cè)法判斷是否有輪廓瑕疵。試驗(yàn)證明,該算法能夠?qū)崿F(xiàn)紐扣的次品檢測(cè),其準(zhǔn)確率約為97.8%,并且擁有較好的實(shí)時(shí)性。該檢測(cè)系統(tǒng)能夠運(yùn)用于紐扣生產(chǎn)線,提高檢測(cè)效率與正確率,減輕工人的勞動(dòng)強(qiáng)度,同時(shí)能大大提高生產(chǎn)效率。