石 敏 喬昆磊 王素琴 朱登明③
(*華北電力大學控制與計算機工程學院 北京102206)
(**中國科學院計算技術研究所前瞻研究實驗室 北京100190)
(***太倉中科信息技術研究院 太倉215400)
橡膠密封圈是一種重要的工業用品,是多個行業的基礎零部件,被廣泛應用于石油化工、船舶、能源、航空航天、武器裝備等領域。在橡膠密封圈的生產過程中,生產工藝、模具、異物、磨損等原因使得密封圈表面產生破損、裂痕、斷裂等缺陷,影響密封性能,導致液壓、氣動系統出現漏水、漏油問題,嚴重時會導致液壓、氣動系統無法工作,并導致機械發生故障,因此密封圈在使用前必須進行缺陷檢測。
目前我國的密封圈檢測大部分依賴于人工檢測,在進行大規模的密封圈檢測時,這種方式不僅耗時長、精度不高、勞動強度大,其檢測結果還會受到個人主觀因素的影響。僅僅依賴人工檢測,檢測的效果與效率明顯不能適應現在越來越高的質量要求和越來越昂貴的人工成本,所以對于無人檢測系統的需求越來越迫切。
基于機器視覺的自動化缺陷檢測技術由于具有檢測速度快、人工成本低和檢測結果穩定可靠等特點,被廣泛應用于缺陷檢測領域。基于機器視覺的傳統檢測方法一般分為目標分割、人工特征提取和統計方法3 個步驟。但人工特征提取的好壞很大程度上依賴個人經驗,具有很大的不確定性,而且人工提取特征方法往往存在算法實用性和通用性不足的缺點。
本文研究的密封圈圖像中存在嚴重的亮度不均衡、干擾噪聲大、缺陷區域大小不確定以及缺陷特征與背景相似性高的問題,基于傳統機器視覺的技術很難提取到合適的缺陷特征,提取的缺陷特征不具備普適性,往往導致檢測效果不佳。
近年來,深度學習以其不需人工提取特征、精確度高、通用性強等特點在缺陷檢測領域中越來越受到重視。但深度網絡模型在訓練時,龐大的網絡參數需要龐大的數據量進行支持,訓練的數據集動輒就是數千張,甚至是數萬張照片。往往訓練樣本規模越大,訓練的效果就越好。然而在真實的生產環境中,獲取大量的缺陷產品是很困難的,而且對缺陷產品標注的人工成本較高,有些數據標注甚至還需要該領域內的專業人士才能完成。如何盡可能使用較少的訓練樣本實現較好的檢測效果成為了缺陷檢測領域的研究難點。
U-Net 網絡[1]是一個編碼器-解碼器類型的網絡模型,其通過對稱式的編解碼結構融合網絡中的高維和低維特征,能夠充分利用訓練集數據,在數據集較少的情況下依然表現良好。受U-Net 網絡的啟發,本文提出了一種基于編解碼結構的語義分割缺陷檢測算法,該檢測算法以編解碼結構網絡為基礎框架,并根據密封圈圖像的特點做出一系列的改進,以提升該網絡對密封圈缺陷區域的分割精度。本文的主要貢獻如下。
(1) 向編碼器端的各個卷積模塊注入不同尺度的圖像特征,以增加模型的多尺度信息,同時使用膨脹卷積,增加網絡的感受野并減少下采樣過程中圖像細節信息的損失,引入注意力機制以實現對缺陷區域的高精度分割。
(2) 將解碼器端輸出的不同尺度特征信息進行融合,實現了多種尺度的特征信息的互補,有利于將語義信息和位置信息融合在一起,提高模型對較小缺陷的分割精度。
已有的密封圈表面缺陷檢測是通過工人在光照條件下進行眼檢,由于工人長時間檢測導致的視覺疲勞,檢測精度隨之下降,具有不穩定性。隨著計算機視覺理論知識的不斷發展,現階段很多機器視覺方法在工業產品的表面缺陷檢測中發揮著越來越重要的作用,大幅提高了工業生產效率。
文獻[2]提出了基于機器視覺技術的橡膠密封圈凸點缺陷檢測方法,該方法利用中值濾波去除噪聲干擾,然后使用Canny 算法進行邊緣檢測,并重點對凸點缺陷的邊緣檢測進行了研究。文獻[3]使用Canny 算子對軸承密封圈圖像進行邊緣提取,并使用最小二乘法對密封圈的破損和毛刺缺陷進行識別。文獻[4]提出了一種橡膠密封件裂縫缺陷的定位方法,該方法將閾值分割算法和數學形態學細化算法進行結合,進而實現從復雜的密封件圖像中分割出裂縫區域并完成對裂縫缺陷的定位。文獻[5]搭建了橡膠密封圈的實驗平臺,實現了橡膠密封圈的表面缺陷及尺寸的檢測。文獻[6]提出一種利用平穩小波變換(stationary wavelet transform,SWT)的磁瓦缺陷檢測的方法,該方法在不同光照條件下,通過Sobel 操作去除不平坦的背景,然后分別采用索引低通濾波和非線性增強方法消除干擾,提高SWT產生的子帶目標,從而提取磁瓦缺陷特征。文獻[7]通過基于邊緣特征的金字塔匹配算法快速提取磁材邊界,再結合各向異性濾波方法進行缺陷分割,然后根據缺陷的幾何形狀進行分類,由于該算法比較依賴光照特性和磁片的缺陷形狀,具有一定局限性。
上述基于機器視覺的表面缺陷的研究工作,主要存在以下不足:需要人工提取缺陷的特征,缺陷特征提取的好壞很大程度上依賴個人經驗,具有很大的不確定性;由于密封圈圖像存在嚴重的亮度不均衡、干擾噪聲大以及缺陷特征與背景特征的相似性很高等因素,傳統的機器視覺技術很難提取到合適的特征向量,往往導致檢測效果不佳。
近年來,深度學習以其不需人工提取特征、精確度高、通用性強等特點在表面缺陷檢測中越來越受到重視。文獻[8]構建了一種用于圖像裂紋缺陷檢測的改進全卷積網絡模型,該模型對全卷積網絡(fully convolutional network,FCN)進行改進,取消了原來FCN 結構中全連接層的Droupout,增加網絡深度,并在網絡之后添加更高尺度的反卷積層來擴充局部精細細節。文獻[9]提出了一種應用深度卷積神經網絡的手機表面缺陷檢測方法,首先利用工業線陣相機獲取手機的原始表面圖像,接著通過預處理方法自動提取出分割圖像,進而在GoogleNet 網絡的基礎上設計了卷積神經網絡(convolutional neural networks,CNN),大大減少了參數的數量而不影響檢測速率。文獻[10]提出了用于檢測發光二極管(light emitting diode,LED)芯片圖像缺陷的LEDNet架構,該架構使用了30 000 張低分辨率圖像的數據集,提出的網絡遵循AlexNet 架構,使用類激活映射(class activation maps,CAM)代替全連接層。這種設計僅使用每個圖像標簽進行學習,并使用CAM 來定位缺陷。與傳統方法相比,所提出的LEDNet 顯著提高了LED 缺陷檢測率。
文獻[11]提出一種用于金屬表面缺陷的檢測方法,借助自編碼器在圖像重建上的性能,設計一種級聯自編碼器體系結構,用于金屬表面異常的分割和定位,再利用CNN 將分割后的缺陷區域做細分類。文獻[12]以Faster R-CNN 深度學習算法為算法框架,引入聚類理論來確定anchor 方案。通過對比k-meansII 和使用代表點的聚類算法(clustering using representative,CURE)生成anchor 對檢測結果的影響,提出了基于聚類生成anchor 方案的Faster R-CNN 的零件表面缺陷檢測算法,并引入多級感興趣區域(region of interest,ROI)池化層結構,減少ROI 池化過程中帶來的偏差,實現高效并準確檢測零件表面缺陷的目的。文獻[13]提出了一種基于視覺注意力網絡的工件表面缺陷檢測算法,該算法通過注意力模塊生成軟注意力模板,為卷積模塊構成的主干網絡的特征圖加權,增強缺陷區域特征并抑制背景區域特征,提升工件表面缺陷檢測的準確率。文獻[14]在輕量網絡SqueezeNext 的基礎上結合實例-批歸一化網絡(instance-batch normalization network,IBN-NET)結構,將淺層網絡的批標準化(batch normalization,BN)用一定比例的實例標準化(instance normalization,IN)替代,提出SqueezeNextIBN-a 和SqueezeNextIBN-b 模型,并用于金屬圓柱工件缺陷識別。
基于深度學習的缺陷檢測方法具有自動提取缺陷特征、精度高、通用性強的優點,但深度學習模型需要龐大的數據量進行訓練。然而在真實的生產環境中,獲取大量的缺陷產品是困難的,而且缺陷產品標注的成本較高。本文根據密封圈圖像的特點,設計一種具有編解碼結構的語義分割缺陷檢測算法,該算法能夠充分利用訓練數據集,避免特征信息的損失,在較少數據上表現良好,能夠有效地提升密封圈的分割精度。本文的主要工作如下。
(1) 在編碼器端增加多尺度的圖像特征輸入,使得網絡能夠獲取更廣泛的密封圈圖像語義特征,增加網絡的冗余信息以提高網絡對微小缺陷的分割精度。
(2) 在編碼器端使用膨脹卷積增加網絡的感受野范圍,減少在下采樣過程中的圖像細節信息的損失,同時在編碼器和解碼器之間引入注意力機制加強網絡對缺陷區域特征的獲取,提高模型對缺陷的分割精度。
(3) 在解碼器端將多尺度的特征信息進行融合,實現了多種尺度特征信息的互補,有助于將語義信息和位置信息融合在一起,提高模型對較小缺陷的分割精度。
針對密封圈圖像的特點,本文提出了一種基于語義分割的缺陷檢測網絡模型。該網絡模型的總體結構如圖1 所示,主要包括編碼模塊、解碼模塊和注意力模塊。編碼模塊主要用于提取密封圈的缺陷特征,解碼模塊用于精準定位缺陷區域位置,注意力模塊用于加強模型對密封圈缺陷區域信息的捕獲,抑制模型對密封圈背景或噪聲信息的獲取。針對密封圈圖像的缺陷特征,本文進行了以下4 個方面的設計。

圖1 整體網絡架構
2.1.1 多尺度圖像特征輸入
密封圈圖像的缺陷區域大小不一,有些缺陷區域較大,有些缺陷區域過小。密封圈圖像中缺陷區域尺度有著明顯的差異,為了解決多尺度下的缺陷區域的分割問題,通過在編碼器端輸入多尺度的圖像特征,以此增加模型的多尺度信息和冗余信息。多尺度信息和冗余信息能夠幫助網絡更好地分割出密封圈的缺陷區域。本文對輸入的密封圈訓練集樣本連續進行3 次平均池化操作(average pooling)獲取形似金字塔的多尺度密封圈圖像。在編碼器端,分別向4 個卷積模塊注入不同尺度的圖像。
2.1.2 增大模型感受野
由于密封圈圖像中較小的缺陷區域所占的像素數量很少,隨著模型的加深,卷積層和每一個下采樣層的操作都會使得較小缺陷區域逐漸減少甚至消失,使得較小的缺陷區域分割精度不高。網絡的編碼器具有4 個下采樣層,理論上小于24=16 像素的缺陷區域將無法分割出來。
為了解決圖像分割中下采樣層導致的圖像信息損失問題,文獻[15]使用膨脹卷積(dilated convolution)擴大卷積核的感受野,提升圖像分割任務的準確率。如圖2 所示,膨脹卷積與普通卷積相比,就是在普通卷積核中加入膨脹系數(dilation rate),對原圖像以膨脹系數減1 進行間隔采樣。對于膨脹系數為d、卷積核大小為k的膨脹卷積,其感受野計算公式為


圖2 普通卷積和膨脹卷積
膨脹卷積的主要優點是避免了下采樣操作所帶來的信息損失,增大了感受野范圍,獲取了圖像更多的特征信息,讓每個卷積層的輸出都覆蓋較大區域的信息,同時不會造成模型參數增多。
為了減少密封圈圖像在下采樣操作中所造成的缺陷特征損失,并增大網絡的感受野,使模型不漏掉任何一個小的缺陷,本文在編碼器端使用膨脹卷積層代替常規卷積層,編碼器端從上到下分別使用膨脹系數為1、1、2、2、3 的膨脹卷積層。
2.1.3 注意力機制
在對密封圈圖像的特征提取期間,某些特征可能有用,而其他特征可能是噪聲點或背景對象。視覺注意力機制[16]從大量信息中快速篩選出高價值信息,獲取每個特征通道的重要程度,然后依照重要程度突出有用特征并抑制用處不大的特征,將權重加權到每個通道特征上。
為了突出密封圈的缺陷特征,抑制噪聲和其他無關特征,本文引入注意力機制,提升網絡提取缺陷特征的能力。注意力模塊如圖3 所示,注意力模塊首先使用全局平均池化操作對輸入的特征圖進行壓縮,得到1×1×C的特征向量,再使用2 個全卷積層組成一個Bottleneck 結構去計算通道間的相關性。第1 個全卷積層將特征維度降低到輸入的1/4,然后經過ReLu 激活后通過第2 個全卷積層將特征維度增加到原始維度。并使用sigmoid 函數獲得每個特征通道的權重參數,最后通過乘法逐通道將權重參數加權到原始的特征圖,完成對輸入特征圖的重新標定。

圖3 注意力模塊圖
為了突出最重要的缺陷特征,提高密封圈缺陷區域的分割精度,本文使用注意力機制對來自編碼器路徑的特征映射通道進行加權處理,使得網絡可以更好地學習缺陷特征,提升密封圈缺陷區域的分割精度。
2.1.4 多尺度融合
編解碼網絡結構中一個比較明顯的問題就是在最后完成分割的時候,僅僅使用了最后一個卷積層的特征,信息比較單一,不足以包含豐富的細節信息。一些密封圈缺陷比較小,僅使用單一卷積層的特征,很難對較小缺陷區域精確分割。
在目標檢測領域中,文獻[17]提出了特征金字塔方法來檢測圖像中的較小目標。特征金字塔方法通過融合多尺度的特征信息,增強了圖像中的細節信息,使得模型可以根據豐富的特征信息檢測較小的目標。本文通過利用特征金字塔方法將解碼器的多尺度密封圈缺陷特征進行融合,如圖2 所示,將解碼器端每次經過上采樣和卷積操作后的特征圖調整為與輸入圖像相同的尺寸。具體為將解碼器端經過上采樣和卷積操作后的特征圖自下向上分別進行8、4、2、1 倍上采樣操作,然后采用逐像素相加的方式將上述經過上采樣的特征圖進行合并。實現編碼器端多尺度信息的融合,有助于將語義信息和位置信息融合在一起,提高模型對較小缺陷的分割精度。
密封圈圖像中的缺陷區域只占整幅圖像的5%左右,背景區域占95%左右,密封圈樣本數據集出現正負樣本不平衡的問題,導致模型很難學習到缺陷區域的特征。為了解決樣本數據集中正負樣本不平衡的難題,使模型對小缺陷更加敏感、收斂速度更快、泛化能力更強,本文使用FTLc(focal Tversky loss)損失函數[18]作為模型訓練的損失函數,FTLc損失函數的具體計算過程為

其中,r取值范圍為[1,3],在文中r取3,c為缺陷的類別,并且

在所有橡膠密封圈中,O 型橡膠密封圈因其幾何形狀簡單、生產方便、成本低廉等優點被廣泛使用。O 型橡膠密封圈具有防水、防油、防氣、減震等功能,它的質量好壞直接影響產品的性能和使用壽命,O 型密封圈的結構如圖4 所示。本文以O 型密封圈為例對密封圈的缺陷檢測進行實驗。

圖4 O 型密封圈實物圖
本文采用的數據集為工業相機對某密封圈制造廠生產的O 型密封圈產品拍攝圖。在標注數據之前,對圖片數據進行預處理,提取密封圈區域,排除非密封圈區域對檢測的影響并減少圖片尺寸以縮短檢測時間,提取的密封圈圖像尺寸為800 ×800 像素。由于密封圈的缺陷區域過小,為了使缺陷的特征更加顯著,本文將提取的密封圈區域圖像放大1倍(即1600 ×1600 像素),然后使用PhotoShop 軟件中的切片工具將圖像裁剪成800 ×800 像素的圖像,并篩選含有缺陷區域的圖像作為訓練輸入樣本。通過使用LabelMe 軟件對密封圈樣本進行標記,標注后對得到的JSON 文件進行處理獲得標注圖像,密封圈圖像與標注圖像如圖5 所示。

圖5 原圖與缺陷標注圖
本文原始數據集含有378 張密封圈缺陷樣本。數據集的樣本不足會導致卷積神經網絡出現過擬合現象,影響模型對密封圈缺陷區域的分割精度。為了解決數據集樣本不足的問題,本文對訓練樣本進行數據增強,通過對數據集樣本旋轉一定的角度、水平翻轉擴充數據,最終獲得含有700 張圖像的數據集,其中隨機劃分600 張用作訓練數據集,100 張用作測試數據集。
本文實驗的硬件環境為:Ubuntu 18.04 LST64位操作系統,32 GB 內存,顯卡是NVIDIA Tesla V100,處理器是Intel(R) Core(TM)i7-7700K CPU 3.60 GHz。軟件環境采用Keras 深度學習框架。模型采用Adam 優化器更新參數,學習率設置為0.0001,訓練與測試的批尺寸取2。
在評估分割性能的時候,背景像素作為負樣本,缺陷像素作為正樣本。兩類像素比例差距較大,背景像素占有較大的比例。因此,在本文的分割算法中,使用了精確率(Precision)、召回率(Recall)和相似性系數(Dice similarity coefficient,Dice)評估模型性能,各個指標的具體計算公式為

式中,TP(true positiv)表示真正例,即被模型預測為正的正樣本;TN(true negative)為真負例,即被模型預測為負的負樣本;FP(false positive)為假正例,即被模型預測為正的負樣本;FN(false negative)為假負例,即被模型預測為負的正樣本。Dice系數表示模型預測的像素集合與標簽圖的像素集合的相似性;Precision表示被檢測出的真正缺陷像素占被檢測到的缺陷像素的比例,也稱為查準率;Recall表示被檢測出的真正的缺陷像素占所有缺陷像素的比例,也稱為查全率。
為了說明本文針對密封圈圖像特點而設計的策略可以有效提高算法的分割性能,本文做了多組對比實驗來說明多尺度輸入(Multi-Input)、注意力(Attention)機制、膨脹卷積(Dilation-Conv)和多尺度融合(Multi-Fusion)可以在不同程度上提高算法的分割性能。多種改進策略的分割算法的比較如表1所示,表中N1~N5 分別表示加入不同模塊的語義分割模型。

表1 多種改進策略分割算法的比較
由表1 中的N1 和N5 實驗數據可知,加入多尺度融合操作使得模型Dice值提升5.5%,Precision值提升6.4%,Recall值降低1.3%;由N2 和N5 可知,加入多尺度輸入操作使得模型Dice值提升5.2%,Precision值提升5.1%,Recall值降低0.2%;由N3 和N5 可知,加入注意力機制使得模型Dice值提升2.2%,Precision值提升0.8%,Recall值降低1.2%;由N4 和N5 可知,加入膨脹卷積使得模型Dice值提升5.5%,Precision值提升0.2%,Recall值提升1.1%。
由以上分析可知,加入多尺度輸入、注意力機制、膨脹卷積和多尺度融合等方法可在Recall值減少較低幅度下有效提升Dice和Precision值,實現缺陷區域較為準確的分割,有效減少對背景區域的誤判。
為了更好地驗證本文所提算法的性能,將所提出的算法與經典算法U-Net、FCN-8s、FCN-32s、Seg-Net、PSPNet 以及Tabernik 等人[19]于2019 年提出的缺陷檢測網絡模型進行比較,不同分割算法的比較結果如表2 所示。

表2 不同分割算法的比較
由表2 可知,本文提出的分割算法取得最高的Dice值為93.5%,以及最高的Precision值為92.4%,均高于U-Net、FCN-8s、FCN-32s、SegNet、PSPNet 和Tabernik 提出的缺陷檢測網絡模型所取得的Dice值和Precision值。在Recall值上,本文所提出的分割算法略低于U-Net。
為了更加直觀地對不同算法的分割性能進行比較,本文對密封圈圖像在不同分割算法下的預測圖與標準圖進行比較。如圖6 所示,SegNet、FCN-8s 以及Tabernik 提出的缺陷檢測網絡模型均出現欠分割問題,只能分割出部分缺陷區域,未能實現對缺陷區域的完整分割。而U-Net 和PSPNet 則存在過分割問題,易把密封圈的背景區域和紋理區域誤檢為缺陷區域。與以上算法相比,本文算法能夠對缺陷區域進行較為精確的分割,并能較大幅度減少將背景區域和紋理區域誤檢為缺陷區域的概率,具有更少的誤檢率。本文算法在背景較為復雜的密封圈缺陷區域分割任務中,仍具有較好的分割效果,在保證一定的高準確率的同時,具有更少的誤檢率。

圖6 不同分割算法效果圖
為了驗證本文所提出的算法模型的泛化性與可推廣性,本文在公共數據集KolektorSDD上對本文所提算法模型進行檢驗。KolektorSDD 數據集是由電子換向器圖像構成的,該數據集一共包括399 張電子轉向器圖像,其中52 張存在缺陷,剩余347 張無缺陷,圖像的分辨率為1408 ×512 像素。將KolektorSDD 數據集隨機劃分為訓練集和測試集,其中訓練集共含有319 張圖像,其中有缺陷圖42 張,無缺陷圖277 張;測試集共含有80 張圖像,其中10 張有缺陷,70 張無缺陷。
在保持實驗環境和模型參數設置不變的情況下,使用公共數據集KolektorSDD 進行實驗,并將本文算法與U-Net、FCN-8s、FCN-32s、SegNet、PSPNet進行比較,不同分割算法的比較結果如表3 所示。

表3 KolektorSDD 數據集下不同分割算法的比較
由表3 數據可知,本文提出的分割算法取得最高的Dice值即97.5%,以及最高的Precision值98.2%和最高的Recall值96.2%,均高于U-Net、FCN-8s、FCN-32s、SegNet、PSPNet所取得的Dice、Precision和Recall值。實驗結果顯示,本文所提算法在KolektorSDD 數據集上表現良好,具有較好的可推廣性和泛化性。
針對密封圈的缺陷區域過小以及缺陷特征與密封圈背景特征相似性較高等造成的密封圈缺陷檢測困難等問題,本文提出了一種基于語義分割的密封圈缺陷檢測方法。一方面,向編碼模塊輸入不同尺度的密封圈圖像,以此增強模型的多尺度信息和提高模型對不同尺度特征的適應能力。此外,使用膨脹卷積層替換常規卷積層,增大模型的感受野,使得模型不漏掉較小的缺陷,提高模型對較小的缺陷區域的分割精度。另一方面,通過注意力機制的級聯網絡結構,加強模型對密封圈缺陷區域信息的捕獲,抑制模型對密封圈背景或噪聲信息的獲取,最后在解碼器端融合不同尺度的特征信息,有效地將語義信息和位置信息融合,實現多個特征信息的互補。實驗結果表明,在對密封圈缺陷區域的分割實驗中,與其他方法相比,本文所提出的方法能夠有效地對較小的、邊緣不清晰的密封圈缺陷進行分割,并能避免將密封圈的背景區域和紋理區域誤檢為缺陷區域。本文算法的不足是算法的Recall值略低于U-Net網絡,這可能是因為本文使用的數據集樣本較少或密封圈中的缺陷過小以及與背景的對比度較低等因素。在后續的工作中將考慮該算法的不足之處,進一步提高算法的性能和召回率。