王春梅,劉 歡+
1.西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,西安 710121
2.西安郵電大學(xué) 陜西省網(wǎng)絡(luò)數(shù)據(jù)分析與智能處理重點(diǎn)實(shí)驗(yàn)室,西安 710121
近年來,隨著人工智能技術(shù)的發(fā)展,缺陷檢測系統(tǒng)在工業(yè)生產(chǎn)中的應(yīng)用越來越廣泛[1-4]。在帶鋼生產(chǎn)過程中,表面缺陷檢測是非常重要的一項(xiàng)工作,使用基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)對帶鋼表面缺陷進(jìn)行檢測變得可行。然而,用于訓(xùn)練和測試的深度學(xué)習(xí)模型所需的計(jì)算資源較為龐大,進(jìn)行缺陷檢測的終端設(shè)備計(jì)算能力有限,給帶鋼表面缺陷檢測領(lǐng)域的實(shí)際應(yīng)用帶來了一定的困難和挑戰(zhàn)。因此,如何在保證檢測精度的前提下,盡可能地減少深度學(xué)習(xí)模型的復(fù)雜度和計(jì)算量,是該領(lǐng)域需要解決的重要問題之一。
目前主流的目標(biāo)檢測算法有兩階段的RCNN(region-based convolutional neural network)[5]、Fast RCNN[6]、Faster RCNN[7-9]、Mask RCNN[10]算法,一階段的SSD(single shot multibox detector)[11]、YOLO(you only look once)[12]算法,以及基于Transformer 的目標(biāo)檢測算法DETR(detection transformer)[13]。兩階段目標(biāo)檢測算法是先產(chǎn)生候選框,對候選框中的內(nèi)容進(jìn)行特征提取,再對區(qū)域內(nèi)容進(jìn)行目標(biāo)回歸,通常這類算法具有較高的檢測精度,但由于要先進(jìn)行候選框的篩選,損失了一部分的檢測速度。單階段目標(biāo)檢測算法是基于回歸的算法,將定位與分類任務(wù)合并,獲得了更快的檢測速度,在實(shí)時(shí)檢測方面有著巨大的優(yōu)勢?;赥ransformer 的目標(biāo)檢測算法DETR 將目標(biāo)檢測問題轉(zhuǎn)化為一個(gè)對象查詢問題,可以一次性檢測整張圖像中的所有目標(biāo),避免了傳統(tǒng)目標(biāo)檢測方法中需要使用滑動(dòng)窗口等方式進(jìn)行多次檢測的問題,提高了檢測速度,而且DETR的可擴(kuò)展性較強(qiáng),可以很容易地?cái)U(kuò)展到新的目標(biāo)檢測任務(wù)中。然而,在帶鋼表面缺陷檢測領(lǐng)域,這些基于深度學(xué)習(xí)的目標(biāo)檢測模型受到終端檢測設(shè)備計(jì)算能力的限制,在模型部署上仍然面臨著巨大的挑戰(zhàn),如何對計(jì)算量龐大的目標(biāo)檢測模型進(jìn)行輕量化處理,使其可以部署在計(jì)算資源有限的設(shè)備上,是當(dāng)前帶鋼表面缺陷檢測領(lǐng)域研究的一個(gè)熱點(diǎn)問題。
為解決主流的目標(biāo)檢測模型在計(jì)算資源有限的終端檢測設(shè)備上的部署問題,蔡劍鋒等人[14]將MobileNet 引入Mask RCNN 目標(biāo)檢測框架中,將MobileNet 作為骨干特征提取網(wǎng)絡(luò),有效地降低模型的參數(shù)量和計(jì)算量。Zhou等人[15]提出YOLOv5s-GCE輕量級(jí)帶鋼表面缺陷檢測模型,引入了Ghost 模塊和CA(coordinate attention)注意力機(jī)制,在不影響檢測精度的情況下減小了模型的體積和計(jì)算量。Yang 等人[16]提出改進(jìn)的CBAM-MobilenetV2-YOLOv5 模型,同時(shí)引入了MobilenetV2 模塊和CBAM(convolutional block attention module)注意力模塊,得到更加輕量的帶鋼表面缺陷檢測模型。隨后,張政超[17]對YOLOv5 進(jìn)行了改進(jìn),使用了更加輕量的Shuffle Netv2 作為骨干網(wǎng)絡(luò),降低了模型的復(fù)雜度,在檢測速度方面具有一定的優(yōu)勢。Qin 等人[18]提出EDDNet輕量級(jí)帶鋼表面缺陷檢測算法,引入EfficientNet 作為骨干特征提取網(wǎng)絡(luò),有效減少了計(jì)算開銷。近年來,閻馨等人[19]提出的改進(jìn)的SSD 算法引入了Involution 算子和Transformer 多頭注意力模塊,在提升模型檢測精度的同時(shí)降低了計(jì)算資源的使用。盧俊哲等人[20]提出一種輕量級(jí)帶鋼表面缺陷檢測算法DCNYOLO(deformable convolutional network-YOLO),該算法引入了輕量級(jí)卷積塊DSConv 和ECA(efficient channel attention)注意力模塊,在不影響檢測精度的情況下得到更加輕量的模型。Wang等人[21]提出一種基于多分支擴(kuò)張卷積聚合和多域感知檢測頭的輕量級(jí)帶鋼表面缺陷檢測模型DAssd-Net,有效降低了模型體積,并且在一定程度上提升了模型的檢測精度。周穎等人[22]提出的光伏電池缺陷檢測方法YOLOv8-EL,使用GauGAN 進(jìn)行數(shù)據(jù)增強(qiáng)解決了數(shù)據(jù)集中各類缺陷不平衡問題,在骨干網(wǎng)絡(luò)和特征提取網(wǎng)絡(luò)中引入上下文聚合模塊(context aggregation module,CAM)來抑制背景噪聲,最后構(gòu)建多注意力檢測頭(multi-attention detection head,MADH)有效提升了檢測精度。Phan 等人[23]提出一種檢測光伏電池故障的新方法,在YOLOv8 中引入了粒子群優(yōu)化算法來優(yōu)化模型參數(shù),使模型達(dá)到最佳的檢測精度。以上研究對計(jì)算量龐大的目標(biāo)檢測模型做了一定的輕量化處理,有一定的啟發(fā)意義。然而,在帶鋼表面缺陷檢測領(lǐng)域,終端檢測設(shè)備的計(jì)算能力往往只有幾個(gè)GFLOPs 級(jí)別,且內(nèi)存小于8 GB,而主流的目標(biāo)檢測模型如YOLO 系列的計(jì)算量高達(dá)40~150 GFLOPs,預(yù)測一張1 024×1 024 的圖像需要占用約16 GB 的內(nèi)存,這樣的計(jì)算需求已經(jīng)超過了終端檢測設(shè)備的處理能力,在不增加計(jì)算資源的情況下終端檢測設(shè)備無法保障計(jì)算量龐大的目標(biāo)檢測模型穩(wěn)定運(yùn)行。此外,還需要更高的檢測精度來滿足實(shí)際的生產(chǎn)需求。
基于上述研究存在的局限性,本文以YOLOv8n為基線提出一種輕量化的帶鋼表面缺陷檢測模型YOLOv8-VSC,該模型引入輕量級(jí)網(wǎng)絡(luò)VanillaNet[24]作為骨干特征提取網(wǎng)絡(luò),有效降低了模型的復(fù)雜度,同時(shí)在骨干特征提取網(wǎng)絡(luò)中引入SPD(space-todepth)[25]模塊,加快模型的推理速度,提升模型性能。此外,在特征融合網(wǎng)絡(luò)中引入輕量級(jí)的上采樣算子CARAFE(content-aware reassembly of features)[26],提高輸出特征的質(zhì)量和豐富度,從而提升檢測精度。綜上所述,本文的主要貢獻(xiàn)如下:
(1)提出一種輕量級(jí)的帶鋼表面缺陷檢測模型YOLOv8-VSC,將輕量級(jí)網(wǎng)絡(luò)VanillaNet 作為骨干特征提取網(wǎng)絡(luò),去除特征提取網(wǎng)絡(luò)中大量的分支結(jié)構(gòu),有效降低了模型的復(fù)雜度。
(2)在特征提取網(wǎng)絡(luò)中引入SPD 模塊,網(wǎng)絡(luò)在下采樣過程中能夠得到無信息損失的二倍下采樣特征圖,擴(kuò)大感受野,提升模型檢測性能,同時(shí)減少網(wǎng)絡(luò)層數(shù)和模型參數(shù)量,加快模型的推理速度。
(3)在特征融合網(wǎng)絡(luò)中引入CARAFE 上采樣算子,模型在上采樣過程中能夠恢復(fù)更多的細(xì)節(jié)信息,有效整合上下文信息,增強(qiáng)輸出特征的表達(dá)能力。
(4)在NEU-DET 數(shù)據(jù)集上進(jìn)行了大量實(shí)驗(yàn),與主流的目標(biāo)檢測算法相比,本文算法在提升檢測精度的同時(shí)所需的計(jì)算資源更少。此外,在VOC 數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),結(jié)果表明本文提出的YOLOv8-VSC具有良好的魯棒性。
隨著工業(yè)自動(dòng)化水平的提高和智能制造技術(shù)的快速發(fā)展,基于深度學(xué)習(xí)的工業(yè)產(chǎn)品表面缺陷檢測系統(tǒng)得到廣泛的應(yīng)用。Li 等人[27]提出一種航空發(fā)動(dòng)機(jī)部件表面缺陷檢測模型YOLO-KEB,在YOLO 的骨干特征提取網(wǎng)絡(luò)中引入ECA-Net(efficient channel attention network)注意力模塊,提升模型的特征提取能力,并在特征融合網(wǎng)絡(luò)中引入了BiFPN(bidirectional feature pyramid network)模塊,充分融合多尺度特征,提升模型的檢測性能。Chen 等人[28]為了解決織物瑕疵受紋理干擾導(dǎo)致誤檢的問題,將頻率分析中的Gabor 濾波器嵌入Fast RCNN 網(wǎng)絡(luò)中,使得模型能夠更好識(shí)別織物缺陷,提升了檢測精度。Dang 等人[29]設(shè)計(jì)了一種用于下水道管道內(nèi)部缺陷檢測框架DefectTR(defect transformer),提高了下水管道缺陷檢測精度。Cui 等人[30]通過引入特征保留塊(feature retaining block,F(xiàn)RB)和跳過密集連接模塊(skip densely connected module,SDCM),解決了因紋理變化和缺陷尺寸較小導(dǎo)致檢測精度差的問題。Zhang等人[31]提出改進(jìn)DETR 的鑄件缺陷檢測算法,引入動(dòng)態(tài)anchor boxes 和改進(jìn)的多尺度可變形注意力模塊,提高transformer 結(jié)構(gòu)對輸入位置信息和尺度大小的敏感度,為其他場景的缺陷檢測任務(wù)提供了新思路。
當(dāng)前先進(jìn)的基于深度學(xué)習(xí)的目標(biāo)檢測算法都因其模型過于復(fù)雜、計(jì)算量龐大導(dǎo)致在一些工業(yè)生產(chǎn)場景中受終端檢測設(shè)備計(jì)算能力的限制而難以部署。為解決上述問題,Suryarasmi 等人[32]提出一種用于織物缺陷檢測的基于CNN(convolutional neural networks)的輕量級(jí)架構(gòu)FN-Net,與先進(jìn)的輕量級(jí)架構(gòu)相比,F(xiàn)N-Net的訓(xùn)練速度更快,需要的計(jì)算資源更少。Ding 等人[33]設(shè)計(jì)了一種輕量級(jí)的管道焊縫表面缺陷檢測算法,以MobileNetV2為主干網(wǎng)絡(luò)構(gòu)建缺陷分類模型,同時(shí)引入了CBAM 雙通道注意力模塊,在降低模型復(fù)雜度的基礎(chǔ)上提升模型的檢測精度。Shi等人[34]提出了一種基于坐標(biāo)注意的輕量級(jí)傳輸線缺陷檢測方法。該方法基于YOLOv5 在通道和空間上對網(wǎng)絡(luò)中的大卷積核進(jìn)行解耦,減少了卷積核的參數(shù)和卷積運(yùn)算的計(jì)算量,實(shí)現(xiàn)了網(wǎng)絡(luò)的輕量化。Ma等人[35]基于Ghost模塊設(shè)計(jì)了GMANet(gradient mask attention network)作為骨干特征提取網(wǎng)絡(luò),并且對特征融合網(wǎng)絡(luò)進(jìn)行重新設(shè)計(jì),得到輕量級(jí)的鋁材表面缺陷檢測算法。
本文采用一階段檢測算法YOLOv8n 作為基線模型,如圖1 所示該網(wǎng)絡(luò)由骨干特征提取網(wǎng)絡(luò)(Backbone)、特征融合網(wǎng)絡(luò)(Neck)以及檢測頭(Head)三部分組成。在骨干網(wǎng)絡(luò)中,與YOLOv5相比,YOLOv8n采用更輕量的C2f 模塊,替換了YOLOv5 中的C3 模塊,第一層卷積由原本的6×6 卷積改為3×3 卷積,深度由C3 模塊的3、6、9、3 改為C2f 的3、6、6、3;在特征融合網(wǎng)絡(luò)中,相比YOLOv5,YOLOv8n 移除了1×1 卷積的降采樣層,同時(shí)將C3 模塊換成了C2f模塊;在檢測頭中,YOLOv8n使用解耦頭結(jié)構(gòu),將分類任務(wù)和回歸任務(wù)解耦,同時(shí)將Anchor-Based 換成了Anchor-Free。此外,YOLOv8n 使用BCE Loss 作為分類損失,使用DFL Loss+CIOU Loss作為回歸損失。
圖1 YOLOv8n網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv8n network framework
針對基線模型YOLOv8n 因計(jì)算量龐大、模型復(fù)雜度高,導(dǎo)致在帶鋼表面缺陷檢測領(lǐng)域進(jìn)行部署時(shí)受終端設(shè)備計(jì)算能力限制的問題,本文提出一種輕量化的帶鋼表面缺陷檢測模型YOLOv8-VSC。該模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,在骨干特征提取網(wǎng)絡(luò)中引入輕量級(jí)的VanillaNet,減少骨干網(wǎng)絡(luò)中不必要的分支結(jié)構(gòu),以降低模型的復(fù)雜度,同時(shí)在VanillaNet 模塊之前引入了SPD 模塊,將特征圖的通道數(shù)量擴(kuò)充為原來的4倍,得到?jīng)]有信息丟失的二倍下采樣特征圖,從而提升網(wǎng)絡(luò)的檢測性能。此外,在特征融合網(wǎng)絡(luò)中引入輕量級(jí)的CARAFE 上采樣模塊,使得網(wǎng)絡(luò)在上采樣的過程中恢復(fù)盡可能多的細(xì)節(jié)特征信息,進(jìn)一步提升模型的檢測性能。
圖2 YOLOv8-VSC網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 YOLOv8-VSC network framework
2.2.1 VanillaNet模塊
由于帶鋼表面缺陷檢測的終端設(shè)備計(jì)算能力有限,導(dǎo)致在部署計(jì)算量龐大的缺陷檢測模型時(shí)受到限制。因此本文在基線模型YOLOv8n 的骨干特征提取網(wǎng)絡(luò)中引入了VanillaNet模塊,VanillaNet只包含基本的卷積層和池化層,沒有復(fù)雜的連接或跳躍連接,從而減少了模型的計(jì)算量和參數(shù)量,特別適用于終端檢測設(shè)備計(jì)算資源受限的情況。因此本文基于YOLOv8,引入VanillaNet[24]網(wǎng)絡(luò)將其作為骨干特征提取網(wǎng)絡(luò),以達(dá)到降低模型復(fù)雜度的目的。Vanilla-Net 的網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示(以6 層的網(wǎng)絡(luò)結(jié)構(gòu)為例)。該網(wǎng)絡(luò)包含3 個(gè)階段,在Ⅰ階段中Stem 將原始的3 通道圖像通過下采樣的方式轉(zhuǎn)換為含有C個(gè)通道的特征圖,之后通過第Ⅱ階段使用步長為2的最大池化層調(diào)整特征圖的尺寸并將通道數(shù)擴(kuò)充為上一層的2 倍。最后通過第Ⅲ階段的全連接層輸出分類結(jié)果。為了保留特征圖所包含的特征信息以使用盡可能小的計(jì)算成本,所有卷積層均使用1×1 的卷積核,同時(shí)將BN 添加至每層的最后從而簡化網(wǎng)絡(luò)的訓(xùn)練過程。
2.2.2 SPD模塊
為了進(jìn)一步提升帶鋼表面缺陷檢測模型的性能,本文在基線模型YOLOv8n 的骨干特征提取網(wǎng)絡(luò)中引入了SPD 模塊,SPD 模塊的參數(shù)量和計(jì)算量較小,只包含一個(gè)1×1 的卷積層,較好地控制模型參數(shù)的增加,避免過度復(fù)雜化,有效提升模型的推理速度。SPD[25]是一種特殊的下采樣方法,它的下采樣示意圖如圖4所示。給定一個(gè)大小為W×H×C特征圖X,然后按照每行每列隔一個(gè)像素進(jìn)行采樣,最終得到4個(gè)子特征圖,這4個(gè)子特征圖大小均為W/2×H/2×C,之后將這4個(gè)子特征圖進(jìn)行拼接,最終得到一個(gè)沒有信息丟失的二倍下采樣特征圖,該特征圖大小為W/2×H/2× 4C。這種設(shè)計(jì)將W、H上的特征信息集成到通道維度上,將通道數(shù)擴(kuò)充為原來的4 倍,無信息損失的二倍下采樣方法使得網(wǎng)絡(luò)在進(jìn)行特征提取時(shí)能夠保留更多的特征信息。相比普通卷積,SPD減少了參數(shù)計(jì)算,在一定程度上加快了模型的推理速度。同時(shí),SPD 還擴(kuò)大了模型的感受野,提升了模型的檢測性能。
圖4 SPD下采樣示意圖Fig.4 Schematic of SPD downsampling
2.2.3 輕量級(jí)上采樣算法CARAFE
由于帶鋼表面缺陷數(shù)據(jù)集的背景噪聲較大,導(dǎo)致模型在上采樣過程中無法辨別有用的缺陷信息,生成的特征圖質(zhì)量較差,無用的干擾信息較多,從而影響模型最終的檢測精度。為了增強(qiáng)輸出的缺陷特征信息的表達(dá)能力,本文在基線模型YOLOv8n的特征融合網(wǎng)絡(luò)中引入了輕量級(jí)的上采樣算子CARAFE[26],它解決了傳統(tǒng)上采樣算子忽略特征圖的語義信息和感受野過小的問題。CARAFE 包含上采樣核預(yù)測模塊和內(nèi)容感知重組模塊,其中上采樣核預(yù)測模塊負(fù)責(zé)生成用于特征重組的上采樣核,根據(jù)下采樣特征圖核上采樣位置的映射關(guān)系來預(yù)測每個(gè)上采樣位置的注意力權(quán)重,在特征重組過程中保持空間細(xì)節(jié)和上下文信息。內(nèi)容感知重組模塊的作用是在上采樣過程中保留盡可能多的空間信息,更好地保持物體邊界的準(zhǔn)確性。整個(gè)上采樣的具體過程可以描述為:輸入初始的特征圖X,特征圖的大小為C×H×W,上采樣比為σ(σ為整數(shù)),經(jīng)由CARAFE 生成一個(gè)大小為C×σH×σW的新特征圖X′,對于X′的任何目標(biāo)位置l′=(i′,j′)在X上都有一個(gè)對應(yīng)源位置l=(i,j),其中,i=[i′/σ],j=[j′/σ]。將N(Xl,k)表示為以位置l為中心的X的k×k子區(qū)域,即Xl的鄰域。首先,核預(yù)測模塊Ψ根據(jù)Xl的鄰域?yàn)槊總€(gè)位置l′預(yù)測一個(gè)位置核Wl′,如式(1)所示:
之后通過內(nèi)容感知重組模塊Ф對特征進(jìn)行重組,將Xl的鄰域與內(nèi)核Wl′重新組合,如式(2)所示:
本文使用東北大學(xué)公開的帶鋼表面缺陷數(shù)據(jù)集(NEU-DET),該數(shù)據(jù)集收錄了帶鋼表面主要的6 種缺陷。如圖5 所示,分別為開裂(Crazing)、內(nèi)含物(Inclusion)、斑塊(Patches)、點(diǎn)蝕表面(Pitted_surface)、軋制氧化皮(Rolled_in Scale)和劃痕(Scratches)缺陷。每種缺陷分別有300張圖片,共計(jì)1 800張圖片。將數(shù)據(jù)集按照8∶1∶1的比例劃分為訓(xùn)練集、驗(yàn)證集和測試集,最終得到訓(xùn)練集1 440張圖片、驗(yàn)證集180張圖片、測試集180張圖片。
圖5 帶鋼表面6種缺陷Fig.5 6 types of defects on surface of strip
本文從模型的mAP(mean average precision)、FPS(frames per second)以及模型的參數(shù)量(Params)和計(jì)算量(GFLOPs)4 個(gè)指標(biāo)來評估模型的性能。mAP 是指模型在測試集上檢測到的所有目標(biāo)的平均精度,該指標(biāo)值越高,表明模型在不同類別目標(biāo)上的檢測效果越好。FPS 反映了模型在單位時(shí)間內(nèi)處理圖像的數(shù)量,F(xiàn)PS值越高,表明模型的實(shí)時(shí)性能越好。模型的參數(shù)量(Params)用來評估模型的復(fù)雜度,參數(shù)量越小模型越輕便。GFLOPs 指標(biāo)用來評估模型的計(jì)算效率,GFLOPs 越低,表明模型的計(jì)算效率就越高。
本文在訓(xùn)練階段采用單張GPU(GeForce RTXTM 3060 12 GB),圖片輸入尺寸為640×640,采用Mosaic方式進(jìn)行數(shù)據(jù)增強(qiáng),初始學(xué)習(xí)率設(shè)置為0.01,使用余弦退火的策略調(diào)整學(xué)習(xí)率,Batchsize 設(shè)置為16,選擇SGD 優(yōu)化器,訓(xùn)練輪數(shù)設(shè)置為300。除特別說明外,本文所有實(shí)驗(yàn)均采用以上實(shí)驗(yàn)設(shè)置。
本文以YOLOv8n 為基線,在骨干特征提取網(wǎng)絡(luò)中引入VanillaNet 模塊以降低模型的復(fù)雜度,同時(shí)在骨干特征提取網(wǎng)絡(luò)中引入SPD 模塊以減少網(wǎng)絡(luò)層數(shù)加快模型的推理速度;此外在特征融合網(wǎng)絡(luò)中引入CARAFE 上采樣算子以增強(qiáng)輸出特征的表達(dá)能力,進(jìn)一步提升模型的檢測精度。為了驗(yàn)證本文對基線模型改進(jìn)的有效性,在NEU-DET 數(shù)據(jù)集上從兩方面設(shè)置了消融實(shí)驗(yàn):
(1)在基線模型的基礎(chǔ)上,每次只引入一種改進(jìn)模塊,驗(yàn)證單個(gè)模塊對模型參數(shù)量、檢測精度、檢測速度的影響。
(2)在最終模型(YOLOv8-VSC)上每次只消除一個(gè)改進(jìn)模塊(不包括消除VanillaNet 模塊),驗(yàn)證單個(gè)改進(jìn)模塊對最終模型性能的影響。實(shí)驗(yàn)結(jié)果見表1。
表1 在NEU-DET數(shù)據(jù)集上的消融研究Table 1 Ablation studies on NEU-DET dataset
通過表1的消融實(shí)驗(yàn)結(jié)果可知,在骨干特征提取網(wǎng)絡(luò)中單獨(dú)引入VanillaNet 模塊后,參數(shù)量由基線的3.01×106降至1.73×106,降低了1.28×106,計(jì)算量由基線的8.1 GFLOPs降至5.0 GFLOPs,降低了3.1 GFLOPs,F(xiàn)PS 相較于基線提升了71,同時(shí)提升了開裂(Cr)、斑塊(Pa)和劃痕(Sc)等缺陷的檢測精度,其中對開裂(Cr)缺陷檢測精度的提升最為顯著,提升了10.9 個(gè)百分點(diǎn)。VanillaNet 使用連續(xù)的卷積-池化結(jié)構(gòu)提取特征,不同塊之間沒有直接的連接,特征圖需要通過卷積和池化層不斷下采樣傳遞到后續(xù)塊,同時(shí)避免了分支結(jié)構(gòu),從而減少了大量運(yùn)算。因此將輕量級(jí)的VanillaNet 模塊作為骨干特征提取網(wǎng)絡(luò)可以有效降低模型的復(fù)雜度并提高推理速度。另外,在網(wǎng)絡(luò)中單獨(dú)引入SPD 模塊后,通過擴(kuò)充通道數(shù)得到一個(gè)沒有特征信息丟失的二倍下采樣特征圖,提升了感受野,這種方式減少了模型的層數(shù),降低對非線性激活的依賴,從而降低模型的計(jì)算量和參數(shù)量,提升模型的推理速度和梯度反轉(zhuǎn)速度。改進(jìn)后模型的計(jì)算量較基線降低2.6 GFLOPs,對模型推理速度的提高最為顯著,F(xiàn)PS 由基線的232提高至333,提高了101。模型的mAP較基線提升了0.8個(gè)百分點(diǎn),對開裂(Cr)和軋制氧化皮(Rs)缺陷的檢測精度均有提升,其中軋制氧化皮(Rs)缺陷的檢測精度達(dá)到最高為65.7%。在特征融合網(wǎng)絡(luò)中單獨(dú)引入CARAFE 上采樣模塊后,網(wǎng)絡(luò)在上采樣過程中可以通過學(xué)習(xí)鄰域內(nèi)像素的關(guān)聯(lián)關(guān)系來實(shí)現(xiàn)上采樣,從而捕捉到更豐富的上下文信息,有利于細(xì)節(jié)特征的重建,使得融合后的特征圖包含更多的有用的細(xì)節(jié)特征信息,雖然輕微地增加了計(jì)算量,但是顯著提升了模型的檢測精度,改進(jìn)后模型的mAP由基線的79.0%提升至80.2%,提升了1.2個(gè)百分點(diǎn),對開裂(Cr)、內(nèi)含物(In)和斑塊(Pa)等缺陷的檢測精度均有提升,其中內(nèi)含物(In)缺陷的檢測精度達(dá)到最高為86.9%。參數(shù)量和計(jì)算量較基線分別增加1.3×105和0.5 GFLOPs,F(xiàn)PS 降低了19。在同時(shí)引入VanillaNet 模塊和SPD 模塊后,模型的參數(shù)量和計(jì)算量相較于基線分別降低了1.19×106和2.6 GFLOPs,F(xiàn)PS 提高了38,mAP 提升了1.2 個(gè)百分點(diǎn),對開裂(Cr)、斑塊(Pa)、點(diǎn)蝕表面(Ps)和劃痕(Sc)缺陷的檢測精度均有提升,其中劃痕(Sc)缺陷的檢測精度達(dá)到最高為94.0%,較基線提升3 個(gè)百分點(diǎn)。在同時(shí)引入VanillaNet 模塊和CARAFE 上采樣模塊后,模型的mAP 與基線一致,對斑塊(Pa)缺陷的檢測精度最高,由基線的92.9%提升至96.4%,提升了3.5 個(gè)百分點(diǎn)。模型的參數(shù)量和計(jì)算量相較于基線分別降低了1.16×106和2.3 GFLOPs,F(xiàn)PS提升了31。本文提出的最終模型同時(shí)引入VanillaNet 模塊、SPD 模塊和CARAFE 上采樣模塊,模型的mAP 達(dá)到最高80.8%,其中開裂(Cr)和點(diǎn)蝕表面(Ps)缺陷的檢測精度達(dá)到最高,分別由基線的47.4%和91.9%提升至60.1%和94.2%,提升了12.7 個(gè)百分點(diǎn)和2.3 個(gè)百分點(diǎn)。同時(shí)最終模型也保持著較低的參數(shù)量和計(jì)算量,僅為基線的65.1%和74.1%,F(xiàn)PS 較基線提高了31。綜上所述,本文提出的帶鋼表面缺陷檢測模型與基線相比,有效降低了模型的復(fù)雜度,同時(shí)保持著較好的檢測精度和實(shí)時(shí)性能。
為了直觀地比較本文提出的YOLOv8-VSC 與基線模型在檢測帶鋼表面缺陷上的檢測性能,分別使用YOLOv8n和YOLOv8-VSC在NEU-DET數(shù)據(jù)集的測試集上定性分析,定性結(jié)果如圖6所示。第一行為基線模型的檢測結(jié)果,第二行為YOLOv8-VSC 的檢測結(jié)果。
圖6 在NEU-DET數(shù)據(jù)集上的定性分析Fig.6 Qualitative analysis on NEU-DET dataset
由圖6 的定性結(jié)果可知,對比每一列的檢測結(jié)果,可以看出本文提出的YOLOv8-VSC 檢測出了基線模型漏檢的缺陷,在圖6中已用藍(lán)色箭頭標(biāo)示。此外,在同一位置缺陷的檢測上,本文提出的YOLOv8-VSC 的置信度也高于基線模型。在NEU-DET 數(shù)據(jù)集上的定性結(jié)果表明在帶鋼表面缺陷的檢測上,本文提出的YOLOv8-VSC相比基線模型有一定的優(yōu)勢。
為了進(jìn)一步驗(yàn)證本文提出的YOLOv8-VSC 的魯棒性,分別將基線算法與YOLOv8-VSC 在鋁材表面缺陷數(shù)據(jù)集(APSPC)和VOC2012數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。鋁材表面缺陷數(shù)據(jù)集(APSPC)收集了1 885 張鋁材表面缺陷,共包含10 種缺陷類別,分別為凹陷、不導(dǎo)電、擦花、桔皮、漏底、碰傷、起坑、凸粉、涂層開裂和臟點(diǎn)等缺陷。VOC2012 數(shù)據(jù)集收集了17 125 張圖片,包含20種目標(biāo)類別。將上述兩個(gè)數(shù)據(jù)集按照8∶1∶1的比例劃分訓(xùn)練集、驗(yàn)證集和測試集,實(shí)驗(yàn)設(shè)置與3.2節(jié)一致,實(shí)驗(yàn)結(jié)果見表2、表3。
表2 在APSPC數(shù)據(jù)集上的魯棒性研究Table 2 Robustness study on APSPC dataset
表3 在VOC2012數(shù)據(jù)集上的魯棒性研究Table 3 Robustness study on VOC2012 dataset
由表2的實(shí)驗(yàn)結(jié)果可得,在鋁材表面缺陷數(shù)據(jù)集上,本文提出的YOLOv8-VSC相較于基線,mAP獲得了1.4 個(gè)百分點(diǎn)的增益,模型參數(shù)量由基線的3.01×106減少至1.96×106,減少了1.05×106,模型的計(jì)算量由基線的8.1 GFLOPs 降低至6.0 GFLOPs,降低2.1 GFLOPs,F(xiàn)PS較基線提高9。
由表3 的實(shí)驗(yàn)結(jié)果可得,在VOC2012 數(shù)據(jù)集上,本文提出的YOLOv8-VSC 相較于基線,mAP 提升了0.3 個(gè)百分點(diǎn),模型參數(shù)量由基線的3.01×106減少至1.96×106,減少1.05×106,模型的計(jì)算量由基線的8.1 GFLOPs 降低至6.0 GFLOPs,降低2.1 GFLOPs,F(xiàn)PS較基線提高10。
在鋁材表面缺陷數(shù)據(jù)集(APSPC)和VOC2012數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文提出的YOLOv8-VSC具有良好的魯棒性。
將兩階段的目標(biāo)檢測算法Fast RCNN 和一階段的目標(biāo)檢測算法SSD、YOLOv5、YOLOv7、YOLOv8和CG-Net[36]以及基于Anchor-Free 的CenterNet[37]等當(dāng)前先進(jìn)的目標(biāo)檢測算法與本文提出的YOLOv8-VSC 在NEU-DET 數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表4。
通過表4的實(shí)驗(yàn)結(jié)果可以看出,本文提出的帶鋼表面缺陷檢測算法YOLOv8-VSC 在mAP、模型參數(shù)量、模型計(jì)算量以及FPS方面均達(dá)到了最優(yōu)。相比基線YOLOv8,將mAP 提升了1.8 個(gè)百分點(diǎn),模型參數(shù)量減少1.05×106,模型的計(jì)算量由8.1 GFLOPs 降至6.0 GFLOPs,降低2.1 GFLOPs,F(xiàn)PS 提升了31。與基于Anchor-Free 的CenterNet 相比,在帶鋼表面缺陷檢測上的優(yōu)勢更為顯著,將mAP 提高7.4 個(gè)百分點(diǎn),模型參數(shù)量減少了3.071×107,僅為CenterNet 的6%,模型的計(jì)算量降低64.2 GFLOPs,僅為CenterNet 的8.5%,F(xiàn)PS 提高了222。綜上所述,本文提出的YOLOv8-VSC 在保證模型檢測精度的情況下有著模型體積小、計(jì)算量低以及實(shí)時(shí)性高的優(yōu)勢,便于在一些計(jì)算能力較弱、計(jì)算資源有限的終端檢測設(shè)備上部署。
在帶鋼表面缺陷檢測領(lǐng)域中,由于負(fù)責(zé)檢測的終端設(shè)備計(jì)算資源有限,導(dǎo)致基于深度學(xué)習(xí)的缺陷檢測算法部署困難。本文提出一種輕量級(jí)的帶鋼表面缺陷檢測算法YOLOv8-VSC。在NEU-DET 帶鋼表面缺陷數(shù)據(jù)集上的mAP 達(dá)到80.8%,模型參數(shù)量和計(jì)算量僅為基線的65.1%和74.1%。在VOC2012數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明本文算法具有良好的魯棒性。與主流的目標(biāo)檢測算法相比,本文提出的YOLOv8-VSC 在保持高檢測精度的同時(shí)所需的計(jì)算資源更少,在帶鋼表面缺陷檢測領(lǐng)域有一定的競爭力。經(jīng)過研究發(fā)現(xiàn),對于整體檢測精度影響最大的是帶鋼表面開裂和軋制氧化皮這兩類缺陷,原因是這兩類缺陷的背景噪聲較大,極難分辨缺陷與背景,導(dǎo)致這兩類缺陷存在誤檢、漏檢的概率較大。下一步任務(wù)是解決這兩類缺陷檢測困難的問題,進(jìn)一步提升帶鋼表面缺陷檢測模型的精度。