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