摘要:基於機器視覺的表面缺陷檢測和分類能夠大大提升工業生產的效率。利用足夠的已標記圖像,基於卷積神經網絡的缺陷檢測方法已經實現了現有技術的檢測效果。 然而在實際應用中,缺陷樣本或負樣本一般難以預先收集,而且手動標記須要耗費大量時間。本文提出了一種僅基於正樣本訓練的新型缺陷檢測框架。 其檢測原理是創建一個重建網絡,若是它們存在,能夠修復樣本中的缺陷區域,而後在輸入樣本和重建樣本之間進行比較,以指示準確的缺陷區域。 咱們將GAN和自編碼結合起來重建缺陷圖像,並使用LBP特徵進行圖像局部對比以檢測缺陷。在算法的訓練過程當中,只須要正樣本,無需缺陷樣本和手動標籤。本文利用織物圖像和DAGM2007數據集進行了驗證明驗。實驗代表,所提出的GAN + LBP算法和具備足夠訓練樣本的監督訓練算法具備較高的檢測精度。 因爲其無監督特性,具備較高的實際應用價值。node
關鍵詞:Positive samples, Surface defect detection, Autoencoder, GANpython
一、介紹算法
表面缺陷檢測在工業生產過程當中起着很是重要的做用。它對市場上最終產品的質量和聲譽產生重大影響。傳統上,表面缺陷由人類目視檢測,這是主觀的,昂貴的,低效的和不許確的。spring
機器視覺系統可能替代人類視覺,但在實際應用中也遇到許多問題和挑戰,特別是近年間用於區分缺陷和非缺陷的傳統圖像特徵是基於經驗手動設計的。傳統圖像特徵提取算法的特徵一般處於較低水平。在複雜的場景變化(例如照明變化,透視失真,遮擋,物體變形等)的狀況下,所提取的特徵一般不足以處理它們,所以許多算法在實際環境中不適用。現在,深度學習在提取圖像特徵方面表現的很是強大。卷積神經網絡在各類監督問題上都達到了高精度,如分類,目標定位,語義分割等。數據庫
Faghih-Roohi等人[1]使用深度卷積神經網絡在軌道表面進行缺陷檢測。它將軌道圖像分爲6類,包括1類非缺陷圖像和5類缺陷圖像,而後用DCNN對它們進行分類;劉等人[2]提出了一種two-stage方法,它將選擇性搜索的區域識別和卷積神經網絡結合。它檢測並識別所得區域,而後完成對膠囊表面缺陷的檢測; Yu等人[3]使用兩個FCN[4]語義分割網絡來檢測缺陷。其中一個是粗定位,另外一個是精定位。它能夠準確地繪製缺陷輪廓,而且在DAGM2007[12]的數據集上實現了比原始FCN更高的精度,而且能夠實時完成。微信
全部上述算法都使用監督學習來檢測缺陷。 在工業檢測的實際應用中須要考慮兩個問題:網絡
訓練樣本中缺乏缺陷/負樣本。在實際問題中,訓練樣本中的缺陷圖像老是較少,由於事先很難收集大量的缺陷樣本。所以,訓練過程當中的正樣本和負樣本的數量極不平衡,所以生成的模型可能不穩定甚至無效。在缺陷外觀多變且不可預測的場景中,監督學習的檢測方法一般沒法達到所需的精度。框架
手動標註代價高。在實際的缺陷檢測應用中,一般存在許多不一樣的缺陷,檢測標準和質量指標每每不一樣。這須要手動標記大量訓練樣本以知足特定需求,這須要大量人力資源。ide
針對上述監督學習算法實際應用中存在的問題,提出了一種基於正樣本訓練的缺陷檢測方法。訓練過程只需提供足夠的正樣本,無需提供缺陷樣本,也無需手動標記,能夠實現缺陷檢測的效果。函數
二、相關工做
2.1 基於正樣本的缺陷修復模型
咱們提出的模型的靈感來自一系列基於GAN[5]的修復和檢測模型。圖1所示是GAN原理的示意圖。生成器G接收高斯隨機信號以產生圖像,辨別器D接收真或假圖像,並輸出機率爲真的圖像。在發生器和鑑別器的連續對抗中,將改善所生成圖像的真實度。
Yeh等人[6]使用GAN進行圖像修復。首先,它使用完好陷圖片來訓練GAN模型。而後,當修復已知位置缺陷時,咱們優化生成器G的輸入z,以便咱們能夠找到最佳的z,使得y和缺陷圖像的正常部分最大程度接近。圖片y是恢復的圖像。 Schlegl等人[7]基於圖像重建實現缺陷檢測。首先,它使用中間層的重建偏差來完成重建模塊,事先不知道缺陷的位置。其次,重建圖像與原始圖像之間存在差別。若是差別很大,那就是缺陷。因爲重建和修復的錯誤,該模型的缺點直接經過差分方法來區分從新配置偏差和小缺陷是很困難的。
這兩個模型的明顯缺點是它們使用梯度優化來找到正確的z,從而進一步得到修復圖片。這個過程須要耗費大量時間,這是不切實際的。因此咱們但願使用autoencoder來複原缺陷圖像。
2.2 Autoencoder
Pix2pix[8]使用自編碼器與GAN配合解決圖像生成任務。它能夠生成清晰逼真的圖像。爲了在細節和邊緣部分得到更好的結果,pix2pix使用跳躍鏈接結構,如Unet[9]。該結構不適合去除整個缺陷,所以不在咱們的模型中使用。通常圖像生成任務是指給黑白圖片上色,將簡單筆畫轉換成照片等任務。咱們使用相似的結構來實現缺陷圖像到復原圖像之間的轉換。
在上述研究的基礎上,本文完成了如下工做:(1)咱們使用自編碼器來恢復圖像。 咱們能夠實時完成圖像修復功能,並經過GAN損失提升圖像質量;(2)咱們在訓練中使用人工缺陷,而且咱們不依賴於大量完整和真實的缺陷樣本和手工標註;(3)咱們使用LBP[10]來比較復原的圖像和原始的圖像,從而更準確地找到缺陷的位置。
綜上所述,咱們提出了一種缺陷檢測模型,該模型基於無需人工標註的正樣本進行訓練。
三、方案
本文提出的模型的通常框架如圖2所示。在訓練階段,x是從訓練集中隨機拍攝的隨機圖片。 C(x~|x)是一我的工製造缺陷模塊。其功能是自動生成缺陷樣本。 x~是它的輸出。EN和DE構成自動編碼器G。EN是編碼器,DE是解碼器,整個自動編碼器能夠看做GAN模型中的生成器。G的任務是找出有缺陷的圖片。D是辨別器,D的輸出是其判別該圖片爲正樣本的機率。
在測試階段,咱們將測試圖片x輸入到自動編碼器G中,得到復原的圖像y。而後使用LBP算法提取x和y的特徵,並比較x的每一個像素的特徵,其中x和y之間的特徵差別很大的位置即爲缺陷。
3.1 Objective
缺陷樣本在通過自編碼器後應該與原始正樣本相同。 這裏咱們引用pix2pix,使用L1距離來表徵它們的類似程度。 L1距離比L2距離更適合不太模糊得圖像。重構偏差定義以下:
若是重構偏差僅用做目標函數,則所得到圖像的邊緣會模糊而且細節丟失。 根據pix2pix中的實驗,引入了判別網絡,而且能夠添加GAN損失以改善圖像模糊問題並加強圖像的精確度。GAN的目標能夠表示爲:
所以,總體優化目標是找到生成網絡G的參數,並使其知足要求:
λ是平衡GAN損失和重構偏差的參數,其由實驗肯定。在某種程度上,GAN損失的引入將與重構偏差競爭,但它能夠改善圖像的質量和重要細節的描述。
3.2 網絡結構和人造缺陷
咱們提出的模型的網絡結構稱爲DCGAN[11]。在生成器和辨別器網絡中,添加了batchnorm層。 LeakyRelu層用於辨別器網絡,Relu層用於生成器網絡。編碼器結構大體相似於辨別器。
在咱們的模型中,自動編碼器只須要將原圖修復到最近接近的示例樣本,而不須要知道缺陷的具體形式。所以,當樣本附加足夠的隨機缺陷時,網絡將可以學習重建圖像的信息。在實際訓練中,咱們手動隨機生成塊,位置,大小,灰度值以及添加到圖片中的缺陷塊數量,如圖3所示,訓練網絡自動修復缺陷。
數據加強方面,咱們採用0.5和2之間的隨機調整,並在-180和180°之間添加隨機旋轉,併爲圖像添加隨機高斯模糊。
3.3 獲取缺陷的位置
因爲重建圖像的細節信息上存在一些偏差,咱們不該直接劃分重建圖像和原始圖像來直接獲得缺陷的位置。咱們使用LBP[10]算法進行特徵提取,而後搜索每一個像素周圍最匹配的像素。LBP算法是一種非參數算法,具備光照不變性的特色,適用於密集點。
得到有缺陷圖像的步驟如圖4所示。原始圖像x和修復圖像y由LBP算法處理獲得特徵圖x+和y+。對於x+的每一個像素點,搜索y+的對應位置處的最近的特徵值點,即該像素的點做爲匹配點。在兩個匹配點的特徵值之間進行比較,獲得絕對值。得到的值越小,則該點是缺陷的可能性越低。而後使用固定閾值二值化,即可以獲得缺陷的位置。
4 實驗
4.1 準備
本文使用織物圖片和紋理表面圖片來測試實驗模型的性能。包括3種織物圖片和1種紋理表面圖片。織物的圖像來自數據庫[13],紋理表面圖像來自DAGM 2007[12]的數據集。在本文中,咱們比較了監督語義分割模型[4]和本文提出的缺陷檢測模型。
開發環境以下:CPU:Intel®Xeon(R)E5620@2.40GHZ * 16,GPU:GTX1080,內存:16 G,python 2.7.12和mxnet。 咱們經過Adam進行訓練,並將初始學習率設置爲0.0002,並將批量大小設置爲64。
4.2 結論
咱們使用整張圖片的平均準確性做爲實驗中模型性能的評估指標。
紋理表面:紋理表面具備良好的一致性,所以他們在訓練集上有足夠的缺陷樣原本學習(表1和表2)。
圖5所示爲缺陷檢測結果的示例。
織物圖片:因爲真實場景中織物樣本的形式不一樣,訓練集中的缺陷樣本相對稀少。在該實驗中存在5種類型的缺陷,每類缺陷有5張圖片,還有25張正樣本。對於監督語義分割模型,每種形式的缺陷圖像中的3個用做訓練集,而且2用做測試集(表3和4)。
如圖6所示,它是一些缺陷檢測結果的例子。
實驗代表,在規則模式背景下,當標記缺陷樣本足夠時,咱們模型的準確性和監督語義分割接近,當帶有註釋的缺陷樣本不充足時,咱們的模型能夠得到更高的精度。在時間消耗方面,咱們的模型能夠實現實時檢測。
5 結論
在本文中,咱們結合自動編碼器和GAN,提出了一種基於正樣本訓練的缺陷檢測模型,無需人工標籤。 在訓練中,結合人工缺陷和數據加強方法,該模型能夠自動修復圖案規則的紋理圖像的缺陷,並經過比較原始圖像和修復圖像的特徵來得到缺陷的具體位置。能夠在織物圖像和紋理平面上實時檢測缺陷的位置。此外,當訓練缺陷實例不多時,咱們能夠得到比監督語義分割更好的結果。
若是背景過於複雜和隨機,則自動編碼器重建和修復圖像是很困難的。相關的缺陷檢測問題未來還有待研究。
致謝:這項工做獲得了國家天然科學基金深圳聯合基金支持的重點項目(Gran No. U1613217)的部分支持。
參考文獻:
1. Faghih-Roohi, S., et al.: Deep convolutional neural networks for detection of rail surface defects. In: International Joint Conference on Neural Networks. IEEE (2016)
2. Liu, R., et al.: Region-convolutional neural network for detecting capsule surface defects. Boletín Técnico 55(3), 92–100 (2017)
3. Yu, Z., Wu, X., Gu, X.: Fully Convolutional networks for surface defect inspection in industrial environment. In: Liu, M., Chen, H., Vincze, M. (eds.) ICVS 2017. LNCS, vol. 10528, pp. 417–426. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68345 4_37
4. Long, J., Shelhamer, E., Darrell, T.: Fully convolutional networks for semantic segmentation. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 3431–3440 (2015)
5. Goodfellow, I., et al.: Generative adversarial nets. In: Advances in Neural Information Processing Systems (2014)
6. Yeh, R., et al.: Semantic image inpainting with perceptual and contextual losses (2016). arXiv preprint arXiv:1607.07539
7. Schlegl, T., Seeböck, P., Waldstein, Sebastian M., Schmidt-Erfurth, U., Langs, G.:Unsupervised anomaly detection with generative adversarial networks to guide marker discovery. In: Niethammer, M., Styner, M., Aylward, S., Zhu, H., Oguz, I., Yap, P.-T., Shen, D. (eds.) IPMI 2017. LNCS, vol. 10265, pp. 146–157. Springer, Cham (2017). https://doi.org/ 10.1007/978-3-319-59050-9_12
8. Isola, P., et al.: Image-to-image translation with conditional adversarial networks (2017). arXiv preprint
9. Ronneberger, O., Fischer, P., Brox, T.: U-Net: convolutional networks for biomedical image segmentation. In: Navab, N., Hornegger, J., Wells, W.M., Frangi, A.F. (eds.) MICCAI 2015. LNCS, vol. 9351, pp. 234–241. Springer, Cham (2015). https://doi.org/ 10.1007/978-3-319-24574-4_28
10. Ojala, T., Pietikäinen, M., Harwood, D.: A comparative study of texture measures with classification based on featured distributions. Pattern Recogn. 29(1), 51–596 (1996)
11. Radford, A., Luke M., Chintala, S.: Unsupervised representation learning with deep convolutional generative adversarial networks (2015). arXiv preprint arXiv:1511.06434
12. HCI: Weakly Supervised Learning for Industrial Optical Inspection. https://hci.iwr.uniheidelberg.de/node/3616. Accessed 13 Nov 2017
13. Ngan, H.Y.T., Pang, G.K.H., Yung, N.H.C.: Automated fabric defect detection—a review. Image Vis. Comput. 29(7), 442–458 (2011)