1. 程式人生 > >金屬表面缺陷檢測

金屬表面缺陷檢測

文章題目:《Automatic Metallic Surface Defect Detection and Recognition with Convolutional Neural Networks》

連結https://pan.baidu.com/s/1W8r_gG3s2DIbAVgXV8DBpw

前言:祖略的過了一下文章,內容也不像作者說的那樣很創新,算是基於FCN網路的改進吧,FCN網路是端到端的語義分割網路,輸入一張影象,吐出來一張語義分割的結果影象。缺陷檢測論文現在好多都是藉助FCN做的遷移應用到實際的工業現場等,比如國外知名的VIDI軟體、國內一些檢測軟體。回到本文,文章內容很簡單,框架很好理解,實驗做的比較充分。將一張畫素很高的缺陷影象輸入一個語義分割網路(論文裡的分割只對缺陷區域進行塗色,意思是訓練樣本集只標記處缺陷區域,沒有分類,也不標記背景),再將語義分割後的缺陷區域進行CNN分類。

論文的最後,說論文的結果比FCN好,那是肯定的,FCN經典網路是端到端將語義意義的區域進行分割,並沒有做太多的細化分割,比如點狀缺陷和線狀缺陷區域的分割;作者在網路後面記住CNN對缺陷分割後的區域進行分類,效果肯定是好於FCN的。

摘要:

論文中的框架分為檢測和分類兩部分,對於檢測,作者提出一種級聯自編碼結構(cascaded autoencoder (CASAE))用於缺陷的定位分割,級聯自編碼網路將輸入缺陷影象轉化為基於語義分割的影象;對於缺陷分類,將分割後的缺陷區域使用CNN進行分類。網路結構在工業缺陷資料集上應用的很成功。

下圖是一個工業現場採集的影象,可以看出缺陷特徵種類很多。在缺陷檢測研究方面,作者總結的很棒,可以認真去看一下。

關於表面缺陷的檢測,在過去主要有兩種流派:基於傳統影象處理方法和機器學習方法,這兩種方法建立在手工特徵和淺層機器學習。 傳統的影象處理方法利用區域性異常所反映的原始屬性來檢測和分割缺陷,進一步分為結構法、閾值法、光譜法和基於模型的方法。

作者引用了大量傳統影象處理的文獻和淺層機器學習方法的文獻,比如LBP+SVM等;最後,在近幾年的研究上,大家開始跟著主流做起深度學習在缺陷檢測應用上的研究。這裡自己做一個關於缺陷檢測目前的幾大類總結:1.基於改進CNN做的缺陷樣本集的分類;2.基於經典的影象檢測框架做的缺陷檢測,比如RCNN、yolo、SSD等;3.也有一些少量的研究人員開始使用GAN,效果不是很好。 

Figure 1. Challenges of detecting surface defects of metallic components. (a) Defects with various
shapes and sizes, (b1) defects with ambiguous edges and low contrast, (b2) defects with different
background, (b3) fiber, (b4) dust, (b5,b6) scratches.

 下面內容我就把檢測模組和分類模組的網路結構簡單介紹一下,需要了解細節的可以看文章連結。論文網路模型的整體框架如下:

Figure 2. The pipeline of the proposed metallic surface defect inspection architecture. (a) Original
image, (b) defect segment, (c) defect location, (d) cropped results, and (e) classification.


作者是使用高畫素的工業相機直接從現場獲得影象,論文中有提到影象畫素很高 2720 × 2040 × 3 pixels。

檢測模組

在檢測模組作者使用了兩個AE級聯(電路中的串聯)在一起,單個的AE結構如下,很明顯這個結構就是一層層的卷積接上一層層的反捲積和跳躍連結,是FCN框架的遷移使用。作者在這裡也對比使用了幾個反捲積的方法,如下下圖的atrous convolution。

 分類模組

對語義分割後的缺陷區域進行分類,輸入是分割後的區域原圖,輸入常規的CNN網路進行分類,框架和網路引數如下圖:

 實驗部分

作者從工業現場收集50張影象,30張作為訓練樣本,影象有點少,做了一下資料增強,得到3000張訓練影象;在最後分類時,通過缺陷分割模組獲得432張有缺陷的影象,進行分類。最後,作者將演算法拿到兩個公共資料集DAGM2007和SEM上進行了測試,效果很好。