高海洋,張明川,葛泉波,劉華平
(1.河南科技大學 信息工程學院, 河南 洛陽 471023; 2.南京信息工程大學 自動化學院, 江蘇 南京 210044; 3.清華大學 計算機科學與技術系, 北京 100084)
工業產品與人們的生活息息相關,因此工業產品的質量把控尤為重要,這也使得工業產品的缺陷檢測問題愈發受到重視。其檢測過程中存在的小樣本問題指缺陷檢測時存在的缺陷樣本數量少、缺陷特征缺乏多樣性等問題,這也是當前許多行業缺陷檢測中普遍存在的問題[1]。產生小樣本問題的原因有很多,最常見的為缺陷樣本圖像采集成本過高。其次由于部分工業生產過程中缺陷產品數量極少,導致采集到的缺陷樣本數量也極少。近年來缺陷檢測行業主要通過工程途徑和算法途徑來解決工業檢測中的小樣本問題[2]。工程途徑的方法主要為基于真實產品手動制造仿真缺陷,但這會對產品造成不可逆的破壞,對具有較高價值的產品采用這種方法并不合理。此外,由于大多數缺陷產生于無意識狀態,手動制造缺陷不一定與實際缺陷情況吻合,往往存在較大的失真[3]。因此基于算法途徑的生成方法更加具有研究意義與應用價值。
傳統的圖像增廣方法,如仿射變換、圖像裁剪與翻轉等方法無法解決圖像卷積過程中存在的平移不變性[4],因此獲得的圖像會使神經網絡模型產生過擬合。算法途徑的缺陷生成方法憑借其生成缺陷樣本的真實性以及無需破壞產品的優點,成為解決小樣本問題主流方法。目前生成模型更加擅長合成具有多樣化特征的圖像,而應用最廣泛的為基于變分自動編碼器(variational autoencoder, VAE)[5]的生成模型、基于生成對抗網絡(generative adversarial network,GAN)[6]的生成模型、基于Transformer[7]的圖像生成方法以及基于概率擴散模型 (Diffusion model)[8]的圖像生成方法。
變分自動編碼器是早期用于圖像合成的模型之一,通過解碼某種類型的潛在向量來生成圖像。Shi 等[9]使用了帶有擴散解碼器(DiVAE)的VQ-VAE 結構模型,作為圖像合成中的重建部件。Razavi 等[10]提出了VQ-VAE-2 框架來進行圖像生成。該方法利用了有損壓縮的思想,通過自編碼器的中間表征使生成模型忽略對不重要信息的建模并將圖像壓縮到離散隱變量空間。然而基于VAE 模型生成的圖像模糊分辨率較低,因此并不適用于工業缺陷圖像的生成。因此也提出了許多基于GAN 的方法來生成質量更高細節更豐富的圖像。
GAN 具有十分強大的生成能力,通過生成器與鑒別器的相互對抗學習使得生成的圖像質量逐漸提高。具有廣泛應用的有風格翻譯[11-14],圖像修復[15-17]等。Liu 等[18]提出一種PairsGAN 結構來對織物缺陷進行生成。設計額外的缺陷鑒別器來提高缺陷區域的生成質量。Singh 等[19]提出基于GAN 的缺陷生成方法應用于工業材料表面缺陷圖像的生成。Yang 等[20]提出數據擴充算法Mask2Defect,注入先驗知識,產生不同特征的缺陷。方法主體基于編碼解碼的nested-Unet 來生成金屬表面缺陷圖像。胡文杰等[4]將生成模型Con-SinGAN 中加入了雙通道自注意力機制,并且引入了結構相似度來改進損失函數,提高了生成樣本中背景紋理的一致性。
Vaswani 等[7]首次使用Transformer 來完成圖像生成任務,該模型將圖像的聯合分布轉換為像素的條件分布,雖然該模型對圖像進行長期建模且感受野增大,但是卻無法保證生成圖像的分辨率。
概率擴散模型近幾年在圖像生成領域有著非常巨大的潛力。Choi 等[21]提出了迭代潛在變量細化 (iterative latent variable refinement, ILVR),這是一種指導 DDPM 中的生成過程以基于給定參考圖像生成高質量圖像的方法, 允許適應單個DDPM,而無需在各種圖像生成任務中進行任何額外的學習。Lugmayr 等[22]提出一種基于去噪擴散概率模型 (denoising diffusion probabilistic model,DDPM)的修復方法,采用預訓練的無條件 DDPM作為生成先驗, 可以為任何修復形式生成高質量和多樣化的輸出圖像。
與現有的圖像生成任務不同的是,以上4 種生成模型需要大量的訓練樣本才能保證模型的生成效果。由于小樣本情況下缺陷樣本數量極少,已有樣本數量無法完成模型的有效訓練,因此模型生成的圖像對缺陷檢測模型訓練不能起到有效的幫助。
針對上述問題,本文提出一種小樣本條件下的基于點集匹配的缺陷樣本圖像生成方法,在不對產品造成破壞的情況下對缺陷樣本圖像進行生成。即使在只有一張缺陷樣本的情況下也可完成對缺陷樣本數量進行擴充,且生成缺陷的形狀、大小、位置極大程度地由人對缺陷的需求來決定,滿足人們對于某種特征的需求。由于一致性點漂移算法(coherent point drift,CPD) 方法[23]對于特征點的非剛性變換精度更高,效率更快,因此在對圖像區域層面實現缺陷特征變換時可以使缺陷紋理細節保留更加完整,因此使用該方法可以更加高效地生成新的缺陷數據。本文從圖像變換角度出發,使用基于工業先驗知識來獲取生成缺陷模板,使用CPD 點集匹配方法生成具有與原缺陷形狀、紋理等特征相似且有效缺陷數據。使用圖像處理相關技術對生成的缺陷圖像進行優化,使其具有更加真實的圖像細節紋理表現[24]。
CPD 點集匹配算法是將一個點集準確映射至另一個點集之上的匹配方法。對狀態進行估計,將先前的估計結果匹配到新的點集來獲得物體上每個節點的位置。對于大多任務來說,引入CPD方法來檢查物體當前狀態與預先記錄的的訓練狀態之間的相似性,然后通過尋找最大相似性來確定進一步的操作步驟。該方法在醫學圖像處理中發揮了巨大的潛力,可形變配準一直是現代醫學圖像分析的一個具有挑戰性的工作之一[25]。同時點集匹配算法在遙感圖像的配準上也有著廣泛的用處,Ma 等[26]的工作使用局部線性變換的方式對遙感圖像進行配準,實現遙感圖像的剛性和非剛性的特征匹配,實現了遙感圖像領域的目標檢測、位姿校準等一系列配準任務。
本文提出的方法為基于CPD 點集匹配的缺陷樣本圖像生成算法,使用CPD 點集匹配方法來對缺陷圖像中缺陷部位的mask 圖以及目標缺陷部位mask 圖進行匹配操作。使用mask 圖既可以完整地將缺陷部位分離出來,也能有效地避免缺陷背景對實際缺陷的影響。因為當缺陷內部包含的特征與背景相同或相似時,無法判斷其是缺陷內部的特征還是缺陷以外背景上的特征。操作完成后使用其生成轉換矩陣來對缺陷圖像中的缺陷部位進行轉換,從而生成一個新的缺陷圖像。
本文使用的mask 圖是指具有缺陷部位輪廓形狀的二值圖,缺陷部位值為1,輪廓之外值為0,缺陷圖與缺陷部位輪廓二值圖如圖1 所示。

圖1 缺陷圖與缺陷部位輪廓二值圖Fig.1 Defect image and defect contour binary image
CPD 匹配算法要求等待匹配的作為輸入的兩個點集都是已知的,這對于缺陷圖像的生成是不合適的,此時缺少已知的生成缺陷圖像的點集作為算法匹配的輸入。因此我們從一幅真實的缺陷圖像中選取出缺陷部位的mask 圖并獲取點集作為算法輸入的其中之一,另一輸入則為具有與真實缺陷部位相似特征的mask 圖點集。由于基于神經網絡的輪廓提取方法往往需要大量的訓練數據,無法直接準確地獲取到缺陷部位的輪廓,因此在當前的小樣本前提下并不適用。所以無法直接對圖像缺陷部位進行變換。使用缺陷部位的mask圖以及目標圖像mask 圖作為匹配算法的輸入,從側面獲得真實圖像的缺陷部位的轉換矩陣,并將轉換矩陣應用到缺陷部位上進行形變,從而生成具有真實缺陷形狀與紋理的缺陷圖像。其中算法流程如圖2 所示。

圖2 算法流程Fig.2 The algorithm flow
圖像生成過程如圖3 所示。其中左側框圖內為由輸入到輸出所形成端到端的圖像生成方法。右側框圖內為缺陷轉換的示意圖。

圖3 點集匹配圖像生成過程Fig.3 Process of point set matching algorithm
特征圖庫包含的缺陷特征為已經存在的或者尚未發現的。其中已經存在的缺陷特征由相關行業專家從現有的缺陷數據集上將缺陷經過特征變換得到一定數量的缺陷特征mask 圖。同時可將普遍物品所建樣本中存在的缺陷遷移至珍貴物品樣本的表面,建立珍貴樣本隱患類缺陷的數據集。
為了使輸入圖像數據更加符合算法的實現要求,對圖像數據進行一定的預處理操作。使用圖像裁剪來獲得更加匹配的尺寸,獲取原缺陷圖像缺陷部位的mask 圖其對應的點集以及目標缺陷圖像指定特征的點集以得到算法的直接輸入。
指令引導的缺陷特征圖獲取,根據指令特征從特征圖庫中獲取相應的目標缺陷圖像特征mask圖。通過專家知識來建立基本的缺陷特征模板,根據文字指令傳達的對缺陷生成的具體需求來獲取對應模板,在模板的基礎上對缺陷特征進行一定的改變然后獲取缺陷部位的mask 圖。最終缺陷生成的特征與獲取的mask 特征直接相關。指令引導包括缺陷的位置、大小、形狀。
首先獲取原缺陷部位圖像以及目標缺陷圖像mask 圖的像素點坐標點集,分別從其中抽樣構建源點集與目標點集作為點集匹配算法的輸入。點集匹配算法將源點集中的坐標點集通過彈性形變逼近至目標點集,并產生一個記錄源點集位移量的轉換矩陣。然后通過未采樣點相鄰的采樣點的轉換矩陣加權求和獲得未采樣點所對應的轉換矩陣。將求得的未采樣點轉換矩陣與采樣點的轉換矩陣按照采樣點順序合并,即可得到整個缺陷部位的所有點集的轉換矩陣。最后將所有采樣點按照其對應的轉換距離進行偏移即可得到一幅轉換后的缺陷塊圖像。
后處理是為了使生成的圖像更加真實。由于生成的缺陷是由形變而來,當原圖像缺陷部位的尺寸小于生成的缺陷圖像時,內部會出現部分裂痕以及小型的空洞,這些都是形變過程中常有的情況。因此對裂痕以及空洞進行填補操作,使得缺陷圖像具有更強的真實性與更豐富的紋理細節,然后使用中值濾波對填充后的缺陷塊圖像進行平滑。
此外為了使填充后的邊界能有真實且合理的過渡,使用具有良好邊界過渡的指數函數[27]:
式中:C為缺陷邊界透明的寬度,以設定像素值個數為寬度。為了使指數函數的邊界能夠與缺陷部位透明邊界的寬度自適應,對指數函數的參數a進行限制操作,取a=時寬度與指數函數的邊界進行自適應對齊。
對于以C為寬度的缺陷邊界之內任一點,其透明度計算公式為
其中,Z1為 以C為寬度的缺陷邊界之內任一點的像素值,Z2為該邊界點所在位置的背景像素值。
此時,無論邊界寬度C為何值,都能與指數函數的邊界進行自適應對齊,使得邊界平滑有著更好的效果。最后將優化后的圖像直接合成至無缺陷的干凈背景圖像之上,即可生成全新的缺陷圖像。
本文使用公開數據集MVTec AD[28]。MVTec AD 是MVTec 公司提出的一個用于異常檢測的數據集,發布于2019 年。與之前的異常檢測數據集不同,該數據集模仿了工業實際生產場景,并且主要用于無監督異常檢測。根據本文算法特性,使用了MVTec AD 數據集中的Carpet、Leather、Tile、Wood 等4 類數據集作為本文方法中缺陷生成的樣本數據集。其中Carpet 數據中包含顏色污漬、孔洞、切口、金屬異物、織線異物5 種缺陷類型,Leather 包含顏色污漬、孔洞、切口、膠水滴、刺破5 種缺陷類型,Tile 包含裂縫、膠水帶、灰色污漬、油滴、磨損5 種缺陷類型,Wood 包含顏色污漬、孔洞、液體、劃痕以及混合種類5 種缺陷類型。算法生成缺陷后,將缺陷遷移至無缺陷背景時無需考慮邊界因素更易操作,且與背景有較高的契合度,生成的缺陷圖像整體具有更高的真實性,本文方法對生成平面物體缺陷具有更加獨特的優勢。
采用U-NET 作為缺陷圖像分割的檢測模型,Fast-R-CNN 為缺陷圖像檢測的模型。使用圖像生成領域常用的評價指標Frechet Inception Distance(FID)來對本文方法生成的圖片進行定量評估,該評價指標值越小,表示生成的圖像越接近真實圖像,生成的圖片質量越好。同時從視覺效果、生成圖像的時間消耗來進行多方位評估。
為了更好地評估該模型,本文采用了CycleGAN[13]、VQ-VAE[10]、Diffusion model[8]作為對比模型,以上3 種模型是圖像生成領域中較為常用且效果較好的圖像生成模型。本文按批次添加相同數量的由不同的方法生成的圖像,通過模型召回率與準確率的提升程度來表示生成圖像的質量,提升程度越大則說明質量越高,以顯示出本文方法生成的圖像對比其他方法所具有的優勢。
在本文實驗中輸入算法的圖片尺寸為256 像素×256 像素,匹配算法迭代次數為400。CycleGAN與VQ-VAE 方法的epoch 設為400,batch size 大小設為5。后處理模塊中用于邊界過渡的指數函數中的b取值為3。中值濾波平滑參數設為1。
驗證模型采用U-NET 與Fast-R-CNN,選擇1000 個epoch 在5 張基礎訓練集上進行訓練后,模型的準確率與召回率達到收斂。學習率選取0.000 1,batch size 選為1。并在此模型基礎上以5 張為一個批次逐次添加生成的圖像。
3.3.1 生成圖像可視化結果
本文方法與CycleGAN、VQ-VAE、Diffusion model 方法生成的結果圖像對比如圖4 所示。更多本文生成圖像如圖5 所示。其中圖5(a)~(d)為相同物體表面之間缺陷圖像生成,圖5(e)為跨種類缺陷合成。圖5(e)中第2 至第4 幅圖像為carpet 中顏色污漬遷移生成。

圖4 生成結果對比Fig.4 Comparisons of the generation results


圖5 本文方法生成結果圖Fig.5 Generating effect diagram of the method in this paper
3.3.2 生成圖像對模型的影響
在這一部分,我們嚴格模擬了小樣本場景下的圖像生成與檢測,選定原缺陷圖像數量為20張,測試缺陷圖像數量為40 張,我們使用MVTec AD 中除生成圖片以外的同類型數據集分別進行了分割和檢測模型的評估。選擇一定數量的真實圖像作為訓練集,逐量添加生成的缺陷圖像來研究生成圖像對分割、檢測模型的影響。其中數據集樣本分布表如表1 所示。

表1 數據集分布Table 1 Table of data set distribution
模型提升效果對比圖如圖6 所示,以Leather、Carpet 兩類為例,每幅圖中左右兩側折線圖分別為不同模型對相同圖像數據測試的召回率與準確率。以5 張為一批次添加生成數據,更加直觀地表現生成數據對模型帶來的影響。圖中第5 次為添加數量為20、25、30、35、40、45 的6 次均值,第7 次同理。

圖6 生成圖像對分割與檢測模型的召回率與準確率的影響Fig.6 Effect of adding generated images on the recall and accuracy of segmentation and detection models
同時給出了所選4 類數據集添加100 張生成數據后各模型的總提升率,如表2 所示。

表2 模型提升率Table 2 Model promotion rate %
由圖6 中對比結果圖可以看出,本文方法隨著樣本數量的添加,分割與檢測模型提升率最高、提升幅度最大。并且模型趨于收斂之時,模型的召回率與準確率對比3 種方法均為最高,由此可得本文方法生成的圖像具有更豐富的紋理與細節,與原圖像之間的差距更小,具有更好的生成效果。
我們對3 種方法生成的圖像分別計算了各自的FID,如表3 所示。本文方法與3 種對比方法相比均有著最低的FID 值,說明本文方法生成的圖像質量更高,真實度更加貼近真實圖像。

表3 每種方法的FIDTable 3 FID of each method
同時對比了各算法的平均生成時間消耗,以輸入圖像256 像素×256 像素為例,來顯示本文方法在算法效率上的優勢。如表4 所示,本文算法由于無需訓練模型,算法生成一張圖像的時間大大減少,與對比方法相比具有最少的耗時。

表4 圖像生成時間對比Table 4 Comparison of algorithm running time s
針對后處理對生成結果的改善做了消融研究,以顯示其對生成圖像的影響。以Leather 數據類型為例,添加100 張不同過程的生成圖像來觀察分割模型的召回率。消融研究結果如表5 所示。

表5 消融研究Table 5 Ablation research %
從視覺效果來看,本文方法生成的圖像具有更高的真實性且具有十分清晰的紋理細節,圖像細節也更加的豐富。VQ-VAE 模型生成的圖像異常模糊,且在圖像細節方面出現嚴重的失真,這是因為VQ-VAE 模型因降維、重構導致了一定程度的失真,以及模型本身生成離散型變量過程中導致梯度消失。CycleGAN 方法也由于訓練樣本的不足,生成的圖像效果與本文方法有一定差距。由于模型訓練效果存在浮動,因此采用均值法獲取評價指標。
表2 中評價指標為連續訓練5 次的平均值,其中加粗字體代表3 種方法中提升更高的結果。從圖中實驗結果可以看出,圖像的分割與檢測模型在召回率方面均得到一定程度的提升,并且由于不同種類的缺陷數據特征不同,生成的缺陷圖像對模型的提升結果也不相同。并且模型的提升率在樣本數量添加至50 之后逐漸趨于平緩,模型逐漸達到收斂狀態,樣本添加對模型的提升效果逐漸減小。
對于檢測模型,由于模型無法完全去除冗余候選區域,使得部分冗余候選區域發生重疊,因此模型的精度會隨著輸入數據的增加而發生下降,這是當前的Fast-R-CNN 模型仍存在的問題。從數據測試數據可以看出,本文方法生成的圖像對模型準確率的影響程度是3 種方法中最低的,并且召回率的提升程度確實最高的,由此可以證明本文方法所生成的圖像對模型的訓練有著更加有效的提升作用。最后本文方法生成的圖像相較于其他方法具有更小的FID 指數,說明本文方法生成的圖像具有更高的真實度以及更豐富的信息。
由表5 可得,添加3 個后處理步驟生成的圖像經過訓練得到的模型具有更高的精度。由于輸入CPD 算法的源點集與目標點集均為抽樣構建,直接生成的圖像包含大量空白像素點,因此該圖像訓練得到的模型精度較低。只添加平滑或填充操作生成的圖像不及兩者同時使用生成的圖像。若不進行填充僅平滑時,圖像內部過于平滑喪失大量紋理細節,鄰域填充能夠使圖像內部紋理具有更好的漸變效果。添加邊緣透明生成的圖像對模型分割與檢測提升較小是因為在圖像為256 像素×256 像素時,缺陷塊尺寸往往較小,難以為缺陷邊界設置合理的透明寬度。
通過視覺分析、實驗驗證以及圖像質量評測,本文方法生成的圖像均有著更好的效果。本文算法在只有一張樣本數據的情況下依然能夠對數據進行擴充,并且無需預訓練的模型來進行微調[17],具有更高的應用價值。
本文提出的基于點集匹配的缺陷樣本圖像生成方法生成的圖像不僅在視覺上有著良好的特征分辨能力,對模型分割與檢測能力的提升也最為突出,并且無需依賴大量的訓練樣本,對解決工業缺陷檢測中存在的小樣本問題具有得天獨厚的優勢。由于匹配算法的特性使得形變后的缺陷塊圖像存在裂痕或者空洞,由于裂痕以及空洞的填補使用的是相關鄰域像素的均值,因此仍存在一定程度的塊狀化,圖形的表面并不能像原始圖像一樣自然真實,若采用基于深度學習的裂痕、空洞填補方法會使得圖像具有更高的真實性。本文方法所生成的缺陷圖像,不僅缺陷的形狀大小以及紋理細節在極大程度上保存了下來,并且除缺陷部位以外并沒有做出任何改變,不會對缺陷部位的檢測產生不必要的影響。僅需一張缺陷圖像即可完成圖像生成,對生成數據數量、計算資源的消耗也極低,因此適用于多種平面類缺陷圖像的生成。