劉榮光, 朱傳軍, 成佳聞, 王林琳
(1.湖北工業(yè)大學(xué)機(jī)械工程學(xué)院, 湖北武漢 430068; 2.華中科技大學(xué)數(shù)字制造裝備與技術(shù)國家重點實驗室, 湖北武漢 430074)
產(chǎn)品質(zhì)量一直是社會各界廣泛關(guān)注的問題。 《中國制造2025》 提出“質(zhì)量為先” 作為制造強(qiáng)國戰(zhàn)略的基本方針, 《中國機(jī)械工程技術(shù)路線圖》 則強(qiáng)調(diào)未來二十年的制造業(yè)發(fā)展要更加注重 “保障產(chǎn)品質(zhì)量”。 表面缺陷作為產(chǎn)品質(zhì)量的常見問題之一, 一方面影響產(chǎn)品的外觀和舒適度, 造成不必要的經(jīng)濟(jì)損失; 另一方面也會影響產(chǎn)品性能 (如表面摩擦力等), 導(dǎo)致產(chǎn)品使用過程存在安全隱患。 因此, 如何快速準(zhǔn)確地識別產(chǎn)品表面缺陷, 成為了產(chǎn)品質(zhì)量管理中亟待解決的關(guān)鍵問題之一。 缺陷檢測是工業(yè)上非常重要的應(yīng)用, 常見的產(chǎn)品表面缺陷檢測方法主要有人工缺陷識別、 超聲波缺陷識別、 漏磁缺陷識別, 由于缺陷多種多樣, 傳統(tǒng)的檢測方法很難做到對缺陷特征進(jìn)行完整的建模和遷移, 復(fù)用性不大、 要求區(qū)分工況, 這會浪費大量的人力成本, 且檢測周期長、 需要進(jìn)行復(fù)雜的特征設(shè)計等諸多局限性。
基于機(jī)器視覺的產(chǎn)品表面缺陷識別是指利用計算機(jī)視覺技術(shù)對包括表面刮痕、 破損、 磨損等在內(nèi)的缺陷圖像進(jìn)行識別, 從而獲得缺陷類別的過程, 屬于典型的圖像識別問題。 常見的基于機(jī)器視覺的表面缺陷識別方法以機(jī)器學(xué)習(xí)算法為主, 主要包括支持向量機(jī)[1]、 人工神經(jīng)網(wǎng)絡(luò)[2]、 貝葉斯網(wǎng)絡(luò)[3]等模型。 隨著深度學(xué)習(xí)在特征提取和定位上取得更好的效果, 越來越多的學(xué)者和工程人員開始將深度學(xué)習(xí)算法引入到缺陷檢測領(lǐng)域中。 基于深度學(xué)習(xí)的缺陷識別方法與傳統(tǒng)的缺陷識別方法最大的不同在于: 前者可以通過模型實現(xiàn)端到端的特征自動化提取。 KHUMAIDI 等[4]提出了一種基于高斯核的CNN 模型, 通過使用高斯核模糊圖像從而提升模型的泛化效果。 ZHANG 等[5]同樣將CNN 網(wǎng)絡(luò)應(yīng)用到了焊接缺陷的識別問題中。ZHONG 等[6]將Hough Transform 與CNN 相結(jié)合, 并將其應(yīng)用到了高鐵軌道檢測中。 KRIZHEVSKY 等[7]提出了AlexNet 卷積神經(jīng)網(wǎng)絡(luò)。 Visual Geometry Group提出的VGG 系列模型[8], 在AlexNet 的基礎(chǔ)上構(gòu)建了一個更為龐大的神經(jīng)網(wǎng)絡(luò)模型, 通過高達(dá)十幾層的網(wǎng)絡(luò)結(jié)構(gòu), 達(dá)到更為準(zhǔn)確的識別效果。 李勇等人[9]提出一種基于改進(jìn)BiFPN 的電樞外觀缺陷檢測方法,大大減少了將缺陷件誤判為良品的概率。 熊紅林等[10]提出一種基于多尺度卷積神經(jīng)網(wǎng)絡(luò)(MCNN)圖像識別模型, 將MCNN 模型應(yīng)用在玻璃表面缺陷識別中, 有效提高了缺陷檢測的準(zhǔn)確率。 MEI 等[11]提出了一種無監(jiān)督缺陷分割方法, 采用了卷積自編碼器實現(xiàn)了缺陷主體與背景的準(zhǔn)確分割, 從而有效避免了復(fù)雜的人工設(shè)計過程。 蘇佳等人[12]提出一種基于改進(jìn)YOLOv4 的YOLO-J 的PCB 缺陷檢測算法, 有效提升了PCB 缺陷檢測的準(zhǔn)確率和速度。 田雪雪等[13]針對增材制件內(nèi)部缺陷檢測, 提出一種內(nèi)部缺陷埋藏深度的定量檢測方法, 有效縮小了檢測誤差。 羅兵等人[14]提出一種基于機(jī)器視覺的噴嘴圖像缺陷檢測方法, 有效提高了檢測精度和速度, 滿足工業(yè)生產(chǎn)線對噴嘴檢測準(zhǔn)確性和實時性的要求。
本文作者基于卷積神經(jīng)網(wǎng)絡(luò)的表面缺陷識別問題展開研究, 通過分析問題特性, 改進(jìn)VGG13 網(wǎng)絡(luò)模型, 在不同的特征提取層之后分別增加CBAM注意力機(jī)制模塊改進(jìn)卷積神經(jīng)網(wǎng)絡(luò), 實現(xiàn)表面缺陷的準(zhǔn)確識別, 使其具有更好的圖像識別效果, 并將改進(jìn)后的模型引入到?jīng)_壓件表面缺陷識別問題中,從而提升沖壓件表面缺陷識別的準(zhǔn)確性。 在數(shù)據(jù)處理方面, 對所采集的沖壓件缺陷數(shù)據(jù)集進(jìn)行擴(kuò)充,進(jìn)一步提高模型的泛化能力, 使得整個模型可以滿足新缺陷數(shù)據(jù)的需求, 有效實現(xiàn)沖壓件表面缺陷的準(zhǔn)確識別, 確保產(chǎn)品質(zhì)量, 避免表面缺陷問題造成的不必要損失, 為生產(chǎn)過程中的智能決策和調(diào)控提供準(zhǔn)確的參考依據(jù)。
VGG 模型是常見的卷積神經(jīng)網(wǎng)絡(luò)模型之一, 通過依次采用多個3×3 卷積, 模仿出更大的感受野[8]。 VGG 與淺層的CNN 模型相比有著更強(qiáng)的特征學(xué)習(xí)和表達(dá)能力, 在更加復(fù)雜的缺陷識別問題中, 可以學(xué)習(xí)到有用的特征信息, 從而有效地提高識別的效果。 許多學(xué)者的研究以及預(yù)實驗結(jié)果均表明; 以VGG 作為基礎(chǔ)模型, 在分類問題中有著良好的效果。 文中采用VGG13 網(wǎng)絡(luò)模型進(jìn)行實驗,網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示, 由10 個卷積層(Conv) 和3個全連接層(FC) 構(gòu)成。 卷積層中所有的卷積核大小均為3×3, 所有的池化核大小為2×2, 且每2 次卷積之后進(jìn)行1 次池化 (Pool), 均為最大池化。VGG13 前2 層每層卷積核個數(shù)為64, 第三、 四層每層卷積核個數(shù)為128, 第五、 六層每層卷積核個數(shù)為256, 第七、 八層每層卷積核個數(shù)為512, 第九、十層每層卷積核個數(shù)均為512。 最后是3 個全連接層(FC) 的連接, 原全連接層節(jié)點個數(shù)分別為4 096、 4 096、 1 000。 由于文中所使用的數(shù)據(jù)規(guī)模較小, 為降低參數(shù)量以加快訓(xùn)練過程, 將前2 個全連接層的節(jié)點個數(shù)減少至2 048, 文中使用的缺陷數(shù)據(jù)集共8 類, 最后一層全連接層個數(shù)為8。 網(wǎng)絡(luò)中最后一層分類層采用Softmax 激活函數(shù), 其余均采用ReLU 激活函數(shù)。
圖1 VGG13 模型網(wǎng)絡(luò)結(jié)構(gòu)示意Fig.1 Schematic of the network structure of the VGG13 model
CBAM (Convolutional Block Attention Module) 將通道注意力機(jī)制模塊和空間注意力機(jī)制模塊結(jié)合起來[15], 是一種端到端的通用模塊。 CBAM 模塊示意如圖2 所示, 通過通道注意力機(jī)制得到包含權(quán)重的新的特征圖后, 再由新的特征圖空間位置像素信息得到空間當(dāng)中的分布, 最終得到特征圖。 CBAM 克服了通道域中全局平均池化將空間信息轉(zhuǎn)換為通道信息過程中信息丟失的缺點。
圖2 CBAM 模塊Fig.2 CBAM module
通道分支是給定一個輸入F∈RH×W×C,H、W、C分別為特征張量的高度、 寬度和通道數(shù), 同時經(jīng)過全局平均池化(GAP) 和全局最大池化(GMP) 操作分別得到不同的空間語義描述算子, 通過一個共享感知機(jī)將2 個通道注意力特征向量以相加的方式進(jìn)行融合, 最后經(jīng)過激活函數(shù), 得到通道注意力向量Mc∈Rc×1×1。 與SEnet 不同的是, 在CBAM 中增加了并行最大池化層, 可以提取到更全面和豐富的高層特征,詳細(xì)描述如式(1) 所示:
其中:σ代表激活函數(shù);W0、W1代表全連接層的權(quán)重。
空間分支是將通道分支輸出結(jié)果沿著通道維度,經(jīng)過全局平均池化(GAP) 和全局最大池化(GMP)操作, 分別得到2 種不同的通道特征描述算子, 將二者拼接, 然后經(jīng)過一個卷積核大小為7×7 的卷積操作, 再經(jīng)過激活函數(shù), 最后得到空間注意力向量Ms=R1×H×W。 詳細(xì)描述如式(2) 所示:
其中:f7×7代表卷積操作, 卷積核大小為7×7。
此實驗在武漢某制造車間采集的沖壓件缺陷數(shù)據(jù)集上進(jìn)行。 沖壓件缺陷數(shù)據(jù)集包含8 種常見缺陷類別, 分 別 為 點 坑 (65 張)、 斷 裂 (81 張)、 劃 痕(243 張)、 孔洞 (149 張)、 拉傷 (179 張)、 麻點(93 張)、 毛刺(58 張)、 起皺(154 張), 每張缺陷圖像大小為376 像素×376 像素, 圖3 所示為沖壓件8種缺陷圖像示例。 在實驗過程中, 將沖壓件缺陷數(shù)據(jù)集分為訓(xùn)練集、 驗證集、 測試集三部分, 比例為6 ∶2 ∶2。 以測試集正確率作為評價模型指標(biāo), 實驗平臺由某云服務(wù)器提供: CPU10 核Intel(R)Xeon(R)Gold 5218R CPU@2.10 GHz, 內(nèi)存為50 GB, GPU 為RTX 3090?1, 顯存為24 GB, 所有模型單獨運(yùn)行10次取 平 均。 鏡 像 采 用PyTorch1.10.0、 Cuda 11.3、Python3.8 深 度 學(xué) 習(xí) 框 架 以 及Numpy、 Matplotlib、OpenCV 等深度學(xué)習(xí)庫, 在模型中每次訓(xùn)練的批次(Batch Size) 大小為32, 訓(xùn)練100 個Epoch, 采用Adam 優(yōu)化器, 學(xué)習(xí)率為0.001, 損失函數(shù)為交叉熵?fù)p失函數(shù), 反向傳播更新模型的參數(shù)。 在訓(xùn)練過程中, 對所有網(wǎng)絡(luò)的前2 個全連接層隨機(jī)失活一半的神經(jīng)元, 防止模型過擬合。
圖3 沖壓件缺陷圖像示例Fig.3 Example of defects in stamping parts: (a) point pit; (b) fracture; (c) scratch; (d) hole; (e)strain; (f) pitting; (g) burr; (h) wrinkling
數(shù)據(jù)增強(qiáng)是擴(kuò)充數(shù)據(jù)樣本一種有效的方法, 可以使有限的數(shù)據(jù)產(chǎn)生更多的數(shù)據(jù), 增加了數(shù)據(jù)集的多樣性, 提高了模型的魯棒性。 卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)以萬計, 訓(xùn)練好一個網(wǎng)絡(luò)需要大量的數(shù)據(jù)集, 由于現(xiàn)實條件的制約, 采集的數(shù)據(jù)樣本數(shù)量有時較少, 達(dá)不到深度學(xué)習(xí)的條件, 或者無法覆蓋所有情況, 因此需要通過數(shù)據(jù)增強(qiáng)手段來擴(kuò)充圖像的數(shù)量。 尤其是缺陷圖像, 在工業(yè)生產(chǎn)過程中更加難以采集。 通過數(shù)據(jù)增強(qiáng)由有限的數(shù)據(jù)產(chǎn)生了更多變種, 使原始數(shù)據(jù)的表示形式更多, 一定程度上降低了模型對數(shù)據(jù)中某些屬性的依賴。 因此, 在小樣本數(shù)據(jù)集輸入網(wǎng)絡(luò)模型訓(xùn)練之前, 可以通過數(shù)據(jù)增強(qiáng)方法來擴(kuò)大樣本集數(shù)量, 提高模型的泛化性能。 傳統(tǒng)的數(shù)據(jù)增強(qiáng)方式有隨機(jī)翻轉(zhuǎn)、裁剪、 變形縮放、 鏡像、 增加噪聲、 染色擾動、 隨機(jī)遮擋等, 通過這些方式獲得更多的訓(xùn)練圖像。 如圖4所示, 針對采集的沖壓件缺陷圖像的具體特點, 選用旋轉(zhuǎn)、 水平鏡像、 豎直鏡像3 種幾何變換對數(shù)據(jù)集進(jìn)行擴(kuò)充, 使得每種缺陷圖像均擴(kuò)充為原來數(shù)據(jù)集的3倍。 數(shù)據(jù)增強(qiáng)只在占比60%的訓(xùn)練集中使用, 在驗證集和測試集中未使用數(shù)據(jù)增強(qiáng)。
圖4 沖壓件劃痕缺陷數(shù)據(jù)增強(qiáng)效果Fig.4 Enhanced effect of scratch defect data of stamping parts: (a) original image; (b) rotate 90°; (c)horizontal mirror image; (d) vertical mirror image
以VGG13 網(wǎng)絡(luò)為基準(zhǔn)網(wǎng)絡(luò)模型, 對比了在VGG13 網(wǎng)絡(luò)的不同位置引入CBAM 模塊對實驗結(jié)果的影響。 VGG13 共有10 個卷積層, 加入CBAM 模塊的位置在每2 個卷積層之后。 VGG13-CBAM01 在每2個卷積層之后各加入一個CBAM 模塊, VGG13-CBAM02 刪除了VGG13-CBAM01 中加入的第一個CBAM 模塊, 以此類推, VGG13-CBAM03、 VGG13-CBAM04、 VGG13-CBAM05 分別在前者的基礎(chǔ)上減少一個CBAM 模塊。 由于VGG13-CBAM01 與VGG13-CBAM02 收斂效果不佳, 這里不再展示。 圖5(a1)(b1) ( c1) 分 別 為 VGG13-CBAM03、 VGG13-CBAM04、 VGG13-CBAM05 網(wǎng)絡(luò)模型訓(xùn)練集的誤差損失隨迭代次數(shù)的變化曲線; 圖5(a2)(b2)(c2)分別為VGG13-CBAM03、 VGG13-CBAM04、 VGG13-CBAM05 這3 種網(wǎng)絡(luò)模型驗證集正確率隨迭代次數(shù)的變化曲線。 由圖5(a1)(b1)可知: VGG13-CBAM03、VGG13-CBAM04 網(wǎng)絡(luò)模型在同樣迭代100 個Epoch的情況下, 相比于原VGG13 網(wǎng)絡(luò)模型, 能進(jìn)一步加快誤差下降, 訓(xùn)練過程中的誤差也明顯低于原VGG13 網(wǎng) 絡(luò)。 由 圖5 (a2) (b2) 可 知: VGG13-CBAM03、 VGG13-CBAM04 網(wǎng)絡(luò)模型在同樣迭代100個Epoch 的情況下, 相比于原VGG13 網(wǎng)絡(luò)模型, 有效提升了驗證集的正確率, 訓(xùn)練過程中的驗證集正確率明顯高于原VGG13 網(wǎng)絡(luò)。 而圖5(c)所示的VGG13-CBAM05 網(wǎng)絡(luò)相比于原VGG13 網(wǎng)絡(luò)無明顯改進(jìn)效果。
圖5 訓(xùn)練集誤差與驗證集正確率對比曲線Fig.5 Comparison curves of training set error and validation set accuracy: (a) VGG13 and VGG13-CBAM03;(b) VGG13 and VGG13-CBAM04; (c) VGG13 and VGG13-CBAM05
基于沖壓件缺陷數(shù)據(jù)測試集, 將訓(xùn)練好的各網(wǎng)絡(luò)權(quán)重分別加載到VGG13 網(wǎng)絡(luò)及其改進(jìn)模型上進(jìn)行實驗驗證和分析。 表1 所示為該數(shù)據(jù)集測試集在原模型與改進(jìn)模型以及使用數(shù)據(jù)增強(qiáng)擴(kuò)充數(shù)據(jù)前后各模型的測試集正確率。
表1 數(shù)據(jù)增強(qiáng)前后各網(wǎng)絡(luò)模型之間的對比Tab.1 Comparison between network models before and after data enhancement
由表1 可知: 數(shù)據(jù)增強(qiáng)方法在VGG13 與其改進(jìn)模型中均能提高分類精度, 改進(jìn)后的VGG13-CBAM03、 VGG13-CBAM04 相比于VGG13 原網(wǎng)絡(luò)在測試集上提高效果明顯, 測試集正確率由79.65%分別提高到了81.55%和81.40%, 而VGG13-CBAM05無明顯改進(jìn)效果。
文中主要基于武漢某制造車間采集的沖壓件缺陷數(shù)據(jù)集對VGG13 網(wǎng)絡(luò)展開研究。 通過在VGG13 不同卷積層位置分別引入CBAM 注意力機(jī)制模塊進(jìn)行改進(jìn), 共提出了5 種VGG13-CBAM 網(wǎng)絡(luò)模型。 通過實驗對比發(fā)現(xiàn)VGG13-CBAM03、 VGG13-CBAM04 相比于原VGG13 網(wǎng)絡(luò)模型能夠加快訓(xùn)練過程中誤差的下降并提升驗證集正確率, 在沖壓件缺陷數(shù)據(jù)集上取得了良好的識別效果。 同時在數(shù)據(jù)預(yù)處理階段使用數(shù)據(jù)增強(qiáng)策略擴(kuò)充數(shù)據(jù), 使原本用于訓(xùn)練階段的數(shù)據(jù)集擴(kuò)充為原采集數(shù)據(jù)集的3 倍, 有效提高了模型的泛化性能, 在測試集上取得了良好的效果, 有效地確保產(chǎn)品出廠質(zhì)量, 避免由于表面缺陷漏檢誤檢而造成的不必要損失, 為工藝參數(shù)的優(yōu)化以及生產(chǎn)調(diào)控管理決策提供了準(zhǔn)確的參考依據(jù)。 文中雖對沖壓件缺陷識別的準(zhǔn)確率有所提升, 但在工業(yè)產(chǎn)品的實際生產(chǎn)過程中, 模型的好壞會受到噪聲、 數(shù)據(jù)集的大小、 數(shù)據(jù)集樣本分布不均勻、 采集的缺陷圖片質(zhì)量高低等因素影響, 后續(xù)將針對此方面展開研究。