1. 程式人生 > >基於語義分割和生成對抗網路的缺陷檢測演算法

基於語義分割和生成對抗網路的缺陷檢測演算法

一、缺陷型別

如下圖所示,缺陷型別主要有缺損和裂紋兩個型別。
在這裡插入圖片描述

二、語義分割網路

FCN網路

網上介紹FCN的教程很多,在這裡不再詳細講述,具體請參考連結:

https://www.cnblogs.com/gujianhan/p/6030639.html
https://blog.csdn.net/qq_36269513/article/details/80420363

在這裡插入圖片描述

語義分割網路

U-Net

U-Net的最初提出是為了醫學影象的分割,現在被越來越多的應用到其它領域。U-Net的思想還是很簡單,具體演算法介紹請參考:
https://blog.csdn.net/m_buddy/article/details/79399203


https://baijiahao.baidu.com/s?id=1600400677130320639&wfr=spider&for=pc

在這裡插入圖片描述

U-Net分割網路

DNS缺陷分割網路

在這裡插入圖片描述

DSN(缺陷分割網路)

借鑑FCN和U-Net網路,在這裡提出了一種新的語義分割網路,DSN(缺陷分割網路),如上圖所示。DSN思想和U-Net思想基本一致,不同的是中間採用殘差模組,來加深網路的深度,一般來說,網路越深,對特徵的提取越有效。影象資料在送進網路之前,需要對其進行歸一化。

分割影象標籤的製作

在這裡插入圖片描述

考慮了兩種不同的分割方式:一種是不保留背景的分割方式,即把缺陷區域標記為前景標籤,把背景區域以及工件的非缺陷區域統一標記為背景標籤,這種方式的好處是最終結果為一張二值圖,可以直接提取到缺陷的特徵;另一種為保留工件圖片的背景以及非缺陷區域,僅把缺陷區域標記為易於區分的畫素值,這種標記方法可以使結
果與原圖的對比更加直觀,且利用多種標籤可以實現對不同缺陷的分類,便於系統的擴充套件。充分考慮兩種分割方法的優缺點,認為後者更適合本系統,因為它能為系統提供更直觀的分割效果,便於人工監督,與此同時,系統的可擴充套件性對於技術的推廣至關重要。

由於目的是需要找到位於工件表面的缺陷區域,沒有必要關注工件中的非缺陷區域以及背景區域的畫素分類問題,所以在標記時只需要對缺陷區域畫素替換為特定的標籤值,而使其他區域畫素值不做改變。為了方便後續採用連通區域標記法進行後續判別,該標籤值必須易於和原圖區分。採用三原色之中的紅色,畫素值為(255, 0, 0 ),作為缺陷標籤,這個標籤對比原圖其他區域區分度明顯,可以使用簡單閾值分割法實現分割,是理想的缺陷
畫素標記值。與此同時,僅對缺陷進行標記能大大地減少人工標註的工作量,易於獲取大量的訓練樣本。

在這裡插入圖片描述

標註好的資料標籤

利用標註好的標籤就可以對語義分割網路進行訓練,這裡根據殘差模組的數量不同,提出了三種模型。訓練後的DSN模型分割效果圖如下所示。其中DSN-I、DSN-II、DSN-III分別對應6、9、12個殘差模組。
在這裡插入圖片描述

三、生成對抗網路

理論上直接使用DSN網路進行訓練,然後預測也是可以的。但是從下圖可以看出,缺陷分割網路對於面積較大的缺陷區域分割效果明顯,但是對於面積較小的缺陷往往容易忽略。另外,對於工件表面一些與缺陷有一定相似程度的自身紋理,缺陷分割網路很容易識別為缺陷區域然後進行標記,這對於演算法的實用效能有很大的影響。

通過分析缺陷分割網路的訓練過程,可以發現網路的最終目的在於是網路的輸出結果儘可能地接近人工標記圖,但是由於小缺陷在圖中所佔的畫素比例過低,在利用反向傳播演算法更新網路引數時,其對引數更新量的影響容易被面積較大缺陷區域的影響所覆蓋,小區域缺陷的特徵提取難以被很好的學習。與此同時,被錯誤標記的區域由於畫素往往較少,所以在訓練中也難以被正確區分。所以缺陷分割網路的一種可行的改進方法是在訓練時對生成的分割影象加入必要的監督手段,增強對於小面積漏檢區域以及錯誤標記區域的反饋,達到更好地訓練缺陷分割網路的目的。

生成式對抗網路模型是一種常用的利用監督手段提高網路資料處理能力的網路訓練手段。這一模型利用一個分類網路對缺陷分割網路的輸出進行判斷,判斷的結果對缺陷分割網路進行反饋,用於提高缺陷分割網路的影象處理能力。

在這裡插入圖片描述
關於生成對抗網路,網上介紹資料很多,詳細演算法請參考:https://www.jianshu.com/p/998cf8e52209

基於生成對抗網路和DSN的聯合訓練

在這裡插入圖片描述

如圖所示,DSN-GAN訓練模型的生成式模型為缺陷分割網路,與常見的條件生成式對抗模型的訓練方式相同,本文設計的網路也使用交替訓練的方式。

  1. 對於作為輸入的一組圖片(包含原圖和標記圖),首先訓練判別式網路,此時生成式模型引數固定。訓練的目的在於使判別式模型具有可以分辨輸入的影象屬於真實人工標記圖還是生成網路生成的影象,於是訓練過程如下:
  • 把輸入的一對圖片中的原始工件圖x和人工標記圖Y同時輸入到判別式網路D中,因為此時的Y是x的真實對應,所以計算判別式網路的損失函式時標籤應該為真,然後以反向傳播演算法更新判別式網路;
  • 把資料對中的工件原圖x輸入到生成式網路G中,得到缺陷分割生成圖G(x),然後x與G(x)同時輸入到判別式網路D中,此時的G(x)為生成影象,不是x的真實對應圖,所以計算判別式網路損失函式時,標籤應該設為假,同樣地以反向傳播演算法更新判別式網路。
  1. 然後訓練生成生成式網路,同樣地判別式模型維持引數不變,訓練過程如下:
  • 把資料對中原始工件圖x輸入到生成式網路G,得到缺陷分割圖G (x),計算G (x)與人工標記圖y的L1損失函式值(影象空間距離),記為 L G L_G ;
  • 把G (x)與原始工件影象x輸入到判別式網路D,由於訓練生成式網路G的目的是要求其能生成的分割圖接近真實標記圖,所以此時計算判別式網路的損失函式應該設標籤為真。經過訓練後的判別式網路具備判斷輸入影象是真實標記圖還是生成影象的能力,所以此時它的損失函式值能反映輸入影象G (x)與真實影象的相似程度,記為 L D L_D ;
  • 更新生成式網路G的引數時,把生成圖與真實標記圖的空間距離 L G L_G 與判別式網路計算所得的相似程度 L D L_D 同時作為反向傳播演算法的代價函式,公式表示為 L t o t a l L_{total} = L G L_G + λ L D λL_D ,,其中λ為判別式網路損失函式權重,用於決定判別式網路對生成式網路的監督反饋強度,當λ=0時,等價於傳統的語義分割網路訓練方法。最後利用反向傳播演算法更新生成式網路G的引數。
  1. 對於每一對訓練樣本,重複(1)(2)兩個步驟,直到所有訓練樣本都參與到訓練中,則完成一次訓練。當訓練次數達到設定量時,訓練結束。

判別式網路具體結構

在這裡插入圖片描述

判別式網路輸出的是一個1x16x16的feature map,值為1和0。pos標為全1,neg標為全0。