竇 智,高浩然,劉國(guó)奇,常寶方
河南師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,河南 新鄉(xiāng) 453007
鋼板是工業(yè)生產(chǎn)中最常見(jiàn)的原材料之一,在其生產(chǎn)、加工及運(yùn)輸過(guò)程中難免會(huì)因各種原因受到損傷從而產(chǎn)生缺陷,如劃痕、污漬、壓痕等。這些缺陷會(huì)使得鋼板在后續(xù)加工成工業(yè)產(chǎn)品時(shí)產(chǎn)出殘次品,可能會(huì)造成極大的經(jīng)濟(jì)損失和安全事故。因此,對(duì)鋼板表面的缺陷進(jìn)行精準(zhǔn)的檢測(cè)擁有重大的研究意義。
傳統(tǒng)的表面缺陷檢測(cè)方法一般是依靠人工檢測(cè)[1],這種方法不僅耗時(shí)耗力,還會(huì)因?yàn)椴煌说慕?jīng)驗(yàn)及能力不同導(dǎo)致檢測(cè)效果會(huì)大打折扣,錯(cuò)檢率和誤檢率難以達(dá)到行業(yè)要求。并且隨著數(shù)字化浪潮在工業(yè)領(lǐng)域的興起,無(wú)人化和智能化成為重要的發(fā)展方向。因此,基于機(jī)器視覺(jué)的缺陷檢測(cè)以其高精度和高效率取代了人工檢測(cè)。然而,基于機(jī)器視覺(jué)的缺陷檢測(cè)需要使用人工設(shè)計(jì)的算法提取特征,算法的魯棒性和泛化能力較差,不能滿足實(shí)際生產(chǎn)的需要。隨著深度學(xué)習(xí)的發(fā)展,由于它在目標(biāo)檢測(cè)領(lǐng)域表現(xiàn)出的優(yōu)異效果,基于深度學(xué)習(xí)的缺陷檢測(cè)逐漸成為了重要的研究熱點(diǎn)[2]。
目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為單階段和兩階段的目標(biāo)檢測(cè)算法[3]。單階段方法包括YOLO[4]算法系列、SSD[5]等。兩階段方法包括R-CNN[6]、Fast-RCNN[7]和Faster-RCNN[8]。兩階段檢測(cè)方法需要先生成目標(biāo)區(qū)域,然后網(wǎng)絡(luò)對(duì)每個(gè)區(qū)域進(jìn)行分類,獲取預(yù)測(cè)信息。與兩階段方法相比,單階段方法速度較快,更適用于實(shí)際使用。2020 年,Detection Transformer(DETR)[9]的提出將Transformer成功引入到計(jì)算機(jī)視覺(jué)領(lǐng)域。也有許多研究學(xué)者將深度學(xué)習(xí)和缺陷檢測(cè)結(jié)合,取得了成果,Chao 等[10]通過(guò)使用雙特征金字塔網(wǎng)絡(luò)(DFPN)和解耦頭改進(jìn)YOLOv5 提出了RDD-YOLO,在鋼材表面缺陷檢測(cè)中有不錯(cuò)的結(jié)果。崔克彬等[11]針對(duì)缺陷檢測(cè)中誤檢、漏檢率高等問(wèn)題提出了MCB-FAH-YOLOv8,通過(guò)加入改進(jìn)后的卷積注意力機(jī)制模塊(CBAM)和可替換四頭ASFF 預(yù)測(cè)頭(four-head ASFF prediction head,F(xiàn)AH),使網(wǎng)絡(luò)對(duì)微小物體和密集目標(biāo)檢測(cè)能力提升,在犧牲速度的情況下提高了精度。王春梅等[12]將VanillaNet主干和YOLOv8 結(jié)合,并使用輕量級(jí)的上采樣算子CARAFE 提出了YOLOv8-VSC,使模型在保證高檢測(cè)精度的前提下需要的計(jì)算資源更少。侯玥等[13]設(shè)計(jì)了一種由Swin Transformer 模塊和PANET 模塊組成的學(xué)習(xí)器,對(duì)小樣本檢測(cè)任務(wù)有了顯著的提高。趙珊等[14]設(shè)計(jì)了一種通道分離雙注意力機(jī)制,提取更多細(xì)節(jié)特征,改善了深度網(wǎng)絡(luò)信息丟失問(wèn)題。趙睿等[15]通過(guò)使用DenseBlock 模塊和SE-Net 注意力提升了網(wǎng)絡(luò)的特征提取能力,提升了在小目標(biāo)場(chǎng)景下的檢測(cè)性能。
已有的研究成果通過(guò)不同的方式提高了缺陷檢測(cè)的各種性能,但仍然難以滿足行業(yè)的現(xiàn)實(shí)需求。在實(shí)際的生產(chǎn)檢測(cè)過(guò)程中,缺陷呈現(xiàn)種類多、數(shù)量少的特點(diǎn),再加上公開(kāi)的領(lǐng)域樣本集缺失,使得依賴于大規(guī)模樣本集合的深度學(xué)習(xí)方法無(wú)法應(yīng)用于此類小樣本缺陷檢測(cè)中。本文的貢獻(xiàn)在于提出了一種高性能的數(shù)據(jù)增強(qiáng)方法,可有效擴(kuò)充訓(xùn)練集合,使深度學(xué)習(xí)應(yīng)用于小樣本缺陷檢測(cè)具備可行性。同時(shí)為了滿足檢測(cè)性能和深度邊緣計(jì)算的具體需求,進(jìn)一步優(yōu)化了網(wǎng)絡(luò)模型的性能和復(fù)雜度,使高性能的網(wǎng)絡(luò)模型應(yīng)用于邊緣計(jì)算成為可能,是本文的另一個(gè)重要貢獻(xiàn)。本文的主要?jiǎng)?chuàng)新如下:
(1)為了解決訓(xùn)練樣本缺失問(wèn)題,提出了一種基于模糊搜索的交互式數(shù)據(jù)增強(qiáng)算法,對(duì)鋼板表面的缺陷數(shù)據(jù)集進(jìn)行了擴(kuò)充,解決深度學(xué)習(xí)模型訓(xùn)練時(shí)樣本不足導(dǎo)致檢測(cè)效果差的問(wèn)題。
(2)為了降低YOLOv8 模型的參數(shù)量和計(jì)算量,使其能應(yīng)用于邊緣計(jì)算中,設(shè)計(jì)輕量化多尺度殘差網(wǎng)絡(luò)作為模型的主干網(wǎng)絡(luò);在BiFPN 的基礎(chǔ)上進(jìn)行改進(jìn),提出一種新的頸部網(wǎng)絡(luò)CBFPN,去除部分支路,使網(wǎng)絡(luò)更加輕量化,并且使用一種新的融合方式,通過(guò)不同的擴(kuò)展卷積率的擴(kuò)展卷積獲取不同感受野的上下文信息,提高網(wǎng)絡(luò)檢測(cè)的精度。
(3)為了進(jìn)一步提高網(wǎng)絡(luò)的檢測(cè)精度,提出ECSA注意力模塊,使網(wǎng)絡(luò)能從通道上和空間上提取更豐富的特征;使用Wise-IoU 替換YOLOv8 原網(wǎng)絡(luò)的CIoU 損失函數(shù),使模型收斂更快,精度更高。
數(shù)據(jù)增強(qiáng)是目標(biāo)檢測(cè)乃至整個(gè)深度學(xué)習(xí)中常用的提高模型性能的方法之一。數(shù)據(jù)增強(qiáng)一方面擴(kuò)充數(shù)據(jù)集,讓模型擁有更強(qiáng)的泛化能力;另一方面,也相當(dāng)于為原始數(shù)據(jù)引入了噪聲,提高了模型的魯棒性。目前常見(jiàn)的方法是對(duì)原始數(shù)據(jù)進(jìn)行翻轉(zhuǎn)、裁剪、抖動(dòng)、加入噪聲等。Bochkovskiy 等[16]對(duì)四張圖片進(jìn)行隨機(jī)裁剪,再拼接到一張圖上作為訓(xùn)練數(shù)據(jù),豐富了圖片的背景。Terrance等[17]在訓(xùn)練時(shí)隨機(jī)裁剪掉圖像的一塊正方形區(qū)域,然后用空白填充。Yang等[18]在訓(xùn)練過(guò)程中引入高斯噪聲、模糊圖像來(lái)增強(qiáng)模型的泛化能力和魯棒性。
以上方法都是對(duì)原數(shù)據(jù)進(jìn)行簡(jiǎn)單的變換,面對(duì)已有樣本數(shù)量稀少的情況,難以生成大量符合真實(shí)情況的仿真樣本,并不能解決缺陷樣本稀缺的鋼板檢測(cè)問(wèn)題。針對(duì)以上問(wèn)題,本文提出了一個(gè)面向小樣本缺陷檢測(cè)的數(shù)據(jù)增強(qiáng)算法。
基于深度學(xué)習(xí)的缺陷檢測(cè)主要分為單階段和兩階段的目標(biāo)檢測(cè)方法。其中單階段檢測(cè)方法的YOLO 系列因其優(yōu)異的準(zhǔn)確率和更快的速度,被廣泛應(yīng)用于目標(biāo)檢測(cè)任務(wù)中。而YOLOv8是YOLO系列的SOTA算法,相比其他算法,它在速度和精度上均有更好的表現(xiàn)。YOLOv8的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
圖1 YOLOv8網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv8 network diagram
YOLOv8 由主干、Neck 和Head 構(gòu)成。主干主要由C2f 和SPPF 模塊組成,其中,C2f 模塊把YOLOv5 的C3結(jié)構(gòu)和YOLOv7的ELAN結(jié)構(gòu)相結(jié)合,在保證了模塊的輕量化的同時(shí)獲得更豐富的梯度流信息,從而獲得更高的精度。在主干的末端,仍然使用最流行的SPPF 模塊。它依次傳遞3 個(gè)大小為5×5 的maxpool,然后將每一層進(jìn)行串聯(lián),這樣不僅能保證這一層的輕量化,又能在檢測(cè)不同尺度的物體時(shí)保證精度。在Neck 部分,YOLOv8 仍然采用FPN-PAN 的結(jié)構(gòu)進(jìn)行特征融合,能對(duì)不同尺度下的特征信息進(jìn)行融合和利用。在Head部分使用解耦頭結(jié)構(gòu)(decoupled-head),將分類和檢測(cè)任務(wù)分開(kāi);舍棄了錨框,使用Anchor-Free 結(jié)構(gòu),不用再進(jìn)行錨框超參數(shù)的調(diào)整,減輕了算法的復(fù)雜度。Loss計(jì)算有分類和回歸兩個(gè)部分,分類使用BCE loss,回歸分支使用了distribution focal loss和CIOU損失函數(shù)。
制造業(yè)的特殊性導(dǎo)致缺乏鋼板缺陷的通用數(shù)據(jù)集[19],若想將深度學(xué)習(xí)應(yīng)用于鋼板缺陷檢測(cè),并達(dá)到業(yè)界認(rèn)可的性能,自制專門的訓(xùn)練集合是唯一的選擇。然而在本文的應(yīng)用場(chǎng)景下,數(shù)月的采集周期內(nèi)僅僅能獲取十幾張缺陷樣本,樣本規(guī)模嚴(yán)重不足,導(dǎo)致深度網(wǎng)絡(luò)模型無(wú)法針對(duì)該問(wèn)題進(jìn)行有效的優(yōu)化學(xué)習(xí)。針對(duì)這一情況,本文提出了一種基于模糊搜索的交互式數(shù)據(jù)增強(qiáng)算法,該算法能在保證鋼板缺陷特征多樣性的前提下,生成大量仿真度高、滿足訓(xùn)練要求的缺陷樣本集合,解決深度學(xué)習(xí)模型訓(xùn)練時(shí)樣本不足導(dǎo)致檢測(cè)效果差的問(wèn)題。首先,使用鼠標(biāo)選中樣本圖像中鋼板缺陷任意一點(diǎn)X(i,j),以該點(diǎn)為中心生成一個(gè)尺寸為3×3 像素的搜索鄰域P(i,j):
該區(qū)域如圖2所示。
圖2 搜索領(lǐng)域圖Fig.2 Search field diagram
然后,計(jì)算P(i,j)中的各點(diǎn)X(i,j)的相似度:
其中,V(·)表示該像素點(diǎn)的亮度值。相似度低于閾值(本文中閾值取20)的點(diǎn)被納入相似點(diǎn)集并記錄其圖像坐標(biāo)。
遞歸調(diào)用該方法,即可記錄并標(biāo)定傷痕圖像區(qū)域。接著,從圖像中提取標(biāo)定區(qū)域的子圖像,實(shí)現(xiàn)像素級(jí)傷痕子圖分割。最后,對(duì)傷痕子圖進(jìn)行旋轉(zhuǎn)、放縮、放射等變換操作,并在背景圖隨機(jī)位置上進(jìn)行融合,即可生成大量的鋼板缺陷樣本S,融合過(guò)程如公式所示:
其中,h、w表示行、列的偏移量,()i+h,j+w表示缺陷在圖像上的坐標(biāo),M( )i,j為傷痕子圖上i行j列像素點(diǎn)的值,B表示背景圖。
本文算法生成樣本步驟如圖3 所示。圖3(a)為鋼板缺陷樣本原圖,圖3(b)為本文算法提取生成的缺陷子圖,圖3(c)為樣品背景圖,圖3(d)為最終生成的樣本。
圖3 生成缺陷樣本展示Fig.3 Generating defect samples
將YOLOv8 直接應(yīng)用于真實(shí)的鋼板缺陷檢測(cè)過(guò)程中,出現(xiàn)了嚴(yán)重的漏檢、誤檢等問(wèn)題,與行業(yè)要求存在較大差距。此外,龐大的YOLOv8模型無(wú)法應(yīng)用于工業(yè)現(xiàn)場(chǎng)的邊緣計(jì)算中。若要將深度網(wǎng)絡(luò)成功應(yīng)用于該領(lǐng)域,上述問(wèn)題亟待解決。鋼板缺陷由其特殊性,呈現(xiàn)顏色單一,特異性強(qiáng),尺寸差別大等特點(diǎn),針對(duì)這一特殊的檢測(cè)對(duì)象,本文提出了LEC-YOLO缺陷檢測(cè)模型,如圖4所示。采用輕量化多尺度殘差網(wǎng)絡(luò)(lightweight multi-scale residual networks,LMSRNet)替換原主干網(wǎng)絡(luò)(如紅色模塊所示),引入ECSA模塊(如綠色模塊所示),將Neck改為CBFPN 結(jié)構(gòu)(如藍(lán)色模塊所示),并優(yōu)化損失函數(shù)。首先,設(shè)計(jì)輕量型網(wǎng)絡(luò)LMSRNet 替換YOLOv8 的主干,確保高效提取缺陷像素級(jí)強(qiáng)特征的前提下,有效降低了網(wǎng)絡(luò)模型規(guī)模和計(jì)算量,提升了檢測(cè)速度。然后,提出一種融合通道和空間的ECSA(efficient channel spatial attention)注意力模塊,置于SPPF(spatial pyramid pooling-fast)模塊之后,融合通道及空間信息,并通過(guò)多尺度卷積提取多粒度特征,提升模型對(duì)不同尺度和維度缺陷特征的提取能力。接著,提出基于上下文的雙向路徑特征金字塔(context bidirectional feature pyramid network,CBFPN)對(duì)上述的多種特征進(jìn)行整合,關(guān)注目標(biāo)與背景的沖突信息,實(shí)現(xiàn)層內(nèi)及層間的特征流動(dòng),實(shí)現(xiàn)不同尺度的特征融合,使網(wǎng)絡(luò)精準(zhǔn)區(qū)分缺陷區(qū)域和背景區(qū)域。最后,使用Wise-IoU替換原本的CIoU作為損失函數(shù),進(jìn)一步提升缺陷檢測(cè)模型的訓(xùn)練效率和檢測(cè)性能。
圖4 LEC-YOLO網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.4 LEC-YOLO network structure diagram
為了同時(shí)滿足模型輕量化和特征高效提取的要求,受MobileNetv3[20]的啟發(fā),本文提出一種輕量化多尺度殘差網(wǎng)絡(luò)(LMSRNet)替換YOLOv8的主干網(wǎng)絡(luò)。
由于圖像經(jīng)過(guò)深度神經(jīng)網(wǎng)絡(luò)的處理之后,會(huì)包含大量的冗余特征圖[21]。這些冗余特征的相似度很高,而YOLOV8的主干網(wǎng)絡(luò)會(huì)對(duì)所有特征圖進(jìn)行逐通道卷積,這無(wú)疑會(huì)造成大量的冗余計(jì)算,降低網(wǎng)絡(luò)效率。為解決這一問(wèn)題,使網(wǎng)絡(luò)效率更高并降低模型參數(shù)量。設(shè)計(jì)了LMSRNet作為主干網(wǎng)絡(luò)。鋼板缺陷區(qū)域與其他區(qū)域像素級(jí)特征上存在明顯差異,為了提取鋼板缺陷的強(qiáng)特征,首先通過(guò)CBH 模塊提取并處理這些特征。模塊采用尺度為3×3的卷積層,在保證充分提取缺陷像素級(jí)局部強(qiáng)特征的前提下,有效控制模塊參數(shù)量,不增加額外參數(shù);為了平衡計(jì)算精度、執(zhí)行效率以及可移植性,使用h-swish 代替swish作為激活函數(shù),h-swish 表示為:
其中,x為輸入向量,RELU6 為激活函數(shù)。相比于swish函數(shù),h-swish 函數(shù)的區(qū)別是使用RELU6 激活函數(shù)替代sigmoid 函數(shù),sigmoid 函數(shù)是非線性函數(shù),這種非線性雖然提高了精度,但計(jì)算復(fù)雜。所以使用RELU6作為近似函數(shù)來(lái)逼近swish。RELU6 不僅能在幾乎所有軟件和硬件框架上實(shí)現(xiàn)、移植成本低,且能消除使用線性函數(shù)代替sigmoid函數(shù)產(chǎn)生的精度損失;最后通過(guò)一系列多尺度殘差卷積模塊(multi-scale residual convolution module,MRCM)進(jìn)行多通道輸出。MRCM 的結(jié)構(gòu)如圖5所示。
圖5 多尺度殘差卷積模塊結(jié)構(gòu)圖Fig.5 Multi-scale residual convolution module structure diagram
MRCM 首先將CBH 輸出的特征圖根據(jù)通道分成x1和x2兩等份;然后,將x1輸入感受野分別為3和5的卷積層,以涵蓋缺陷特征可能出現(xiàn)的尺寸,并提取多粒度信息;接著,將x1的多尺度卷積結(jié)果與x2進(jìn)行拼接,實(shí)現(xiàn)多維特征差分融合;最后,對(duì)融合后的特征進(jìn)行逐點(diǎn)卷積,并與初始輸入特征進(jìn)行殘差融合,輸出最終特征圖,使模型保留對(duì)多維特征的感知能力。
其中,x為輸入特征,x1、x2為將x按通道等分的特征子集,Conv3×3( )、Conv5×5( )表示感受野分別為3和5的卷積層。
由于待檢測(cè)缺陷具有較好的可分性,強(qiáng)特征呈現(xiàn)較為明顯的稀疏性。此外,實(shí)驗(yàn)表明低維特征在最終的決策過(guò)程中仍然有一定的貢獻(xiàn)性,有必要予以保留。因此,MRCM只對(duì)特征圖一半的通道進(jìn)行卷積操作,有效降低了計(jì)算量和復(fù)雜度,且該過(guò)程中特征損失可忽略不計(jì),實(shí)驗(yàn)結(jié)果驗(yàn)證了該創(chuàng)新點(diǎn)的有效性。如表1 所示,LMSRNet 明顯降低了網(wǎng)絡(luò)的參數(shù)量及計(jì)算量,并且提高了檢測(cè)速度(FPS),而在精度方面,準(zhǔn)確率和召回率都有提升。
表1 不同主干對(duì)比結(jié)果Table 1 Comparison results of different trunk
鋼板表面缺陷中小目標(biāo)較多,使用YOLOv8檢測(cè)時(shí)會(huì)頻繁出現(xiàn)漏檢的情況,因此本文在BiFPN[22]的基礎(chǔ)上設(shè)計(jì)了CBFPN金字塔網(wǎng)絡(luò)結(jié)構(gòu)來(lái)替換原YOLOv8模型中的PANet網(wǎng)絡(luò),使網(wǎng)絡(luò)能傳遞更多的特征信息。
YOLOv8的Neck使用的是PANet結(jié)構(gòu),PANet既可以利用高層特征圖的語(yǔ)義信息(利于對(duì)目標(biāo)進(jìn)行分類),又可以利用底層特征圖的位置信息(利于對(duì)目標(biāo)進(jìn)行定位),如圖6(a)所示。BiFPN(bidirectional feature pyramid network)全稱為加權(quán)雙向(自頂向下+自底向上)特征金字塔網(wǎng)絡(luò)。它具有高效雙向跨尺度連接和加權(quán)融合等重要特征。為了融合更多的特征信息,BiFPN在同層的輸入和輸出之間額外添加了一層通道,使得同一層內(nèi)和不同層間的特征能進(jìn)行融合。如圖6(b)所示。
圖6 PANet、BiFPN、CBPFPN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Network structure diagram of PANet,BiFPN,and CBPFPN
在BiFPN的基礎(chǔ)上,本文進(jìn)行改進(jìn),提出了CBFPN,如圖6(c)所示。為了更加精簡(jiǎn)結(jié)構(gòu),在保留雙向跨尺度連接的基礎(chǔ)上,去除掉多余的支路,僅使用P3、P4、P5通道進(jìn)行輸出特征圖。并且將P2通道提取的特征向上與P3 通道的特征進(jìn)行融合,在不影響特征信息融合的前提下簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu),使模型更加輕量化。
另外,BiFPN 使用了加權(quán)融合的特征融合方式,公式如下所示:
其中,ω表示輸入特征的權(quán)重;ε=0.000 1,為防止數(shù)值不穩(wěn)定;Ii表示通道輸入的特征值。加權(quán)特征融合是給每個(gè)輸入的特征添加一個(gè)權(quán)重,以平衡不同通道的特征,使特征快速歸一化融合。但是,這種直接融合的方式容易忽略不同尺度特征之間以及目標(biāo)物體與背景之間的沖突信息,缺乏上下文信息可能會(huì)阻礙性能的進(jìn)一步提高[23]。所以,本文提出一種基于上下文信息的融合方式,使用不同展開(kāi)卷積率的卷積來(lái)獲取不同感受野的上下文信息,將得到的特征通過(guò)速率為1、3、5的三種1×1卷積,再使用Concat融合,融合不同層之間的特征,消除層間的沖突信息。融合方式如圖7所示。
圖7 融合方式Fig.7 Fusion mode
為了使網(wǎng)絡(luò)能提取更多缺陷強(qiáng)特征,進(jìn)一步提高對(duì)鋼板表面缺陷的檢測(cè)效果,本文設(shè)計(jì)了ECSA 注意力機(jī)制。ECSA 是一種融合了ECA(efficient channel attention)[24]和改進(jìn)的SAM(spatial attention module)[25]的注意力機(jī)制模塊,對(duì)輸入的圖像先后進(jìn)行通道和空間注意力機(jī)制的處理,如圖8 所示。特征輸入之后,會(huì)先通過(guò)ECA 注意力模塊,與原始特征得到一個(gè)加權(quán)的結(jié)果,將得到的特征輸入改進(jìn)的空間注意力模塊,最終進(jìn)行加權(quán)相乘作為最終輸出特征。ECSA 注意力融合了通道注意力與空間注意力,相比于單純使用通道注意力或空間注意力可以取得更好的效果。接下來(lái)分別介紹ECA注意力和改進(jìn)的SAM注意力。
圖8 ECSA模型結(jié)構(gòu)Fig.8 Structure of ECSA model
ECA高效通道注意力是一個(gè)通道注意力模塊,它的模型結(jié)構(gòu)如圖9(a)所示。ECA注意力使用一維卷積實(shí)現(xiàn)局部跨通道交互,提取不同通道間的依賴關(guān)系。首先對(duì)輸入的特征圖進(jìn)行全局平均池化,將提取的特征輸入卷積核大小為k的一維卷積中,經(jīng)過(guò)sigmoid 激活函數(shù)得到每個(gè)通道對(duì)應(yīng)的權(quán)重w。然后將得到的權(quán)重與原始特征圖相乘。最后與輸入特征圖做element-wise乘法操作,生成改進(jìn)的SAM需要的輸入特征。
圖9 ECA、改進(jìn)的SAM注意力結(jié)構(gòu)圖Fig.9 Attention structure diagram of ECA and improved SAM
SAM 為了將通道壓縮使用了最大池化和平均池化,這樣做不可避免地會(huì)損失部分特征。因此,使用多核卷積層替代最大池化和平均池化。通過(guò)不同大小卷積核的卷積,模塊可得到不同感受野的特征[26],保留更多圖像的紋理及缺陷尺寸信息。將得到的結(jié)果經(jīng)過(guò)一個(gè)7×7 的卷積降維成一個(gè)通道,再經(jīng)過(guò)sigmoid 操作生成空間注意力特征圖。最后將該特征和模塊輸入特征做乘法,得到最終生成的特征。空間通道注意力的公式如下:
其中,F(xiàn)表示輸入的特征,1×1、3×3、5×5、7×7表示卷積核的大小,σ為sigmoid 函數(shù)。它的模型結(jié)構(gòu)圖如圖9(b)所示。
損失函數(shù)的設(shè)計(jì)是影響模型性能的重要原因之一,而邊界框損失函數(shù)是目標(biāo)檢測(cè)損失函數(shù)的重要組成部分。YOLOv8的邊界框預(yù)測(cè)函數(shù)使用的是CIoU loss[27],CIoU loss 雖然考慮到了預(yù)測(cè)框和真實(shí)框的寬高比,但是并沒(méi)有考慮到訓(xùn)練數(shù)據(jù)中的低質(zhì)量樣本的問(wèn)題。為了解決這類問(wèn)題,本文使用Wise-IoU[28]替代CIoU。訓(xùn)練數(shù)據(jù)集中不可避免地會(huì)存在部分低質(zhì)量樣本,而錨框的集合因素(距離、縱橫比等)會(huì)加強(qiáng)網(wǎng)絡(luò)對(duì)低質(zhì)量樣本的關(guān)注,因此會(huì)導(dǎo)致網(wǎng)絡(luò)的泛化性能下降。Wise-IoU在錨框與目標(biāo)框重合度高時(shí)削弱集合度量的懲罰,減少對(duì)預(yù)訓(xùn)練的干預(yù),以此提升網(wǎng)絡(luò)的泛化能力。Wise-IoU的公式為:
其中,LIoU=1-IoU∈[0,1),將降低高質(zhì)量錨框的Rt,在預(yù)測(cè)框和真實(shí)框重合度較高的情況下降低對(duì)中心距離點(diǎn)的關(guān)注; 定義離群度β來(lái)描述錨框的質(zhì)量,離群度越小,錨框的質(zhì)量就越高。為離群度大的錨框分配較小的梯度增益,可以減少低質(zhì)量樣本產(chǎn)生的有害梯度。當(dāng)β=σ時(shí),σ使得r=1,錨框?qū)@得最高的梯度收益。
使用m來(lái)延緩接近真實(shí)值。在訓(xùn)練后期,Wise-IoU會(huì)給低質(zhì)量的錨框分配小梯度的增益,將更多的注意力集中在普通質(zhì)量錨框,以此提高模型的性能。
本文一共使用了兩種數(shù)據(jù)集,一種是在工業(yè)現(xiàn)場(chǎng)采集的鋼板表面缺陷數(shù)據(jù)集,共有三種缺陷,分別為劃痕、污漬、壓痕。共有79 張圖片。另一種數(shù)據(jù)集是數(shù)據(jù)增強(qiáng)數(shù)據(jù)集。由于鋼板表面缺陷數(shù)據(jù)集樣本數(shù)量稀少,所以第二種數(shù)據(jù)集是通過(guò)使用本文所提的基于模糊搜索的交互式數(shù)據(jù)增強(qiáng)算法將原數(shù)據(jù)集進(jìn)行擴(kuò)充,生成的三種缺陷共990 張圖片。其中,污漬、劃痕、壓痕各有330張,保證樣本平均;將用算法生成的911 張圖片作為訓(xùn)練集,原本79張圖片作為測(cè)試集,以此驗(yàn)證算法的有效性。數(shù)據(jù)集的圖片樣本如圖10所示。下文不同算法的對(duì)比實(shí)驗(yàn)使用數(shù)據(jù)增強(qiáng)數(shù)據(jù)集。
圖10 數(shù)據(jù)集示例Fig.10 Example of dataset
實(shí)驗(yàn)使用的操作系統(tǒng)為Ubuntu 22.04.1,GPU 為NVIDIA GeForce RTX 4090,內(nèi)存為24 GB,CPU 為13th Gen Intel?CoreTMi9-13900KF,深度學(xué)習(xí)框架為Pytorch,Pytorch 版本為1.13.1,Python 版本為3.7,cuda版本為11.7。
訓(xùn)練時(shí),圖片大小設(shè)為640×640,訓(xùn)練輪次epoch為300輪,批量大小為8,網(wǎng)絡(luò)初始學(xué)習(xí)率為0.01。
分析實(shí)驗(yàn)結(jié)果時(shí)精度指標(biāo)采用精確率(Precision)、召回率(Recall)、平均準(zhǔn)確率(mean average precision,mAP)。模型指標(biāo)采用模型參數(shù)量(params),模型推理浮點(diǎn)數(shù)(GFLOPs),檢測(cè)速度(FPS)。相關(guān)公式如下:
其中,TP 表示預(yù)測(cè)為目標(biāo)實(shí)際上也是正確目標(biāo)的個(gè)數(shù);FP 表示預(yù)測(cè)為目標(biāo)實(shí)際上不是正確目標(biāo)的個(gè)數(shù);FN 表示預(yù)測(cè)不是目標(biāo)實(shí)際上是目標(biāo)的個(gè)數(shù);AP 為每種檢測(cè)類型的準(zhǔn)確性;mAP 表示所有類別中AP 指的均值,n為類別數(shù)。
為了體現(xiàn)本文每個(gè)改進(jìn)對(duì)YOLOv8的提升效果,本文進(jìn)行了10 組消融實(shí)驗(yàn)。將替換LMSRNet 主干、改進(jìn)CBFPN金字塔網(wǎng)絡(luò)、添加ESCA模塊、更換Wise-IoU損失函數(shù)和數(shù)據(jù)增強(qiáng)算法分別添加到Y(jié)OLOv8模型中,并給出多個(gè)改進(jìn)模塊組合的實(shí)驗(yàn)結(jié)果。消融實(shí)驗(yàn)結(jié)果如表2所示。
表2 消融實(shí)驗(yàn)結(jié)果Table 2 Results of ablation experiments
觀察表2 可知,將主干換為L(zhǎng)MSRNet 之后,由于只對(duì)半數(shù)通道進(jìn)行多尺度卷積,mAP有一定下降,但業(yè)界真正關(guān)注的精確率、召回率和FPS 得到了提升,值得注意的是,網(wǎng)絡(luò)的參數(shù)量和計(jì)算量都有明顯的下降。將YOLOv8n 的Neck 換成CBFPN 后,去除了部分無(wú)用支路,使得網(wǎng)絡(luò)參數(shù)量下降了1.1×106,計(jì)算量下降了1.3 GFLOPs;通過(guò)使用基于上下文信息的融合方式消除網(wǎng)絡(luò)層間的沖突信息,使召回率提升了2.9 個(gè)百分點(diǎn)。向YOLOv8n添加ECSA模塊,使網(wǎng)絡(luò)綜合通道、空間信息提取重要特征,在僅少量增加參數(shù)量的情況下,將精確率、召回率、mAP 分別提高了25.8、11.2、5.2 個(gè)百分點(diǎn)。而將多個(gè)模塊組合使用可以看出,更換主干和Neck,由于優(yōu)化了卷積方式和網(wǎng)絡(luò)結(jié)構(gòu),使網(wǎng)絡(luò)提取缺陷特征信息的效率更高,所以模型規(guī)模及計(jì)算量降低的同時(shí)檢測(cè)速度也有所提升;在此基礎(chǔ)上加入ECSA并更換Wise-IoU損失函數(shù),在基本不影響模型大小、速度的前提下,進(jìn)一步提升了特征提取能力,優(yōu)化了收斂速度,提高了模型的準(zhǔn)確率和精度。采用數(shù)據(jù)增強(qiáng)算法獲得的擴(kuò)充數(shù)據(jù)集訓(xùn)練YOLOv8n 原模型,其精確率、召回率、mAP分別提升了42.6、25、26.4個(gè)百分點(diǎn)。
另外,為了驗(yàn)證網(wǎng)絡(luò)模型改進(jìn)帶來(lái)的提升,排除數(shù)據(jù)集過(guò)小帶來(lái)的影響,將本文算法和YOLOv8n 均在數(shù)據(jù)增強(qiáng)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)對(duì)比,可得出結(jié)果:相比起YOLOv8n,本文算法參數(shù)量只有原模型的30%,計(jì)算量是原模型的49%,F(xiàn)PS 提高了9 幀/s,精確率提高了2.9個(gè)百分點(diǎn),召回率提高了6.5 個(gè)百分點(diǎn),mAP 提升了5.5個(gè)百分點(diǎn)。經(jīng)過(guò)以上實(shí)驗(yàn)可以說(shuō)明,本文提出的網(wǎng)絡(luò)改進(jìn)及數(shù)據(jù)增強(qiáng)方法都有提升效果。
表3、表4、表5 分別為劃痕、壓痕、污漬三種不同缺陷的實(shí)驗(yàn)結(jié)果。由于每種缺陷擁有的特征不一致,對(duì)于不同的缺陷,各個(gè)模塊效果也不同。觀察可知,更換主干和Wise-IoU 損失函數(shù)使網(wǎng)絡(luò)能夠更準(zhǔn)確地感知尺寸差別大、特征明顯的缺陷,所以對(duì)檢測(cè)劃痕和壓痕效果提升明顯,添加CBFPN 和ECSA 模塊能夠提升網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)能力,所以對(duì)檢測(cè)污漬更有優(yōu)勢(shì)。并且使用數(shù)據(jù)增強(qiáng)算法及本文所有改進(jìn)之后,三種缺陷的檢測(cè)精度都有提升并達(dá)到最高。證明了本文提出的網(wǎng)絡(luò)改進(jìn)及數(shù)據(jù)增強(qiáng)方法對(duì)不同種類的缺陷檢測(cè)具有普適性。
表3 劃痕實(shí)驗(yàn)結(jié)果Table 3 Results of scratches experiments
表4 壓痕實(shí)驗(yàn)結(jié)果Table 4 Results of indentation experiments
表5 污漬實(shí)驗(yàn)結(jié)果Table 5 Results of stains experiments
圖11為三種算法的檢測(cè)結(jié)果,圖11(a)為原YOLOv8n算法未使用數(shù)據(jù)增強(qiáng)的檢測(cè)結(jié)果,可以看出由于樣本的缺失,導(dǎo)致基本檢測(cè)不出目標(biāo)。圖11(b)為YOLOv8n算法使用數(shù)據(jù)增強(qiáng)的檢測(cè)結(jié)果,檢測(cè)結(jié)果有了明顯的改善,說(shuō)明本文的樣本生成算法是有作用的。圖11(c)為改進(jìn)后的YOLOv8n 算法使用數(shù)據(jù)增強(qiáng)的結(jié)果,相比起前兩個(gè),可以明顯地看出目標(biāo)的漏檢、錯(cuò)檢的情況得到了改善,并且檢測(cè)出的結(jié)果中,目標(biāo)框的置信度也有提高。
圖11 檢測(cè)結(jié)果對(duì)比圖Fig.11 Comparison of test results
為了比較本文對(duì)網(wǎng)絡(luò)改進(jìn)的效果,將改進(jìn)后的YOLOv8n 算法和其他算法進(jìn)行比較。本文選擇了經(jīng)典的SSD、YOLOv3-tiny[29]、YOLOv5n[30]、YOLOv6n[31]、YOLOv7-tiny[32]以及較新的RT-DETR(2023)[33]進(jìn)行對(duì)比實(shí)驗(yàn)。這些實(shí)驗(yàn)使用相同的設(shè)備、環(huán)境和數(shù)據(jù)集進(jìn)行,表6為不同算法的對(duì)比結(jié)果。
表6 對(duì)比實(shí)驗(yàn)結(jié)果Table 6 Comparative experimental results
觀察表6可知,相比其他算法,在mAP和召回率上,本文算法都達(dá)到了最高(94.8%和88.8%),而在精確率上,僅僅比RT-DETR 低,但是mAP 和召回率都比RTDETR要高。這可以說(shuō)明在檢測(cè)精度上,本文算法總體上是優(yōu)于其他算法的。在模型大?。≒arams)、計(jì)算量(GFLOPs)和檢測(cè)速度(FPS)上,相比其他算法,本文算法都是最優(yōu)的。圖12 為不同算法的檢測(cè)結(jié)果對(duì)比,可以看出其他算法在檢測(cè)時(shí)都出現(xiàn)了漏檢、錯(cuò)檢等情況,本文算法的檢測(cè)效果是最好的。綜上所述,本文算法在滿足實(shí)時(shí)檢測(cè)的同時(shí),提高了檢測(cè)精度,輕量化了模型大小,減小了運(yùn)算量,提高了檢測(cè)速度,具有較高的通用性和實(shí)用價(jià)值。
圖12 對(duì)比實(shí)驗(yàn)結(jié)果圖Fig.12 Diagram of comparative experimental results
目前,在使用深度學(xué)習(xí)進(jìn)行鋼板缺陷檢測(cè)時(shí)存在缺陷樣本數(shù)量不足和深度學(xué)習(xí)模型精度低、參數(shù)高及計(jì)算量大等問(wèn)題?,F(xiàn)有的算法并不能完全解決這些問(wèn)題。于是,本文從樣本生成和網(wǎng)絡(luò)優(yōu)化兩個(gè)方面入手,提出了一種基于輕量化YOLOv8 的小樣本鋼板缺陷檢測(cè)算法。通過(guò)樣本生成算法對(duì)缺陷數(shù)據(jù)集進(jìn)行擴(kuò)充,使深度學(xué)習(xí)模型能進(jìn)行優(yōu)化學(xué)習(xí),解決了樣本不足的問(wèn)題。此外,本文提出了一種輕量化的LEC-YOLO 模型,提出LMSRNet 作為模型的主干網(wǎng)絡(luò),降低模型的參數(shù)量和計(jì)算量,提高檢測(cè)速度;提出一種新的頸部網(wǎng)絡(luò)CBFPN,使網(wǎng)絡(luò)能提取更多有效的特征;提出ECSA 注意力模塊,使網(wǎng)絡(luò)能從通道和空間兩種不同的維度提取出需要的特征;使用Wise-IoU 替換YOLOv8 原網(wǎng)絡(luò)的CIoU損失函數(shù),使模型收斂更快,精度更高。實(shí)驗(yàn)結(jié)果表明,LEC-YOLO 比起YOLOv8n,精確率提高了2.9 個(gè)百分點(diǎn),召回率提高了6.5個(gè)百分點(diǎn),mAP提升了5.5個(gè)百分點(diǎn),有效降低了實(shí)際檢測(cè)時(shí)的誤檢率、漏檢率。并且本文算法參數(shù)量?jī)H是原模型30%,計(jì)算量是原模型的49%,F(xiàn)PS 提高了9 幀/s,模型更加輕量化,滿足更多場(chǎng)景需求。綜上所述,本文算法能解決小樣本鋼板缺陷檢測(cè)的樣本不足問(wèn)題,并對(duì)網(wǎng)絡(luò)模型進(jìn)行了優(yōu)化,使其精度更高并進(jìn)行了輕量化,適用于實(shí)際場(chǎng)景的應(yīng)用。