李澄非,潘海欣,吉登清,蔡嘉倫
(五邑大學(xué) 智能制造學(xué)部,廣東 江門(mén) 529020)
隨著工業(yè)技術(shù)的快速發(fā)展,機(jī)器視覺(jué)技術(shù)被廣泛應(yīng)用并取代人工檢測(cè)來(lái)完成對(duì)產(chǎn)品表面的缺陷檢測(cè)任務(wù)[1-5]. 目前針對(duì)被測(cè)表面顏色單一,不存在復(fù)雜紋理的非模式背景圖像,機(jī)器視覺(jué)技術(shù)的檢測(cè)效果較好[6-7]. 但在模式背景圖像中,由于該類(lèi)圖像中存在復(fù)雜的圖案、輪廓、顏色或紋理干擾,同時(shí)缺陷目標(biāo)會(huì)淹沒(méi)在復(fù)雜的背景之中,對(duì)缺陷檢測(cè)造成極大的干擾,大大增加了檢測(cè)的難度[8-11].
織物表面圖像就是模式背景圖像,傳統(tǒng)的織物表面缺陷檢測(cè)主要依賴人工完成,存在效率低、成本高、漏檢率高且無(wú)法持續(xù)工作等缺點(diǎn). 近年來(lái),越來(lái)越多的專家學(xué)者致力于運(yùn)用機(jī)器視覺(jué)技術(shù)和智能算法實(shí)現(xiàn)織物缺陷的自動(dòng)快速檢測(cè). 馬麗萍[12]提出一種基于頻譜特征分析的方法用于檢測(cè)汽車(chē)安全帶表面的缺陷,通過(guò)頻域分析檢測(cè),誤檢率小于5%,漏檢率小于3%,但該方法通用性不高,只能檢測(cè)比較明顯的缺陷圖像. 景軍鋒等[13]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的織物表面缺陷檢測(cè)方法,該方法通過(guò)Alexnet 網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)缺陷的特征提取并分類(lèi),最終可達(dá)到95%以上的分類(lèi)準(zhǔn)確率,且適用于多種缺陷. 該方法需要大量的樣本作為訓(xùn)練集,不適用于小樣本的檢測(cè). 因此,本文提出一種基于稀疏分析的紋理表面缺陷檢測(cè)(Sparse Analysis Defect Detection,SADD)方法,從缺陷圖像中去除背景,將缺陷從復(fù)雜的背景中提取出來(lái),從而實(shí)現(xiàn)缺陷檢測(cè).
織物表面圖像具有重復(fù)的紋理背景的特性,如圖1 所示,由于光照條件、相機(jī)分辨率等原因,各幅圖像的灰度值、光照均勻度和圖像對(duì)比度有著很大的差別,背景紋理嚴(yán)重地影響了圖中缺陷的檢測(cè)識(shí)別. 通過(guò)紋理圖像的稀疏表示,可以將時(shí)域中復(fù)雜的紋理圖像轉(zhuǎn)化為簡(jiǎn)單有效的描述,進(jìn)而實(shí)現(xiàn)紋理的分類(lèi).
稀疏表示[14-16]就是一種分解原始信號(hào)的過(guò)程,該過(guò)程通過(guò)字典將原始信號(hào)表示為字典元素的一個(gè)線性組合過(guò)程,公式如下:
圖1 具有紋理分布的織物缺陷圖像
其中y 為原始信號(hào),A 表示字典,x 表示在字典上原始信號(hào)的表達(dá),字典矩陣 A∈ Rm×n(m ?n),向量 x∈ Rn, y∈Rm. 假設(shè)字典是完備且冗余的,那么表達(dá)原始信號(hào)的線性組合將是不唯一的. 求解具有最少系數(shù)的最優(yōu)表達(dá)即為求解該信號(hào)最稀疏表示的過(guò)程.
對(duì)任意的信號(hào) y∈Rm,要想求得最稀疏的解,等價(jià)于解決下列問(wèn)題:給定m 維空間中一組過(guò)完備 的 基 A∈Rm×n,選擇最少個(gè)數(shù)的基向量,重構(gòu)給定向量y,其定義如下:
求解公式(1)中非零個(gè)數(shù)最少的解即為求解稀疏解的過(guò)程,事實(shí)上這個(gè)問(wèn)題是多項(xiàng)式復(fù)雜程度的非確定性問(wèn)題(Non-deterministic Polynomial,NP).
正交匹配追蹤算法(Orthogonal Matching Pursuit,OMP)得以解決上述的問(wèn)題. 假設(shè)t 表示迭代次數(shù),rt表示殘差,表示t 次迭代后矩陣A 的原子索引集合,λt表示第t 次迭代得到的原子索引號(hào),aj表示第j 個(gè)原子,即矩陣的第j 列,At表示由 Λt選出的矩陣A 的原子集合,大小為m × t的矩陣,xt為 t× 1的列向量. 輸入為原始信號(hào)y,字典矩陣A,稀疏度k,輸出為信號(hào)稀疏表示系數(shù)則OMP 算法流程圖如圖2 所示.
匹配追蹤算法在算法過(guò)程中需要進(jìn)行大量的內(nèi)積運(yùn)算,計(jì)算量巨大.為了更好地解決信號(hào)稀疏表示和分解的問(wèn)題,Donoho 等又提出了基追蹤(BP)算法. 算法原理是要找到一種信號(hào)的表示,把(0P)的問(wèn)題轉(zhuǎn)化為(1P)的問(wèn)題,即把最小化 l0范數(shù)轉(zhuǎn)化為最小化1l 范數(shù),從而將組合優(yōu)化問(wèn)題轉(zhuǎn)化為凸優(yōu)化問(wèn)題:
BP 算法的推廣就是基追蹤去噪算法,把(1P)的問(wèn)題變成無(wú)約束優(yōu)化問(wèn)題,(1P)λ 具有二次規(guī)劃結(jié)構(gòu),可以通過(guò)許多方法進(jìn)行求解.
近年來(lái)的研究表明,在信號(hào)稀疏精確重構(gòu)中,字典的冗余性會(huì)影響線性表示的唯一性,但是如果字典是非相關(guān)的,仍然可以實(shí)現(xiàn)y 在A 下被充分稀疏的線性表出,同時(shí)通過(guò)相關(guān)算法求解出稀疏表示系數(shù),實(shí)現(xiàn)原信號(hào)y 的精確重構(gòu).
圖2 OMP 算法流程圖
對(duì)于具有紋理分布的模式圖像的表面缺陷檢測(cè)而言,可以把缺陷圖像Y 看成是紋理背景部分 Yt和缺陷前景部分 Yd的線性疊加組成的:
通過(guò)稀疏表示方法,可以將缺陷從紋理背景中分離出來(lái). 給定大小為N ×N 的圖像Y ,紋理背景Yt僅包含缺陷圖像的規(guī)則紋理部分,假設(shè)存在一個(gè)超完備字典,其中L 表示字典的原子個(gè)數(shù),通常 L ?N2,則對(duì)紋理背景進(jìn)行超完備變換可以表示為:
式(6)可求解一個(gè)稀疏的解,使得稀疏系數(shù) at稀疏性最大.
對(duì)于缺陷前景部分 Yd,假設(shè)存在一個(gè)超完備字典,其中K 表示字典的原子個(gè)數(shù),通常 K?N2,使得求解下列問(wèn)題:
同理,它也能夠獲得一個(gè)非常稀疏的解.
假設(shè)對(duì)于紋理背景項(xiàng) Yt,缺陷字典 Dd不能得到一個(gè)稀疏解;對(duì)于缺陷前景項(xiàng) Yd,在背景字典 Dt下也不能產(chǎn)生稀疏解. 根據(jù)上述假設(shè)條件,缺陷圖像Y 的稀疏表示可以用以下模型來(lái)表述:
在實(shí)際應(yīng)用中,由于噪聲的干擾,缺陷圖像不可能完全分解為缺陷前景圖像和紋理背景圖像. 因此式(8)的模型可以轉(zhuǎn)換為:
由于缺陷圖像的稀疏分解是一個(gè)近似過(guò)程,第三項(xiàng)為重構(gòu)圖像與原始圖像之間的誤差,它在一定程度上表征了圖像的噪聲. λ 為權(quán)重系數(shù). 然而根據(jù)MP 算法和BP 算法的思想,上述模型又可以轉(zhuǎn)換為:
定義 D+=DT(DDT)-1是字典D 的Moore-Penrose 偽逆. 若給定 Yt,則其中 rt表示字典 Dt的零空間的任一向量,代入式(10)可得:
為了簡(jiǎn)化計(jì)算,設(shè)置 rt=0, rd=0,則模型可簡(jiǎn)化為:
求解式(12)的缺陷圖像的稀疏表示模型,就可以得到最優(yōu)解
結(jié)合塊坐標(biāo)松弛方法的原理,通過(guò)交替優(yōu)化的方法可以計(jì)算得到和. SADD 算法流程圖如圖3 所示,算法步驟如下:
1)初始化:缺陷圖像Y 、紋理背景字典 Dt、缺陷前景字典 Dd、迭代次數(shù)J 、系數(shù)向量的最大長(zhǎng)度 Lmax、權(quán)重系數(shù)λ;
2)計(jì)算閾值: δ=λLmax;
3)循環(huán)執(zhí)行:
a. 假設(shè) Yt不變,更新 Yd,計(jì)算殘差R,R=Y-Yt;計(jì)算根據(jù)閾值δ 來(lái)篩選,得到系數(shù);通過(guò)重構(gòu) Yd;
b. 假設(shè) Yd不變,更新 Yt,計(jì)算殘差R,R=Y-Yd;計(jì)算根據(jù)閾值δ 篩選,得到系數(shù);通過(guò)重構(gòu) Yt;
c. 更新閾值δ=δ-λ ;
d. 如果δ >λ 轉(zhuǎn)至步驟3),否則結(jié)束.
圖3 SADD 算法流程圖
在上述缺陷檢測(cè)算法中,選擇合適的字典 tD 和 dD 至關(guān)重要. 合適的字典能實(shí)現(xiàn)對(duì)信號(hào)中特定的成分的有效稀疏表示. 字典選擇的規(guī)則是要求每一個(gè)字典都可以對(duì)其所表示的信號(hào)進(jìn)行稀疏表示,且每個(gè)字典互不相關(guān).
在本算法的模式背景圖像缺陷檢測(cè)中,由于缺陷圖像的背景具有規(guī)則的紋理,在SADD 算法中選擇LDCT 作為背景字典,選擇Curvelet 變換作為缺陷字典. 對(duì)于大小為n ×n 的圖像,Curvelet 變換的算法復(fù)雜度為 O(n2log2n),LDCT 的算法復(fù)雜度也是 O(n2log2n). 因此SADD 算法總的復(fù)雜度也就是 O(n2log2n).
織物圖像具有高度紋理特征,無(wú)缺陷織物表面紋理排列會(huì)呈現(xiàn)出很高的規(guī)則度與一致性. 當(dāng)有缺陷出現(xiàn)時(shí),正??椢锛y理的局部周期性會(huì)被破壞. 以多種類(lèi)織物表面缺陷圖像為檢測(cè)對(duì)象,驗(yàn)證SADD 算法對(duì)紋理模式圖像缺陷檢測(cè)的有效性,同時(shí)對(duì)比其他檢測(cè)方法的結(jié)果. 圖 4 所示為采用SADD 算法對(duì)大小為256 ×256的織物缺陷樣本進(jìn)行缺陷提取和分割的結(jié)果. SADD 算法經(jīng)過(guò)數(shù)次迭代運(yùn)算后,能夠很好將缺陷前景從紋理背景中分離出來(lái),缺陷前景得到了顯著性的增強(qiáng),從而將模式背景圖像的缺陷檢測(cè)轉(zhuǎn)換為非模式圖像的檢測(cè). 為了更清晰地顯示缺陷檢測(cè)的結(jié)果,對(duì)缺陷前景圖像進(jìn)行濾波及二值化處理.
圖4 SADD 算法缺陷檢測(cè)結(jié)果
在工業(yè)檢測(cè)應(yīng)用中,算法的運(yùn)算速度也是關(guān)鍵的性能指標(biāo). 在SSAD 算法中,一個(gè)重要的參數(shù)就是迭代次數(shù)J . 迭代的次數(shù)J 越大,算法收斂得越慢,運(yùn)算時(shí)間越長(zhǎng). 但是J 越小,缺陷提取的效果越差,甚至可能會(huì)出現(xiàn)漏檢或誤檢. 待檢測(cè)圖像尺寸越大或者背景圖像越復(fù)雜,所需的迭代次數(shù)J越大. 對(duì)于同一產(chǎn)品在不同的環(huán)境下采集的圖像,SSAD 算法的收斂速度有所不同,因此J 的選擇也不同. 通過(guò)離線學(xué)習(xí)可以得到一個(gè)最佳的經(jīng)驗(yàn)值,根據(jù)不同的情況選擇不同的經(jīng)驗(yàn)值. 在織物的缺陷檢測(cè)中,SADD 算法最多迭代到 15 次就會(huì)收斂,缺陷前景圖像和紋理背景圖像保持穩(wěn)定不變,并且能夠很好地進(jìn)行缺陷分割和提取.
為了進(jìn)一步驗(yàn)證 SADD 缺陷檢測(cè)算法的有效性,選取4 類(lèi)織物表面缺陷圖像共400 張作為測(cè)試數(shù)據(jù)集進(jìn)行缺陷檢測(cè)實(shí)驗(yàn). 該數(shù)據(jù)集中包括100 個(gè)缺陷樣本和300 個(gè)無(wú)缺陷樣本. 測(cè)試實(shí)驗(yàn)同時(shí)用本文的方法與文獻(xiàn)[8]算法進(jìn)行結(jié)果對(duì)比,以漏檢率、誤判率和檢測(cè)正確率作為缺陷檢測(cè)技術(shù)的性能指標(biāo). 檢測(cè)結(jié)果數(shù)據(jù)如表1 所示,部分產(chǎn)品樣本檢測(cè)結(jié)果如圖5 所示.
表1 兩種方法的檢測(cè)結(jié)果對(duì)比
圖5 多種織物缺陷檢測(cè)結(jié)果對(duì)比
從表1 看出,文獻(xiàn)[8]提出的算法對(duì)測(cè)試集的漏檢率為7%,但是誤檢率卻達(dá)到20.3%,說(shuō)明該方法針對(duì)模式背景圖像的檢測(cè)能力很低,容易將部分圖像檢測(cè)為包含缺陷的圖像,而本文提出的檢測(cè)方法漏檢率為5%,誤檢率為2.7%. 由圖5 可以看出,針對(duì)同一張缺陷圖像,文獻(xiàn)[8]的方法無(wú)法準(zhǔn)確分割出缺陷,容易產(chǎn)生誤判區(qū)域,SADD 算法的分割精度相對(duì)精準(zhǔn). 本文實(shí)驗(yàn)的硬件平臺(tái)為Inter Core i7-8700M、3.19 GHz 和8 Gb 內(nèi)存CPU,利用HALCON18.0 完成相關(guān)檢測(cè)實(shí)驗(yàn),其中本文算法平均處理一幅圖像的時(shí)間為0.47 s. 由此可得,本文提出的檢測(cè)方法針對(duì)具有復(fù)雜紋理的模式背景圖像,具有一定優(yōu)越性.
本文提出了一種基于稀疏分析的SADD 算法,用于檢測(cè)具有紋理背景的模式圖像. 對(duì)于具有不同紋理背景的織物產(chǎn)品的檢測(cè),當(dāng)紋理背景具有一定的周期性或一致性時(shí),使用本文提出的SADD算法均能取得較好的缺陷提取效果,且該算法對(duì)不同分辨率、不同光照條件及不同缺陷類(lèi)型的圖像都具有較好的魯棒性. 但對(duì)于背景紋理規(guī)律性較差的圖像,SADD 算法并不能很好的把缺陷部分從背景中分離出來(lái). 當(dāng)背景紋理的一致性不強(qiáng)時(shí),SADD 算法對(duì)該背景圖像地重構(gòu)效果不佳,前景圖像中的背景部分并沒(méi)有去掉,缺陷區(qū)域沒(méi)有凸顯出來(lái),幾乎完全融入了背景紋理中,無(wú)法利用SADD算法來(lái)對(duì)其進(jìn)行分割. 因此缺陷提取過(guò)程中,缺陷區(qū)域沒(méi)有提取完整,把部分背景當(dāng)作了缺陷,導(dǎo)致出現(xiàn)誤檢. 針對(duì)該問(wèn)題,今后將嘗試采用深度學(xué)習(xí)中端到端的檢測(cè)框架對(duì)缺陷區(qū)域進(jìn)行更精準(zhǔn)的檢測(cè)和定位.