樊 嶸, 馬小陸
(安徽工業(yè)大學(xué) 電氣與信息工程學(xué)院,安徽 馬鞍山 243002)
熱軋帶鋼作為我國(guó)鋼鐵工業(yè)的重要原材料之一,在航空航天、土地基建以及汽車(chē)制造等領(lǐng)域有重要的應(yīng)用價(jià)值。熱軋帶鋼的尺寸精度、表面質(zhì)量以及性能是衡量帶鋼產(chǎn)品質(zhì)量的關(guān)鍵因素。實(shí)際生產(chǎn)過(guò)程中,由于生產(chǎn)工藝及環(huán)境因素的限制,鋼體易出現(xiàn)劃痕、裂紋、污漬以及斑塊等缺陷,不僅有損產(chǎn)品外觀(guān),而且易使產(chǎn)品銹蝕和損壞。因此,鋼體表面缺陷檢測(cè)成為工業(yè)質(zhì)檢領(lǐng)域的研究熱點(diǎn)。
近年來(lái),隨著深度神經(jīng)網(wǎng)絡(luò)研究的不斷進(jìn)展,基于深度學(xué)習(xí)的物體表面檢測(cè)算法逐步替代了傳統(tǒng)的機(jī)器學(xué)習(xí)方法和人工檢測(cè)方法。基于深度學(xué)習(xí)的物體表面缺陷檢測(cè)方法主要分為端到端完成檢測(cè)任務(wù)的一階段檢測(cè)算法和基于區(qū)域生成結(jié)構(gòu)的二階段檢測(cè)算法。文獻(xiàn)[1]通過(guò)使用加權(quán)K-means聚類(lèi)方法以及對(duì)特征融合層進(jìn)行改進(jìn),提升了算法的缺陷檢測(cè)精度;文獻(xiàn)[2]通過(guò)引入注意力機(jī)制并改進(jìn)特征融合網(wǎng)絡(luò),提升了算法的缺陷檢測(cè)精度;文獻(xiàn)[3]在SSD網(wǎng)絡(luò)中融入殘差網(wǎng)絡(luò)結(jié)構(gòu)和多級(jí)特征融合策略,提升了算法的缺陷檢測(cè)精度;文獻(xiàn)[4]在RetinaNet網(wǎng)絡(luò)中融入通道注意力機(jī)制和自適應(yīng)空間特征融合模塊,提升了網(wǎng)絡(luò)的特征融合能力;文獻(xiàn)[5]基于Faster-RCNN模型提出一個(gè)帶鋼缺陷檢測(cè)系統(tǒng);文獻(xiàn)[6]使用特征遞歸金字塔結(jié)構(gòu)和神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)對(duì)Cascade-RCNN網(wǎng)絡(luò)進(jìn)行改進(jìn),提升了算法缺陷檢測(cè)進(jìn)度。以上工作均有效提升了算法對(duì)金屬表面缺陷的總體檢測(cè)精度,但仍未針對(duì)金屬表面小目標(biāo)缺陷的漏檢問(wèn)題進(jìn)行優(yōu)化與改進(jìn),使得實(shí)際檢測(cè)中帶鋼表面部分小目標(biāo)缺陷仍存在漏檢問(wèn)題。
小目標(biāo)缺陷在采樣圖中所占像素量較少,經(jīng)過(guò)多次下采樣后小目標(biāo)缺陷分辨率會(huì)進(jìn)一步降低,特征信息逐步減弱,使得檢測(cè)難度提升。文獻(xiàn)[7]通過(guò)采用transformer預(yù)測(cè)頭并增加目標(biāo)檢測(cè)頭個(gè)數(shù)提升了網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)性能;文獻(xiàn)[8]通過(guò)采用改進(jìn)的雙向特征金字塔網(wǎng)絡(luò)(bi-directional feature pyramid network,BiFPN)提升了模型對(duì)小目標(biāo)的檢測(cè)效果;文獻(xiàn)[9]提出多層特征金字塔網(wǎng)絡(luò)(multi level feature pyramid network,MLFPN),將不同尺度的特征進(jìn)行融合,有效緩解了小目標(biāo)特征信息不足的問(wèn)題;文獻(xiàn)[10]利用空間金字塔池化和額外的特征轉(zhuǎn)換生成不同尺度的特征,然后將特征擴(kuò)展到統(tǒng)一尺度并聚合上下文信息,有效緩解了小目標(biāo)特征信息不足的問(wèn)題;文獻(xiàn)[11]通過(guò)將空洞卷積與特征融合相結(jié)合,有效增強(qiáng)網(wǎng)絡(luò)提取的淺層特征的語(yǔ)義信息,提升了小目標(biāo)的檢測(cè)性能。以上工作均有效提升了算法對(duì)小目標(biāo)物體的檢測(cè)性能,但大多面向遙感場(chǎng)景,當(dāng)面對(duì)分布復(fù)雜的密集工業(yè)缺陷檢測(cè)場(chǎng)景時(shí),檢測(cè)效果提升有限。
針對(duì)以上問(wèn)題,本文在YOLOv7網(wǎng)絡(luò)[12]的基礎(chǔ)上進(jìn)行以下3方面改進(jìn)。
1) 將多分支卷積模塊[13]和通道空間注意力模塊(convolutional block attention module,CBAM)[14]融入特征提取骨干網(wǎng)絡(luò),提升網(wǎng)絡(luò)在特征提取階段對(duì)小目標(biāo)特征的提取及后續(xù)提純能力。
2) 采用融入BiFPN[15]思想的頸部網(wǎng)絡(luò)對(duì)骨干網(wǎng)絡(luò)提取的多尺度特征圖進(jìn)行雙向加權(quán)融合,緩解小目標(biāo)特征在下采樣過(guò)程中的丟失問(wèn)題。
3) 采用解耦檢測(cè)頭[16]替換原有的目標(biāo)檢測(cè)頭,將預(yù)測(cè)目標(biāo)的類(lèi)別信息與回歸信息進(jìn)行解耦輸出,提升模型檢測(cè)精度。
最終在經(jīng)過(guò)小目標(biāo)數(shù)據(jù)增強(qiáng)的Neu-Det數(shù)據(jù)集上與部分常用缺陷檢測(cè)算法進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,改進(jìn)的YOLOv7算法有較好的小目標(biāo)帶鋼缺陷檢測(cè)能力。
YOLOv7是最新的YOLO系列算法,其模型設(shè)計(jì)思路與YOLOv4[17]、YOLOv5類(lèi)似,功能上可將網(wǎng)絡(luò)分為進(jìn)行特征提取的骨干網(wǎng)絡(luò)(Backbone)、進(jìn)行特征融合的頸部網(wǎng)絡(luò)(Neck)以及進(jìn)行目標(biāo)檢測(cè)結(jié)果輸出的檢測(cè)頭(Head)3個(gè)部分。檢測(cè)時(shí)輸入圖像被送入骨干網(wǎng)絡(luò)進(jìn)行特征提取;然后由頸部網(wǎng)絡(luò)對(duì)提取的特征進(jìn)行特征融合,并得到大、中、小3種尺寸的特征;最后由檢測(cè)頭對(duì)融合后的特征進(jìn)行處理,并輸出最終檢測(cè)結(jié)果。由于采用了擴(kuò)展的高效長(zhǎng)程注意力網(wǎng)絡(luò)(extended efficient layer aggregation networks,E-ELAN)以及SPPCSPC空間金字塔池化等模塊,并在前向傳播時(shí)引入了重參數(shù)化卷積以及輔助頭檢測(cè)等策略,YOLOv7算法獲得了較好的檢測(cè)性能。
YOLOv7采用4個(gè)常規(guī)卷積進(jìn)行初期特征提取,使得小目標(biāo)語(yǔ)義信息易被網(wǎng)絡(luò)忽略;在特征融合階段YOLOv7沿用了YOLOv5的雙向路徑聚合網(wǎng)絡(luò)(path aggregation network for instance segmentation,PANet)[18]結(jié)構(gòu)并加入了更多的卷積模塊,導(dǎo)致骨干網(wǎng)絡(luò)提取的小目標(biāo)語(yǔ)義信息難以在特征融合時(shí)被有效提純。
以上兩點(diǎn)均易使YOLOv7在小目標(biāo)帶鋼缺陷場(chǎng)景中產(chǎn)生漏檢,因此本文從特征提取和特征融合2個(gè)角度出發(fā),提升YOLOv7對(duì)小目標(biāo)帶鋼缺陷的檢測(cè)能力。
改進(jìn)的YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)的YOLOv7結(jié)構(gòu)圖
1.2.1 結(jié)構(gòu)重參數(shù)化
針對(duì)YOLOv7初期特征提取時(shí)易丟失部分小目標(biāo)信息的問(wèn)題,本文采用可重參數(shù)化卷積(reparameterization convolution,RepConv)模塊替換網(wǎng)絡(luò)最初的第2層和第4層的常規(guī)卷積模塊,使網(wǎng)絡(luò)早期可以對(duì)重要特征進(jìn)行更高效的提取,緩解重要特征在卷積操作中產(chǎn)生的丟失現(xiàn)象。重參數(shù)化(reparameterization,Rep)的核心思想是利用參數(shù)恒等變換實(shí)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)的簡(jiǎn)化。RepConv在訓(xùn)練階段采用3*3卷積、1*1卷積、短接分支以及批歸一化(batch normalization,BN)模塊構(gòu)建的多分支可重參數(shù)化卷積RepConv模塊進(jìn)行訓(xùn)練,訓(xùn)練完成后的推理階段中,可重參數(shù)化卷積RepConv模塊會(huì)被參數(shù)重構(gòu)為一個(gè)與原分支性能等效的3*3卷積模塊,使模型兼顧訓(xùn)練時(shí)的高精度和推理時(shí)的高速度。
可重參數(shù)化卷積RepConv模塊結(jié)構(gòu)如圖2所示。
圖2 可重參數(shù)化卷積RepConv模塊結(jié)構(gòu)
RepConv模塊在進(jìn)行結(jié)構(gòu)重參數(shù)化時(shí),先將短接分支結(jié)構(gòu)等價(jià)轉(zhuǎn)換為一個(gè)以單位矩陣為卷積核的1*1卷積,之后將2個(gè)1*1的卷積通過(guò)填充0轉(zhuǎn)換為2個(gè)3*3的卷積,之后將3個(gè)3*3卷積分別與其對(duì)應(yīng)的批歸一化BN模塊進(jìn)行融合,融合過(guò)程如下:
(1)
(2)
其中:Wi、Wi′分別為轉(zhuǎn)換前、后的卷積層參數(shù);βi、βi′分別為轉(zhuǎn)換前、后的批歸一化層偏移因子;yi為批歸一化層的尺度因子;μi為批歸一化層的均值;σi為批歸一化層的方差。
卷積層和批歸一化層融合后,可以用一個(gè)3*3卷積替換模型訓(xùn)練時(shí)使用的原始3*3卷積、1*1卷積、短接分支以及批歸一化BN模塊,模型重構(gòu)后僅有一個(gè)3*3的卷積用于模型推理。
1.2.2 通道空間注意力模塊
在含有較多小目標(biāo)帶鋼缺陷的檢測(cè)環(huán)境中,小目標(biāo)缺陷像素往往分布于圖像的少量區(qū)域,大部分圖像內(nèi)容仍為正常帶鋼表面。小目標(biāo)瑕疵尺寸小特征少且不明顯,為了更好地對(duì)其標(biāo)特征進(jìn)行提純與學(xué)習(xí),本文將通道空間注意力模塊 CBAM穿插于常規(guī)卷積模塊以及可重參數(shù)化卷積模塊之間,利用CBAM模塊對(duì)卷積模塊學(xué)習(xí)到的特征信息進(jìn)行注意力權(quán)重重構(gòu),提高重要特征的權(quán)重,為頸部網(wǎng)絡(luò)提供更為高效的特征圖。
CBAM模塊是一種輕量級(jí)即插即用的卷積注意力模塊,它會(huì)依次計(jì)算通道與空間2個(gè)維度的注意力圖,并將注意力圖與特征圖相乘以進(jìn)行自適應(yīng)特征優(yōu)化,模仿人類(lèi)的注意力感知[19],自動(dòng)過(guò)濾不重要的信息,并把更多的計(jì)算資源用于需要重點(diǎn)關(guān)注的特征。
CBAM模塊結(jié)構(gòu)如圖3所示。
圖3 通道空間注意力CBAM模塊結(jié)構(gòu)
YOLOv7沿用了YOLOv5采用的PANet頸部網(wǎng)絡(luò),實(shí)現(xiàn)了自頂向下和自底向上的雙向特征融合,因此使網(wǎng)絡(luò)可以有效結(jié)合不同尺度的特征進(jìn)而提升檢測(cè)精度。但在YOLOv7中PANet關(guān)注的仍是中高維度的特征圖,由于經(jīng)過(guò)多次卷積后,中高維度的特征圖中小目標(biāo)信息的含量較少,使得網(wǎng)絡(luò)對(duì)小目標(biāo)特征的學(xué)習(xí)效率較低,針對(duì)此問(wèn)題本文提出融合BiFPN思想的改進(jìn)頸部網(wǎng)絡(luò),并以此替換YOLOv7原有的PANet特征融合網(wǎng)絡(luò)。
1.3.1 原始的BiFPN頸部網(wǎng)絡(luò)
BiFPN結(jié)構(gòu)如圖4所示。
圖4 單層BiFPN結(jié)構(gòu)
BiFPN是一種基于雙向加權(quán)特征融合思想的高效多尺度特征融合方法,它與PANet一樣采用雙相多尺度特征融合操作,使網(wǎng)絡(luò)可以有效結(jié)合不同尺度的特征。相較于PANet,BiFPN可以聚合更多不同尺度的特征并進(jìn)行跨尺度特征融合,使網(wǎng)絡(luò)擁有更高的重要特征提純效率,且在進(jìn)行特征融合時(shí)BiFPN引入了可學(xué)習(xí)的權(quán)重因子,使重要的特征在融合后得到了更好的保留。
1.3.2 改進(jìn)的BiFPN頸部網(wǎng)絡(luò)
為了充分利用改進(jìn)骨干網(wǎng)絡(luò)提取的包含大量小目標(biāo)特征的多尺度特征圖,本文借鑒了BiFPN的設(shè)計(jì)思想,在進(jìn)行特征融合時(shí),采用最近鄰插值上采樣模塊[20]和長(zhǎng)短鏈路高效聚合網(wǎng)絡(luò)(ELAN-W)模塊分別作為上采用模塊和下采樣學(xué)習(xí)模塊。同時(shí)為了進(jìn)一步實(shí)現(xiàn)對(duì)小目標(biāo)特征的有效保留及提純,當(dāng)經(jīng)過(guò)上采樣的高維特征與低維特征進(jìn)行融合時(shí),采用可學(xué)習(xí)的加權(quán)特征融合方式,使網(wǎng)絡(luò)在訓(xùn)練過(guò)程中自適應(yīng)學(xué)習(xí)更重要的特征;當(dāng)經(jīng)過(guò)下采樣的低維特征與高維特征進(jìn)行融合時(shí),采用拼接特征融合方式,以最大限度地保留特征提取初期未被丟失的小目標(biāo)信息。改進(jìn)后的頸部網(wǎng)絡(luò)在進(jìn)行特征融合時(shí),更偏向于提升初期卷積提取的包含較多小目標(biāo)特征信息的特征圖所占比重,緩解多次卷積造成的小目標(biāo)特征丟失現(xiàn)象。改進(jìn)后的單層BiFPN結(jié)構(gòu)如圖5所示。
圖5 改進(jìn)的單層BiFPN頸部網(wǎng)絡(luò)
在目標(biāo)檢測(cè)任務(wù)中,分類(lèi)操作與回歸操作對(duì)目標(biāo)特征的關(guān)注點(diǎn)不同[21]。分類(lèi)操作更加關(guān)注目標(biāo)的紋理特征信息,而回歸操作更加關(guān)注目標(biāo)的邊緣信息。因此目標(biāo)的置信度評(píng)價(jià)分?jǐn)?shù)與回歸框可能產(chǎn)生不一致性,即目標(biāo)置信度分?jǐn)?shù)最高的檢測(cè)框不一定是回歸最準(zhǔn)的框,而回歸最準(zhǔn)的框也不一定是置信度分?jǐn)?shù)最高的框。在原始的YOLOv7中,檢測(cè)時(shí)仍然使用耦合檢測(cè)頭,導(dǎo)致分類(lèi)、回歸、置信度計(jì)算的操作產(chǎn)生耦合。
針對(duì)以上問(wèn)題,本文采用任務(wù)解耦特征檢測(cè)頭,先使用一個(gè)1*1卷積特征圖進(jìn)行降維,之后分別通過(guò)2個(gè)3*3卷積將特征圖轉(zhuǎn)化為用于分類(lèi)的特征圖以及用于回歸及置信度計(jì)算的特征圖。用于分類(lèi)的特征圖通過(guò)1個(gè)1*1卷積后直接輸出類(lèi)別信息,用于回歸及置信度計(jì)算的特征圖通過(guò)2個(gè)1*1卷積分別進(jìn)行位置回歸輸出以及置信度計(jì)算。采用解耦檢測(cè)頭后模型將目標(biāo)的類(lèi)別信息、置信度與回歸信息進(jìn)行解耦輸出,使模型在訓(xùn)練過(guò)程中可以進(jìn)一步收斂至更高精度。解耦檢測(cè)頭結(jié)構(gòu)如圖6所示。
圖6 解耦檢測(cè)頭
為了獲取含有較多小目標(biāo)[22]缺陷的帶鋼表面缺陷數(shù)據(jù)集,本文對(duì)東北大學(xué)制作的NEU-DET數(shù)據(jù)集[23]進(jìn)行隨機(jī)拼接以及分辨率縮放數(shù)據(jù)增強(qiáng)。NEU-DET數(shù)據(jù)集包含裂紋、雜質(zhì)、斑紋、點(diǎn)蝕、氧化以及劃痕6種常見(jiàn)的帶鋼表面缺陷共計(jì)1 800張圖像。
本文從1 800張圖像中隨機(jī)抽取16張圖像進(jìn)行拼接,并將分辨率由拼接后的800×800縮放至640×640作為一張?jiān)囼?yàn)圖像,經(jīng)上述方法數(shù)據(jù)增強(qiáng)后得到拼接數(shù)據(jù)集共1 800張,以8∶2劃分為訓(xùn)練集與測(cè)試集。為了進(jìn)一步提升算法的魯棒性,訓(xùn)練過(guò)程中沿用了YOLOv5提出的Mosaic數(shù)據(jù)增強(qiáng)。
本文在16 GiB運(yùn)行內(nèi)存、Ryzen5-5600G處理器、NVIDIA TeslaP40顯卡的硬件平臺(tái)上進(jìn)行模型訓(xùn)練,運(yùn)行庫(kù)版本為CUDA11.6,軟件環(huán)境為Pytorch1.12.1。為了更好地與其他檢測(cè)網(wǎng)絡(luò)進(jìn)行性能對(duì)比,本文采用平均精準(zhǔn)度(average precision,AP)衡量模型檢測(cè)精度,平均精準(zhǔn)度IoU閾值取0.50以及0.50~0.95,分別記作AP50和AP50∶95。
為驗(yàn)證本文添加的各個(gè)模塊是否起到作用,設(shè)置了消融實(shí)驗(yàn)。每組模型在數(shù)據(jù)增強(qiáng)后的NEU數(shù)據(jù)集上進(jìn)行300輪訓(xùn)練,使用AP50和AP50∶95作為模型的性能衡量指標(biāo)。所有實(shí)驗(yàn)組均未使用預(yù)訓(xùn)練權(quán)重且均選擇隨機(jī)梯度下降(stochastic gradient descent,SGD)[24]優(yōu)化器進(jìn)行優(yōu)化,初始學(xué)習(xí)率為0.000 5。實(shí)驗(yàn)編號(hào)和實(shí)驗(yàn)結(jié)果見(jiàn)表1所列,其中“√”表示本組實(shí)驗(yàn)已使用該模塊。
表1 消融實(shí)驗(yàn)結(jié)果數(shù)據(jù)
對(duì)比消融實(shí)驗(yàn)A與B可知,添加CBAM注意力模塊可以有效提升模型的檢測(cè)精度;對(duì)比消融實(shí)驗(yàn)A與C可知,采用RepConv模塊替換常規(guī)卷積模塊可以有效提升模型的檢測(cè)精度;對(duì)比消融實(shí)驗(yàn)A與E可知,采用改進(jìn)的BiFPN頸部網(wǎng)絡(luò)可以有效提升模型的檢測(cè)精度;對(duì)比消融實(shí)驗(yàn)A與G可知,采用解耦檢測(cè)頭DecoupledHead進(jìn)行檢測(cè)可以有效提升模型的檢測(cè)精度;對(duì)比消融實(shí)驗(yàn)B與D可知,CBAM注意力模塊與RepConv模塊的引入有效提升了骨干網(wǎng)絡(luò)的特征提取與提純效率,可以有效提升模型的檢測(cè)精度;對(duì)比消融實(shí)驗(yàn)D與F可知,改進(jìn)的BiFPN頸部網(wǎng)絡(luò)相較于原有的PANet頸部網(wǎng)絡(luò)有更高的特征融合效率,可以有效提升模型檢測(cè)精度;對(duì)比消融實(shí)驗(yàn)F與G可知,添加解耦檢測(cè)頭可以進(jìn)一步使網(wǎng)絡(luò)收斂至更高精度。
為驗(yàn)證本文算法的有效性,將本文算法在含有大量小目標(biāo)的熱軋帶鋼缺陷數(shù)據(jù)集中與常用缺陷檢測(cè)算法YOLOv5、YOLOv6、YOLOX、Faster-RCNN[25]以及YOLOv7進(jìn)行對(duì)比實(shí)驗(yàn)。每個(gè)模型在數(shù)據(jù)增強(qiáng)后的NEU數(shù)據(jù)集上進(jìn)行300輪訓(xùn)練,使用AP50與AP50∶95作為模型的性能衡量指標(biāo)。所有實(shí)驗(yàn)組均未使用預(yù)訓(xùn)練權(quán)重且均選擇SGD優(yōu)化器進(jìn)行優(yōu)化,初始學(xué)習(xí)率為0.000 5。橫向?qū)Ρ葘?shí)驗(yàn)結(jié)果見(jiàn)表2所列。
由表2可知,在包含大量小目標(biāo)帶鋼缺陷的檢測(cè)場(chǎng)景中,本文檢測(cè)精度高于YOLOv5及YOLOX等常見(jiàn)目標(biāo)檢測(cè)算法。
本文以YOLOv7為基礎(chǔ)框架,對(duì)骨干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)以及檢測(cè)頭分別作出改進(jìn)。采用RepConv模塊和CBAM模塊對(duì)骨干網(wǎng)絡(luò)進(jìn)行改進(jìn),改進(jìn)的骨干網(wǎng)絡(luò)為模型提供了高效的多尺度特征圖,使模型檢測(cè)精度進(jìn)一步提升;采用改進(jìn)的BiFPN替換原有的PANet結(jié)構(gòu),使模型的特征融合效率得到提升,進(jìn)一步提高了模型在小目標(biāo)缺陷檢測(cè)環(huán)境下的檢測(cè)精度;采用解耦檢測(cè)頭替換原有的預(yù)測(cè)頭,使模型在訓(xùn)練中可以收斂至更高的精度。在含有大量小目標(biāo)帶鋼缺陷的數(shù)據(jù)集中進(jìn)行的對(duì)比實(shí)驗(yàn)結(jié)果表明,本文提出的改進(jìn)YOLOv7算法精度高于YOLOX、YOLOv6等常用缺陷檢測(cè)算法。
合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版)2024年3期