董澤宇,葉 蕓,姚劍敏,2,嚴 群,2,李德財,林堅普
(1.福州大學 物理與信息工程學院,福建 福州 350108;2.博感電子科技有限公司,福建 晉江 362200;3.福州大學 先進制造學院,福建 晉江 362200)
換向器是電機的關鍵部件,在電機運作時起到轉換電流方向、維持線圈持續轉動的作用。然而,實際生產中會不可避免地產出表面帶有缺陷的換向器,這不僅會影響器件的使用壽命和質量,嚴重情況下還會造成生產事故。準確檢測表面缺陷,是換向器制造過程中非常關鍵的環節。傳統方法利用人工檢測,效率低下且成本高。近年來,借助深度學習實現工業產品缺陷檢測的技術得到了廣泛研究。宋念龍等人[1]利用大量原始缺陷圖像訓練了一個深度卷積神經網絡用于涂布缺陷檢測。劉暢等人[2]通過改進U-net模型實現對磁瓦表面缺陷的檢測。上述方法都采用有監督學習方式,訓練網絡時需要大量帶標注的缺陷數據。然而實際生產中,由于缺陷產品數量稀少且樣式繁多,導致缺陷數據收集困難,同時人工標注成本高且易引入人為偏差。因此,無需標注、僅利用正常數據開展檢測的無監督缺陷檢測方法[3]越來越受到關注。
無監督缺陷檢測方法可分為基于圖像空間的方法[4]和基于特征空間的方法[5]兩類。基于圖像空間的方法對測試樣本進行無缺陷重構,對比重構圖像與原圖像的差異來檢測缺陷?;谔卣骺臻g的方法將圖像映射到特征空間,對比正常圖像的特征分布與測試圖像的特征間的差距實現缺陷檢測。文獻[6]的研究表明無缺陷重構的效果并不穩定,模型對于缺陷區域也具有較強的重構能力。在最新的研究工作中,基于特征空間的方法在多種數據集上獲得了更好的缺陷檢測效果[7]。
在基于特征空間的方法中,如何利用特征是關鍵。在提取特征時,文獻[8]和文獻[9]僅利用最后一層特征圖來計算異常圖或異常值,沒有利用到淺層特征信息。文獻[10]雖然利用了淺層特征,但在構建異常圖時,對淺層特征的利用遠少于深層特征,實際上依然主要依靠深層特征來實現缺陷檢測。
基于以上考慮,本文提出一種基于特征空間的無監督換向器表面缺陷檢測方法。該方法借助預訓練的EfficientNet[11]網絡的高效特征提取能力,同時設計了一種均衡使用不同深度特征構建異常圖的方法,充分利用淺層特征;并且通過對每個像素建立分布,實現了像素級的缺陷檢測與分割。
本文提出的無監督缺陷檢測算法流程如圖1所示。整個系統可分為特征提取和缺陷檢測兩個階段。在特征提取階段,利用預訓練的網絡將訓練數據映射到特征空間,提取不同深度的特征圖,對每個像素建立多元高斯分布(Multivariate Gaussian Distribution,MGD)。在缺陷檢測階段,提取測試樣本不同深度的特征圖,計算特征圖的每個像素與其對應高斯分布間的差距獲得異常圖,利用異常圖實現缺陷檢測和分割。

圖1 無監督缺陷檢測算法流程圖
1.1.1 特征映射網絡
現存的無監督缺陷檢測方法將圖像映射到特征空間時,多依賴由正常數據訓練的自編碼器(Autoencoder,AE)[12]和生成對抗網絡(Generative Adversarial Network,GAN)[13]。然而在工業缺陷檢測中,由于開源工業數據數量稀少且種類單調,難以利用大量數據訓練參數,導致檢測效果不盡如人意。為了應對訓練集數據缺乏的問題,本文使用遷移學習技術,將在ImageNet數據集上預訓練的EfficientNet作為特征映射網絡,并凍結預訓練模型的卷積層參數。
EfficientNet[11]是同時利用多目標神經網絡架構搜索(Multi-Objective Neural Architecture Search,MONAS)方法和混合放縮方法得到的一種卷積神經網絡(Convolutional Neural Networks,CNN)結構,平衡了影響模型準確率的3個因素(網絡寬度、網絡深度及圖像分辨率),在ImageNet數據集上以更少的計算量達到了更高的準確率。
綜合考慮模型在ImageNet數據集上的表現與參數規模,本文選擇使用EfficientNet-b4作為默認的特征映射網絡,網絡結構如表1所示。

表1 EfficientNet-b4網絡結構
1.1.2 特征分布建模
本文使用ΧN代表訓練集(?x∈ΧN,yx=0),yx∈{0,1}代表輸入圖像含有缺陷區域(yx=1)或無缺陷區域(yx=0)。對于在ImageNet數據集上預訓練的EfficientNet-b4網絡,本文使用φ代表,用于將輸入圖像映射到特征空間。當圖像xi輸入特征映射網絡φ時,在不同深度的網絡層會獲得分辨率大小不一的特征圖,φi,j=φj(xi)表示圖像xi在網絡φ第j層生成的特征圖??紤]到淺層特征包含的語義信息簡單,如紋理等細節信息,深層特征包含更抽象的語義信息,本文綜合利用不同深度的特征圖來完成缺陷檢測任務。實驗中對于EfficientNet-b4網絡默認使用表1中模塊4、5、7的輸出特征圖,即j∈{4,5,7}。
對于特征圖φi,j∈C×H×W,其通道數為C,高度為H,寬度為W。本文使用φi,j(h,w)=φj(xi,h,w)∈C代表位于第j層特征圖中(h,w)像素處的向量,維度為C,其中h∈{1,…,H},w∈{1,…,W}。特征圖φi,j中的每個像素都對應于原圖xi中一塊更大的感受野。為了實現對缺陷區域的像素級分割,本文利用正常數據對所提取的特征圖的每個像素分別建立分布。對于第j特征圖的(h,w)處像素,首先提取訓練集中所有圖像xi∈ΧN,(i=1,…,N)的向量φi,j(h,w),并假設所有向量符合一個多元高斯分布其中μhw是均值向量,,∑hw是協方差矩陣,計算公式如下:


式(2)中加φ入正則項μεI,使協方φ差矩陣,∑μhw滿秩且可逆。通過上述運算,對于任意第j層特征圖的任意(h,w)處像素,都獲得一個擬合正常數據分布的多元高斯分布
1.2.1 異常圖計算
考慮到文獻[8-10]中的方法并未充分利用淺層特征信息,而淺層特征包含豐富的紋理細節信息,這對于完整地分割缺陷區域必不可少,因此本文提出對不同深度的特征圖分別建立異常圖,統一上采樣至輸入圖像大小,并通過對應位置元素相乘獲得最終的異常圖,這樣使得淺層與深層的特征信息在構建最終異常圖時的貢獻度更加均衡。
本文使用ΧT,代表測試集中的樣本集合(?x∈ΧT,yx={0,1}),對于第j層特征圖的(h,w)處像素,測試樣本xt的向量為φi,j(h,w),上一步中,由式(1)、式(2)已獲得該位置的正常數據分布本∑文通過計算馬φ氏距離μ作為φ該 像素處μ的異常值Mt,j(h,w),公式如下:

相比于受不同度量標準影響的歐氏距離,馬氏距離不僅排除了向量各維度間相關性的干擾,還通過標準化消除了不同度量標準的影響。在對測試樣本xt的第j層特征圖上所有像素計算異常值后,獲得代表xt第j層的異常圖Mt,j,其分辨率與該層特征圖相同。在計算測試樣本xt的最終異常圖時,由于不同層異常圖尺寸不同,首先采用雙線性插值法將異常圖Mt,j上采樣至輸入圖像大小,然后使用Min-Max歸一化操作,最后將不同層異常圖對應位置元素相乘。計算公式如下:

此時獲得與輸入圖像尺寸一致的異常圖,用于實現缺陷分割。
1.2.2 異常值計算
異常圖mapt中的大值意味著該像素屬于缺陷區域,本文選擇使用異常圖中的最大值作為代表測試樣本xt,的異常值,如式(5)所示:

異常值scoret的大小意味著該測試樣本xt含有缺陷區域的可能性大小。通過設定閾值δ1并與異常值scoret比較來決定測試樣本xt是否屬于缺陷樣本,異常值大于等于δ1則為缺陷樣本。通過設定閾值δ2并與異常圖mapt中每個像素的異常值mapt(h,w)比較來決定像素是否位于缺陷區域,異常值大于等于δ2則為缺陷像素。
本文實驗使用Kolektor團隊開源的KolektorSDD2數據集[14],由3 335張采集自實際工業環境中的換向器表面圖像組成,包含356張缺陷圖像,并提供有像素級的缺陷標注,將部分缺陷圖像的缺陷區域裁剪,如圖2所示。

圖2 換向器表面缺陷示例圖
本文方法采用無監督學習方式,訓練集中僅包含無缺陷圖像。實驗使用的訓練集和測試集數據分布如表2所示。由于數據集中的圖像尺寸大小不一,實驗前使用雙線性插值算法統一將所有圖像放大至704×256像素。

表2 KolektorSDD2數據集的樣本分布
考慮到實際生產中樣本分布不均勻、負樣本(正常產品)數量遠多于正樣本(缺陷產品),本文使用ROC曲線下面積(Area under the ROC Curve,AUROC)作為評估標準。因為ROC曲線受樣本分布影響較小,其縱坐標為真陽性率(True-Positive Rates,TPR),橫坐標為假陽性率(False-Positive Rates,FPR),計算公式如下:

式中:TP代表正確的正樣本數目,TN代表正確的負樣本數目,FP代表錯誤的正樣本數目,FN代表錯誤的負樣本數目。
為了評估方法對缺陷檢測與分割的性能,本文計算兩種標準下的AUROC值:
(1)檢測AUROC,以圖像為判斷個體,判斷圖像是否包含缺陷區域;
(2)分割AUROC,以像素為判斷個體,判斷像素是否位于缺陷區域。
表3 對比了本文方法與目前最新同時效果較好的基于特征空間的無監督缺陷檢測方法SPADE[8]、PaDim[10]在KolektorSDD2數據集的缺陷檢測與分割結果。可以發現,在平衡地利用不同深度的特征信息后,本文設計的方法對缺陷區域實現了更高精度的識別與分割,檢測AUROC達到98.7%,分割AUROC達到98.0%,好于另外兩種方法。

表3 不同方法在KolektorSDD2上的檢測與分割結果對比
本文對比顯示了表3中不同方法的實際缺陷分割效果示例,同時給出當本方法僅利用淺層信息(模塊4的輸出特征圖)時的缺陷分割效果圖,如圖3所示。對比可發現,當對淺層信息利用不充分時,方法對于缺陷區域的邊緣檢測不完整、不精確,如圖3(c)和圖3(d)的第一列和第三列;當僅利用淺層信息時,又容易對不必要的紋理細節過于敏感,產生大量誤檢的小區域,如圖3(e)的第二列和第四列。通過平衡利用不同深度的特征信息,本方法能夠對缺陷區域實現輪廓更精確和完整的分割。

圖3 不同方法的缺陷分割效果圖對比
2.4.1 特征映射網絡
為了驗證使用EfficientNet作為特征映射網絡的性能優勢,同時測試本文方法對于不同特征映射網絡模型是否具有魯棒性,實驗其他網絡結構作為特征映射網絡時的缺陷檢測效果,結果如表4所示。在ImageNet數據集上對6種網絡預訓練后,凍結卷積層參數,分別利用它們將輸入數據映射到特征空間并測試缺陷檢測效果。在提取不同深度的特征圖時,對于不同模型,分別選擇和EfficientNet-b4所用特征圖相同分辨率的特征圖層。6種模型的缺陷檢測ROC與分割ROC如圖4所示。

圖4 不同模型的ROC對比

表4 特征映射網絡的消融實驗結果
從圖4可以發現,最佳的缺陷檢測結果在使用本文默認網絡EfficientNet-b4時達到(檢測AUROC=98.7%,分割AUROC=98.0%)。當使用參數量只有EfficientNet-b4模型約1/4大小的EfficientNet-b0網絡時,本方法仍可以達到較高的性能。對比參數量更大的ResNet系列模型的表現,可以發現EfficientNet系列模型在本方法中具有更好的特征映射能力。當使用SqueezeNet網絡時,缺陷檢測結果較差,這是因為該模型參數量太少,無法學習到高效的特征表達能力,但通過本方法仍可以實現90.9%的缺陷檢測精度。綜合來看,本方法對于特征映射網絡具有一定的魯棒性,當使用大多數網絡模型時,都能實現較好的缺陷檢測與分割能力。
2.4.2 訓練樣本數量
考慮到表面缺陷檢測的實際效果易受訓練集中正常樣本數量的影響,以及現存開源工業數據集的數據量較少的現狀,本文進一步測試訓練樣本數量對于本方法的影響。使用KolektorSDD2數據集,保持測試集不變,分別實驗當隨機選取100%、50%、30%、10%、3%訓練樣本時的缺陷檢測表現,結果如表5所示??梢园l現,本文方法對于訓練數據量的變化具有魯棒性,當使用30%(626張)訓練數據時,本方法的檢測精度僅下降0.4%,分割精度下降1.0%;當訓練數據量下降到3%(63張)時,檢測精度下降2.0%,分割精度下降2.7%,仍保持較好的檢測水準。這可能是由于使用ImageNet數據集預訓練的模型來做特征映射,模型本身的性能不受訓練集數據量影響,從而保持了較好的穩定性。綜上,本方法的檢測性能對于訓練數據量變化不敏感,可以很好地應用于訓練集較小的缺陷檢測場景。

表5 訓練樣本數量的消融實驗結果
針對換向器表面缺陷檢測任務,結合實際生產中缺陷樣本數量少、人工標注成本高的現狀,本文設計了一種基于特征空間的無監督換向器表面缺陷檢測方法。本文方法借助預訓練的EfficientNet網絡提高了特征提取能力,并通過對特征圖每個像素建立高斯分布實現像素級缺陷分割,均衡利用不同深度的特征圖構建異常圖,使得對于缺陷區域的輪廓檢測更精確和全面。相比其他無監督缺陷檢測方法,本方法在KolektorSDD2數據集上達到了98.7%的缺陷檢測精度和98.0%的缺陷分割精度。消融實驗證明,在小規模訓練數據場景下,本方法仍具有較高的檢測能力。