熊鑫州,肖子遙,朱肖磊,葉 沐
(上海工程技術大學 機械與汽車工程學院,上海 201620)
閥芯作為汽車噴油器的核心部件,主要的作用就是控制燃油在噴油器中的流動,但其在加工過程中由于工藝流程、加工環境等問題容易產生閥芯外表碎屑殘留、夾持力度過大導致外表夾傷等缺陷,而這些瑕疵就會直接影響燃油的流動,嚴重情形下還會直接造成噴油嘴通孔堵塞引發故障。原始的人工目檢存在成本高、檢測效率低、主觀性及經驗性較強等不足,基于機器視覺的無接觸式自動化檢測技術近年來在工業領域得到了廣泛應用[1-2]。郝淑麗等人[3]通過將待檢測金屬圖像與模板相減進行匹配,并通過灰度直方圖做特征提取,以SVM 做分類器實現對細小瑕疵的識別。董家順等人[4]根據鋼管外形特點設計了由線陣相機、線陣光源等組成的整體檢測平臺,并用改進的K-means 算法對預處理后的灰度圖片做正反求和,實現對缺陷的分割。Kan 等人[5]針對激光焊接缺陷,提出了線性回歸與SVM 相結合的分級識別方法。Honeywell 公司使用線陣CCD 相機來采集圖像,設計了一種基于句法模式識別理論的并行圖像處理機和分類算法的瑕疵識別系統[6]。以上所提檢測方法雖然能夠有效識別缺陷,但存在需要手動構建特征向量或無法實現在準確識別瑕疵類型的同時確定瑕疵的具體位置等問題。隨著深度學習技術的深入研究,基于深度學習的缺陷檢測技術也隨即成為了學界的一個熱門研究方向。Huang 等人[7]圍繞金屬制品提出了一種CNN 缺陷檢測結構,并利用對抗神經解決小樣本問題。Huang 等人[8]在級聯R-CNN 的基礎上,提出了一種新的多尺度特征對的特征提取方法,并將其應用于金屬罐頭產品的缺陷檢測。文獻[9-11]針對鋼材的外表面缺陷提出了不同的深度學習檢測模型。Xu等人[12]針對金屬表面缺陷,優化了原始YOLOv3[13]的模型結構,將原始模型的淺層特征與深層特征做連接融合。雖然以上這些深度學習模型能夠解決手動提取特征的缺陷,但是金屬表面的微小瑕疵卻會引發檢測準確率不高、缺陷區域無法識別或識別不精準等問題,直接影響后續的人工復核。
針對上述問題,本文提出了基于MM-Net 的閥芯外表面缺陷檢測模型,該模型由基于注意力機制的金字塔逐級多層次特征提取模塊、多尺度特征融合模塊等4 個模塊組成,多個模塊的組合在有效提取金屬外表面缺陷的同時實現高級語義特征與低級紋理特征的有效融合,并能在識別瑕疵類型的同時確定瑕疵在圖片中的位置,最后通過實驗,結果顯示了該模型的有效性與可行性。
為了有效確定閥芯外表面缺陷的位置以及有效識別缺陷的類型,本文基于金字塔多尺度特征融合、特征提純以及注意力機制提出MM-Net 模型,實現對缺陷以像素水平的檢測。該深度CNN 網絡主要包括4 個模塊,分別是:基于注意力機制的金字塔逐級多層次特征提取模塊、多尺度特征融合模塊、特征增強與提純模塊和特征提純與融合模塊。具體結構如圖1 所示。對此擬展開研究分述如下。

圖1 MM-Net 閥芯外表面缺陷檢測模型Fig. 1 MM-Net spool outer surface defect detection model
多級特征提取模塊為了獲取閥芯外表面圖片上更多需要關注的目標瑕疵的細節信息,能夠抑制其他無用背景信息的干擾,通過自動計算不同特征層、特征區域的重要程度分配不同大小的權重,特征層或特征區域越重要、所分配的權重就越大。本文采用基于注意力優化的ResNet50 特征提取網絡提取不同層次的閥芯外表面特征見表1。由表1 可知,該特征提取子網絡主要由1 個輸入層和5 個卷積塊組成。

表1 特征提取網絡Tab.1 Feature extraction network
首先,將預處理后的原始圖片輸入至特征提取網絡,尺寸為1 024×640×1(1 024,640,1 分別表示圖片的寬、高和通道數),再通過A-Conv1~A-Conv5 從下至上地提取包含不同紋理以及語義等信息的多尺度特征,A-Conv1~A-Conv5 均由基于注意力優化的殘差卷積單元(residual unit)組成(A-ConvX),每一個A-ConvX塊會對圖像做2 倍的降采樣,隨著特征圖尺度的下降,通道數會成倍增加,細節如圖2(a)所示。其中,殘差卷積單元由一系列卷積層、特征歸一化層(BN)和激活函數層(采用ReLU作為激活函數)組成,注意力機制單元由空間注意力模塊和通道注意力模塊組成,利用通道注意力模塊增加含有目標瑕疵特征圖的通道權重,利用通道注意力模塊增加特征圖上瑕疵所在區域的權重。

圖2 3 個模塊的結構設計Fig. 2 Structural design of three modules
對于通道注意力模塊,先分別通過全局平均池化(global average pooling,GAP)和全局最大池化(global max pooling,GMP)對輸入的殘差單元的特征FConvX進行空間方向的壓縮聚合,提取各通道的全局特征(特征圖大小為1×1×C),同時產生2 個向量:,再各通過2 個1×1 的多層感知器(MLP)分別對2 個向量做卷積,增加通道間的相關性,并將獲得的特征向量送入Sigmoid激活函數,將向量中的值映射到[0,1]之間,生成注意力向量,且兩注意力向量長度相等;最后,進行逐元素地對應相加求和合并,生成最終的通道注意力特征向量Fc。向量中的數值為對應通道的權重,值的大小顯示了輸入殘差單元不同通道特征的重要程度,數值越大說明與之相對應的特征通道信息越重要。Fc的計算方式如下:

其中,φ(·)AvgP,φ(·)MaxP分別表示全局平均池化與全局最大池化操作;“ ⊕”表示兩特征圖上的特征元素對應相加;σ(·)表示Sigmoid函數。
通道注意力模塊雖然能夠顯示不同通道特征的重要程度,但卻不能提供瑕疵在特征圖上的位置信息。因此,本文引入空間注意力模塊來輔助定位瑕疵特征的目標位置信息,并抑制特征圖上的其他背景及噪聲信息的干擾。在空間注意力模塊中,首先利用平均池化和最大值池化獲得輸入的特征圖上(FConvX)各像素點沿空間維度的均值和最大值,并組成2 個新的特征向量和,接著對兩特征通過相加進行求和,再通過Sigmoid函數,獲得最終的空間注意力特征Fs。Fs的值越大,說明特征圖上對應像素點信息對檢測越重要。Fs的計算公式可表示為:

其中,φ(·)Avg,φ(·)Max分別表示平均池化和最大池化。
由此得到的基于注意力機制和殘差塊的特征提取方式如下:

其中,“ ?”表示特征圖上對應像素點相乘。
由多層次特征提取模塊自上而下地生成含有不同上下文信息及空間分辨率的5 個特征圖Fj(j =1,2,…,5),由于部分閥芯的外表面瑕疵本身具有的像素信息較少,或瑕疵區域很小,在下采樣的過程中極易被丟失,為了準確地識別缺陷,有必要利用盡可能多的紋理以及語義信息。為此采用特征融合模塊(Feature merging module,FMM)對由多層次特征提取模塊自上而下所生成的含有不同上下文信息及空間分辨率的4 個特征圖Fj(j =2,…,5)進行進一步的融合(由于F0層含有的重要信息較少、所以特征融合時不做考慮),特征融合模塊如圖3 所示。通過融入使各級特征包含更多的缺陷細節信息和高級語義信息,便于缺陷的定位和細節恢復。4 個特征層可以用特征集F =(F2,F3,F4,F5)表示,FMM 會合并相鄰的特征圖并生成新的特征集F' =(),具體過程如下:

圖3 特征融合模塊Fig. 3 Feature fusion module
Step 1低分辨率的F5先通過線性插值進行2倍的上采樣,并利用大小為1×1 的卷積調整通道數,使得F5的通道數和分辨率與F4相同,再通過對應像素點相加實現F5與F4的融合,生成新的特征為F4'。
Step 2利用FMM 將F4'與F3融合得到特征,并用相同的方法得到特征F2'。
最高級別的特征含有豐富的語義特征,以及更強的分辨能力,同時高級的特征神經元具有更大的感受野,能夠獲得更多的語義信息,有利于對閥芯表面大型瑕疵的檢測。為了更加充分利用該層的特征信息,提高檢測精度,本文提出了基于子像素卷積(sub-pixel convolution)和注意力機制的特征增強和提純模塊(Feature Enhancement and purification module,FEP),FEP 的核心結構如圖4 所示。FEP的核心思想是利用子像素卷積實現對特征圖F5長、寬的改變,便于和各低維度特征能夠直接實現融合,并通過通道注意力模塊對由子像素卷積產生的特征圖做進一步提純,從而生成更有鑒別能力的特征。具體過程如下:

圖4 特征增強與提純模塊Fig. 4 Feature enhancement and refinement module
Step 1假設輸入特征圖的尺度為w × c × h,先通過子像素卷積改變輸入特征圖的形狀,用C1表示改變形狀后的特征圖,C1的尺度為2w ×2c ×h/4,為了使C1中更多有效信息得到保留,并抑制無效信息流動到下一階段,再次引入注意力機制。在注意力模塊中,將利用1×1 的卷積改變特征圖的通道數,使其和C1的通道數相同,隨后通過圖2(c)的注意力模塊獲得A1,再通過A1和特征圖的對應通道相乘獲得最終結果。此處需用到的數學公式為:

Step 2再采用與Step1 相類似的方法分別獲得
特征融合模塊雖然實現了特征的自上而下的融合,但是最高特征層只是將高級語義特征向下輸出,由于沒有下層紋理等細節信息的向上融合,就不能從其他特征中獲益,因而并不適用于對小目標的檢測場景。為了進一步融合高維特征與低維特征,使得所提取的特征更豐富,以及高層語義特征中能夠融合到低層紋理信息,本文采用特征提純與融合模塊(Feature purification and fusion module,FPF),如圖5 所示。

圖5 特征提純與融合模塊Fig. 5 Feature purification and fusion module
具體過程如下:
Step 1通過大小為3×3 的卷積核對低水平特征Flow做卷積的下采樣操作得到,卷積核每次在特征圖上的移動步長為2,卷積完成后特征圖的大小的通道數和高水平特征Fhigh相同。

其中,Αc與Αs分別表示通道注意力和空間注意力操作,“ *”為卷積操作。
為了整個網絡的參數能夠通過不斷迭代調整到最優值,本文采用二元交叉熵損失函數,即:

其中,y,分別表示樣本的真實值與預測值,N為一個batch size中的樣本數。
為了驗證本文所提出MM-Net 模型在閥芯外表面缺陷檢測的有效性與可行性,接下來通過實驗和對比分析進行驗證測試。驗證測試在實驗室的工作站上進行,工作站的配置細節見表2。

表2 工作站配置Tab.2 Workstation configuration
為了驗證本文所提模型的有效性,根據企業的實際需求將瑕疵類型分為:臟污、夾傷、外表粗糙、電化學腐蝕、劃傷五類,其中臟污、夾傷、電化學腐蝕、劃傷對閥芯本身的影響是不可逆的,而外表粗糙可通過打磨返修后二次使用。所采集的圖片分辨率為2 048×2 448,圖片格式為JPG 格式,位深度為8,通道數為1,各類別瑕疵圖片數目見表3。

表3 各類瑕疵樣本數Tab.3 The number of samples of various defects
由于原始圖片過大,如果直接輸入模型進行訓練和測試,會因為圖片分辨率過高影響訓練與推理速度,所以先利用OpenCV 的threshold、findContours等模塊對圖片做預處理提取ROI 區域。預處理后的分辨率為1 024×640,各類預處理后閥芯外表面的瑕疵圖片如圖6 所示。

圖6 預處理后的各類瑕疵特征Fig. 6 Various defect features after preprocessing
由于深度學習是基于大數據的,在訓練過程中需要大量的圖片提取足夠豐富的特征供整個模型學習,防止模型產生欠擬合。本次實驗采用旋轉、縮放、裁剪、Mosiac 及CutMix 對原始各瑕疵流類型的樣本量進行數據增廣,增廣后的樣本總量為35 000張,并按照9 ∶1 的比例劃分為訓練集及測試集。文中選擇以精確率(Precision)、召回率(Recall)和平均交并比(MIoU)作為最終模型檢測性能的評價指標。
模型訓練的初始學習率為0.001,學習率的衰減方式為余弦退火衰減,優化器為帶有動量的SGD 算法,其中的衰減系數設置為0.9,Batch size為8,整體模型共迭代800 個Epochs。
圖7 顯示了夾傷、劃傷兩種不同缺陷類型的檢測結果。從結果上看,MM-Net 均取得了良好的分割效果,較為準確地識別了缺陷在圖片中的位置。

圖7 基于MM-Net 的部分閥芯外表面檢測結果Fig. 7 Detection results of part of the outer surface of the valve core based on MM-Net
為了進一步驗證與評估本文所提檢測模型MMNet 對閥芯外表面缺陷檢測的性能,本文將MM-Net模 型 與 FCN、UNet、DeepLabv3、EncNet、SegNet、PSPNet 模型進行對比實驗,實驗結果見表4。

表4 基于不同模型的閥芯外表面缺陷檢測結果對比Tab.4 Comparison of detection results of spool outer surface defects based on different models
由表4 可以看出,在閥芯外表面缺陷檢測的檢測時間上除了FCN 的時間(0.065 s)大于本文所提模型MM -Net 的0.056 s 外,UNet、DeepLabv3、EncNet、SegNet 及PSPNet 的檢測時間均小于MMNet,主要原因是本文采用了基于attention 機制的模型特征提取模塊,在特征提取的同時需要完成對特征的提純,并采用多尺度特征融合模塊、特征增強與提純模塊及特征提純與融合模塊對特征做進一步的提純和融合,整體結構模型較UNet、DeepLabv3 等模型更為復雜,推理檢測時間更長。但在精度(Precision)上,MM-Net 比剩余模型中精度最高的PSPNet 模型高1.82%,召回率(Recall)和MIoU上MM-Net 均比剩余模型中召回率和MIoU最高的DeepLabv3 分別高出4.41%和4.23%,說明本文所提的MM-Net 算法提取到了更有效的閥芯外表面特征,多個模塊的組合增強了模型本身的學習能力,也更有效地實現了瑕疵特征的提純與融合。
針對現有閥芯外表面檢測方法所存在的缺陷,并根據閥芯外表面缺陷的類型與結構特點,本文提出基于MM-Net 的缺陷檢測方法,所提出的MMNet 由多個特征提取模塊、特征提純與融合模塊組合而成,多個模塊的組合也實現了對更精細、更豐富特征的提取,通過消融實驗驗證了將MM-Net 應用于閥芯外表面檢測的有效性,在檢測時間相近的情況下,MM-Net 在準確率、召回率、MIoU三個方面均表現出了優勢。但多個模塊的組合也使整體模型較為復雜,后續可圍繞整體模型的輕量化做進一步研究。