背 景
表面缺陷檢測在工業(yè)生產(chǎn)中起著非常重要的作用,基于機器視覺的表面缺陷檢測可以極大的提升工業(yè)生產(chǎn)的效率。隨著近年來深度學(xué)習(xí)在計算機視覺領(lǐng)域的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在諸多圖像任務(wù)上都取得了顯著的效果,然而這些方法往往是需要大量標(biāo)注數(shù)據(jù)的有監(jiān)督學(xué)習(xí)。
在實際的工業(yè)場景中,缺陷樣本往往是難以收集的,而且標(biāo)注的成本也十分巨大。針對上述有監(jiān)督學(xué)習(xí)在實際應(yīng)用中存在的問題,本文提出了一種僅基于正樣本訓(xùn)練的缺陷檢測方法。訓(xùn)練過程中只需要提供足夠的正樣本,無需缺陷數(shù)據(jù)和手動標(biāo)注,也可以取得較好的缺陷檢測效果,具有較高的應(yīng)用價值。
1 介 紹
機器視覺表面缺陷檢測在工業(yè)生產(chǎn)中扮演著重要的角色。傳統(tǒng)都是直接人工肉眼鑒別是否存在表面缺陷,不僅耗費人力且不能準(zhǔn)確識別缺陷。
機器視覺可以替代人眼進(jìn)行檢測,但在實際應(yīng)用中仍面臨很多挑戰(zhàn),尤其是近幾年的傳統(tǒng)圖像算法解決方案基于經(jīng)驗手工設(shè)計,算法存在精度較低且不夠魯棒的問題,特別是在諸如打光、形變、失真和遮擋等復(fù)雜的場景中。現(xiàn)今深度學(xué)習(xí)在特征提取方面有著亮眼的表現(xiàn),在諸多有監(jiān)督的任務(wù)上都取得了優(yōu)質(zhì)的表現(xiàn),例如分類、目標(biāo)檢測和圖像分割。
同時,近年來也涌現(xiàn)了不少用卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行缺陷檢測的方案,其中最常見的是直接利用目標(biāo)檢測網(wǎng)絡(luò)如Faster RCNN或者SSD對缺陷進(jìn)行定位和分類。也有先用目標(biāo)檢測進(jìn)行粗定位,然后用FCN進(jìn)行語義分割得到精確定位的方法,這種方法可以得到缺陷的精準(zhǔn)輪廓,但是這些方法都屬于有監(jiān)督的學(xué)習(xí),在實際的工業(yè)應(yīng)用中存在以下問題:
缺少缺陷樣本:在實際應(yīng)用中,用于訓(xùn)練的缺陷樣本往往是非常稀少且難以獲取的。因此在訓(xùn)練過程中正負(fù)樣本是非常不均衡的,這極大的限制了模型的性能,甚至導(dǎo)致模型完全不可用。在缺陷外觀多變的場景下,有監(jiān)督學(xué)習(xí)的方法往往無法滿足正常的生產(chǎn)需求。
人工標(biāo)注成本高昂:實際的工業(yè)缺陷檢測場景中,通常存在許多不同種類的缺陷,檢測的標(biāo)準(zhǔn)和質(zhì)量指標(biāo)往往也不同。這就需要人為標(biāo)注大量的訓(xùn)練數(shù)據(jù)來滿足特定需求,這需要付出大量的人力資源。
2 相關(guān)工作
2.1基于正樣本的修復(fù)模型
本文的靈感來自于一系列基于對抗生成網(wǎng)絡(luò)GAN的檢測和修復(fù)模型。GAN的基本框架如圖1,主要包括生成器G和判別器D兩個部分。生成器G接收從一個高斯分布中隨機采樣的信號來生成圖片,判別器D接收真實圖片和生成器生成的虛假圖片并區(qū)分它們。生成器和判別器在訓(xùn)練時不斷對抗從而改善生成圖片的質(zhì)量。
之前有學(xué)者使用GAN來進(jìn)行圖像修復(fù)。首先使用正常的無缺陷圖片來訓(xùn)練GAN,然后再修復(fù)已知位置的缺陷時,我們優(yōu)化生成器的輸入z,獲得最優(yōu)的z來讓重建圖片y和缺陷圖片的正常部分最大程度的接近。另外一個基于圖像修復(fù)的缺陷檢測算法的做法是用中間層的重建誤差來重建圖像而無需知道缺陷的位置,通過重建圖片和原始圖片的差異來定位缺陷。
2.2 自編碼器
Pix2pix 用自編碼器和GAN聯(lián)合解決圖像遷移任務(wù)。它可以生產(chǎn)清晰而真實的圖像。為了獲得質(zhì)量更佳的細(xì)節(jié)和邊緣,pix2pix使用了類似unet的跨層鏈接。該結(jié)構(gòu)并不利于去除整個缺陷,因此我們的模型沒有使用這個結(jié)構(gòu)。一般自編碼器用于圖像風(fēng)格遷移等任務(wù),如給黑白圖像上色或者將照片轉(zhuǎn)化為簡筆畫等。我們用自編碼器完成圖像重建的任務(wù)。
在上述工作的基礎(chǔ)上本文完成了以下工作:
(1)使用自編碼器重建圖像。我們通過加入GANloss來讓生成的圖像更加真實。
(2)在訓(xùn)練時人工加入缺陷,不依賴大量的真實缺陷數(shù)據(jù),也不用人工標(biāo)注。
(3)使用LBP算法來對比重建圖片和原始圖片,從而定位缺陷。
3 方 案
3.1基本框架圖
本文提出的模型的基本框架如圖2
圖2. 網(wǎng)絡(luò)框架
C(x~|x)是設(shè)計的一個人工制造缺陷的模塊,在訓(xùn)練階段,通過該模塊將訓(xùn)練集x人為的加上缺陷得到缺陷圖片x~。EN為編碼器,它將輸入的缺陷圖片x~映射為一個潛在變量z ,DE為解碼器,它將潛在變量z重新建模成圖片y。
EN和DE共同組成一個自編碼器,作為GAN中的生成器,其任務(wù)便是讓輸出的圖片y不斷接近正常的圖片x。判別器D用來判斷其輸入是來自于真實的訓(xùn)練集還是生成器的輸出圖片。通過對抗訓(xùn)練,生成器G便擁有了修復(fù)缺陷的能力。
在測試階段,將之前訓(xùn)練好的自編碼器G作為修復(fù)模塊,將測試圖片x輸入到自編碼器G中,獲得修復(fù)后的圖片y。修復(fù)圖片y和原圖作為輸入一起用LBP算法來提取特征并對比,從而定位缺陷。
3.2損失函數(shù)
缺陷樣本在經(jīng)過自編碼器G重建后應(yīng)該與原始的正常圖片相同,本文參考pix2pix,用L1距離來表征它們的相似程度。
然而在實驗中發(fā)現(xiàn),如果僅僅使用L1 loss來作為目標(biāo)函數(shù),獲取的圖像邊緣會變得模糊而且會丟失細(xì)節(jié)。本文通過加入判別器D,用GAN loss來改善圖像質(zhì)量,提升重建效果。
因此最終的優(yōu)化目標(biāo)如下:
3.3網(wǎng)絡(luò)結(jié)構(gòu)細(xì)節(jié)
本文的網(wǎng)絡(luò)結(jié)構(gòu)參考了DCGAN。在生成器和判別器中增加batchnorm層。在判別器中使用LeakyRelu激活函數(shù),在生成器中使用Relu激活函數(shù)。
在本文的模型中,自編碼器只需要將圖片修復(fù)成最接近的樣本圖片,并不在乎缺陷的具體形式。在實際訓(xùn)練過程中,人為的隨機生成不同位置、大小、灰度和數(shù)量的缺陷塊到圖片中,如圖3。
圖3. 人工缺陷示意圖
數(shù)據(jù)增強方面,本文在0.5到2之間進(jìn)行尺度變換,并隨機加入-180和180°的旋轉(zhuǎn)以及隨機高斯模糊。
3.4定位缺陷
由于重建后的圖片和原始圖片在細(xì)節(jié)上存在一些誤差,我們不能直接將原始圖片和修復(fù)圖片做差分來得到缺陷位置。本文使用LBP算法來進(jìn)行特征提取,并匹配每個像素。具體流程如圖4。
圖4. 定位缺陷的過程
將原始圖像x和修復(fù)圖像y輸入到LBP模塊,提取出特征圖x+和y+。對于x+的所有像素點,在y+中對應(yīng)位置搜索最匹配的特征點,從而對齊了特征。最后逐個對比匹配點之間的特征值,通過設(shè)置一個閾值來篩選,便可以得到缺陷的位置。
4實驗效果
本文在DAGM表面紋理數(shù)據(jù)集和紡織物數(shù)據(jù)集上做了實驗來檢驗性能。并與FCN算法進(jìn)行比較。使用平均精度來作為衡量標(biāo)準(zhǔn)。
4.1表面紋理缺陷
紋理表面有著較好的一致性,所以在訓(xùn)練集中有足夠的缺陷樣本來學(xué)習(xí)。
表1. 表面紋理數(shù)據(jù)集的測試信息
訓(xùn)練集 | 本文:400張無缺陷圖FCN: 85張帶缺陷圖+400張無缺陷圖 |
測試集 | 85張帶缺陷圖 |
圖像尺寸 | 512*512 |
表4. 紡織圖片數(shù)據(jù)集的測試結(jié)果
模型 | 平均精度 | 耗時 |
FCN(8s) | 81.6833 | 31.2ms |
本文 | 94.4253% | 22.3ms |
4.2紡織物圖片
由于真實場景中的紡織物的不同樣式,訓(xùn)練集中的缺陷樣本很少。在實驗里共有五種缺陷,每種缺陷有五張圖片,還有25張正樣本。對于語義分割模型,每種缺陷圖像中3張作為訓(xùn)練集,2張為測試集。
表3. 紡織圖片數(shù)據(jù)集的測試信息
模型 | 平均精度 | 耗時 |
FCN(8s) | 98.3547% | 80.3ms |
本文 | 98.5323% | 52.1ms |
表4. 紡織圖片數(shù)據(jù)集的測試結(jié)果
模型 | 平均精度 | 耗時 |
FCN(8s) | 81.6833 | 31.2ms |
本文 | 94.4253% | 22.3ms |
實驗表明,在規(guī)則的背景下,當(dāng)標(biāo)記缺陷樣本足夠時,本文的精度接近有監(jiān)督的語義分割模型,當(dāng)缺陷樣本不足時,本文的模型要強于語義分割。而且本文提出的模型速度更快,可實時運行。
5 結(jié) 論
本文提出了一種結(jié)合自編碼器和GAN的缺陷檢測算法,無需負(fù)樣本和人工標(biāo)注。在訓(xùn)練時通過數(shù)據(jù)增強和人為加入缺陷,該模型可以自動修復(fù)規(guī)則紋理圖像的缺陷,并定位缺陷的具體位置。在訓(xùn)練集中標(biāo)注缺陷較少乃至沒有的情況時,本文的模型可以取得比有監(jiān)督模型更好的結(jié)果。
編輯:jq
-
解碼器
+關(guān)注
關(guān)注
9文章
1143瀏覽量
40718 -
編碼器
+關(guān)注
關(guān)注
45文章
3639瀏覽量
134429 -
GaN
+關(guān)注
關(guān)注
19文章
1933瀏覽量
73298 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24689
原文標(biāo)題:基于正樣本的表面缺陷檢測
文章出處:【微信號:jiqishijue2020,微信公眾號:機器視覺自動化】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論