織物紋理對于缺陷檢測的影響是相當巨大的。由于缺陷通常在規模和長寬比上變化很大,可能會降低檢測精度,所以這篇文章針對織物缺陷主要進行的是語義分割,而不是進行bounding box的檢測。
方法以及模型框架寫的相當清晰,首先針對現有的缺陷數據集,我們使用DeepLab V3對齊進行語義分割,生成預訓練模型用于后續的訓練過程。文章的創新點在于下方的GAN網絡分支,對于新的紋理的織物,文章訓練了一個生成器,以輸入不同紋理的織物而生成織物缺陷。但是,生成的缺陷在肉眼看去像是“假缺陷”,因此在這篇文章的工作中,訓練了一個缺陷融合網絡,以將缺陷粘貼后的圖像進行相應的調整,使其更加接近真實的缺陷情況。然后生成的缺陷織物樣本作為訓練數據,對預訓練模型進行微調,這樣我們就可以得到一個新的織物樣本的檢測模型。文章所提出的兩階段的生成對抗網絡結構如下所示:
由于步幅卷積會導致feature map在卷積過程中的尺度會逐步變小,在block4,文章提出了一種新的模塊ASPP,使用空洞卷積來增加原卷積的感受野,而不改變輸出的feature map的大小,最后進行語義分割進行缺陷的檢測。文章中詳細的說明了對于stride的調整過程。
損失函數的設計方面:
1、對于背景損失以及缺陷損失設計不同的權重:
Stage1:生成缺陷方面:
1、設計“style label”,通過VGG提取的織物特征Gram矩陣設計新面料的style label。
2、生成器對抗損失的計算:
Stage2: 融合缺陷方面:
1、由于生成的假缺陷與真缺陷之前完全一樣是不可能的,因此設計一個合頁重構損失:
其中m為定義松弛重構約束的合頁閾值。
2、對預處理VGGNet提取的缺陷融合補丁的特征圖進行約束,使其與對應的真實補丁相似,特征重建損失:
3、鑒別器對抗性損失函數定義:
其中,T(·)表示提出的缺陷融合網絡,x和y分別為不完善樣本和訓練缺陷樣本。
評價指標:IoU閾值0.5條件下的:
生成效果:
無缺陷圖像、粘貼缺陷圖像、缺陷融合圖像
檢測效果:
簡單織物
復雜織物
小結:
1、從正常樣本生成缺陷樣本進行數據的增強可以有效的緩解數據集難以獲取以及人工標注費時費力的問題,對于這種缺陷生成的適用情況進行了一定的思考。第一、生成的缺陷并不能保證最后落在某個特定的位置,因此這種方法其實可能很難應用到PCB缺陷檢測這種任務中。
2、出現的問題:由于內存的限制,在訓練時將訓練樣本裁剪成512*512的小patch進行網絡的輸入,然而這種情況會導致對于占比較大的大尺度缺陷的檢測效果不佳。使用multi-scale方法可以有效減小這種現象但是也會引起復雜織物的缺陷誤判,因此兩者之前需要舍棄一個。
大尺度缺陷的檢測效果(復雜紋理織物白條)
3、數據集存在一些人工標注并沒有標注到的地方會導致假負例率大幅提升。有些人工標注的數據集對所有缺陷標注不完全會導致這種情況。雖然指標會相對降低但是仍然可以認為算法可以繼續完成我們的任務。標注數據不完全導致召回率上不去。會對最終指標為mAP以及F-measure有一定的影響。
來源:互聯網