余文勇 張 陽 姚海明 石 繪
傳統(tǒng)的機器學習方法可以有效解決多種工業(yè)產品質量檢測問題,比如軸承[1]、手機屏[2]、卷材[3]、鋼軌[4]、鋼梁[5]等,這類方法通過人為設計特征提取器來適應特定產品圖像樣本數(shù)據(jù)集,將特征輸入分類器和支持向量機[6]、神經網絡[7]來判別產品是否有缺陷.但當被檢測產品的表面缺陷出現(xiàn)諸如復雜背景紋理(包括規(guī)則的和非規(guī)則的)、缺陷特征尺度變化大、缺陷區(qū)域特征和背景特征相似等問題時(如圖1 所示),傳統(tǒng)的機器學習方法依賴人工特征對產品圖像樣本的表示能力,不適應這類復雜的檢測需求.圖1(a)為暗缺陷,圖1(b)為明缺陷.圖1(c)為覆蓋圖像的大尺度缺陷.圖1(d)為微小缺陷.圖1(e)為色差小的缺陷.圖1(f)~ (g)為與紋理相似的缺陷.圖1(h)為模糊缺陷.
圖1 各種表面缺陷Fig.1 Various surface defects
自從AlexNet[8]被提出后,以卷積神經網絡(Convolutional neural network,CNN)為基礎的深度學習方法成為表面缺陷檢測領域的主流方法[9-12].卷積神經網絡不僅可以自動學習圖像特征,而且通過多個卷積層的疊加,可以抽取更抽象的圖像特征,相對人工設計的特征提取算法具有更好的特征表示能力.根據(jù)網絡輸出的結果,以深度學習方法做缺陷檢測的算法可以分為缺陷分類方法、缺陷識別方法和缺陷分割方法.
基于缺陷分類的算法通常使用一些經典的分類網絡算法對待檢測樣本進行訓練,學習后的模型可以對缺陷和非缺陷類別進行分類.Wang 等[13]提出使用2 個CNN 網絡對6 類圖像進行缺陷檢測;Xu等[14]提出一種融合視覺幾何(Visual geometry group,VGG)和殘差網絡的CNN 分類網絡,用來檢測和分類軋輥的表面缺陷;Paolo 等[15]和Weimer等[16]亦借助CNN 的圖像特征表示能力來判別缺陷.這類方法通常不涉及缺陷區(qū)域的定位.
為了實現(xiàn)對缺陷區(qū)域的準確定位,一些研究者將計算機視覺目標識別任務中表現(xiàn)優(yōu)異的網絡改進并應用于表面缺陷檢測,這類算法多基于區(qū)域卷積神經網絡[17]、單激發(fā)多盒探測器[18]、一眼識別(You only look once,YOLO)[19]等網絡.Chen 等[20]將深度卷積神經網絡應用于緊固件缺陷檢測.Cha 等[21]在建筑領域中使用區(qū)域卷積神經網絡(Region-CNN,R-CNN)做結構視覺檢測.
為了實現(xiàn)像素級檢測精度,一些研究者使用了分割網絡,例如Huang 等[22]用U 型網絡(U-Net)構建的檢測網絡將缺陷檢測任務轉化為語義分割任務,提高了磁瓦表面檢測的準確率.Qiu 等[23]采用全卷積網絡(Full convolutional network,FCN)對缺陷區(qū)域進行檢測.
這類方法都依賴一定數(shù)量的訓練數(shù)據(jù).在許多工業(yè)場合中,產品缺陷類型是不可預測的,并且只發(fā)生在生產過程中,很難收集到大量的缺陷樣本.針對這些問題,研究者開始關注小樣本或無監(jiān)督學習方法,如Yu 等[24]利用YOLO V3 網絡在少量缺陷樣本訓練條件下,實現(xiàn)較高準確率的檢測結果.在自編碼器基礎上進行改進的多種方法被用到表面缺陷檢測,例如卷積自編碼器(Convolutional autoencoder,CAE)[25],基于Fisher 準則的堆疊式降噪自編碼器[26],魯棒自編碼器[27],融合梯度差信息的稀疏去噪自編碼網絡[28]等.Mei 等[29]提出多尺度卷積去噪自編碼器網絡(Multi-scale convolutional denoising autoencoder network,MSCDAE)重構圖像,利用重構殘差生成檢測結果,相比較于傳統(tǒng)的無監(jiān)督算法如純相位變換(Phase only transform,PHOT)[30]、離散余弦變換[31],MSCDAE 在模型評價指標上有較大的提升.Yang 等[32]在MSCDAE 基礎上使用特征聚類提升了紋理背景的重構精度.以上重構網絡均采用加入正則項的均方誤差(Mean square error,MSE)損失函數(shù),數(shù)據(jù)樣本多為規(guī)則表面紋理.
除自編碼器外,生成對抗網絡[33]也應用于無監(jiān)督缺陷檢測.生成對抗網絡通過學習大量正常圖像樣本,讓網絡中的生成器能夠學習出正常樣本圖像的數(shù)據(jù)分布.Zhao 等[34]結合生成對抗網絡和自編碼器,對無缺陷樣本制作缺陷,訓練生成對抗網絡使之具有恢復圖像的能力.He 等[35]使用半監(jiān)督生成對抗網絡和自編碼器訓練未標記的鋼材表面缺陷數(shù)據(jù),抽取圖像細粒度特征并進行分類.Schlegl 等[36]提出異常檢測生成對抗網絡網絡解決無監(jiān)督條件下的病變圖像的異常檢測.在實際應用中,生成對抗網絡亦存在性能不穩(wěn)定、難以訓練等問題[37].
考慮到工業(yè)應用場景缺陷樣本的復雜性和稀缺性,本文提出一種基于重構網絡的缺陷檢測方法(Reconstituted network detection,ReNet-D),該方法以少量無缺陷樣本作為網絡模型學習的對象,對樣本圖像進行重構訓練,使得網絡具備對正樣本的重構能力,當輸入異常樣本時,訓練后的網絡模型可以檢測出樣本圖像的異常區(qū)域.本文對ReNet-D 方法的網絡結構、訓練塊大小、損失函數(shù)系數(shù)等影響因素進行詳細的實驗分析和評價,以同時適應規(guī)則紋理和不規(guī)則紋理的檢測需求,并與其他經典算法進行對比實驗.
在實際的工業(yè)應用中,存在缺陷樣本稀缺、特征差異大和未知缺陷偶然出現(xiàn)等因素,導致以大量數(shù)據(jù)樣本驅動的監(jiān)督算法難以適用.本文提出的無監(jiān)督算法,解決缺少缺陷樣本數(shù)據(jù)可供模型學習的問題.算法分為圖像重構網絡訓練階段和表面缺陷區(qū)域檢測階段2 個訓練階段.通過全卷積自編碼器設計重構網絡,僅使用少量正常樣本進行訓練,使得重構網絡能夠生成無缺陷重構圖像;缺陷檢測階段以重構圖像與待測圖像的殘差作為缺陷的可能區(qū)域,通過常規(guī)圖像操作獲得最終檢測結果.ReNet-D 算法模型如圖2 所示.
圖2 ReNet-D 算法模型Fig.2 ReNet-D algorithm model
工業(yè)產品表面缺陷存在多尺度、與背景紋理相似、形狀復雜等特性,對檢測算法的準確率和運行耗時要求較高.因此重構網絡設計有3 個要求: 1)網絡能夠適應不同尺度大小的缺陷區(qū)域;2)網絡需要辨識出樣本區(qū)域是否存在缺陷特征;3)重構網絡模型的參數(shù)量盡可能少.
重構過程通常分解為編碼變換φ和解碼變換γ,定義如下:
式中,I∈RW×H表示圖像樣本的空間域,通過函數(shù)φ映射到隱層空間,F表示隱層空間中對應的圖像樣本特征,函數(shù)φ由編碼模塊實現(xiàn).函數(shù)γ將隱層空間對應的圖像樣本特征F再映射回原圖像樣本的空間域,該函數(shù)由解碼模塊實現(xiàn).
令z=φ(I)∈F,編碼和解碼過程分別描述為:
式中,I'表示重構圖像,?表示卷積,σ表示激活函數(shù),W和W'分別表示編碼卷積核和解碼卷積核,b和b'分別表示編碼偏差和解碼偏差.
ReNet-D 的網絡結構如圖3 所示,為適應較大圖像,將原圖劃分成若干圖像塊,通常大小為16×16、32×32 和64×64 作為網絡的輸入.ReNet-D利用1×1、3×3 和5×5 三種卷積核來獲得多尺度特征,并將多尺度特征輸入編碼模塊,解碼模塊輸出的結果再輸入3 個不同尺度的反卷積層,獲得最終的重構圖像,相比于MSCDAE[29]的高斯金字塔采樣模型,同樣可以得到多尺度特征,但降低了計算成本.ReNet-D 的CAE 模塊包含4 個卷積模塊和4 個反卷積模塊.每一個卷積模塊包含一個卷積層、一個批標準化(Batch normalization,BN)層[38]和非線性激活層,前3 個卷積模塊還包含能夠改變圖像尺度的池化層.激活函數(shù)采用Relu.前3 個卷積層使用5×5 卷積核,最后一層使用3×3 卷積核.
圖3 ReNet-D 網絡結構Fig.3 ReNet-D network structure
自編碼器用于缺陷檢測的機理在于: 基于對無缺陷背景的高敏感性完成對無缺陷背景的重建,以及對有缺陷區(qū)域的低敏感性完成不完善的重建,以此實現(xiàn)對缺陷的檢測.自編碼器是一個輸入和學習目標相同的神經網絡,網絡層次的深淺也決定了自編碼器對輸入圖像的復現(xiàn)能力,若采用網絡結構復雜的模型,可以提高對樣本特征復現(xiàn)能力,但是同時也造成了對于缺陷區(qū)域復現(xiàn)能力的提高,進行殘差操作時,會導致因缺陷部位差異不夠明顯而檢測失敗.ReNet-D 采用輕量化的結構設計,輕量的模型重建能力有限,但通過多尺度特征和損失函數(shù)的設計,既能使網絡能充分學習到正常紋理的特征,又能對缺陷區(qū)域不完善的重建獲取缺陷部位的信息.
在ReNet-D 的訓練階段,以原始圖像和重構圖像之間的重構誤差作為損失函數(shù),促進網絡收斂.以下分析并改進現(xiàn)有的評估重構誤差的損失函數(shù).
1)均方誤差損失
均方誤差損失是評估算法模型的重構圖像和原圖之間差異的常用損失函數(shù),定義為L2:
式中,Isrc表示輸入的原圖,Irec表示模型重構的圖像,ω表示重構網絡中的權重矩陣集,λ表示正則化項的懲罰因子,0<λ <1.以MSE 為損失函數(shù)的重構算法模型適用于規(guī)則紋理背景的圖像樣本,比如紡織品[29,32].
2)平均絕對誤差損失
大多數(shù)工業(yè)產品的紋理背景并不規(guī)則,異常特征易融入紋理背景,且異常特征和正常紋理背景特征差異較小.定義L1 為平均絕對誤差損失:
與L1 損失相比,L2 損失對異常值更敏感,會過度懲罰較大的損失誤差,如MSCDAE[29]方法,因而ReNet-D 引入L1 損失來優(yōu)化網絡訓練.
3)結構損失
在評價重構網絡模型的效果時,L1 損失和L2損失采用逐像素比較差異方式,并沒有考慮圖像的區(qū)域結構等特征.對于一些非規(guī)則紋理圖像樣本的檢測,ReNet-D 引入結構相似性因子(Structural similarity index,SSIM)[39-40]構建損失函數(shù),使網絡能適用復雜多變的紋理背景樣本,重構出更好的效果.SSIM 損失函數(shù)從亮度、對比度和結構3 個指標對模型進行優(yōu)化[41],結果比L1 或L2 損失函數(shù)更能反映圖像細節(jié).對于模型輸入和輸出的圖像對 (x,y),SSIM 定義為:
式中,α> 0,β> 0,γ> 0,l(x,y)表示亮度比較,c(x,y)表示對比度比較,s(x,y)表示結構比較.μx和μy分別是x和y的平均值,σx和σy是x和y的標準差.σxy是x和y的協(xié)方差.C1、C2、C3是非0 常數(shù),通常α=β=γ=1,C3=C2/2.
SSIM 的損失函數(shù)定義為:
重構網絡用SSIM 損失函數(shù)評價最后一層的輸出結果和原圖的差異,還可以抽取多個不同尺度的反卷積層結果與對應的卷積層結果同時使用SSIM損失函數(shù),從而構建多尺度SSIM[42](Multi-scale SSIM,MS_SSIM).對于M個尺度,MS_SSIM 損失函數(shù)定義為:
4)ReNet-D 使用的損失函數(shù)
L1 損失與MSE 損失相比,對像素級誤差的懲罰更弱,適合不規(guī)則紋理樣本,而LSSIM可以訓練重構網絡去關注樣本圖像的亮度改變和顏色偏差,從而保留圖像的高頻信息即圖像邊緣和細節(jié).為同時解決規(guī)則和無規(guī)則紋理圖像樣本缺陷的檢測問題,本文設計L1 損失和LSSIM結合的損失函數(shù)作為ReNet-D 網絡模型的損失函數(shù),如下:
式中,α是權重因子,取值范圍為(0,1),用來平衡L1 損失和LSSIM的比重,本文將通過實驗比較不同權重因子和損失函數(shù)對ReNet-D 檢測結果的影響.
在檢測階段,缺陷圖像輸入訓練好的重構網絡后,網絡會輸出近似無缺陷圖像,即重構網絡將有缺陷的區(qū)域 “修復”成正常區(qū)域,而保持無缺陷的區(qū)域,根據(jù)這一特性,對輸出圖像與輸入圖像的像素級差異,經過常規(guī)圖像處理技術,便能精確的定位缺陷區(qū)域,處理流程如下:
1)殘差圖獲取
將輸入圖像(如圖4(a)所示)與ReNet-D 重構圖像(如圖4(b)所示)利用式(9)做差影,得到重構網絡對缺陷區(qū)域的重構誤差,獲得的殘差圖如圖4(c)所示,圖中包含了異常區(qū)域的位置信息.其中,圖4(a)為輸入模型的原圖,圖4(b) 為ReNet-D 重構圖,圖4(c)為由式(9)得到的殘差圖v,(i,j)為像素位置.圖4(d)為殘差圖濾波,圖4(e)為缺陷定位.
2)去噪處理
殘差圖圖4(c)呈現(xiàn)出很多噪點,形成偽缺陷,影響對真實缺陷區(qū)域的判斷,使用均值濾波做去噪處理得到圖4(d).
圖4 殘差圖處理流程Fig.4 The residual graph processing flow location
3)閾值化分割與缺陷定位
4)使用自適應閾值法得到最終結果圖4(e).
本文對提出的檢測算法ReNet-D 在工業(yè)產品的表面數(shù)據(jù)上進行廣泛的評價.首先介紹實驗所用的數(shù)據(jù)集,其次介紹模型評估的關鍵指標,然后通過對ReNet-D 算法檢測效果的影響因素包括損失函數(shù)、網絡結構、圖像塊,以及對于同類材料的不同類型缺陷的檢測效果等方面做了詳細的實驗分析.最后,對提出的檢測算法和其他同類無監(jiān)督算法做比較.
為了客觀評估所提出的檢測算法,本實驗建立了由多種材料的紋理樣本組成的驗證數(shù)據(jù)集,如圖5所示,其中圖5(a)來源于AITEX[43]數(shù)據(jù)集,該數(shù)據(jù)集來源于紡織業(yè),樣本為規(guī)則紋理,正負樣本數(shù)149/5,圖5(b)~ (e)樣本來源于DAGM2007[44]數(shù)據(jù)集,該數(shù)據(jù)集有紋理不規(guī)則和缺陷區(qū)域與圖片尺度對比大兩個特點,缺陷隱藏在紋理中并且結構與紋理很相似,其中圖5(b)的正負樣本數(shù)100/29,圖5(c)的正負樣本數(shù)100/6,圖5(d)的正負樣本數(shù)101/6.圖5(f)樣本來源于Kylberg Sintorn 數(shù)據(jù)集[45],正負樣本數(shù)50/5.除圖5 所示的數(shù)據(jù)集外,還增加了MVtech 無監(jiān)督數(shù)據(jù)集[37]的樣本做比較實驗.
圖5 實驗采用的表面缺陷數(shù)據(jù)集Fig.5 Surface defect data set used in the experiment
本文通過像素級度量來評估算法的性能,采用了3 個評價指標: 召回率(Recall)、精確率(Precision)和二者的加權調和平均(F1-Measure),定義如下:
式中,TPp為前景中分割正確的缺陷區(qū)域比例,FPp為背景中分割錯誤的缺陷區(qū)域比例,FNp表示缺陷區(qū)域中未檢測到的缺陷區(qū)域的比例.F1-Measure評估召回率和精確率.所有測試都在一臺配備圖形處理器的計算機上進行的,具體配置如表1 所示.
表1 計算機系統(tǒng)配置Table 1 Computer system configuration
ReNet-D 分別選取損失函數(shù)MSE、L1、SSIM以及三者的組合做對比實驗,以評估式(8)所提出的損失函數(shù)在缺陷檢測任務中的性能.該實驗中,ReNet-D 網絡參數(shù)設置如表2 所示.
表2 默認網絡參數(shù)Table 2 Default network parameters
圖6(a)和圖6(b)是兩類不同的產品表面缺陷樣本在多種損失函數(shù)下的實驗結果,其中圖6(a)為不規(guī)則紋理樣本,圖6(b)規(guī)則紋理樣本;圖6(c)為樣本(a)在不同損失函數(shù)下的收斂測試,圖6(d)為樣本(b)在不同損失函數(shù)下的收斂測試;圖6(a)采用不規(guī)則表面紋理的缺陷圖像樣本.從殘差結果對比可以看出,MSE 作為算法損失函數(shù)得到的殘差結果除真實缺陷區(qū)域外,其他區(qū)域噪聲點較多,形成偽缺陷;而單獨使用SSIM 作為損失函數(shù),檢測出的缺陷區(qū)域略小于真實缺陷區(qū)域;相比于其他損失函數(shù),結構損失函數(shù)SSIM 和L1 損失函數(shù)的組合獲得了較好的效果.
圖6 不同損失函數(shù)下ReNet-D 的檢測結果Fig.6 ReNet-D detection results under different loss functions
圖6(b)采用規(guī)則表面紋理的缺陷圖像樣本,從殘差結果對比可以看出,使用MSE 損失函數(shù)得到的缺陷區(qū)域的完整性較差,與MSE+SSIM 組合的檢測結果相似.結構損失函數(shù)SSIM 和L1 損失函數(shù)的組合獲得了較好的效果,而且檢測結果與僅使用L1 損失函數(shù)相似.圖6(c)和圖6(d)為不同損失函數(shù)下ReNet-D 的收斂趨勢比較.
從表3 中對比結果可以看出,對圖6(a)中的不規(guī)則表面紋理的缺陷樣本,結構損失函數(shù)SSIM和L1 損失函數(shù)的組合在召回率以及加權調和平均獲得了較好的效果,在精確率上略次于損失函數(shù)SSIM;對圖6(b)所示的規(guī)則表面紋理的缺陷樣本,僅使用L1 損失函數(shù)達到的召回率最高,SSIM 和L1 損失函數(shù)的組合其次;僅使用結構損失函數(shù)SSIM 達到的精確率最高,SSIM 和L1 損失函數(shù)的組合略次之;對于加權調和平均,L1 損失函數(shù)表現(xiàn)最好.
表3 不同損失函數(shù)下檢測結果的比較Table 3 Comparison of test results under different loss functions
進一步地,通過對本研究采用的樣本庫的檢測效果對比,損失函數(shù)有如下規(guī)律:
1)對于規(guī)則表面紋理樣本,采用以上4 種損失函數(shù)都能檢出缺陷,其中僅用MSE 和MSE+SSIM損失函數(shù)的結果相對較差,其他兩種損失函數(shù)結果差別細微.
2)對于不規(guī)則表面紋理樣本,采用L1+SSIM的組合損失函數(shù)獲得的檢測結果較好.
上述實驗表明,ReNet-D 模型使用L1+SSIM組合損失函數(shù),能同時適用規(guī)則和不規(guī)則表面紋理的缺陷檢測.對于規(guī)則紋理樣本,僅使用L1 損失,即權重系數(shù)α=1,便可得到較理想的檢測結果;而對于非規(guī)則紋理樣本,不同權重系數(shù)會產生不同的檢測效果.本實驗使用圖6(a)中不規(guī)則紋理樣本,權重系數(shù)α的范圍從0 到1,步長設為0.1,用于調節(jié)SSIM 損失和L1 損失的比重,對比實驗如圖7所示,其中圖7(a)為殘差熱力圖對比.圖7(b)為訓練損失曲線比較.
根據(jù)式(8),當α增大時,結構性損失SSIM 影響逐步減小,由圖7 和表4 可以看出,殘差圖發(fā)生明顯變化,其中當α=0.15 時,缺陷檢測效果較好,信噪比最低,召回率和加權調和平均表現(xiàn)最好.通過多個樣本的實驗,本文給出的經驗建議是: 對于規(guī)則紋理樣本,設置權重α=1,即只用L1 損失作為訓練模型的損失函數(shù);對于不規(guī)則紋理樣本,設置α=0.15,使結構損失影響權重偏大,以獲得最佳的結果.
表4 不同權重系數(shù)下的檢測結果比較Table 4 Comparison of test results under different weight coefficients
圖7 不同權重系數(shù)下ReNet-D 性能比較Fig.7 Comparison of ReNet-D performances under different weight coefficients
網絡層的深度和類型影響重構網絡的訓練結果,本研究將ReNet-D 的特征提取網絡CAE 與經典網絡如FCN[46],U-Net[47]做對比實驗,實驗結果如圖8 所示.
圖8 不同特征提取網絡下ReNet-D 的殘差圖對比Fig.8 Comparison of residual maps of ReNet-D under different feature extraction networks
基于CAE 網絡的缺陷檢測任務不同于其他低層像素視覺任務如圖像超分和降噪,降噪一般要求很深的網絡如FCN 和U-Net,然而這類網絡特征提取能力很強,容易將缺陷區(qū)域仍重建為缺陷區(qū)域,導致重構圖和原圖的殘差幾乎等于0,無法檢測缺陷.采用輕量化結構設計重構網絡時,既能充分學習到正樣本的紋理特征,又能將缺陷區(qū)域重構為近似正常紋理,形成明顯的重構誤差.因此,ReNet-D無須過多的網絡層數(shù),也無須使用構建網絡的技巧,比如全局殘差學習[48]、亞像素層[49]、殘差連接[50].
輸入圖像的尺寸通常會對重建結果有較大影響.在ReNet-D 網絡的訓練階段,考慮到處理器的內存和處理速度,將較大的圖像訓練樣本劃分為若干圖像塊,本實驗中,圖像塊尺寸分別設置為16×16像素,32×32 像素,64×64 像素,圖9 給出3 種不同圖像塊大小下的檢測結果,其中圖9(a)為不規(guī)則紋理樣本,圖9(b)為規(guī)則紋理樣本,圖9(c)為不規(guī)則紋理收斂趨勢比較,圖9(d)為規(guī)則紋理收斂趨勢比較.
對于如圖9(a)所示的不規(guī)則背景紋理圖像,樣本尺寸為512×512,當圖像塊尺寸等于16×16 時,雖然缺陷區(qū)域檢測效果較好,但會產非缺陷噪點,此時的召回率最好,但精確率最低;當圖像塊尺寸較大時取64×64 時,缺陷區(qū)域的有效檢出尺寸變小,缺陷檢測的精確率會降低.
對于如圖9(b)所示的規(guī)則背景紋理圖像,樣本尺寸為256×256,當圖像塊尺寸等于16×16 時,缺陷區(qū)域呈現(xiàn)塊狀化,與理想收斂效果差別較大,此時的召回率最高,但是準確率很低;而當圖像塊尺寸等于64×64 時,檢測結果出現(xiàn)明顯漏檢現(xiàn)象,檢測的精確率下降.
如表5 所示,當圖像塊尺寸設置為32×32 時,對于圖9(a)和圖9(b)對應的2 種不同種類背景紋理的圖像精確率與加權調和平均達到最高.進一步地,對數(shù)據(jù)集中多種規(guī)則和不規(guī)則紋理缺陷樣本,圖像尺寸從256×256 到1 024×1 024,經測試,ReNet-D 的圖像塊尺寸設置為32×32 時檢測結果最好.
表5 不同尺寸像素塊的檢測結果比較Table 5 Comparison of test results under different patch sizes texture samples
圖9 不同圖像塊下ReNet-D 的殘差圖和檢測結果對比Fig.9 Comparison of the residual image and detection results of ReNet-D under different patch sizes of texture samples
無監(jiān)督數(shù)據(jù)集[37]中的表面紋理缺陷類包括皮革、木材、地毯、網格和瓷磚,其中瓷磚類紋理最為雜亂,其訓練集包括了230 張無缺陷的不規(guī)則紋理正常類型圖像;測試集包括了5 類缺陷,其中有17張破損類缺陷,18 張膠帶類缺陷,16 張灰色涂抹類缺陷,18 張油污類缺陷,15 張磨痕類缺陷.本文實驗采用默認的網絡參數(shù)對Tile 數(shù)據(jù)集進行了訓練,并得到了5 類缺陷的檢測結果如圖10 所示.
圖10 無監(jiān)督樣本的測試結果Fig.10 Test results of unsupervised samples
如表6 所示,ReNet-D 方法能適應在Tile 數(shù)據(jù)集中的不同種類的缺陷的檢測,其中油污、破損與磨痕類缺陷表現(xiàn)較好,其檢測精確率與召回率與加權調和平均較好,但在檢測涂抹和膠帶類缺陷時,能檢出顏色及紋理與背景有差異的缺陷區(qū)域,但生成的缺陷總體形狀與理想檢測結果有差異,導致像素級的評價指標較低.
表6 無監(jiān)督樣本的測試結果Table 6 Test results of unsupervised samples
ReNet-D 的特性在于,網絡對于與背景相似的成分有較好的重建效果,與背景不相似的成分則重建效果較差,從而利用這種特性來檢出與背景有差異的缺陷.對涂抹與膠帶缺陷的特征分析發(fā)現(xiàn),缺陷局部區(qū)域的顏色與紋理和背景非常接近,甚至與之重合,后果是這類區(qū)域重建效果較好,造成了差影不明顯,但缺陷局部與背景差異較明顯區(qū)域的檢測效果則不受影響.雖然在召回率等指標上不甚理想,但在工業(yè)檢測中,局部檢出可視為缺陷檢出.
本實驗將ReNet-D 方法的性能與傳統(tǒng)無監(jiān)督方法(曲率低通濾波分析(Low pass filtering with curvature analysis,LCA)[51]、PHOT[30])和基于自編碼方法的無監(jiān)督方法(MSCDAE)[29]進行了比較,MSCDAE 由文獻[32]已證明性能優(yōu)于其他自編碼方法,如異常檢測自編碼器[9]、魯棒自編碼器[27].實驗采用了6 類紋理樣本,包含1 類規(guī)則紋理和5 類不規(guī)則紋理,每類紋理使用50 張無缺陷樣本進行訓練,并在相同數(shù)量的缺陷圖像樣本上進行測試.ReNet-D 的網絡參數(shù)對6 類樣本基本一樣,差別僅在損失函數(shù)的權重系數(shù),規(guī)則紋理取α=1;非規(guī)則紋理取α=0.15.檢測結果如圖11 所示.
6 類樣本在圖11 中按列從左到右依次為圖11(a)~(f),圖11 第1 行是待測樣本圖像,第2 行是理想檢測結果.
如圖11 所示,LCA[51]方法能消除代表背景的高頻部分,同時保留代表缺陷的低頻部分,在簡單紋理上獲得了良好的檢測效果,如樣本圖11(a)和圖11(f).但LCA 方法不適合檢測頻域較復雜的不規(guī)則紋理,如樣本圖11(b)~ (d).
對于PHOT[30]方法,只有樣本圖11(b)檢測的效果較好,其他樣本中和缺陷區(qū)域相似背景區(qū)域被當做噪點處理.
MSCDAE[29]方法能檢測圖11中所有樣本的缺陷區(qū)域,但是同時也把部分無缺陷區(qū)域當成疑似缺陷檢出,如樣本圖11(a)~ (d).
本文ReNet-D 方法,無論在大尺度缺陷樣本圖11(d),小尺度缺陷樣本圖11(e)和圖11(f),以及復雜紋理樣本圖11(c)和不規(guī)則紋理樣本圖11(b),在所有類型的缺陷和紋理上獲得較好的檢測結果.
圖11 多種算法測試效果對比Fig.11 Comparison of test results of multiple algorithms
此外,召回率、精準率和加權調和平均3 個指標用于定量分析以上4 種方法的檢測效果,如表7 所示.
表7 不同算法的檢測效果比較Table 7 Comparison of detection effects of different algorithms
由表7 可以看出,本文提出的ReNet-D 算法模型的3 個指標,幾乎在所有類型樣本上均優(yōu)于其他算法模型,適合規(guī)則紋理和非規(guī)則紋理樣本的檢測.僅在樣本圖11(b)上的召回率稍遜于MSCDAE 方法,但從檢測結果來看,MSCDAE 方法會同時檢出非缺陷區(qū)域,產生偽缺陷.
本文對算法效率進行了比較.實驗采用1 024×1 024 像素樣本圖像,在相同的計算性能下,對4 種方法的處理耗時進行比較,如表8 所示.ReNet-D 算法模型經過訓練后的大小不到1 MB 字節(jié),檢測耗時平均為2.82 ms,可以滿足工業(yè)實時檢測的要求.其他方法耗時較大,限制了其實際應用.
表8 處理耗時的比較 (ms)Table 8 Comparison of processing time (ms)
本文提出了一種利用重構網絡進行表面缺陷視覺檢測的方法ReNet-D,該方法采用輕量化結構的全卷積自編碼器設計重構網絡,在訓練階段,僅采用無缺陷樣本進行訓練,可以解決工業(yè)環(huán)境中缺陷樣本獲取困難的問題;在檢測階段,利用訓練好的模型對輸入的缺陷樣本做重構,并通過常規(guī)圖像處理算法即可實現(xiàn)缺陷區(qū)域的精確檢測.本文討論了無監(jiān)督算法中網絡結構、損失函數(shù)、圖像塊尺寸等因素對表面缺陷檢測任務的影響,并且提出結合L1 損失和結構損失的組合損失函數(shù)用于表面缺陷檢測,以同時適應規(guī)則紋理和非規(guī)則紋理樣本的檢測問題.本文在多類樣本數(shù)據(jù)上對提出的ReNet-D方法和其他無監(jiān)督算法做了對比實驗,結果證明本文所提出的檢測算法取得了較好的效果,并適合移植到工業(yè)檢測環(huán)境.由于網絡的輕量化特性,ReNet-D 對于一些與背景紋理相似且顏色接近的缺陷的重構性能較好,導致差影結果不明顯,生成的缺陷區(qū)域與理想檢測結果相比有差異,可以從成像角度做適當改進,使缺陷對比度較為明顯,進而達到更好的檢測效果.