複雜場景下的複雜缺陷檢測方法–深度學習算法綜述
- 2020 年 3 月 2 日
- 筆記
來源:公眾號 機器視覺 授權
一、背景知識
隨着自動化技術的快速發展,在工業生產中很多需要人工操作的環節逐漸轉由機器完成,工業生產自動化也將越來越多的工人們從枯燥乏味的工作中解放出來,讓他們去發揮更大的價值。
產品表面缺陷檢測是工業生產中的重要環節,是產品質量把控的關鍵步驟,藉助缺陷檢測技術可以有效的提高生產質量和效率。但是由於設備及工藝等因素的影響,產品表面的缺陷類型往往五花八門,比如織物生產中方出現的污點、破損,金屬產品上的劃痕、裂紋、凹凸不平等各種不同類型的缺陷,如下圖所示。
單張圖片中的缺陷多樣且不同缺陷表現形式的也不相同,給缺陷的自動化檢測帶來了困難。
二、傳統算法
傳統的表面缺陷檢測算法結構通過圖像預處理得到便於檢測的圖像,隨後藉助統計機器學習方法來提取圖像特徵,進而實現缺陷檢測的目標。
圖像預處理通常包括直方圖均衡化、濾波去噪、灰度二值化、再次濾波幾部分,以得到前後景分離的簡單化圖像信息;隨後利用數學形態學、傅里葉變換、Gabor 變換等算法以及機器學習模型完成缺陷的標記與檢測。
上述傳統算法在某些特定的應用中已經取得了較好的效果,但仍然存在許多不足。例如:圖像預處理步驟繁多且具有強烈的針對性,魯棒性差;多種算法計算量驚人且無法精確的檢測缺陷的大小和形狀。而深度學習可以直接通過學習數據更新參數,避免了人工設計複雜的算法流程,並且有着極高的魯棒性和精度。
三、深度學習
目前,基於深度學習的缺陷檢測已經應用於金屬固件、布匹絲織物、建築裂紋、鋼筋裂紋等多個領域,並取得了不錯的成果。下面將結合具體案例介紹其實現方法。
3.1裂紋缺陷檢測[1]
建築材料(如磁瓦等)的外觀變化(如裂紋或腐蝕等)與其建築結構的安全性密不可分,而依靠檢察員視覺檢查的效果局限性大,相比之下,基於計算機視覺的結構損傷檢測更為可靠便捷。
本文使用Faster RCNN實現對圖像的准實時處理,其整體架構包括RPN和Fast RCNN兩部分,如上圖所示,RPN和Fast RCNN使用相同的CNN網絡從圖像中提取特徵,CNN的主要結構如下表所示。
名稱 |
功能 |
---|---|
卷積層 |
承擔CNN中的主要計算作用,通過過濾器輸出圖像的特徵。 |
最大池化層 |
通過減小輸入的空間大小執行向下採樣,輸出最大值。 |
全連通層 |
執行點積,在每個神經元的輸入上增加一個偏差。 |
Softmax層 |
分類器,輸出概率最高的類作為分類結果。 |
RPN的作用為提出候選目標,結構示意如圖所示,其實現流程包括:
- 輸入圖像後,利用CNN網絡得到特徵圖;
- 將特徵圖上每一個CONV滑動窗的特徵映射為向量並輸入Softmax和Regressor層中;
- 預測缺陷邊界框的坐標。
Fast RCNN的作用為對圖像中的缺陷位置進行定位和分類,其結構流程如上圖所示。
- 從輸入圖像中提取特徵圖並獲得感興趣區域(ROI);
- 在ROI池中,預先計算的興趣區域覆蓋在特徵圖上,提取固定大小的特徵向量;
- 將所得向量輸入全連接層,計算邊界框的位置並對框內對象進行分類。
3.2破損缺陷檢測[2]
在電氣化鐵路等工業中,有許多關係著安全的重要固件,這些固件的缺陷檢測十分重要。
本文作者利用深度卷積神經網絡(DCNNs)結合SSD,Yolo等網絡方法構建了一個從粗到細的級聯檢測網絡,包括固件的定位、缺陷檢測與分類,其實現流程如下圖所示。
- 緊固件提取
- 藉助在速度和精度方面都表現良好的SSD框架,對圖像中的懸臂節點進行定位;
- 基於Yolo框架的快速本地化架構,對緊固件進行定位。
- 固件缺陷檢測與分類
- 根據第二階段對緊固件的檢測來判斷缺陷;
- 再次藉助DCNN,通過4個卷積層對缺陷進行分類(分類網絡結構如下圖)。
DCNNs具有良好的魯棒性和自適應性,有利於檢測的快速進行,因此本方法在緊固件的缺陷檢測和分類中具有良好的應用前景。
3.3斑點缺陷檢測[3,4]
斑點缺陷檢測在紡織、木材、瓷磚等許多行業中都很常見,通常利用其紋理的一致性實現檢測的目的。近年來,利用深度學習視覺檢測技術對相關產業的表面缺陷檢測引起了廣泛關注。
作者採用結合圖像金字塔層次結構思想和卷積去噪自編碼器網絡
(CDAE)實現對布匹紋理圖像的缺陷檢測,其總體結構如下圖所示。
- 訓練階段
- 圖像預處理:光照歸一化、高斯金字塔下採樣和噪聲降噪等操作,避免光照等因素的影響;
- Patch提取:提取Patch對每個金字塔層的CDAE網絡進行訓練;
- 模型訓練:利用訓練Patch的重構殘差作為像素級缺陷預測的指標;
- 閾值確定:區分缺陷點與無缺陷點的重要參數。
- 模型測試階段:
- 圖像預處理:只需進行光照歸一化和高斯金字塔下採樣操作即可;
- Patch提取:提取Patch用於紋理檢測;
- 殘差貼圖構造:提取局部接受域在訓練後的模型中滑動,以對每一個像素進行預測;
- 缺陷分割:對每個金字塔層的殘差圖進行分割;
- 合成:將多個金字塔級別的信息合成,以提高缺陷檢測的魯棒性和準確性。
文章通過分析和實驗已經證明,充分利用無監督學習和多模態結果融合策略,可以提高缺陷檢測的魯棒性和準確性。
3.4劃痕缺陷檢測[5]
劃痕缺陷檢測通常用於金屬類產品的表面缺陷檢測中,隨着生活質量的提高,人們對產品的外觀完整性與美觀程度的要求也越來越高,因此精準地檢測到產品外觀的劃痕等缺陷在生產環節十分重要。
使用上圖所示的缺陷檢測體系結構,下面將針對檢測模塊展開介紹。
- CASAE架構
將兩個自動編碼器(AE)級聯在一起,這裡的AE結構是FCN框架的遷移使用,有一層層的卷積、反卷積和跳躍鏈接組成,其結構如下圖所示。
- 閾值模塊
連接到CASAE網絡末端的獨立模塊,用於進一步細化預測掩碼的結果。
- 缺陷區域檢測
通過語義分割獲得所有可能缺陷的區域,進一步使用blob分析以尋找準確的缺陷輪廓,最終從圖像中提取最小的外接矩形區域。
四、總結
本文參考前沿文獻,總結了部分當前主流的缺陷檢測實現思路。總的來說,使用基於深度學習的算法可快速準確地實現的缺陷檢測,且適用範圍廣能夠靈活地應用於建築、金屬固件以及布匹絲織物等眾多行業的生產過程中。
作者:北京矩視智能科技有限公司
參考文獻:
[1] Cha Y J et al. Autonomous structural visual inspection using region‐based deep learning for detecting multiple damage types[J]. Computer‐Aided Civil and Infrastructure Engineering, 2018.
[2] Chen J et al. Automatic defect detection of fasteners on the catenary support device using deep convolutional neural network[J]. IEEE Transactions on Instrumentation and Measurement, 2017.
[3] Mei S et al. An unsupervised-learning-based approach for automated defect inspection on textured surfaces[J]. IEEE Transactions on Instrumentation and Measurement, 2018.
[4] Mei S el al. Automatic fabric defect detection with a multi-scale convolutional denoising autoencoder network model[J]. Sensors, 2018.
[5] Tao X et al. Automatic metallic surface defect detection and recognition with convolutional neural networks[J]. Applied Sciences, 2018.