鄧智超, 鄧開連, 張 磊, 劉肖燕, 燕 帥
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 上海 201620)
織物疵點檢測是紡織品質(zhì)量控制過程中的關(guān)鍵環(huán)節(jié)之一。目前,大多數(shù)織物檢驗方法采用高成本的人工檢測,需要大量人工標(biāo)注信息。因此,探索一種泛化性好、疵點定位精度高和疵點類別分辨能力強的無監(jiān)督織物疵點檢測方法,具有重要的學(xué)術(shù)價值和應(yīng)用價值。
近年來,針對織物疵點的檢測算法主要包含4種方法。一是基于統(tǒng)計的方法,主要包括直方圖統(tǒng)計[1]、共生矩陣[2]、顯著圖重構(gòu)[3]等。雖然這類方法計算量小, 但是對環(huán)境條件敏感, 錯檢、漏檢率較高。二是基于頻譜的方法,主要包括傅里葉變換[4]、小波變換[5]、Gabor 濾波器[6-7]等?;诟道锶~變換的方法無法定位疵點位置,而小波變換和Gabor 變換的計算成本高, 難以用于生產(chǎn)過程中的實時檢測。三是基于模型的方法,主要包括高斯混合模型[8-9]、馬爾科夫隨機場模型[10]等?;谀P偷姆椒ǚ€(wěn)健性較差,實際應(yīng)用的效果不佳, 近幾年對其研究較少。四是基于機器學(xué)習(xí)[11-12]的方法,常見的有自動編碼器[13-14]、卷積神經(jīng)網(wǎng)[15-17]、對抗網(wǎng)絡(luò)[18-19]等。由于不同面料的紋理背景、環(huán)境光線強弱和干擾噪聲的影響,面料疵點背景會有很大的差異,這使得基于機器學(xué)習(xí)的方法難以提取缺陷特征,因此實際操作中為保證檢測精度,針對不同面料需花費巨大成本訓(xùn)練專有檢測模型。由于面料疵點種類繁多、形態(tài)多樣,監(jiān)督學(xué)習(xí)在多形態(tài)疵點下,人工標(biāo)注數(shù)據(jù)費時費力,難以對缺陷特征進(jìn)行充分學(xué)習(xí),尤其在實際操作中,未知的、新的疵點不斷出現(xiàn),監(jiān)督學(xué)習(xí)很難實現(xiàn)高精度的檢測。
綜合以上分析可知,現(xiàn)有基于機器學(xué)習(xí)的檢測方法很難利用大量無標(biāo)注信息,且對不同紋理的適應(yīng)性不強,致使檢測效果不明顯。針對織物組織紋理結(jié)構(gòu)復(fù)雜、花型繁多、材質(zhì)多樣的特點以及生產(chǎn)過程中環(huán)境的影響,如何提高無監(jiān)督檢測模型的泛化能力、疵點定位精度和疵點類別分辨能力仍然是研究的熱點。
提出基于兩層次低秩分解的無監(jiān)督織物疵點檢測方法:首先,利用噪聲、背景底紋、疵點信息的低秩和稀疏特性,建立兩層次低秩分解模型,通過交替方向乘子法對模型求解,實現(xiàn)疵點和背景噪聲的分離,提高算法對不同紋理織物、光線強弱和面料歪斜的適應(yīng)性;其次,利用檢測框鄰域圖像隸屬度的相似性與層次聚類的遞進(jìn)性,通過設(shè)計深度聚類網(wǎng)絡(luò)的聯(lián)合訓(xùn)練方式,提高疵點定位精度,極大地緩解因數(shù)據(jù)復(fù)雜導(dǎo)致深度聚類網(wǎng)絡(luò)訓(xùn)練難以擬合的問題。
針對疵點數(shù)據(jù)背景復(fù)雜、干擾噪聲多的問題,提出了基于兩層次低秩分解的無監(jiān)督織物疵點檢測方法,該方法流程如圖1所示。
圖1 基于兩層次低秩分解的無監(jiān)督織物疵點檢測方法流程圖
由圖1可知,無監(jiān)督織物疵點檢測分為圖像預(yù)處理和深度層次聚類網(wǎng)絡(luò)兩部分。圖像預(yù)處理部分:首先,利用背景底紋復(fù)雜性和疵點信息的低秩、稀疏特性,進(jìn)行兩層次低秩稀疏陣分解,將面料的疵點信息與背景和噪聲分離,減輕外界的影響。其次,調(diào)整訓(xùn)練,集中每張圖像各通道的像素范圍至該通道像素極限范圍,以進(jìn)行圖像歸一化。再次,統(tǒng)計訓(xùn)練集中所有圖像各通道的像素均值,并調(diào)整訓(xùn)練集所有圖像各通道的像素均值為對應(yīng)通道統(tǒng)計均值,實現(xiàn)訓(xùn)練集圖像的背景同化,提高檢測模型的泛化能力。最后,將處理后尺寸為M×N的圖像分割成(M-m-1)×(N-n-1)個尺寸為m×n的小圖像,并送入深度層次聚類網(wǎng)絡(luò)訓(xùn)練。深度層次聚類網(wǎng)絡(luò)部分:首先,通過對編碼器進(jìn)行預(yù)訓(xùn)練,初始化編碼器。其次,利用疵點鄰域圖像的隸屬度具有相似性的特點,對網(wǎng)絡(luò)層次聚類進(jìn)行聯(lián)合訓(xùn)練,緩解數(shù)據(jù)復(fù)雜導(dǎo)致網(wǎng)絡(luò)難以擬合的問題,提高疵點定位精度和類別辨識的準(zhǔn)確率。最后,通過合并相同類別且重合的疵點檢測小框,根據(jù)所包含疵點檢測小框的數(shù)量,對重合度過高的疵點大框進(jìn)行非極大抑制,完成疵點的無監(jiān)督目標(biāo)檢測。
1.1.1 兩層次低秩分解
針對模型檢測精度因面料背景的差異性而有所降低的問題,利用背景、噪聲、疵點的低秩和稀疏特性,建立了如式(1)所示的兩層次低秩分解模型。第一層次從原始圖像中分解出背景矩陣L1和疵點與噪聲的混合矩陣S1;第二層次從疵點與噪聲的混合矩陣中分解出疵點矩陣L2和噪聲矩陣S2。通過交替方向乘子算法,對兩層次低秩分解模型求取最優(yōu)解,從而實現(xiàn)疵點與噪聲和背景的分離。
(1)
求解式(1)屬于NP-hard問題,難以獲得全局最優(yōu)解,因此將其轉(zhuǎn)換為凸優(yōu)化問題的求解:
λ1‖S1‖1+‖L2‖*+λ2‖S2‖1)
(2)
式中:‖‖*表示核范數(shù);‖‖1表示1范數(shù)。
(3)
最后利用交替方向乘子算法[20]進(jìn)行兩層次的迭代求解:
(4)
(5)
(6)
(7)
Y1k+1=Y1k+μ1(F-S1k-L1k)
(8)
Y2k+1=Y2k+μ2(S2k-S2k-L2k)
(9)
式中:k為迭代輪次。
1.1.2 圖像歸一化
將低秩稀疏陣分解后的圖像歸一化到0~255級灰度。
(10)
式中:Di為歸一化后的疵點i通道的像素矩陣;L2i為低秩稀疏陣分解后的圖像L2的第i通道像素矩陣。
1.1.3 背景同化
針對圖像經(jīng)過歸一化后背景不一致的問題,統(tǒng)計所有圖像各通道的像素均值,并調(diào)整所有圖像各通道的像素均值為各通道統(tǒng)計均值。
(11)
式中:nimg為數(shù)據(jù)集中的圖像數(shù)量;M×N為圖像尺寸;A為所有元素為1的矩陣;Dijk為第k張圖像第i個通道的第j個像素值。
1.2.1 深度層次聚類網(wǎng)絡(luò)的結(jié)構(gòu)
針對監(jiān)督學(xué)習(xí)在多形態(tài)疵點下難以實現(xiàn)高精度檢測的缺點,本文設(shè)計了深度層次聚類網(wǎng)絡(luò),整個網(wǎng)絡(luò)由卷積編碼器、嵌入層和聚類層3部分組成。深度層次聚類網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
由圖2可知,其中聚類層使用K-means作為聚類算法,其將相同類別并且重合的疵點檢測小框合并成疵點檢測大框,并對重合度過高的疵點大框以所包含疵點檢測小框的數(shù)量進(jìn)行非極大抑制。深度層次聚類網(wǎng)絡(luò)參數(shù)如表1所示。
圖2 深度聚類網(wǎng)絡(luò)結(jié)構(gòu)圖
表1 深度層次聚類網(wǎng)絡(luò)參數(shù)
1.2.2 深度層次聚類網(wǎng)絡(luò)的預(yù)訓(xùn)練
對編碼器進(jìn)行預(yù)訓(xùn)練,從而初始化網(wǎng)絡(luò)參數(shù)。其損失函數(shù)LAE為
(12)
1.2.3 深度層次聚類網(wǎng)絡(luò)的聚類損失函數(shù)
利用DEC(deep embedded clustering)[21]中定義聚類損失的思想和檢測框鄰域的相似性的特點,定義軟標(biāo)簽分布和目標(biāo)分布之間的KL(Kullback-Leibler)散度為聚類損失。
(13)
根據(jù)每張圖像的鄰域圖像的隸屬度對原隸屬度進(jìn)行修正,如式(14)~(16)所示。
(14)
dk=max(|x-s|,|y-t|)
(15)
(16)
式中:hij為未進(jìn)行歸一化的qij;Nnb為所用的鄰域點的個數(shù);dk為像素點之間的棋盤距離;qij為zi到第j類的基于鄰域的隸屬度。
(2)目標(biāo)分布。保證聚類目標(biāo)能使數(shù)據(jù)分布更加接近聚類中心,因此定義聚類目標(biāo)分布pij,如式(17)所示。
(17)
式中:pij為zi到第j類的目標(biāo)隸屬度。
(3)聚類損失函數(shù)。聚類損失值計算如式(18)所示。
(18)
式中:Lc為聚類損失值。
1.2.4 深度層次聚類網(wǎng)絡(luò)的聯(lián)合訓(xùn)練
為保證聚類訓(xùn)練過程中嵌入層提取的低維數(shù)據(jù)特征能夠表示原圖像而不畸變,借助DCEC(deep convolutional embedded clustering)[22]的訓(xùn)練思想,通過同時降低LAE和Lc對深度層次聚類網(wǎng)絡(luò)進(jìn)行聯(lián)合訓(xùn)練,因此聯(lián)合訓(xùn)練損失函數(shù)如式(19)所示。
Ljoint=Lc+αLAE
(19)
由于面料疵點種類繁多的特點,直接對深度層次聚類網(wǎng)絡(luò)進(jìn)行聯(lián)合訓(xùn)練可能無法擬合,因此聯(lián)合訓(xùn)練中使用了類似層次聚類的方式進(jìn)行訓(xùn)練,訓(xùn)練的流程如圖3所示。
圖3 聯(lián)合訓(xùn)練的流程圖
由圖3可知,聚類類別會從高于最終類別數(shù)的n+m降低到最終的類別數(shù)n。初始聚類類別數(shù)為n+m,確定聚類中心,然后降低聯(lián)合訓(xùn)練損失值,當(dāng)達(dá)到類別降低的條件時,即標(biāo)簽變化的比例小于設(shè)定的閾值δ時,將類別數(shù)減一,再次確定聚類中心。以此類推直到最終降低到n個種類且達(dá)到類別降低條件,此時,深度層次聚類網(wǎng)絡(luò)的訓(xùn)練完成。
試驗平臺軟件部分使用Python 3.6和Tensorflow 2.0搭建深度學(xué)習(xí)模型,在GPU為NVIDIA TESLA T4的服務(wù)器上完成檢測模型的訓(xùn)練與測試。
試驗分為兩個部分:(1)通過層次聚類網(wǎng)絡(luò)的聚類能力試驗,檢驗層次聚類網(wǎng)絡(luò)的聚類能力;(2)通過模型進(jìn)行織物疵點檢測試驗,檢驗兩層次低秩分解和深度層次聚類網(wǎng)絡(luò)對于面料疵點測檢的有效性和算法泛化性。
2.1.1 數(shù)據(jù)集
層次聚類網(wǎng)絡(luò)的聚類能力試驗在4個數(shù)據(jù)集上進(jìn)行評估。
MNIST-full:MNIST數(shù)據(jù)集是由總計70 000個28像素×28像素的手寫數(shù)字組成。
USPS:USPS數(shù)據(jù)集包含9 298幅16像素×16像素的灰度手寫數(shù)字圖像。
Fashion-MNIST:Fashion-MNIST數(shù)據(jù)集包含了10個類別的70 000張28像素×28像素的時尚產(chǎn)品圖像。
COIL-20 :COIL-20 數(shù)據(jù)集包含了20個類別的1 440張128像素×128像素物體圖像。
2.1.2 試驗結(jié)果
將本文深度聚類網(wǎng)絡(luò)與文獻(xiàn)[21-25]深度聚類網(wǎng)絡(luò)算法(K-means、DEC、DCEC、MDEC(multi-view deep embedded clustering)、DMJC(deep multi-view joint clustering)、VAED(variational autoencoder with distance))進(jìn)行對比,測試深度聚類網(wǎng)絡(luò)的聚類精度,選用準(zhǔn)確率Aclustering和歸一化互信息NNMI[26]作為網(wǎng)絡(luò)聚類能力的評價指標(biāo),其計算分別如式(20)和(21)所示。
(20)
式中:ms為樣本個數(shù);li為真實標(biāo)簽;ci為聚類預(yù)測標(biāo)簽。真實標(biāo)簽與聚類預(yù)測標(biāo)簽的對應(yīng)關(guān)系通過匈牙利算法計算獲得。
(21)
式中:MMI(l,c)為l與c的互信息;l為真實標(biāo)簽的集合;c為聚類預(yù)測標(biāo)簽的集合;H為熵。
由聚類算法的對比試驗結(jié)果(見表2)可知,相較于改進(jìn)之前的DEC和DCEC網(wǎng)絡(luò),本文算法有了明顯的進(jìn)步,并且在大部分?jǐn)?shù)據(jù)集上的聚類能力優(yōu)于現(xiàn)有算法。
表2 聚類算法準(zhǔn)確率與歸一化互信息對比
2.2.1 數(shù)據(jù)集
織物疵點檢測試驗選用上海嘉麟杰的典型格紋面料和典型針織棉麻面料以及TILDA中的星紋面料和點紋面料作為試驗樣本,自行設(shè)計搭建面料疵點檢測設(shè)備。面料疵點試驗平臺硬件參數(shù)如表3所示。
表3 面料疵點試驗平臺硬件參數(shù)
樣本疵點類型為生產(chǎn)中經(jīng)常出現(xiàn)的缺經(jīng)、缺緯、漬類和破洞等4類。格紋面料數(shù)據(jù)一共包括623張512像素×512像素的圖像,其中缺經(jīng)143張、缺緯134張、漬類87張、破洞159張、正常100張。針織棉麻面料數(shù)據(jù)集一共包括465張512像素×512像素的圖像,其中缺經(jīng)96張、缺緯104張、漬類109張、破洞106張、正常50張。TILDA中的星紋面料共包括25張疵點圖像和25張正常圖像。TILDA中的點紋面料共包括110張正常圖像和120張疵點圖像。
2.2.2 試驗結(jié)果
利用格紋面料訓(xùn)練的模型對4種面料進(jìn)行檢測,將本文算法與其他無監(jiān)督算法(DEC、DCEC、MDEC、DMJC、VAED)和監(jiān)督算法[27-29](Faster R-CNN、Yolov3、SSD)進(jìn)行檢測精度對比,分析兩層次低秩分解(TLRD)和深度層次聚類網(wǎng)絡(luò)對織物疵點檢測精度的影響。試驗以檢測模型的精度為評價指標(biāo),精度計算如式(22)所示。
(22)
式中:TP為真正例;FN為假反例;FP為假正例;TN為真反例;Adetection為檢測模型的精度。
疵點檢測精度試驗結(jié)果對比如表4所示。
表4 不同算法對不同面料疵點的檢測精度試驗結(jié)果對比
由表4可知,兩層次低秩分解的無監(jiān)督織物疵點檢測方法在格紋數(shù)據(jù)上訓(xùn)練的模型,不僅格紋織物疵點的檢測精度能達(dá)到81.5%,而且平紋、點紋和星紋織物疵點的檢測精度也能分別達(dá)到86.1%、91.7%和95.2%。兩層次低秩分解模型(TLRD)與單層次低秩分解模型(LRD)相比,對于現(xiàn)有無監(jiān)督算法,TLRD大都能有效提高其疵點檢測精度,提高檢測模型的泛化能力。與無監(jiān)督算法DEC、DCEC、MDEC、VAED、DMJC相比,基于鄰域的深度層次聚類網(wǎng)絡(luò)算法能更準(zhǔn)確地對織物疵點進(jìn)行檢測,而且模型具有更好的泛化能力。與監(jiān)督學(xué)習(xí)算法SSD、Faster-RCNN、Yolov3相比,本文算法對于格紋面料的檢測精度高于SSD,但由于沒有使用標(biāo)簽數(shù)據(jù),低于Faster-RCNN、Yolov3的檢測精度,而對于其他3種面料的檢測精度都高于監(jiān)督算法,因此本算法具有更好的模型泛化能力。
將4種不同面料的疵點圖像輸入檢測模型,得到疵點定位與分類的檢測結(jié)果。針織格紋面料、機織棉麻平紋面料、星紋面料、點紋面料的疵點檢測結(jié)果分別如圖4~7所示。檢測結(jié)果包括疵點種類和邊界框,每種顏色的疵點邊界框?qū)?yīng)不同種類的疵點。檢測結(jié)果表明,檢測圖像經(jīng)過兩層次低秩分解等預(yù)處理后,能夠?qū)⒉煌媪系牟煌y理背景轉(zhuǎn)化為相同背景,以突出疵點的位置。因此,本算法不僅能夠?qū)σ延?xùn)練過的格紋面料進(jìn)行精準(zhǔn)的疵點分類與定位,而且對于未訓(xùn)練的平紋、星紋、點紋面料,也能進(jìn)行精準(zhǔn)的疵點分類與定位。在實際面料疵點檢測中,能夠極大地減少標(biāo)記成本和訓(xùn)練不同面料疵點檢測的專有模型的成本。
圖4 格紋面料疵點檢測
圖5 平紋面料疵點檢測
圖6 星紋面料疵點檢測
圖7 點紋面料疵點檢測
本文提出一種基于兩層次低秩分解的無監(jiān)督織物疵點檢測方法,實現(xiàn)了對針織格紋面料的4類疵點的有效檢測,檢測精度為81.5%。同時在使用相同的模型下對平紋、點紋和星紋面料疵點檢測的精度也能分別達(dá)到86.1%、91.7%和95.2%,有利于解決當(dāng)前面料疵點檢測算法泛化性差、難以適應(yīng)面料種類動態(tài)變化的生產(chǎn)實際問題。