劉凌峰,陳洪剛,卿粼波,孫承行
(1 四川大學(xué)電子信息學(xué)院,成都 610065; 2 四川省隆鑫科技包裝有限公司,四川 遂寧 629200)
隨著工業(yè)4.0 的到來以及中國制造2025 的提出,國家大力支持工業(yè)的發(fā)展。 鋼材作為一種經(jīng)濟高效的工業(yè)材料在各個領(lǐng)域得到廣泛應(yīng)用,如建筑、化工、船舶、冶金、航空航天等行業(yè)。 擁有高質(zhì)量的鋼材對我國工業(yè)的發(fā)展至關(guān)重要。 在鋼材的生產(chǎn)過程中,由于生產(chǎn)原材料、生產(chǎn)工藝和外部環(huán)境等不可控因素的影響,鋼表面可能會出現(xiàn)各種不同類型的缺陷[1]。 因此,對鋼材缺陷進(jìn)行高效的檢測具有極其重要的意義。
基于傳統(tǒng)機器視覺的目標(biāo)檢測算法使用滑動窗口的方法來獲取候選區(qū)域的HOG 特征[2]和SIFT 特征[3],并利用SVM 分類器[4]進(jìn)行目標(biāo)分類。 這種檢測方法主要適用于待測目標(biāo)特征明顯、背景簡單的場景,并且在檢測精度以及速度上存在一定的局限。在鋼材缺陷圖像中,背景與目標(biāo)的區(qū)分度較低且缺陷目標(biāo)類型復(fù)雜多變,使用傳統(tǒng)的抽象特征很難完成對缺陷的準(zhǔn)確檢出。
目前,基于深度學(xué)習(xí)的目標(biāo)檢測算法根據(jù)其是否采用多階段的處理,主要分為2 類:Two-Stage[5]和One-Stage[6]。 Two-stage 典型算法代表為Faster R-CNN[7]和Mask R-CNN[8],其使用區(qū)域建議網(wǎng)絡(luò)生成候選框,而后進(jìn)行分類和回歸;One-Stage 算法典型代表為SSD[9]、RetinaNet[10]、EfficientDet[11]、YOLO 系列等,是利用處理回歸問題的方法來有效解決目標(biāo)邊框定位的問題,因此不需要事先產(chǎn)生候選框。 在Two-Stage 目標(biāo)檢測算法領(lǐng)域,LUO 等學(xué)者[12]基于CNN 構(gòu)建了一種解耦的兩階段的工業(yè)目標(biāo)檢測網(wǎng)絡(luò),并在缺陷定位任務(wù)中提出了多級聚合塊作為定位特征增強模塊,用于PCB 板的缺陷檢測。 Shi X 等學(xué)者[13]將ConvNeXt 架構(gòu)作為特征提取主干,提出了一種基于Faster R-CNN 的改進(jìn)網(wǎng)絡(luò)用于鋼表面缺陷檢測。 在One-Stage 目標(biāo)檢測算法領(lǐng)域,KOU 等學(xué)者[14]基于YOLOv3 進(jìn)行改進(jìn),使用無錨框(Anchor-free)的方式縮短了模型的計算時間,設(shè)計密集卷積塊(Dense block)用于提取更豐富的特征信息,從而提升模型的準(zhǔn)確率與魯棒性。Yang 等學(xué)者[15]首先將鋼材缺陷圖像經(jīng)過同態(tài)濾波預(yù)處理,然后將圖片送入融合了注意力機制的改進(jìn)YOLOv5 算法中進(jìn)行檢測,達(dá)到了更高的檢測精度。
YOLO 系列作為One-Stage 算法典型的代表網(wǎng)絡(luò),不僅在速度上優(yōu)勢明顯,而且模型體積小,同時維持較高的識別精度。 在2023年,Wang 等學(xué)者提出了YOLOv7 算法,相比于領(lǐng)域內(nèi)其他算法,YOLOv7 在目標(biāo)識別和定位方面具有更高的準(zhǔn)確性和更快的速度。 但是YOLOv7 網(wǎng)絡(luò)使用了大量EELAN 模塊,導(dǎo)致模型的參數(shù)量和復(fù)雜度大大增加,同時鋼材表面缺陷通常是小目標(biāo),在圖像中所占的像素點很少,且變形類型多樣、缺陷類型多樣,很容易被忽略或誤判,導(dǎo)致漏檢的問題。
為了提高鋼材表面缺陷檢測的效率,本文基于YOLOv7 的輕量化版本YOLOv7-Tiny,進(jìn)一步優(yōu)化網(wǎng)絡(luò)對目標(biāo)的特征提取能力,引入混合注意力機制,增強網(wǎng)絡(luò)的特征感知;將可變形卷積融合進(jìn)網(wǎng)絡(luò)骨干層,構(gòu)建ELAN-DCNv3 模塊,增強模型對不同尺寸和形狀的缺陷的特征提取能力;在網(wǎng)絡(luò)特征融合層加入了基于內(nèi)容感知的特征重組模塊,更加充分地利用上下文語義信息;最后,采用基于歸一化Wasserstein 距離的損失函數(shù)實現(xiàn)對小目標(biāo)缺陷更加精準(zhǔn)的檢測。
YOLOv7-Tiny 保留了YOLOv7 基于級聯(lián)的模型縮放策略,并改進(jìn)了高效長程聚合網(wǎng)絡(luò)(ELAN),是一種輕量級的目標(biāo)檢測算法,在保證檢測精度沒有大幅降低的基礎(chǔ)上參數(shù)量更少、檢測速度更快,更適合應(yīng)用于鋼材表面缺陷實時檢測的需求。 YOLOv7-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 YOLOv7-Tiny 網(wǎng)絡(luò)Fig. 1 YOLOv7-Tiny network
Yolov7-Tiny 算法由輸入層、特征提取層、特征融合層及輸出層四個部分構(gòu)成。 將固定尺寸的圖片作為輸入,首先將其送入由普通卷積層、MP 與ELAN 卷積層構(gòu)成的特征提取層。 然后,將提取的特征圖送入在SPP 結(jié)構(gòu)基礎(chǔ)上優(yōu)化后的SPPCSPC模塊,進(jìn)行處理后再送入特征融合層,采用聚合特征金字塔結(jié)構(gòu)對整個金字塔特征圖進(jìn)行增強,將下層的顯著性特征信息傳遞到上層,保留更豐富的特征信息。 最后,將這些語義豐富的特征圖送入輸出層,采用卷積對不同尺度的特征圖進(jìn)行預(yù)測,在目標(biāo)特征圖上應(yīng)用錨框生成帶有類別概率和目標(biāo)框的最終輸出向量。
盡管YOLOv7-Tiny 具有較少的參數(shù)和計算量,能保持較高的精度,但是針對鋼材表面缺陷這類小目標(biāo),存在特征提取能力不足的情況。 因此,本文提出改進(jìn)方法,在不增加網(wǎng)絡(luò)參數(shù)的前提下加強特征感知,以滿足鋼材缺陷這類特征較弱的目標(biāo)在實際應(yīng)用場合的檢測需求。
本文基于YOLOv7-Tiny,將可變形卷積融合進(jìn)網(wǎng)絡(luò)骨干層,增強模型對不同尺寸和形狀的缺陷的特征提取能力;引入混合注意力機制,增強網(wǎng)絡(luò)的特征感知;在網(wǎng)絡(luò)特征融合層加入了基于內(nèi)容感知的特征重組模塊,更加充分的利用上下文語義信息;最后采用基于歸一化Wasserstein 距離的損失函數(shù)實現(xiàn)對小目標(biāo)缺陷更加精準(zhǔn)的檢測。
鋼材表面缺陷具有目標(biāo)小、變形類型多樣、缺陷類型多樣的特點,普通卷積層對此類目標(biāo)的特征提取能力較差。 本文中使用的DCNv3[17](Deformable Convolution Network v3)是在DCNv2[18](Deformable Convolution Network v2) 的基礎(chǔ)上進(jìn)行改進(jìn)的。DCNv3 首先借用了可分離卷積的思想,將原始卷積權(quán)重分離成深度部分和點部分,實現(xiàn)了卷積神經(jīng)元之間的權(quán)重共享;其次,引入了多組卷積的機制,將空間聚合過程分成多組,每組具有單獨的采樣偏移和調(diào)制尺度,從而為下游任務(wù)帶來更強的特征;最后,通過用k個調(diào)制因子的softmax歸一化代替調(diào)制標(biāo)量sigmoid,整個訓(xùn)練過程變得更加穩(wěn)定。 完整的DCNv3 運算符如式(1)所示:
其中,G表示卷積組的數(shù)量;Wg表示每組內(nèi)的共享投影權(quán)重;mgk表示第g組中第k個采樣點的歸一化調(diào)制因子;xg表示切片輸入的特征圖; △pgk表示第g組中的網(wǎng)格采樣位置(g,k) 相對應(yīng)的偏移量。
本文將可變形卷積DCNv3 與特征提取層的ELAN 結(jié)構(gòu)融合,重建ELAN-DCNv3 結(jié)構(gòu),結(jié)構(gòu)如圖2 所示。
圖2 ELAN-DCNv3 結(jié)構(gòu)Fig. 2 Structure of ELAN-DCNv3
使用DCNv3 算子可以彌補傳統(tǒng)卷積在長期依賴性和自適應(yīng)空間聚合方面的不足,并可使卷積算子更適合于變化多樣缺陷的檢測,同時通過實現(xiàn)稀疏全局建模并適當(dāng)?shù)乇A鬋NN 的歸納偏差,更好地實現(xiàn)了檢測復(fù)雜性和準(zhǔn)確性之間的平衡。
注意力機制的原理是選擇性地關(guān)注更感興趣的領(lǐng)域,而忽略信息的其他部分。 在鋼材缺陷檢測中引入注意力機制可以提高缺陷目標(biāo)區(qū)域的權(quán)重。 神經(jīng)網(wǎng)絡(luò)可以更完整地區(qū)分待檢測的缺陷目標(biāo)和背景信息,有效地解決由于網(wǎng)絡(luò)層次加深導(dǎo)致的鋼材缺陷目標(biāo)信息丟失的問題,使網(wǎng)絡(luò)學(xué)習(xí)能夠朝著更有利的方向?qū)W習(xí)。
在真實的鋼材缺陷數(shù)據(jù)中,缺陷目標(biāo)較多且種類繁雜,為了解決小目標(biāo)漏檢、誤檢的問題,需要讓網(wǎng)絡(luò)更加關(guān)注裂紋、麻點等小目標(biāo)缺陷。 本文選用CBAM 注意力機制(如圖3 所示),依次應(yīng)用通道和空間注意力模塊,強化了通道和空間兩個維度上的缺陷特征,具體計算過程如下。
圖3 CBAM 注意力機制結(jié)構(gòu)Fig. 3 Structure of CBAM attention mechanism
給出輸入特征圖為X∈RC×H×W,CBAM 模塊首先通過通道注意力模塊(FCH∈RC×1×1) 生成通道注意力特征圖,然后將其與輸入圖像相乘生成中間變量X′,計算過程可由式(2)來表示:
其中,“ ?”表示加權(quán)乘法。
此后通過二維空間注意力模塊(Fs∈R1×W×H)在特征圖X′的基礎(chǔ)上生成空間注意力特征圖,再將二維空間注意力模塊Fs與通道自適應(yīng)化后的特征圖X′相乘,得到最終特征加強后的特征圖F″,計算過程可用式(3)來描述:
在特征提取層中,隨著網(wǎng)絡(luò)的逐漸加深,特征圖的尺度會變小,并且會丟失一些信息。 因此,本文將CBAM 注意力機制與卷積層融合,嵌入到特征提取層提取了特征后的特征圖輸出處,構(gòu)建ELANCBAM 模塊(如圖4 所示),以強化隨著網(wǎng)絡(luò)深度而逐漸削弱的特征,增強網(wǎng)絡(luò)的表達(dá)能力,提高最終檢測的精度。
圖4 ELAN-CBAM 結(jié)構(gòu)Fig. 4 Structure of ELAN-CBAM
在YOLOv7 的特征融合層中,使用了最近鄰上采樣算法進(jìn)行特征圖的上采樣,是通過像素之間的空間距離來指導(dǎo)上采樣的過程,利用采樣點四周相鄰最近的像素點的灰度值,但卻忽略了其他像素點的影響,無法充分利用特征圖中的空間特征,可能會造成輸出圖像灰度值上的不連續(xù),從而使得圖像灰度變化明顯區(qū)域出現(xiàn)噪聲,這會對鋼材缺陷這類小目標(biāo)的檢測造成極大的困擾,導(dǎo)致檢測精度降低?;诖?,本文引入了基于內(nèi)容感知的輕量級特征重組算子CARAFE[19](如圖5 所示)來代替YOLOv7-Tiny 特征融合層中的最近鄰上采樣。 CARAFE 算子能夠在更大的感受野中聚合上下文信息,摒棄了最近鄰上采樣算法中使用單一內(nèi)核采樣的方式,采用了基于自適應(yīng)內(nèi)容感知的采樣方式,其具體計算流程如圖5 所示。
圖5 CARAFE 計算流程圖Fig. 5 Calculation flowchart of CARAFE
在經(jīng)過CARAFE 模塊重建后的特征圖中,每個像素都是根據(jù)鄰域的特征內(nèi)容進(jìn)行上采樣的,充分利用了上下文信息,讓局部區(qū)域的相關(guān)點信息得到了更多的關(guān)注,使其語義信息更加豐富。
本文所檢測的鋼材表面缺陷中存在許多小目標(biāo)缺陷,這對目標(biāo)檢測來說是一個難點,因為其中往往只包含幾個像素,因此,提高檢測小目標(biāo)的能力對于提升整個鋼材缺陷檢測的效果十分重要。
目前,各類目標(biāo)檢測算法通常使用基于IoU(Intersection over Union)的各類損失函數(shù)作為模型優(yōu)化的指引,例如CIoU、SIoU等。 但是這些度量標(biāo)準(zhǔn)對小目標(biāo)的位置偏差敏感度較高,很容易受小像素分布的影響。 預(yù)測框P中幾個像素的偏差就會導(dǎo)致P與標(biāo)注框GT之間的重疊部分變化特別大,導(dǎo)致基于IoU的損失函數(shù)并不適用于小目標(biāo)物體的檢測。
針對這個問題,本文采用了一種基于歸一化Wasserstein 距離[20](NWD,Normalized Wasserstein Distance)的損失函數(shù)。
首先將建模為二維高斯分布,然后使用歸一化Wasserstein 距離(NWD)的計算標(biāo)準(zhǔn)來計算其相應(yīng)高斯分布之間的相似性;接著將NWD 度量標(biāo)準(zhǔn)嵌入到模型的損失函數(shù)中,取代YOLOv7-Tiny 原始的CIoU損失函數(shù)。 基于NWD 的損失函數(shù)計算過程如下:
其中,Np是預(yù)測框P的高斯分布模型,Ng是標(biāo)注框GT的高斯分布模型。 基于NWD 的損失函數(shù)即使在小目標(biāo)缺陷檢測時像素點偏差的情況下也能夠擁有梯度,進(jìn)一步提高鋼板缺陷目標(biāo)檢測的精度。
本文改進(jìn)后的YOLOv7-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)圖如圖6所示。
圖6 改進(jìn)后的YOLOv7-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 6 Structure of improved YOLOv7-Tiny network
本文采用了東北大學(xué)發(fā)布的鋼材表面缺陷數(shù)據(jù)集來驗證改進(jìn)的YOLOv7-Tiny 算法的有效性。NEU-DET 包含6 種鋼材表面缺陷,包括裂紋(crazing)、夾雜(inclusion)、斑塊(patches)、麻點(pitted surface)、軋入氧化皮(rolled in scale)以及劃痕(scratches)。 每種缺陷圖片的數(shù)量為300 張,共1 800張,圖像大小均為200?200。 6 類缺陷樣例如圖7 所示。
圖7 鋼材表面缺陷樣例Fig. 7 Examples of steel surface defects
實驗以每類8 ∶1 ∶1 的比例隨機劃分,選取1 260張圖片作為訓(xùn)練集,260 張圖片作為驗證集,260 張圖片作為測試集。
本文提出的鋼材表面缺陷檢測算法的實驗硬件環(huán)境以及軟件環(huán)境見表1,訓(xùn)練參數(shù)見表2。
表1 實驗采用的硬件環(huán)境與軟件環(huán)境Tab. 1 The hardware environment and software environment adopted in the experiment
表2 實驗采用的訓(xùn)練參數(shù)Tab. 2 The training parameters used in the experiment
本文采用平均準(zhǔn)確率(mAP@0.5)、 模型大小(Model Size)作為算法性能的衡量指標(biāo)。 其中,mAP是各類缺陷準(zhǔn)確率AP的均值,AP則由各類的精準(zhǔn)度(Precision,下文簡稱P) 以及召回(Recall,下文簡稱R) 計算得到,其值為P -R曲線與坐標(biāo)軸圍成的面積;研究推得的數(shù)學(xué)定義公式具體如下:
其中,TP為正確檢測到缺陷的樣本數(shù)量;FP是錯誤地將非缺陷目標(biāo)檢測為缺陷目標(biāo)的數(shù)量;FN是錯誤地將缺陷目標(biāo)認(rèn)作非缺陷的數(shù)量。mAP@0.5表示IoU閾值在0.5 的mAP。
為了驗證本文提出方案的效果,在NEU-DET數(shù)據(jù)集中測試了多種目前主流的目標(biāo)檢測算法,包括SSD、RetinaNet、YOLOv5s、YOLOv7 以及文獻(xiàn)[21-22]。 選取平均精度mAP@0.5 以及網(wǎng)絡(luò)模型大小作為評價指標(biāo)。 對比實驗結(jié)果見表3。 通過表3 可以看出,本文提出的改進(jìn)算法平均準(zhǔn)確率mAP@0.5比YOLOv7-Tiny 高4.3%,模型大小壓縮了11.3%,實際檢測效果對比如圖8 所示。 圖8(a)~(c)中,從左到右分別是裂紋、夾雜、斑塊、裂紋、軋入氧化、劃痕。 可以看到,經(jīng)過改進(jìn)之后的網(wǎng)絡(luò)對小目標(biāo)的缺陷識別能力有著明顯的提升,識別精度也有所提高。 相較于Faster-RCNN、RetinaNet、YOLOv3-Tiny、YOLOv7 算法,評價指標(biāo)有著不同程度的領(lǐng)先。 相較于文獻(xiàn)[21-22],在檢測精度上也有著明顯的優(yōu)勢。 由此證明,本文提出的改進(jìn)算法的性能優(yōu)于目前領(lǐng)域內(nèi)的主流算法。
表3 對比實驗結(jié)果Tab. 3 Comparative experimental results
圖8 實際檢測效果圖Fig. 8 Actual test effect drawing
為了進(jìn)一步驗證本文提出的改進(jìn)方法對模型的有效性,對改進(jìn)算法進(jìn)行消融實驗。
消融實驗結(jié)果分析見表4。 從表4 的結(jié)果可知,引入DCNv3 構(gòu)建ELAN-DCNv3 模塊后,模型的識別準(zhǔn)確率有著明顯的提升,mAP@ 0.5 提升了1.1%,同時,由于DCNv3 采用了可分離卷積以及分組卷積的思想,模型的大小也有了一定程度的壓縮;在ELAN-DCNv3 的基礎(chǔ)上進(jìn)一步引入CBAM 注意力機制,加強網(wǎng)絡(luò)對鋼材表面缺陷目標(biāo)的特征感知,學(xué)習(xí)通道與空間兩個維度間的相關(guān)性,使mAP@0.5提升了0.6%,但是參數(shù)有了小幅度的增加;將網(wǎng)絡(luò)特征融合層原始的最近鄰上采樣改進(jìn)為基于內(nèi)容感知的輕量級特征重建模塊CARAFE 后,更加豐富了上采樣后特征圖的語義信息,進(jìn)一步增強了利于網(wǎng)絡(luò)的識別能力,使得mAP@0.5 提升了0.9%;最后將網(wǎng)絡(luò)原始的CIoU損失函數(shù)改進(jìn)為更適用于小目標(biāo)檢測的基于NWD 的損失函數(shù),將mAP@0.5 在之前的基礎(chǔ)上再次提升了1.7%,達(dá)到77.5%。
表4 消融實驗結(jié)果分析Tab. 4 Analysis of ablation experimental results
經(jīng)過消融實驗結(jié)果分析,本文確定了最終的改進(jìn)方案為構(gòu)建ELAN-DCNv3、構(gòu)建ELAN-CBAM 模塊、引入CARAFE 和采取基于NWD 的損失函數(shù)。YOLOv7-Tiny 改進(jìn)前后訓(xùn)練效果對比如圖9 所示。由圖9 可以看出,在經(jīng)過300 個Epochs的訓(xùn)練迭代后,改進(jìn)后的YOLOv7-Tiny 算法在6 類鋼材缺陷上的檢測精度均有提升,平均準(zhǔn)確率mAP@0.5 相較于原始YOLOv7-Tiny 提高4.3%,同時模型大小壓縮了11.3%。
圖9 YOLOv7-Tiny 改進(jìn)前后訓(xùn)練效果對比圖Fig. 9 Comparison of YOLOv7-Tiny training effect before and after improvement
本文針對工業(yè)生產(chǎn)環(huán)境需要對鋼材表面缺陷進(jìn)行高效檢測的應(yīng)用背景,提出了一種基于改進(jìn)YOLOv7-Tiny 的鋼材表面缺陷識別方法。 該方法以YOLOv7-Tiny 為基礎(chǔ),改進(jìn)特征提取層的ELAN結(jié)構(gòu),引入DCNv3 構(gòu)建ELAN-DCNv3 模塊,在降低一定模型參數(shù)量的同時增強了網(wǎng)絡(luò)對多種類型、形狀缺陷的特征提取能力;增加CBAM 注意力機制,提升了網(wǎng)絡(luò)對鋼材表面缺陷的特征感知能力;采用基于內(nèi)容感知的特征重組算子CARAFE 進(jìn)行特征圖的上采樣,讓局部區(qū)域的相關(guān)點信息得到了更多的關(guān)注,更加豐富了輸出特征圖的語義信息;此外,針對IoU損失函數(shù)對小目標(biāo)缺陷位置偏移敏感的問題,采取基于NWD 的損失函數(shù),使得網(wǎng)絡(luò)有了更好的小目標(biāo)檢測性能。 實驗結(jié)果表明,本文提出的方法對于鋼材表面缺陷有著很好的識別效果,識別準(zhǔn)確率達(dá)到了77.5%,同時將模型壓縮了11.3%。 本文方法在不增加模型復(fù)雜度的前提下,識別準(zhǔn)確率方面較YOLOv7-Tiny 有著較為明顯的提升,在實際應(yīng)用中展示出了巨大的潛力。 未來將繼續(xù)優(yōu)化算法,提升算法的準(zhǔn)確率,對模型進(jìn)行剪枝、知識蒸餾,進(jìn)一步降低模型的推理復(fù)雜度,提升模型在邊緣計算端的性能,更適應(yīng)實際生產(chǎn)應(yīng)用。 同時考慮通過數(shù)據(jù)增強的方式擴充數(shù)據(jù)集,使得模型的泛化性能進(jìn)一步提高。