摘 要: 針對(duì)紡織生產(chǎn)中布匹瑕疵檢測(cè)高精度、實(shí)時(shí)性的需求,提出了一種基于改進(jìn)YOLOv5s的輕量化布匹瑕疵檢測(cè)算法(GhostNet-CBAM-Partial convolution-YOLOv5s, GCP-YOLOv5s)。該算法首先引入GhostNet中的GhostConv模塊,對(duì)原主干網(wǎng)絡(luò)進(jìn)行優(yōu)化重構(gòu),大幅減少網(wǎng)絡(luò)參數(shù);其次,在主干特征提取網(wǎng)絡(luò)中加入CBAM(Convolutional block attention module)注意力機(jī)制,增加網(wǎng)絡(luò)的特征提取能力;最后,設(shè)計(jì)了基于Partial convolution的改進(jìn)C3模塊(C3-Partial convolution, C3-P),在降低模型參數(shù)量的同時(shí)提高特征融合能力。在自建布匹瑕疵數(shù)據(jù)集上進(jìn)行了對(duì)比測(cè)試,結(jié)果表明:與基準(zhǔn)模型YOLOv5s相比,GCP-YOLOv5s的參數(shù)量降低了41.6%,計(jì)算量降低了43.1%,檢測(cè)速度提高了12 FPS,檢測(cè)精度提升了1.7%。GCP-YOLOv5s算法在保證模型輕量化的同時(shí)具有較高的檢測(cè)精度,可以滿足布匹瑕疵檢測(cè)的高精度和實(shí)時(shí)性要求。
關(guān)鍵詞: 布匹瑕疵檢測(cè);YOLOv5s;GhostNet;注意力機(jī)制;高精度;實(shí)時(shí)性
中圖分類號(hào): TP183
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 1673-3851 (2024) 05-0389-10
引文格式:鄒宏睿,任佳,潘海鵬,等. 基于改進(jìn)YOLOv5s的輕量化布匹瑕疵檢測(cè)算法[J]. 浙江理工大學(xué)學(xué)報(bào)(自然科學(xué)),2024,51(3):389-398.
Reference Format: ZOU Hongrui, REN Jia, PAN Haipeng, et al. A lightweight fabric defect detection algorithm based on improved YOLOv5s[J]. Journal of Zhejiang Sci-Tech University,2024,51(3):389-398.
A lightweight fabric defect detection algorithm based on improved YOLOv5s
ZOU Hongrui1, REN Jia1,2, PAN Haipeng1,2, ZHOU Chuanhui1
(1.School of Information Science and Engineering, Zhejiang Sci-Tech University, Hangzhou 310018, China; 2.Zhejiang Sci-Tech University Changshan Research Institute Co., Ltd., Quzhou 324299, China)
Abstract:" A lightweight fabric defect detection algorithm, GhostNet-CBAM-Partial convolution-YOLOv5s (GCP-YOLOv5s) based on improved YOLOv5s was proposed to meet the high-precision and real-time requirements of fabric defect detection in textile production. Firstly, this algorithm introduced the GhostConv module in GhostNet to optimize and reconstruct the original backbone network, significantly reducing network parameters. Secondly, CBAM (convolutional block attention module) attention mechanism was incorporated into the backbone network to increase its feature extraction capability. Finally, an improved C3 module C3-P (C3-Partial convolotion) module based on Partial convolution was designed to reduce the number of model parameters while improving the feature fusion capability. Comparative tests were conducted on a dataset of self-built fabric defects on site, and the results showed that compared with the benchmark model YOLOv5s, the parameters and computational complexity of GCP-YOLOv5s were reduced by 41.6% and 43.1%, respectively, while the detection speed and detection accuracy were increased by 12 FPS and 1.7%, respectively. The GCP-YOLOv5s algorithm has high detection accuracy while ensuring model lightweighting, meeting the requirements of high precision and real-time performance in fabric defect detection at the same time.
Key words: fabric defect detection; YOLOv5s; GhostNet; attention mechanism; high-precision; real-time
0 引 言
布匹瑕疵檢測(cè)在紡織生產(chǎn)的質(zhì)量控制中起著至關(guān)重要的作用。布匹瑕疵檢測(cè)主要包括規(guī)格尺寸、疵點(diǎn)、色差等內(nèi)容,通過瑕疵檢測(cè)可以及時(shí)發(fā)現(xiàn)并解決生產(chǎn)過程中的質(zhì)量問題。目前,大部分紡織企業(yè)采用人工檢測(cè)的方式進(jìn)行布匹瑕疵檢測(cè),但該方法成本高、準(zhǔn)確率低并且效率低下。部分紡織企業(yè)采用傳統(tǒng)機(jī)器視覺的方式進(jìn)行布匹瑕疵檢測(cè),通過閾值分割、形態(tài)學(xué)等圖像處理方法對(duì)布匹圖像進(jìn)行瑕疵檢測(cè),但是這些方法對(duì)圖像的質(zhì)量有較高要求,在布匹瑕疵與圖像背景對(duì)比度低等情況下檢測(cè)效果差,并且算法的參數(shù)設(shè)置依賴專家經(jīng)驗(yàn),難以遷移近年來,隨著深度學(xué)習(xí)算法的發(fā)展,布匹瑕疵檢測(cè)逐漸向自動(dòng)化、智能化發(fā)展。深度學(xué)習(xí)算法在計(jì)算復(fù)雜度、檢測(cè)精度等方面較傳統(tǒng)機(jī)器視覺方法有著顯著優(yōu)勢(shì),可以實(shí)現(xiàn)布匹瑕疵的實(shí)時(shí)檢測(cè)。
基于深度學(xué)習(xí)的布匹瑕疵檢測(cè)算法,根據(jù)訓(xùn)練數(shù)據(jù)是否帶有標(biāo)簽信息可以分為有監(jiān)督學(xué)習(xí)[1]、半監(jiān)督學(xué)習(xí)[2]、無監(jiān)督學(xué)習(xí)[3]三類。布匹瑕疵檢測(cè)的目標(biāo)主要是找出布匹中瑕疵的位置,并將其正確分類,因此可以將其視為目標(biāo)檢測(cè)任務(wù)。目標(biāo)檢測(cè)任務(wù)相關(guān)算法可以按照候選區(qū)域的處理方式分為單階段和雙階段兩大類,其中:?jiǎn)坞A段算法的代表有SSD(Single shot multibox detector)[4]和YOLO(You only look once)[5],雙階段算法的典型代表為Faster R-CNN(Faster region-cnn)[6]。YOLO系列算法作為單階段檢測(cè)的代表算法,將特征提取、目標(biāo)分類和位置回歸任務(wù)進(jìn)行合并,具有參數(shù)量小、檢測(cè)精度高、檢測(cè)速度快的優(yōu)點(diǎn)。
布匹瑕疵檢測(cè)任務(wù)是特殊的目標(biāo)檢測(cè)任務(wù),具有數(shù)據(jù)集樣本不均衡、瑕疵目標(biāo)占比小、瑕疵種類多樣以及精度、實(shí)時(shí)性要求等特點(diǎn),往往需要結(jié)合其任務(wù)特點(diǎn)來設(shè)計(jì)算法。針對(duì)布匹瑕疵數(shù)據(jù)集中類別數(shù)量不均衡的問題,蔡兆信等[7]改進(jìn)了RPN(Region proposal network)網(wǎng)絡(luò)中anchors(錨框)的大小和數(shù)量,提高了瑕疵檢測(cè)的準(zhǔn)確率;該方法的不足之處在于錨框數(shù)量難以確定,并且在錨框數(shù)量過多時(shí)檢測(cè)的速度較慢。針對(duì)網(wǎng)絡(luò)參數(shù)量大的問題,Zhou等[8]使用了CARAFE輕量化上采樣技術(shù),減少了特征融合網(wǎng)絡(luò)的參數(shù)。針對(duì)瑕疵樣本不足的問題,Liu等[9]使用GAN(Generative adversarial network)網(wǎng)絡(luò)來生成瑕疵圖像,進(jìn)行訓(xùn)練樣本擴(kuò)充;這種方法可以有效增加樣本圖像數(shù)量,但是也帶來了訓(xùn)練時(shí)間過長(zhǎng)的問題。針對(duì)小瑕疵難以檢測(cè)的問題,李輝等[10]提出一種雙路高分辨率轉(zhuǎn)換網(wǎng)絡(luò)算法,利用雙路高分辨率特征提取方法來消除背景的噪聲干擾,提高了小瑕疵的檢測(cè)準(zhǔn)確率,以滿足布匹瑕疵檢測(cè)中高準(zhǔn)確率的要求;但是該算法檢測(cè)速度慢,難以滿足實(shí)時(shí)性要求,不能在嵌入式設(shè)備上進(jìn)行部署。
盡管基于深度學(xué)習(xí)的布匹瑕疵檢測(cè)方法已經(jīng)取得了大量的成果,但這些方法普遍存在計(jì)算復(fù)雜度高、耗時(shí)長(zhǎng)等問題,在實(shí)際應(yīng)用時(shí)存在一定的局限性[11],如布匹瑕疵檢測(cè)不及時(shí)、布匹瑕疵定位不精準(zhǔn)等。難以滿足布匹瑕疵檢測(cè)的高精度和實(shí)時(shí)性要求,也不適合在嵌入式和移動(dòng)設(shè)備中進(jìn)行部署。隨著MobileNet[12-13]、ShuffleNet[14-15]、GhostNet[16-17]等輕量化網(wǎng)絡(luò)的提出,兼顧檢測(cè)精度和實(shí)時(shí)性的深度學(xué)習(xí)算法成為了新的研究方向。
為了實(shí)現(xiàn)布匹瑕疵的高精度和實(shí)時(shí)檢測(cè),本文提出了一種基于YOLOv5s的輕量化布匹瑕疵檢測(cè)算法(GhostNet-CBAM-Partial convolution-YOLOv5s, GCP-YOLOv5s)。該算法首先引入GhostNet來實(shí)現(xiàn)主干特征提取網(wǎng)絡(luò)的輕量化;然后添加CBAM(Convolutional block attention module)注意力機(jī)制來增強(qiáng)主干網(wǎng)絡(luò)的特征提取能力;最后設(shè)計(jì)了一種基于Partial convolution的改進(jìn)C3模塊C3-P(C3-Partial convolution),在降低模型參數(shù)量的同時(shí)提高特征融合能力。本文在課題組采集的布匹瑕疵數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),以驗(yàn)證該算法的有效性。
1 YOLOv5算法介紹
YOLOv5是YOLO系列發(fā)展至今的第5代檢測(cè)算法,它在更加輕量化的同時(shí)實(shí)現(xiàn)了更高的檢測(cè)精度。根據(jù)網(wǎng)絡(luò)的深度和寬度,YOLOv5有4個(gè)主要版本,分別為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x;這4個(gè)版本的檢測(cè)精度與模型大小依次提升,本文選用最輕量化的YOLOv5s作為基準(zhǔn)模型。
YOLOv5s主要由Backbone(主干)、Neck(頸部)、Head(頭部)3部分組成,其結(jié)構(gòu)如圖1所示。
Backbone部分由CBS模塊和C3模塊組成,其功能是進(jìn)行充分的特征提取[18]。Neck部分由特征金字塔網(wǎng)絡(luò)(Feature pyramid networks,F(xiàn)PN)和路徑聚合網(wǎng)絡(luò)(Path aggregation network, PAN)[19]組成,其功能是實(shí)現(xiàn)多尺度特征的融合,F(xiàn)PN自上而下地將深層特征圖的語(yǔ)義信息傳遞給淺層,PAN則自下而上地將淺層特征圖的位置信息傳遞給深層[20]。Head部分由3個(gè)檢測(cè)器組成,其功能是完成物體位置和類別的檢測(cè)[21]。
2 GCP-YOLOv5s算法設(shè)計(jì)
本文的主要工作是對(duì)YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)做出改進(jìn)。GCP-YOLOv5s在YOLOv5s的基礎(chǔ)上,通過GhostNet網(wǎng)絡(luò)來實(shí)現(xiàn)模型的輕量化;引入CBAM注意力機(jī)制,增強(qiáng)主干網(wǎng)絡(luò)的特征提取能力;設(shè)計(jì)基于Partial convolution的改進(jìn)C3模塊,在降低模型參數(shù)量的同時(shí)提高特征提取能力。
GCP-YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,由Backbone、Neck、Head 3部分組成。
Backbone部分由GhostCBS模塊和C3Ghost模塊組成,實(shí)現(xiàn)了主干網(wǎng)絡(luò)的大幅輕量化;同時(shí)在主干網(wǎng)絡(luò)尾部添加CBAM注意力機(jī)制,增加主干網(wǎng)絡(luò)的特征提取能力。Neck部分由特征金字塔網(wǎng)絡(luò)和路徑聚合網(wǎng)絡(luò)組成,使用Partial convolution改進(jìn)Bottleneck結(jié)構(gòu),提出C3-P模塊,在降低模型參數(shù)量的同時(shí)提高了模型的特征融合能力。Head部分由3個(gè)檢測(cè)器組成,其功能是完成物體位置和類別的檢測(cè)。下面分別進(jìn)行闡述。
2.1 輕量化Ghost主干特征提取網(wǎng)絡(luò)
本文以YOLOv5s為基準(zhǔn)網(wǎng)絡(luò),為了實(shí)現(xiàn)主干網(wǎng)絡(luò)的輕量化,引入Ghost模塊對(duì)其主干網(wǎng)絡(luò)進(jìn)行重構(gòu)。普通卷積和Ghost卷積操作示意圖如圖3所示,其中:Conv表示卷積操作;Identity表示恒等映射;Φ1, Φ2, …, Φk表示線性變換。
由圖3可知:普通卷積獲得的特征層內(nèi)存在一定程度的冗余,部分特征圖的特征信息較為相似;Ghost卷積使用簡(jiǎn)單的操作生成部分特征圖,在幾乎不影響檢測(cè)精度的情況下,能有效減少模型的參數(shù)量和計(jì)算量。Ghost卷積模塊首先通過常規(guī)卷積獲取一般特征圖,然后對(duì)一般特征圖中的每一個(gè)通道進(jìn)行線性運(yùn)算,以此來獲得同等通道數(shù)的簡(jiǎn)單特征圖。這些經(jīng)過線性運(yùn)算得到的簡(jiǎn)單特征圖就是常規(guī)卷積中相似的冗余特征圖。最后,將一般特征圖和簡(jiǎn)單特征圖在通道維度進(jìn)行堆疊,得到最終的輸出特征圖。
具體計(jì)算過程描述如下:假設(shè)輸入特征圖的尺寸為h×w×c,使用卷積核為k×k的卷積塊,產(chǎn)生尺寸為h′×w′×n的輸出特征圖,其中:h、w、c分別是輸入特征圖的高、寬和通道數(shù),k為卷積核尺寸,h′、w′、n分別是輸出特征圖的高、寬和通道數(shù)。
使用普通卷積進(jìn)行一次特征提取所需要的運(yùn)算量pnormal如下:
pnormal=n×h′×w′×c×k×k(1)
Ghost卷積的計(jì)算過程如下:先使用普通卷積生成特征圖,其通道數(shù)n=c/2;再對(duì)特征圖中的通道進(jìn)行簡(jiǎn)單的線性運(yùn)算增加通道數(shù):
yij=j(yi′),i=1,…,m,j=1,…,s(2)
其中:s代表線性運(yùn)算的次數(shù),yi′代表第i個(gè)一般特征圖,j代表對(duì)一般特征圖進(jìn)行第j個(gè)線性變換得到的簡(jiǎn)單特征圖。對(duì)m個(gè)特征圖進(jìn)行s次線性運(yùn)算可以獲得的相似特征圖數(shù)量為m×s個(gè),為了使輸出通道和原輸出特征通道相同,取前n個(gè)相似特征圖作為最后的輸出結(jié)果。
使用Ghost卷積進(jìn)行一次特征提取所需要的運(yùn)算量pGhost如下:
pGhost=ns×h′×w′×k×k×c+(s-1)×ns×h′×w′×k×k(3)
普通卷積和Ghost卷積的參數(shù)量之比和計(jì)算量之比見式(4)—(5):
rp=n·h′×w′×c×k×kns×h′×w′×k×k×c+(s-1)×ns×h′×w′×k×k=c×k×k1s×c×k×k+s-1s×d×d≈s×cs+c-1≈s(4)
rc=n×c×k×kns×c×k×k+(s-1)×ns×d×d≈s×cs+c-1≈s(5)
其中:rp為普通卷積和Ghost卷積的參數(shù)量之比,rc為普通卷積和Ghost卷積的計(jì)算量之比。
由于Ghost卷積利用了特征圖冗余信息,所以其參數(shù)量和計(jì)算量相比普通卷積都有著大幅度下降,更適合部署在嵌入式設(shè)備之中。在YOLOv5s的主干特征提取網(wǎng)絡(luò)中,CBS模塊由普通卷積、批正則化、Silu激活函數(shù)組合而成。將其中的普通卷積模塊替換為Ghost卷積,得到由Ghost卷積、批正則化、Silu激活函數(shù)組成GhostCBS模塊。為了避免主干網(wǎng)絡(luò)特征提取能力的過度下降,本文保留主干網(wǎng)絡(luò)中的第一個(gè)CBS模塊,將其他CBS模塊替換為GhostCBS模塊。
由于主干特征提取網(wǎng)絡(luò)中的C3模塊包含多個(gè)卷積操作,參數(shù)量和計(jì)算量較大,本文考慮對(duì)其進(jìn)行輕量化改進(jìn)。為了在不影響主干網(wǎng)絡(luò)的特征提取能力,將C3模塊內(nèi)Bottleneck結(jié)構(gòu)中的卷積操作替換為Ghost卷積,C3模塊內(nèi)其余卷積操作保持不變。將改進(jìn)后的C3模塊命名為C3Ghost模塊。
2.2 CBAM注意力機(jī)制模塊
CBAM注意力機(jī)制模塊包含通道注意力和空間注意力:通道注意力用于增強(qiáng)網(wǎng)絡(luò)對(duì)圖像特征的提取能力,空間注意力用于增強(qiáng)網(wǎng)絡(luò)對(duì)目標(biāo)的聚焦能力,二者結(jié)合可有效淡化無用信息,增強(qiáng)模型魯棒性和檢測(cè)準(zhǔn)確率。本文采用串聯(lián)形式的CBAM模塊,其結(jié)構(gòu)如圖4所示,其中:圖4(a)是CBAM注意力機(jī)制的整體結(jié)構(gòu)圖,圖4(b)是圖4(a)中通道注意力機(jī)制的結(jié)構(gòu)圖,圖4(c)是圖4(a)中空間注意力機(jī)制的結(jié)構(gòu)圖。
通道注意力模塊關(guān)注特征圖中的重要信息,計(jì)算流程如下:
Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))
=σ(W1(W0(Fcavg))+W1(W0(Fcmax)))(6)
其中:F為原始特征圖;Mc(F)為輸出的通道注意力值;σ為Sigmoid函數(shù);W0和W1為權(quán)重參數(shù);Fcavg為平均池化特征;Fcmax為最大池化特征。
將通道注意力模塊的輸出值輸入到空間注意力模塊之中,空間注意力模塊的計(jì)算流程如下:
Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))
=σ(f7×7([Fsavg;Fsmax]))(7)
其中:Ms(F)為輸出的空間注意力值;f7×7是卷積核尺寸為7×7的卷積運(yùn)算;Fsavg為平均池化特征;Fsmax為最大池化特征。
考慮到注意力機(jī)制模塊利用了空間和通道維度的信息,在只增加了少量計(jì)算量的情況下,可以有效地提高網(wǎng)絡(luò)的特征提取能力,本文選擇將CBAM注意力機(jī)制模塊放在主干特征提取網(wǎng)絡(luò)的SPPF模塊之后,利用注意力機(jī)制來增強(qiáng)主干特征提取網(wǎng)絡(luò)的特征提取能力。
2.3 基于Partial Convolution的改進(jìn)Bottleneck結(jié)構(gòu)
Ghost模塊考慮到特征之間的相關(guān)性和冗余性,舍棄了部分常規(guī)卷積操作,使用簡(jiǎn)單操作來獲得冗余特征圖。受Ghost模塊的啟發(fā),本文引入一種更輕量化的卷積模塊Partial convolution(PConv)。對(duì)于連續(xù)或者規(guī)則的內(nèi)容訪問,PConv將第一個(gè)或者最后一個(gè)連續(xù)的通道視為整個(gè)特征圖的代表,并只對(duì)少數(shù)幾個(gè)通道應(yīng)用濾波器,其余的通道則保持不變。一般情況而言,輸入和輸出擁有相同數(shù)量的通道。PConv只需要在輸入通道的一部分上應(yīng)用常規(guī)卷積進(jìn)行空間特征提取,并保持其余通道不變,即可生成與輸入擁有相同通道的輸出。因此,PConv可以減少冗余計(jì)算以及內(nèi)存訪問,它擁有比常規(guī)卷積更低的浮點(diǎn)運(yùn)算數(shù)(floating-point operations, FLOPs)以及比深度可分離卷積更高的每秒浮點(diǎn)運(yùn)算數(shù)(floating-point operations per second, FLOPS)。PConv和普通卷積、深度可分離卷積的操作示意圖如圖5所示。
在原YOLOv5s模型中,C3模塊由三個(gè)卷積模塊和Bottleneck結(jié)構(gòu)組成,其主要功能是增加網(wǎng)絡(luò)的深度和感受野,通過Bottleneck引入殘差結(jié)構(gòu),降低模型的優(yōu)化難度。Bottleneck結(jié)構(gòu)的核心思想是使用多個(gè)小卷積來替代大的卷積,從而達(dá)到降低參數(shù)量的目的。在原始的C3模塊中,Bottleneck由1×1卷積和3×3卷積組成,通過1×1卷積來降低通道數(shù),再使用3×3卷積進(jìn)行下采樣。與此同時(shí),使用Shortcut操作將輸入和輸出連接起來。
PConv和GhostConv相比,參數(shù)量、計(jì)算消耗更小,但其特征提取能力因此也有所下降。在主干網(wǎng)絡(luò)中,考慮到模型需要更充分地進(jìn)行提取特征,故選擇了參數(shù)量稍大的GhostConv。主干網(wǎng)絡(luò)中使用的C3Ghost模塊結(jié)構(gòu)示意圖如圖6所示。在特征融合階段,為了進(jìn)一步加快模型的推理速度,在保證特征融合能力的情況下利用冗余信息減少計(jì)算量,本文選擇了更輕量化的PConv,將C3模塊內(nèi)Bottleneck結(jié)構(gòu)中的卷積操作替換為PConv,C3模塊內(nèi)其余卷積操作保持不變。將改進(jìn)后的C3模塊命名為C3-P,其結(jié)構(gòu)示意圖如圖6所示。由于Bottleneck結(jié)構(gòu)是由多個(gè)相同模塊串行連接而成,PConv中未參與卷積的通道會(huì)在其他的相同模塊中參與卷積,從而緩解了單獨(dú)使用PConv所帶來的特征提取不充分的現(xiàn)象。
3 實(shí)驗(yàn)結(jié)果及分析
本文的實(shí)驗(yàn)環(huán)境配置如下:操作系統(tǒng) Windows11(64位),CPU 11th Gen Intel(R)Core(TM)i5-11400H,顯卡為RTX3060,運(yùn)行內(nèi)存16 GiB,軟件運(yùn)行環(huán)境為Pycharm。
模型參數(shù)設(shè)置如下:初始學(xué)習(xí)率為0.01,動(dòng)量設(shè)置為0.937,使用隨機(jī)梯度下降法(SGD)進(jìn)行優(yōu)化,batch_size設(shè)置為16,epoch設(shè)置為300。
3.1 數(shù)據(jù)集介紹
本文數(shù)據(jù)集采集自某紡織生產(chǎn)企業(yè),數(shù)據(jù)集圖像由面陣CCD相機(jī)拍攝而成。為了實(shí)現(xiàn)布匹瑕疵的實(shí)時(shí)監(jiān)測(cè),將相機(jī)設(shè)置于出布口,采集圖像為3072×96像素。由于現(xiàn)場(chǎng)實(shí)際采集到的圖像為3072×96像素的極端尺寸,直接處理會(huì)丟失經(jīng)向瑕疵特征信息,因此將采集到的瑕疵圖像切割成96×96像素的圖像后再用于訓(xùn)練。圖像在切割之后使用LabelImg標(biāo)注并制作數(shù)據(jù)集,數(shù)據(jù)集中含有毛緯、帶緯、白檔子、曲紆、雙經(jīng)和斷經(jīng)共6種類型的瑕疵圖以及正常圖像樣本??紤]到布匹由經(jīng)線和緯線兩組線組紡織而成,為了進(jìn)行機(jī)器故障的定位,將瑕疵樣本按照瑕疵產(chǎn)生的原因分別標(biāo)注為“jing”和“wei”兩類,瑕疵樣本以及標(biāo)注類別示例圖像如圖7所示。在經(jīng)過旋轉(zhuǎn)、噪聲、調(diào)節(jié)亮度等數(shù)據(jù)增強(qiáng)方法擴(kuò)充樣本數(shù)量后,數(shù)據(jù)集中共含有圖像樣本1356張,其中訓(xùn)練集1220張,測(cè)試集136張。在線檢測(cè)時(shí),把待檢測(cè)的采樣圖像按順序切分成32張96×96像素的圖像,如果模型的檢測(cè)速度大于32 FPS,即可滿足布匹瑕疵的實(shí)時(shí)檢測(cè)需求。
3.2 評(píng)價(jià)指標(biāo)
本文選用的算法評(píng)價(jià)指標(biāo)有參數(shù)量、浮點(diǎn)計(jì)算量(FLOPs)、查準(zhǔn)率(Precision)、查全率(Recall)、平均精度(Average precision, AP)、平均精度均值(Mean average precision, mAP)、每秒傳輸幀數(shù)(Frames per second, FPS)、檢出率和誤檢率,其公式分別如式(8)— (12)所示:
Pmis=1-Pp=1-TPTP+FP(8)
其中:Pmis為誤檢率,表示模型檢測(cè)為正樣本但是檢測(cè)錯(cuò)誤的目標(biāo)數(shù)占正樣本的比例;Pp表示查準(zhǔn)率,即所有預(yù)測(cè)為正樣本中,實(shí)際有多少樣本是正樣本的比例;TP為模型預(yù)測(cè)正確的正確樣本數(shù);FP為模型預(yù)測(cè)錯(cuò)誤的正確樣本數(shù)。
Ptrue=Pr=TPTP+FN(9)
其中:Ptrue為檢出率,表示模型正確檢測(cè)出的目標(biāo)數(shù)占總目標(biāo)數(shù)的比例;Pr表示查全率,即所標(biāo)注為正樣本中被正確檢測(cè)為正樣本的比例;FN為模型預(yù)測(cè)錯(cuò)誤的錯(cuò)誤樣本數(shù)。
SAP=∫10P(R)dR(10)
其中:SAP為召回率和準(zhǔn)確率曲線下的面積。
PmA=∑Ni=1SAPiN(11)
其中:PmA為所有類別的SAP均值,N為檢測(cè)的總次數(shù)。
FPS=1tinf+tNMS(12)
其中:FPS表示每秒檢測(cè)幀數(shù),tinf表示模型的推理時(shí)間,tNMS表示模型進(jìn)行非極大值運(yùn)算的時(shí)間。
3.3 實(shí)驗(yàn)結(jié)果及分析
3.3.1 不同輸入尺寸的對(duì)比實(shí)驗(yàn)
由于數(shù)據(jù)集中的瑕疵在整幅圖像中的占比小,卷積過程中容易造成瑕疵特征信息丟失或失真,因此考慮對(duì)圖像進(jìn)行等比例放大再進(jìn)行輸入。本文使用雙線性插值的方法進(jìn)行圖像等比放大,再放大圖像時(shí),目標(biāo)像素的值是通過源圖像中4個(gè)最近鄰像素點(diǎn)的值進(jìn)行加權(quán)和計(jì)算而來。為了探究不同的圖像輸入尺寸對(duì)瑕疵檢測(cè)造成影響,本文設(shè)計(jì)了不同輸入圖像尺寸的檢測(cè)效果對(duì)照實(shí)驗(yàn),結(jié)果如表1所示,選取每秒檢測(cè)幀數(shù)FPS、Pmis、Ptrue、PmA@0.5、PmA@0.50-0.95作為評(píng)價(jià)指標(biāo)。
根據(jù)表1實(shí)驗(yàn)結(jié)果可以看出,當(dāng)在輸入圖像尺寸在640像素點(diǎn)之內(nèi)時(shí),檢測(cè)效果隨輸入尺寸變大而提高。輸入尺寸大于640像素點(diǎn)時(shí),檢測(cè)效果的提升不明顯,但是模型的預(yù)測(cè)時(shí)間增加,會(huì)導(dǎo)致每秒檢測(cè)幀數(shù)的下降。為了平衡精度與計(jì)算成本,本文選擇將數(shù)據(jù)集中的圖像等比例放大至640×640像素作為模型的輸入。
3.3.2 CBAM注意力機(jī)制加入位置的對(duì)比實(shí)驗(yàn)
CBAM注意力機(jī)制模塊作為一種即插即用的模塊,可以添加在YOLOv5s網(wǎng)絡(luò)中的主干特征提取網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)以及檢測(cè)頭之中。因此,為了選擇CBAM注意力機(jī)制模塊在YOLOv5s網(wǎng)絡(luò)中合適的加入位置,分別選取Pmis、Ptrue、PmA@0.5、PmA@0.50-0.95作為評(píng)價(jià)指標(biāo)進(jìn)行了對(duì)照實(shí)驗(yàn),其結(jié)果如表2所示。
由表2可知,CBAM注意力機(jī)制添加在主干特征提取網(wǎng)絡(luò)中時(shí),誤檢率降低、檢出率提高,同時(shí)檢測(cè)精度維持不變。當(dāng)CBAM注意力機(jī)制添加在特征融合網(wǎng)絡(luò)以及檢測(cè)頭中時(shí),誤檢率降低、檢出率提高,但是檢測(cè)精度有所下降。因此,本文選擇將CBAM注意力機(jī)制添加在主干特征提取網(wǎng)絡(luò)之中。
考慮到輕量化主干網(wǎng)絡(luò)降低了參數(shù)量,可能會(huì)弱化特征提取能力,本文選擇將CBAM注意力機(jī)制模塊添加到主干特征提取網(wǎng)絡(luò)的末端,以補(bǔ)償模型輕量化可能帶來的特征提取能力損失。
3.3.3 不同注意力機(jī)制的對(duì)比實(shí)驗(yàn)
為了衡量CBAM注意力機(jī)制對(duì)于主干網(wǎng)絡(luò)特征提取能力的提升效果,分別選取參數(shù)量、Pmis、Ptrue、PmA@0.5、PmA@0.50-0.95作為評(píng)價(jià)指標(biāo),并將SE注意力機(jī)制(Squeeze-and-excitation attention)、CA注意力機(jī)制(Coordinate attention)、CBAM注意力機(jī)制分別與GhostConv-YOLOv5s相結(jié)合,檢測(cè)結(jié)果如表3所示。
由表3可知,CBAM和SE注意力機(jī)制雖然少量增加了模型的參數(shù)量,但是提升了主干網(wǎng)絡(luò)的特征提取能力,查準(zhǔn)率、查全率、PmA@0.50-0.95得到提升,本文選擇在主干網(wǎng)絡(luò)中使用表現(xiàn)更佳的CBAM注意力機(jī)制。
3.3.4 橫向?qū)Ρ葘?shí)驗(yàn)和消融試驗(yàn)
本文在測(cè)試樣本中進(jìn)行消融實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn),進(jìn)一步測(cè)試所提方案的性能,實(shí)驗(yàn)結(jié)果分別如表4—表5。
表4給出了在相同測(cè)試集下,本文算法同7種主流目標(biāo)檢測(cè)算法的對(duì)比測(cè)試結(jié)果。通過分析表4可知,本文提出的GCP-YOLOv5s模型在保證檢測(cè)精度的同時(shí),降低了模型的參數(shù)量和浮點(diǎn)計(jì)算量,提高了每秒檢測(cè)幀數(shù)。
表5展示了本文算法的消融實(shí)驗(yàn)對(duì)比結(jié)果。對(duì)比YOLOv5s和G-YOLOv5s可知:在更換主干網(wǎng)絡(luò)之后,模型的參數(shù)量下降,同時(shí)PmA也有所下降。對(duì)比G-YOLOv5s和GC-YOLOv5s可知:在使用了注意力機(jī)制后,模型的參數(shù)量略微上升,PmA@0.50-0.95提升了1.5%,在少量增加參數(shù)的情況下,使主干網(wǎng)絡(luò)的特征提取能力得到提升。對(duì)比GC-YOLOv5s和GCP-YOLOv5s可知:在使用PConv改進(jìn)了C3模塊之后,模型的參數(shù)量下降了19.9%,PmA@0.5提高了0.3%,PmA@0.50-0.95提高了0.1%,Neck部分在更少的參數(shù)下得到了更強(qiáng)的特征融合能力。對(duì)比YOLOv5s和GCP-YOLOv5s的參數(shù)量、FLOPs、FPS、PmA@0.5和PmA@0.50-0.95可知:本文算法相比基準(zhǔn)模型參數(shù)量下降了41.6%,計(jì)算量下降了43.1%,檢測(cè)速度提高了12 FPS,PmA@0.5結(jié)果相同,PmA@0.50-0.95提高了1.7%。由此可見,本文改進(jìn)算法在更少參數(shù)量、計(jì)算量的情況下,實(shí)現(xiàn)了更高的檢測(cè)精度和更快的檢測(cè)速度。
YOLOv5s(基準(zhǔn)模型)和GCP-YOLOv5s對(duì)實(shí)驗(yàn)數(shù)據(jù)集的檢測(cè)結(jié)果的示例圖像如圖8所示,其評(píng)價(jià)指標(biāo)見表4。對(duì)比圖8(a)和圖8(b)的圖像1可知,基準(zhǔn)模型有一處誤檢,而本文方法未出現(xiàn)誤檢;對(duì)比圖8(a)和圖8(b)的圖像2可知,基準(zhǔn)模型有一處漏檢,而本文方法未出現(xiàn)漏檢。對(duì)比圖8(a)和圖8(b)的圖像3可知,本文方法的定位比基準(zhǔn)模型更準(zhǔn)確。從圖8和表4可知,本文提出的改進(jìn)算法在降低了誤檢率的同時(shí)提高了檢測(cè)率。
4 結(jié) 論
本文基于基準(zhǔn)模型YOLOv5s,通過引入Ghost卷積重構(gòu)主干特征提取網(wǎng)絡(luò),添加CBAM注意力機(jī)制增強(qiáng)主干網(wǎng)絡(luò)特征提取能力,使用PConv將C3模塊重構(gòu)為C3-P模塊,設(shè)計(jì)了一種基于YOLOv5s的改進(jìn)輕量化布匹瑕疵檢測(cè)算法GCP-YOLOv5s。在自建數(shù)據(jù)集中的實(shí)驗(yàn)結(jié)果顯示,相較于基準(zhǔn)模型YOLOv5s,本文所提GCP-YOLOv5s算法參數(shù)量下降了41.6%,計(jì)算量下降了43.1%,檢測(cè)速度提高了12FPS,檢測(cè)精度提高了1.7%。相比于其他主流目標(biāo)檢測(cè)算法,GCP-YOLOv5s在檢測(cè)速度更快、模型參數(shù)量更小的同時(shí)保持了較高的檢測(cè)精度。本文所提算法可以滿足實(shí)際工業(yè)現(xiàn)場(chǎng)的應(yīng)用需求,具有較好的推廣性。
參考文獻(xiàn):
[1]時(shí)造雄, 茅正沖. 基于改進(jìn)Yolov5的花色布匹瑕疵檢測(cè)方法[J]. 計(jì)算機(jī)測(cè)量與控制, 2023, 31(4): 56-62.
[2]許玉格, 鐘銘, 吳宗澤, 等. 基于深度學(xué)習(xí)的紋理布匹瑕疵檢測(cè)方法[J]. 自動(dòng)化學(xué)報(bào), 2023, 49(4): 857-871.
[3]俞文靜, 劉航, 李梓瑞, 等. 基于圖像增強(qiáng)和CNN的布匹瑕疵檢測(cè)算法[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2021, 31(5): 90-95.
[4]Jia D Y, Zhou J L, Zhang C W. Detection of cervical cells based on improved SSD network[J]. Multimedia Tools and Applications, 2022, 81(10): 13371-13387.
[5]Diwan T, Anirudh G, Tembhurne J V. Object detection using YOLO: Challenges, architectural successors, datasets and applications[J]. Multimedia Tools and Applications, 2023, 82(6): 9243-9275.
[6]Sharma V K, Mir R N. Saliency guided faster-RCNN (SGFr-RCNN)model for object detection and recognition[J]. Journal of King Saud University-Computer and Information Sciences, 2022, 34(5): 1687-1699.
[7]蔡兆信, 李瑞新, 戴逸丹, 等. 基于Faster RCNN的布匹瑕疵識(shí)別系統(tǒng)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2021, 30(2): 83-88.
[8]Zhou S, Zhao J, Shi Y S, et al. Research on improving YOLOv5s algorithm for fabric defect detection[J]. International Journal of Clothing Science and Technology, 2023, 35(1): 88-106.
[9]Liu J H, Wang C Y, Su H, et al. Multistage GAN for fabric defect detection[J]. IEEE Transactions on Image Processing, 2019, 29: 3388-3400.
[10]李輝, 呂祥聰, 申貝貝,等. 雙路高分辨率轉(zhuǎn)換網(wǎng)絡(luò)的花色布匹瑕疵檢測(cè)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2023, 44(9): 2731-2739.
[11]倪欣, 任佳. 基于高分辨率網(wǎng)絡(luò)和自注意力機(jī)制的歌聲分離算法[J]. 浙江理工大學(xué)學(xué)報(bào)(自然科學(xué)版), 2022, 47(3): 405-412.
[12]黃裕凱, 王青旺, 沈韜, 等. 基于MobileNet的多尺度感受野特征融合算法[J]. 激光與光電子學(xué)進(jìn)展, 2023, 60(4): 280-288.
[13]任宇杰, 楊劍, 劉方濤, 等. 基于SSD和MobileNet網(wǎng)絡(luò)的目標(biāo)檢測(cè)方法的研究[J]. 計(jì)算機(jī)科學(xué)與探索, 2019, 13(11): 1881-1893.
[14]Chen Z C, Yang J, Chen L F, et al. Garbage classification system based on improved ShuffleNet v2[J]. Resources, Conservation and Recycling, 2022, 178: 106090.
[15]胡斌漢,李曙. 基于改進(jìn)ShuffleNetV2的輕量級(jí)花色布匹瑕疵檢測(cè)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2023, 32(4): 161-169.
[16]Cao M L, Fu H, Zhu J Y, et al. Lightweight tea bud recognition network integrating GhostNet and YOLOv5[J]. Mathematical Biosciences and Engineering: MBE, 2022, 19(12): 12897-12914.
[17]Li S J, Sultonov F, Tursunboev J, et al. Ghostformer: A GhostNet-based two-stage transformer for small object detection[J]. Sensors, 2022, 22(18): 6939.
[18]陳金廣, 李雪, 邵景峰, 等. 改進(jìn)YOLOv5網(wǎng)絡(luò)的輕量級(jí)服裝目標(biāo)檢測(cè)方法[J]. 紡織學(xué)報(bào), 2022, 43(10): 155-160.
[19]郭波, 呂文濤, 余序宜, 等. 基于改進(jìn)YOLOv5模型的織物疵點(diǎn)檢測(cè)算法[J]. 浙江理工大學(xué)學(xué)報(bào)(自然科學(xué)版), 2022, 47(5): 755-763.
[20]雷源毅, 朱文球, 廖歡. 復(fù)雜場(chǎng)景下的改進(jìn)YOLOv8n安全帽佩戴檢測(cè)算法[J]. 軟件工程, 2023, 26(12): 46-51.
[21]王翔,任佳. 基于多注意力機(jī)制的深度神經(jīng)網(wǎng)絡(luò)故障診斷算法[J]. 浙江理工大學(xué)學(xué)報(bào)(自然科學(xué)版), 2020, 43(2): 224-231.
(責(zé)任編輯:康 鋒)
浙江理工大學(xué)學(xué)報(bào)2024年5期