導讀
缺陷檢測是工業生產過程中的關鍵環節,其檢測結果的好壞直接影響著產品的質量。而在現實場景中,但產品瑕疵率非常低,甚至是沒有,缺陷樣本的不充足使得需要深度學習缺陷檢測模型準確率不高。如何在缺陷樣本少的情況下實現高精度的檢測呢?目前有兩種方法,一種是小樣本學習,另一種是用GAN。本文將介紹一種GAN用于無缺陷樣本產品表面缺陷檢測。
深度學習在計算機視覺主流領域已經應用的很成熟,但是在工業領域,比如產品表面缺陷檢測,總感覺沒有發揮深度學習的強大能力,近幾年表面缺陷的 相關研究主要是集中在各種借鑒主流神經網絡框架,從CNN到YOLO,SSD,甚至到語義分割的FCN相關論文,通過一些技術,對框架進行輕量化,對缺陷進行分類或檢測。不過,逃不出一個問題:一定要有缺陷樣本可供訓練,而且數量不能太少!當然,也有一些課題組使用稀疏編碼、字典學習、稀疏自編碼等對表面缺陷進行檢測,這類方法很有局限性,主要針對那些有周期性背景紋理的圖像,比如絲織品,印刷品等。國內外很多課題組、工業軟件公司都想開發出一些切合實際應用的算法軟件,在缺陷檢測領域,比較好的公司有:VIDI、Halcon等,聽說海康威視也在搞工業產品方便的算法研究。 論文標題:A Surface Defect Detection Method Based on Positive Samples 論文鏈接:https://doi.org/10.1007/978-3-319-97310-4_54 作者提出只依據已有的正常表面圖像樣本,通過一定的技術手段對缺陷樣本進行檢測,很好的將最近研究火熱的GAN應用于框架中,這一年,課題組的老師也一直討論這種方法的可行性,缺陷的檢測要不要有缺陷樣本,從稀疏自編碼,小樣本學習再到計算機視覺研究熱點之一的零樣本學習,得出結論:大多數工業產品表面缺陷檢測是需要缺陷樣本或者人為制作的缺陷樣本,論文雖然是沒有直接使用生產線上的缺陷樣本,但是通過算法人為的產生了缺陷樣本,并很好的融合和GAN在圖像修復領域的強大能力,整個框架的設計很巧妙。 文章思路:論文的整體思路就是GAN在圖像修復和重建方便具有很強大的能力,通過人為的去在正常樣本上“隨意”添加一些缺陷,訓練階段讓GAN去學習一個可以修復這些缺陷區域的網絡,檢測階段時,輸入一個真實缺陷樣本,訓練好的GAN會對其進行修復,再基于LBP可完成缺陷檢測。整個算法框架不需要真實的缺陷樣本和手工標簽,但是在框架中,人為的去產生(比如PS)一些缺陷區域。 通俗說: 作者利用GAN在圖像修復(重建)上的能力,在工業現場收集一些正常(無缺陷)樣本,人工PS一些缺陷,比如線條、斑點等。 訓練時,將PS的人工制作的缺陷圖像和原圖像做輸入樣本訓練GAN,得到一個具有圖像修復重建能力的網絡。 測試時,直接使用訓練好的GAN對采集到的圖像進行重建修復,如果樣本中中有缺陷區域,缺陷區域按照網絡設計,肯定需要修復,將修復后的圖像和原缺陷圖像使用LBP找出顯著差異區域即為缺陷區域。
01
主要內容
論文的主體框架思想是基于GAN網絡的結構。GAN 主要包括了兩個部分,即生成器 G與判別器 D。生成器主要用來學習真實圖像分布從而讓自身生成的圖像更加真實,以“騙過”判別器。判別器則需要對接收的圖片進行真假判別。在整個過程中,生成器努力地讓生成的圖像更加真實,而判別器則努力地去識別出圖像的真假,這個過程相當于一個博弈過程,隨著時間的推移,生成器和判別器在不斷地進行對抗,最終兩個網絡達到了一個動態均衡:生成器生成的圖像接近于真實圖像分布,而判別器識別不出真假圖像,對于給定圖像的預測為真的概率基本接近 0.5(這段話從李宏毅老師那引用的,致敬李老師)。
訓練階段
在訓練階段,模型采用一些圖像處理技術,人為的在正常樣本圖像上產生一些缺陷(示意圖中的紅色框模塊),使用由自編碼器構成的G模塊進行缺陷修復學習,學習的目標是與正常樣本之間的L1范數最小,通過一定數量的樣本訓練可以獲得有缺陷修復能力的G模塊。GAN用于圖像修復的一些資料可以參考[3][4],當然也可以參考論文里的參考文獻。 訓練階段 ?
測試階段
在測試階段,將上步驟訓練好的G模塊作為測試階段的圖片修復模塊,對于輸出的圖像樣本,假如存在缺陷區域,通過修復模塊G將得到修復后的圖像,與原缺陷樣本圖像一起作為LBP算法的輸入,通過LBP算法對其缺陷區域進行精確定位。 測試階段 ?
02
其他細節
2.1缺陷生成 在實際訓練中,論文作者手工生成一些缺陷樣本,如圖3所示,訓練網絡自動修復缺陷。另外作者也通過一些技術進行了樣本的擴充,比如加入高斯噪聲、隨機resize大小等。 缺陷生成 ? 3.2缺陷圖像重建 缺陷圖像重建部分主要的作用是:缺陷圖像重建后盡量和正常樣本一樣,作者在這部分在文獻[5][6]基礎上進行框架修改的,比如使用L1 distance作為衡量重建差異的目標函數。 ? 然后實驗中作者又發現只使用L1不行,圖像邊緣等細節可能會衡量不準確,又加入GAN loss來提升網絡的重建效果。 ? ? 最后,得到了下面目標函數。 ? ? 2.3缺陷檢測 因為使用GAN修復后的圖片和原始缺陷樣本圖片之間在像素級的細節上有一些差異,作者使用了前幾年在人臉領域應用比較好的LBP算法進行缺陷區域的檢測,這里不介紹算法的細節,示意圖如下。
03
實驗
文章對DAGM 2007數據集和織物密集圖像進行了驗證實驗。實驗表明,提出的GAN+LBP算法和有足夠訓練樣本的監督訓練算法具有較高的檢測準確率。實驗使用兩種類型的數據集,4.1是印花紋表面,4.2是織物表面。
4.1Texture surface 測試樣本 ? 結果 ? a.原始圖像,b.修復圖像,c.論文方法,d. FCN方法,e.真實標簽 ? 3.2 Fabric Picture 實驗中缺陷樣本的類型有五種。實驗樣本按背景分有三類,每類包含5個缺陷樣本,25個正常樣本。 測試樣本 ? 結果 ? a.原始圖像,b.修復圖像,c.論文方法,d. FCN方法,e.真實標簽 ? 本人水平有限,表述不清楚或錯誤的地方請指出,一起進步!??
-
軟件
+關注
關注
69文章
4921瀏覽量
87401 -
GaN
+關注
關注
19文章
1933瀏覽量
73286 -
生成器
+關注
關注
7文章
315瀏覽量
21003
原文標題:基于GAN的零缺陷樣本產品表面缺陷檢測
文章出處:【微信號:機器視覺沙龍,微信公眾號:機器視覺沙龍】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論