姚明海,沈穎琦,柳嘉敏
(浙江工業大學 信息工程學院,杭州 310000)
E-mail:ymh@zjut.edu.cn
現階段大部分基于深度學習的表面缺陷檢測是有監督的表征學習方法,表征學習的本質是將缺陷檢測問題看作計算機視覺中的分類任務[1].然而表征學習需要有標簽數據集的支持,標記數據集又要滿足數據分布相同的要求,數據分布又會受到光照變化、視角變化的影響[2,3].特別是在工業生產中,拍攝環境和拍攝機器的不同會導致樣本本身處于不同的分布,對工件表面圖片進行標注同樣需要大量的人工勞作.而很多工件表面的缺陷類型相同或者相似,例如鋼板的表面缺陷[4]包含開裂、氧化、劃痕、夾雜雜質、凹坑等,磁片的表面缺陷包含氧化、劃痕、凹坑,其中氧化、劃痕、凹坑為相同的缺陷類型.但是由于數據本身表面分布和拍攝條件的不同,導致磁片表面圖片與鋼板表面圖片具有很大的差異性,如將鋼板表面缺陷分類模型直接用于磁片表面的缺陷分類,會導致極高的錯誤率.而再將磁片進行缺陷標注,會增加繁瑣的數據集制造工作.根據磁片表面和鋼板表面具有相同類型的缺陷,本文將探索如何利用有標簽的工件表面數據來檢測另一種無標簽的工件表面缺陷種類.
遷移學習將源域的知識遷移到目標域,降低了深度學習模型對于大量標記數據的要求,能有效地解決少量數據學習能力不足的問題[5,6].基于遷移學習的思想,本文利用工件表面之間缺陷的相似性來解決無標簽數據的分類,首先要減少二者之間的分布差異.遷移學習中的領域自適應可以有效地降低有標簽源域數據和無標簽目標域數據的分布差異.在無域適應方法的情況下,只能將有標簽源域數據進行分類,域適應方法通過增加源域和目標域之間的關聯程度對無標簽的目標域進行有效分類.
現有的域適應方法主要分為兩類,第1類方法通過最小化源域和目標域數據分布之間的散度準則來實現,從而實現域不變的特征表示;第2類方法是基于對抗的域適應,使用生成模型或域混淆損失函數.雖然上述方法在Office31和手寫數字等公開數據集中取得了較好的效果,但是由于這些方法都是基于局部的特征自適應,沒有考慮全局背景的自適應,導致在背景分布差異較大的數據集(例如工件表面)上并沒有那么好的效果.
為了更好的解決全局特征的自適應問題,本文首先將源域的數據與目標域數據在全局特征上對齊,并加入了語義損失保證了在對齊全局特征的同時不丟失局部特征,再采用最小化生成域數據與目標域數據的協方差矩陣的差從而對齊局部特征,進一步提高了背景分布差異較大的域遷移分類準確率.
本文的提出方法的優點如下:
1)利用對抗生成網絡和協方差矩陣對齊,做到全局特征和局部特征的共同適應,在背景分布差異較大的域遷移中也能取得不錯的結果.
2)把語義損失加入總體優化目標中作為正則項,保證了全局特征對齊的圖形經過分類網絡后不丟失局部的特征信息.
3)將領域自適應的方法應用到不同的工件的缺陷遷移上,不再局限于同類別不同分布的遷移.
域適應方法主要有兩類,最小化源域和目標域數據分布之間的散度準則和基于對抗的域適應.
最小化源域和目標域數據分布之間的散度準則,包含了多種不同的度量方法,其中將兩個領域的數據一起映射到一個高維的再生核希爾伯特空間再利用一階的最大均值差異(MMD)[7]最為常用,代表的方法包含了TCA[8],DaNN[9],DDC[10],DAN[11].前兩個方法是基于淺層的神經網絡,后兩個方法都是基于AlexNet模型,DDC利用單核的MMD適配了最后一層分類層,DAN改進了DDC,將AlexNet的后3層進行了適配,同時也將單一的MMD改進成了多核MMD.王翎等人結合了域混淆和DAN,在DAN的后兩層中間加入了域混淆,準確率相比于DAN有一定的提高[12].SUN利用二階統計量對齊(CORAL)的方法,通過對源域和目標域進行線性變換來將他們各自的二階統計量對齊,從理論上證明了匹配二階統計量效果好于最小化一階的MMD,等同于最小化二階多核的MMD,CORAL的優化目標由兩部分組成:損失函數和分布距離,損失函數用來度量預測值和真實值的差異,分布距離用于減少域之間的差異[13].Zellinger W等人提出了中央矩差異(CMD)將不同域的特征表示差異最小化[14].Kang提出了一種新的比較自適應網絡CAN優化度量,它明確地對類內域和類間域的差異進行了建模,設計了一種交替的更新策略,以端到端方式訓練CAN[15].
另一種方法是基于對抗訓練來進行域適應.ADDA方法利用源域標簽信息訓練一個分類器,使得源域分類誤差最小,再利用GAN的對抗思想訓練目標域的網絡[16].CyCADA方法在模型上執行像素級的重構損失項和語義損失項以強制局部分布和全局分布在結構上保持一致性,從而實現局部和全局的域遷移[17].Long提出了一種多對抗性域自適應算法(MADA)方法,該方法捕獲多模式結構,以支持基于多個域鑒別器的不同數據分布的細粒度對齊.利用線性時間內的反向傳播計算梯度,通過隨機梯度下降實現自適應.該方法使用多個判別器來學習數據分布的多模結構,增加了對類別的判別能力,從而增加了正遷移,減少了負遷移[18].
本文提出了全局特征和局部特征共同適用的無監督方法(GLDA),總體結構如圖1所示.為了方便描述,設源域數據集為Xs={(x1,y1),…,(xns,yns)},共含有ns個有標簽數據,目標域數據集為Xt={u1,u2,…,unt},共含有nt個無標簽數據.

圖1 GLDA網絡結構圖Fig.1 Structure of GLDA network
整個網絡包含3個子網絡,生成器網絡Gs_t,鑒別器網絡Dt和分類網絡.分類網絡包含3個輸入,源域數據集Xs,生成域數據集Xs′和目標域數據集Xt.
GLDA首先將源域的數據通過一個生成器網絡Gs_t生成具有目標域風格的數據(生成域數據集),其次使用判別器來判斷輸入是目標域還是生成域的數據.生成器網絡模型和判別器網絡模型如圖2所示.

圖2 生成器模型和判別器模型Fig.2 Generator model and discriminator model
其中生成器模型包含了3個卷積層,殘差塊和3個反卷積層,圖中箭頭下面的數字代表特征的數量,源域的數據在經過卷積層后能生成更多的特征,特征層再經過與卷積層相同尺寸的反卷積層后圖片的尺寸恢復到原尺寸.生成的圖片與目標域的圖片作為判別器的輸入.判別器包含了5層卷積層.結合判別器和生成器的優化目標,設置全局特征對齊損失如公式(1)所示:
Lglobal= -Eui~Xt[logDt(ui)]+
Exi~Xs[log(1-Dt(Gs_t(xi))]
(1)
其中E代表期望,Gs_t為生成器,Dt為判別器,xi為源域Xs中的數據,ui為目標域Xt中的數據,全局特征損失的第1部分表示判別器的優化目標,在輸入目標域的數據時,判別器期望判別輸入為目標域數據的概率盡可能的高.第2部分表示生成器的優化目標,生成器希望生成域的圖片盡量的接近目標域的圖片.所以判別器和生成器的優化目標變成了最大化判別器期望和最小化生成器期望,本文采取對判別器的期望取反,與生成器的優化目標取和作為對齊全局特征的優化目標.
最小化全局特征對齊損失的作用是為了使生成域的數據盡量接近于目標域的數據,并不能保證生成域的數據不丟失原本的局部特征.如圖3所示,左邊兩張圖代表源域的圖片,右邊的兩張圖代表生成域的圖片,雖然生成的圖片學習到了目標域的背景信息,包括了顏色特征,紋理特征和形狀特征(鋼鐵學習到了磁片的輪廓特征),但是丟失掉了原有的局部特征(劃痕特征).

圖3 全局特征對齊的問題Fig.3 Problem in global alignment
為了避免這一現象的發生,本文增加了一項語義損失作為正則項.具體的操作是將全局特征對齊后的生成域數據經分類網絡后的結果與源域數據經過分類網絡后的結果做交叉熵損失,語義損失Lsem如公式(2)所示:
(2)
其中J代表代價函數,θ為分類器網絡.加入該正則項后,可以在對齊源域和目標域全局特征的過程中,不丟失局部特征,在實驗結果分析中的超參數分析中會給予證明.
經過全局特征對齊后的生成域數據與源域數據,目標域數據進入分類網絡.GLDA方法采用的分類網絡是基于Resnet50的分類網絡,其相比于傳統深度學習網絡AlexNet增加了網絡深度,并且利用殘差結構解決了網絡層數太多產生的梯度消失問題.為了防止對生成域局部特征分布細微差別過擬合,本文將距離損失放在瓶頸層,對生成域與目標域的局部特征對齊,采用的對齊方法是協方差對齊,協方差是最小化分布在生成域和目標域的二階統計量,而最大均值差異僅為一階對齊.并利用生成域和目標域協方差矩陣之間的Frobenius范數構造可微分的損失函數,局部特征對齊的損失函數如公式(3)所示:
(3)
(4)
(5)
其中F表示Frobenius范數.Cs′代表生成域在瓶頸層之后的協方差矩陣,Ct代表目標域在瓶頸層之后的協方差矩陣,d表示數據的維度.
GLDA方法選取源域數據的預測值和標簽作為分類損失的依據,由于生成域的圖片相較于源域的圖片會造成一定的精度損失,所以在計算分類損失的時候,使用源域的數據效果更優,其中分類損失函數如公式(6)所示:
(6)
GLDA優化的目標函數融合了源域分類損失,全局特征對齊損失,局部特征對齊損失和語義損失,該優化目標可以同時對齊全局特征和局部特征.完整的目標函數如公式(7)所示:
L(Xs,Xt)=Lclass+λLsem+φ1Lglobal+φ2Llocal
(7)
其中λ表示語義損失的權值,φ1表示全局特征損失的權值,φ2表示局部特征損失的權值.
為了驗證本文所提出方法的有效性,本文分別在工件表面數據集和Office31公開數據集[19]進行了實驗.工件表面缺陷數據集包括了磁片域和鋼板域,磁片域含3種類別,劃痕214張,凹坑304張,氧化241張,鋼板類別共6類,選取其中的凹坑,氧化和劃痕3類,每個類別300張圖片.實驗包含兩種域遷移:磁片→鋼鐵,鋼鐵→磁片.Office31數據集中包含3個領域的圖片,分別來自amazon域,dslr域,webcam域,類別共31類.其中amazon域包含2817張300*300像素的RGB圖片,dslr域包含498張1000×1000像素的RGB圖片,webcam域包含795張RGB圖片,像素不一.公開數據集實驗包含了6組域遷移:A→W,W→A,A→D,D→A,W→D,D→W.數據集示例如圖4所示,其中圖4(a)、圖4(b)為工件表面數據集,圖4(c)、圖4(d)、圖4(e)為Office31公開數據集.

圖4 數據集示例Fig.4 Examples of datasets
本文實驗平臺CPU為i7-8700k,GPU為1080Ti(顯存11GB),內存容量為32GB,系統Ubuntu16.04,基于Pytorch深度學習庫進行開發.模型參數的更迭是基于Pytorch庫中的SGD優化器,其中生成器,判別器的學習率設置為0.001,分類器網絡最后一層全連接層學習率為0.01,其余網絡層均為0.001,權值衰減系數設置為0.0005.為了充分訓練源域數據和目標域數據,訓練時將Batch_size的大小按各個域的數據比例來進行設計,并基于GPU的容量考慮,A域與D域之間進行遷移時的批次大小選擇78和22,W域與D域進行遷移時批次大小選擇53和33,A域與D域遷移時批次大小選擇85和15,磁片域和鋼板域批次大小選擇42和50.在測試時,由于目標域在訓練時并沒有提供任何的標簽數據,所以選擇目標域的所有圖像作為測試樣本.每組遷移實驗進行5次,取平均結果作為最后的目標域分類準確率.本實驗將Resnet50[20]作為基準實驗,對比實驗均采取最小化源域和目標域分布之間的散度準則的方法,包含Deep domain confusion(DDC),Deep Coral,Deep adaptation network(DAN),CENTRAL MOMENT DISCREPANCY(CMD).
本文方法的超參數選取λ=0.75,φ1=0.25,φ2=0.75.實驗結果如表1、表2所列,由于Office31數據集中,webcam域和dslr域差異較小,所以在表1 的最后一列本文對差異較大的4組實驗(A→W,W→A,A→D,D→A)求取了平均準確率.

表1 Office31數據集實驗結果Table 1 Result of Office31 datasets (單位:%)
4.3.1 結果比較
如表1所列,在Resnet50作為基準模型的情況下,Office31數據集的平均分類準確率為76.8%,采用不同的域適應方法均能提升準確率,這表明了采用域差異最小化的方法能有效的提高目標域的分類準確率.且本文提出的方法平均準確率最高,達到了81.7%,相比于Resnet50提升了4.9%,比主流的域適應方法也能提升約2%.且分布差異較大的4組實驗(A→W,A→D,W→A,D→A)在采用了本文提出的域適應方法后提升更為明顯原因,相比于Resnet50提升了7%,相比于主流域適應方法能提升約3%.原因在于本文提出的方法保證了對齊全局特征的同時在經過分類網絡后不會丟失局部特征,從而做到了全局特征和局部特征的共同適應.而域差異相對較小的兩組實驗(D→W,W→D),由于本身域之間的分布比較相近,所以只要采取了深度神經網絡,就能取得很高的分類準確率,每種方法的準確率也都超過了95%.本文選取了4種模型對準確率的變化進行了分析,如圖5所示,圖5(a)為磁片→鋼鐵的遷移,圖5(b)為Amazon域→Webcam域的遷移,可以看到Resnet50網絡最早收斂,DAN和Deep Coral收斂速度次之,而本文提出的GLDA收斂最慢,原因是Resnet50的優化目標只有分類損失,而DAN和Deep Coral在Resnet50的基礎上加入了域之間的對齊損失,本文提出的模型又在局部特征對齊的基礎上增加了全局特征的對齊,所以相對收斂速度變慢,但是準確率得到了提升.

表2 工件表面缺陷數據集實驗結果Table 2 Result of industrial component surfaces datasets (單位:%)

圖5 不同方法下準確率對比圖Fig.5 Accuracy based on different methods
如表2所列,在僅用Resnet50進行訓練時,平均準確率僅為53.4%,采用常規的域適應方法后,準確率得到了一定的提升,采用本文提出的GLDA方法后,平均的準確率達到了80.2%,相比于普通的域適應方法,準確率提升明顯.由于本文采取了全局背景和局部特征的共同適應,所以即使是邊緣分布完全不同的工件表面,在其局部特征相似的情況下仍舊可以得到良好的分類效果.橫向比較發現,磁片遷移到鋼板上的準確率高于鋼板遷移到磁片的準確率,根據圖5可知,磁片表面的背景分布相對更為復雜,鋼板表面的背景分布相對簡單,所以磁片遷移到鋼板上的準確率高.
4.3.2 可視化分析
為了更好地說明本文方法的有效性,本文在訓練好的網絡上采用t-SNE降維方法[21]進行了特征可視化分析,對比了Resnet50,Deep Coral,DAN和GLDA4種方法.
其中工件表面數據集(磁片→鋼鐵)可視化效果如圖6(a)-圖6(d)所示,Office31公開數據集(A→W)可視化效果如圖6(e)-圖6(h)所示.可以看到在僅采用深度學習方法(Resnet50)的情況下,源域同種類別可以很好的聚類,但是目標域的類別聚類效果很差,且和源域同種類別沒有任何的聯系.在采用域適應方法后,源域和目標域同種類別能有一定的聚類效果,但是在工件表面數據集上目標域的聚類效果仍然較為一般.而采用了本文提出的GLDA后,工業數據集上的目標域與源域的聚類效果更為明顯,不同種類的間距加大,相同種類的間距減小,進一步提高了目標域的分類準確率.

圖6 深度特征二維可視化Fig.6 2D visualization of the deep features
局部特征對齊在本文方法中為判別圖像類型的依據,全局特征對齊的作用是消除背景分布的影響,語義損失項為保證在全局特征對齊的過程中不丟失局部特征.本文首先檢驗局部特征對齊對于算法性能的貢獻,設置λ=0,φ1=0,選取φ2={0,0.25,0.5,0.75,1,1.25}.(準確率為公開數據集和工業部件數據集的所有遷移組別的平均值)

表3 不同局部特征對齊權值的準確率Table 3 Accuracy on different weight of local feature alignment (單位:%)
如表3所列,在無局部特征對齊時,準確率為71.0%,加入局部特征對齊后,準確率有明顯提升,權值過大時,準確率會下降.當φ2=0.75時,準確率最高,為75.8%.
其次檢驗全局特征對齊以及語義損失項對于算法性能的貢獻,設置φ2=0.75,選取φ1={0,0.25,0.5,0.75},λ={0,0.25,0.5,0.75,1}.
如表4所列,在未加入語義損失項時,直接在局部特征的對齊上增加全局特征對齊,準確率大大降低.而同時加入語義損失項和全局特征對齊后,準確率有明顯的提升.當λ=0.75,φ1=0.25時,準確率最高,達到81.3%,相比于僅加入局部特征對齊時提高了5.5%.

表4 不同全局特征對齊權值的準確率Table 4 Accuracy on different weight of global feature alignment (單位:%)
實際工件測試數據來自浙江金華某工廠中用basler工業相機拍攝的含有缺陷的磁片,經處理后每個類別各選取4000張,共12000張.我們以準確率,召回率,測試用時作為磁片缺陷分類的性能評價指標,其中準確率,召回率反映檢出情況,預測時間反映檢測的效率.

(8)

(9)

表5 實際生產中不同方法的性能比較實驗Table 5 Performance comparison of different methods in actual production
如表5所列,凹坑類型的磁片召回率明顯高于氧化和劃痕類別,氧化和劃痕類別的召回率相對較低,在采用本文所提出的方法后提升較為明顯,說明該方法能更好地對不同域之間的不突出缺陷進行遷移.且該方法在準確率上優于其他域適應方法,達到77.1%.另外,幾種方法都是基于resnet50模型,因此在預測時間上相近.
本文提出了全局背景和局部特征共同適應的無監督工件表面缺陷分類方法.研究了背景分布差異較大的不同工件表面缺陷的互相遷移問題,不再局限于同一種類不同分布的遷移.提出的方法利用對抗生成網絡對齊全局特征和最小化生成域數據與目標域數據的協方差矩陣的差對齊局部特征,在全局特征對齊同時增加了語義損失從而不丟失局部特征.在工件表面數據集(磁片、鋼鐵)和公開數據集(Office31數據集)進行了驗證,證實了方法的有效性.本文所提出的方法準確率高于其他方法,同時能更好地遷移不明顯的缺陷,表現出了優越的性能,且檢測效率不低于其他先進的方法,不足之處是訓練時增加了模型的復雜度,相較于主流的域適應方法增加了訓練時間.之后將繼續研究如何在不增加訓練模型復雜度的情況下,提升目標域的分類準確性以及在實時性上展開進一步的研究.