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