摘 要: 針對紡織生產(chǎn)中布匹瑕疵檢測高精度、實(shí)時(shí)性的需求,提出了一種基于改進(jìn)YOLOv5s的輕量化布匹瑕疵檢測算法(GhostNet-CBAM-Partial convolution-YOLOv5s, GCP-YOLOv5s)。該算法首先引入GhostNet中的GhostConv模塊,對原主干網(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)行了對比測試,結(jié)果表明:與基準(zhǔn)模型YOLOv5s相比,GCP-YOLOv5s的參數(shù)量降低了41.6%,計(jì)算量降低了43.1%,檢測速度提高了12 FPS,檢測精度提升了1.7%。GCP-YOLOv5s算法在保證模型輕量化的同時(shí)具有較高的檢測精度,可以滿足布匹瑕疵檢測的高精度和實(shí)時(shí)性要求。
關(guān)鍵詞: 布匹瑕疵檢測;YOLOv5s;GhostNet;注意力機(jī)制;高精度;實(shí)時(shí)性
中圖分類號: TP183
文獻(xiàn)標(biāo)志碼: A
文章編號: 1673-3851 (2024) 05-0389-10
引文格式:鄒宏睿,任佳,潘海鵬,等. 基于改進(jìn)YOLOv5s的輕量化布匹瑕疵檢測算法[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 引 言
布匹瑕疵檢測在紡織生產(chǎn)的質(zhì)量控制中起著至關(guān)重要的作用。布匹瑕疵檢測主要包括規(guī)格尺寸、疵點(diǎn)、色差等內(nèi)容,通過瑕疵檢測可以及時(shí)發(fā)現(xiàn)并解決生產(chǎn)過程中的質(zhì)量問題。目前,大部分紡織企業(yè)采用人工檢測的方式進(jìn)行布匹瑕疵檢測,但該方法成本高、準(zhǔn)確率低并且效率低下。部分紡織企業(yè)采用傳統(tǒng)機(jī)器視覺的方式進(jìn)行布匹瑕疵檢測,通過閾值分割、形態(tài)學(xué)等圖像處理方法對布匹圖像進(jìn)行瑕疵檢測,但是這些方法對圖像的質(zhì)量有較高要求,在布匹瑕疵與圖像背景對比度低等情況下檢測效果差,并且算法的參數(shù)設(shè)置依賴專家經(jīng)驗(yàn),難以遷移近年來,隨著深度學(xué)習(xí)算法的發(fā)展,布匹瑕疵檢測逐漸向自動化、智能化發(fā)展。深度學(xué)習(xí)算法在計(jì)算復(fù)雜度、檢測精度等方面較傳統(tǒng)機(jī)器視覺方法有著顯著優(yōu)勢,可以實(shí)現(xiàn)布匹瑕疵的實(shí)時(shí)檢測。
基于深度學(xué)習(xí)的布匹瑕疵檢測算法,根據(jù)訓(xùn)練數(shù)據(jù)是否帶有標(biāo)簽信息可以分為有監(jiān)督學(xué)習(xí)[1]、半監(jiān)督學(xué)習(xí)[2]、無監(jiān)督學(xué)習(xí)[3]三類。布匹瑕疵檢測的目標(biāo)主要是找出布匹中瑕疵的位置,并將其正確分類,因此可以將其視為目標(biāo)檢測任務(wù)。目標(biāo)檢測任務(wù)相關(guān)算法可以按照候選區(qū)域的處理方式分為單階段和雙階段兩大類,其中:單階段算法的代表有SSD(Single shot multibox detector)[4]和YOLO(You only look once)[5],雙階段算法的典型代表為Faster R-CNN(Faster region-cnn)[6]。YOLO系列算法作為單階段檢測的代表算法,將特征提取、目標(biāo)分類和位置回歸任務(wù)進(jìn)行合并,具有參數(shù)量小、檢測精度高、檢測速度快的優(yōu)點(diǎn)。
布匹瑕疵檢測任務(wù)是特殊的目標(biāo)檢測任務(wù),具有數(shù)據(jù)集樣本不均衡、瑕疵目標(biāo)占比小、瑕疵種類多樣以及精度、實(shí)時(shí)性要求等特點(diǎn),往往需要結(jié)合其任務(wù)特點(diǎn)來設(shè)計(jì)算法。針對布匹瑕疵數(shù)據(jù)集中類別數(shù)量不均衡的問題,蔡兆信等[7]改進(jìn)了RPN(Region proposal network)網(wǎng)絡(luò)中anchors(錨框)的大小和數(shù)量,提高了瑕疵檢測的準(zhǔn)確率;該方法的不足之處在于錨框數(shù)量難以確定,并且在錨框數(shù)量過多時(shí)檢測的速度較慢。針對網(wǎng)絡(luò)參數(shù)量大的問題,Zhou等[8]使用了CARAFE輕量化上采樣技術(shù),減少了特征融合網(wǎng)絡(luò)的參數(shù)。針對瑕疵樣本不足的問題,Liu等[9]使用GAN(Generative adversarial network)網(wǎng)絡(luò)來生成瑕疵圖像,進(jìn)行訓(xùn)練樣本擴(kuò)充;這種方法可以有效增加樣本圖像數(shù)量,但是也帶來了訓(xùn)練時(shí)間過長的問題。針對小瑕疵難以檢測的問題,李輝等[10]提出一種雙路高分辨率轉(zhuǎn)換網(wǎng)絡(luò)算法,利用雙路高分辨率特征提取方法來消除背景的噪聲干擾,提高了小瑕疵的檢測準(zhǔn)確率,以滿足布匹瑕疵檢測中高準(zhǔn)確率的要求;但是該算法檢測速度慢,難以滿足實(shí)時(shí)性要求,不能在嵌入式設(shè)備上進(jìn)行部署。
盡管基于深度學(xué)習(xí)的布匹瑕疵檢測方法已經(jīng)取得了大量的成果,但這些方法普遍存在計(jì)算復(fù)雜度高、耗時(shí)長等問題,在實(shí)際應(yīng)用時(shí)存在一定的局限性[11],如布匹瑕疵檢測不及時(shí)、布匹瑕疵定位不精準(zhǔn)等。難以滿足布匹瑕疵檢測的高精度和實(shí)時(shí)性要求,也不適合在嵌入式和移動設(shè)備中進(jìn)行部署。隨著MobileNet[12-13]、ShuffleNet[14-15]、GhostNet[16-17]等輕量化網(wǎng)絡(luò)的提出,兼顧檢測精度和實(shí)時(shí)性的深度學(xué)習(xí)算法成為了新的研究方向。
為了實(shí)現(xiàn)布匹瑕疵的高精度和實(shí)時(shí)檢測,本文提出了一種基于YOLOv5s的輕量化布匹瑕疵檢測算法(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代檢測算法,它在更加輕量化的同時(shí)實(shí)現(xiàn)了更高的檢測精度。根據(jù)網(wǎng)絡(luò)的深度和寬度,YOLOv5有4個(gè)主要版本,分別為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x;這4個(gè)版本的檢測精度與模型大小依次提升,本文選用最輕量化的YOLOv5s作為基準(zhǔn)模型。
YOLOv5s主要由Backbone(主干)、Neck(頸部)、Head(頭部)3部分組成,其結(jié)構(gòu)如圖1所示。
Backbone部分由CBS模塊和C3模塊組成,其功能是進(jìn)行充分的特征提?。?8]。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自上而下地將深層特征圖的語義信息傳遞給淺層,PAN則自下而上地將淺層特征圖的位置信息傳遞給深層[20]。Head部分由3個(gè)檢測器組成,其功能是完成物體位置和類別的檢測[21]。
2 GCP-YOLOv5s算法設(shè)計(jì)
本文的主要工作是對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è)檢測器組成,其功能是完成物體位置和類別的檢測。下面分別進(jìn)行闡述。
2.1 輕量化Ghost主干特征提取網(wǎng)絡(luò)
本文以YOLOv5s為基準(zhǔn)網(wǎng)絡(luò),為了實(shí)現(xiàn)主干網(wǎng)絡(luò)的輕量化,引入Ghost模塊對其主干網(wǎng)絡(luò)進(jìn)行重構(gòu)。普通卷積和Ghost卷積操作示意圖如圖3所示,其中:Conv表示卷積操作;Identity表示恒等映射;Φ1, Φ2, …, Φk表示線性變換。
由圖3可知:普通卷積獲得的特征層內(nèi)存在一定程度的冗余,部分特征圖的特征信息較為相似;Ghost卷積使用簡單的操作生成部分特征圖,在幾乎不影響檢測精度的情況下,能有效減少模型的參數(shù)量和計(jì)算量。Ghost卷積模塊首先通過常規(guī)卷積獲取一般特征圖,然后對一般特征圖中的每一個(gè)通道進(jìn)行線性運(yùn)算,以此來獲得同等通道數(shù)的簡單特征圖。這些經(jīng)過線性運(yùn)算得到的簡單特征圖就是常規(guī)卷積中相似的冗余特征圖。最后,將一般特征圖和簡單特征圖在通道維度進(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;再對特征圖中的通道進(jìn)行簡單的線性運(yùn)算增加通道數(shù):
yij=j(yi′),i=1,…,m,j=1,…,s(2)
其中:s代表線性運(yùn)算的次數(shù),yi′代表第i個(gè)一般特征圖,j代表對一般特征圖進(jìn)行第j個(gè)線性變換得到的簡單特征圖。對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ì)算量較大,本文考慮對其進(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ò)對圖像特征的提取能力,空間注意力用于增強(qiáng)網(wǎng)絡(luò)對目標(biāo)的聚焦能力,二者結(jié)合可有效淡化無用信息,增強(qiáng)模型魯棒性和檢測準(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ī)卷積操作,使用簡單操作來獲得冗余特征圖。受Ghost模塊的啟發(fā),本文引入一種更輕量化的卷積模塊Partial convolution(PConv)。對于連續(xù)或者規(guī)則的內(nèi)容訪問,PConv將第一個(gè)或者最后一個(gè)連續(xù)的通道視為整個(gè)特征圖的代表,并只對少數(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中未參與卷積的通道會在其他的相同模塊中參與卷積,從而緩解了單獨(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,動量設(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)測,將相機(jī)設(shè)置于出布口,采集圖像為3072×96像素。由于現(xiàn)場實(shí)際采集到的圖像為3072×96像素的極端尺寸,直接處理會丟失經(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張,測試集136張。在線檢測時(shí),把待檢測的采樣圖像按順序切分成32張96×96像素的圖像,如果模型的檢測速度大于32 FPS,即可滿足布匹瑕疵的實(shí)時(shí)檢測需求。
3.2 評價(jià)指標(biāo)
本文選用的算法評價(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為誤檢率,表示模型檢測為正樣本但是檢測錯(cuò)誤的目標(biāo)數(shù)占正樣本的比例;Pp表示查準(zhǔn)率,即所有預(yù)測為正樣本中,實(shí)際有多少樣本是正樣本的比例;TP為模型預(yù)測正確的正確樣本數(shù);FP為模型預(yù)測錯(cuò)誤的正確樣本數(shù)。
Ptrue=Pr=TPTP+FN(9)
其中:Ptrue為檢出率,表示模型正確檢測出的目標(biāo)數(shù)占總目標(biāo)數(shù)的比例;Pr表示查全率,即所標(biāo)注為正樣本中被正確檢測為正樣本的比例;FN為模型預(yù)測錯(cuò)誤的錯(cuò)誤樣本數(shù)。
SAP=∫10P(R)dR(10)
其中:SAP為召回率和準(zhǔn)確率曲線下的面積。
PmA=∑Ni=1SAPiN(11)
其中:PmA為所有類別的SAP均值,N為檢測的總次數(shù)。
FPS=1tinf+tNMS(12)
其中:FPS表示每秒檢測幀數(shù),tinf表示模型的推理時(shí)間,tNMS表示模型進(jìn)行非極大值運(yùn)算的時(shí)間。
3.3 實(shí)驗(yàn)結(jié)果及分析
3.3.1 不同輸入尺寸的對比實(shí)驗(yàn)
由于數(shù)據(jù)集中的瑕疵在整幅圖像中的占比小,卷積過程中容易造成瑕疵特征信息丟失或失真,因此考慮對圖像進(jìn)行等比例放大再進(jìn)行輸入。本文使用雙線性插值的方法進(jìn)行圖像等比放大,再放大圖像時(shí),目標(biāo)像素的值是通過源圖像中4個(gè)最近鄰像素點(diǎn)的值進(jìn)行加權(quán)和計(jì)算而來。為了探究不同的圖像輸入尺寸對瑕疵檢測造成影響,本文設(shè)計(jì)了不同輸入圖像尺寸的檢測效果對照實(shí)驗(yàn),結(jié)果如表1所示,選取每秒檢測幀數(shù)FPS、Pmis、Ptrue、PmA@0.5、PmA@0.50-0.95作為評價(jià)指標(biāo)。
根據(jù)表1實(shí)驗(yàn)結(jié)果可以看出,當(dāng)在輸入圖像尺寸在640像素點(diǎn)之內(nèi)時(shí),檢測效果隨輸入尺寸變大而提高。輸入尺寸大于640像素點(diǎn)時(shí),檢測效果的提升不明顯,但是模型的預(yù)測時(shí)間增加,會導(dǎo)致每秒檢測幀數(shù)的下降。為了平衡精度與計(jì)算成本,本文選擇將數(shù)據(jù)集中的圖像等比例放大至640×640像素作為模型的輸入。
3.3.2 CBAM注意力機(jī)制加入位置的對比實(shí)驗(yàn)
CBAM注意力機(jī)制模塊作為一種即插即用的模塊,可以添加在YOLOv5s網(wǎng)絡(luò)中的主干特征提取網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)以及檢測頭之中。因此,為了選擇CBAM注意力機(jī)制模塊在YOLOv5s網(wǎng)絡(luò)中合適的加入位置,分別選取Pmis、Ptrue、PmA@0.5、PmA@0.50-0.95作為評價(jià)指標(biāo)進(jìn)行了對照實(shí)驗(yàn),其結(jié)果如表2所示。
由表2可知,CBAM注意力機(jī)制添加在主干特征提取網(wǎng)絡(luò)中時(shí),誤檢率降低、檢出率提高,同時(shí)檢測精度維持不變。當(dāng)CBAM注意力機(jī)制添加在特征融合網(wǎng)絡(luò)以及檢測頭中時(shí),誤檢率降低、檢出率提高,但是檢測精度有所下降。因此,本文選擇將CBAM注意力機(jī)制添加在主干特征提取網(wǎng)絡(luò)之中。
考慮到輕量化主干網(wǎng)絡(luò)降低了參數(shù)量,可能會弱化特征提取能力,本文選擇將CBAM注意力機(jī)制模塊添加到主干特征提取網(wǎng)絡(luò)的末端,以補(bǔ)償模型輕量化可能帶來的特征提取能力損失。
3.3.3 不同注意力機(jī)制的對比實(shí)驗(yàn)
為了衡量CBAM注意力機(jī)制對于主干網(wǎng)絡(luò)特征提取能力的提升效果,分別選取參數(shù)量、Pmis、Ptrue、PmA@0.5、PmA@0.50-0.95作為評價(jià)指標(biāo),并將SE注意力機(jī)制(Squeeze-and-excitation attention)、CA注意力機(jī)制(Coordinate attention)、CBAM注意力機(jī)制分別與GhostConv-YOLOv5s相結(jié)合,檢測結(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)
本文在測試樣本中進(jìn)行消融實(shí)驗(yàn)和對比實(shí)驗(yàn),進(jìn)一步測試所提方案的性能,實(shí)驗(yàn)結(jié)果分別如表4—表5。
表4給出了在相同測試集下,本文算法同7種主流目標(biāo)檢測算法的對比測試結(jié)果。通過分析表4可知,本文提出的GCP-YOLOv5s模型在保證檢測精度的同時(shí),降低了模型的參數(shù)量和浮點(diǎn)計(jì)算量,提高了每秒檢測幀數(shù)。
表5展示了本文算法的消融實(shí)驗(yàn)對比結(jié)果。對比YOLOv5s和G-YOLOv5s可知:在更換主干網(wǎng)絡(luò)之后,模型的參數(shù)量下降,同時(shí)PmA也有所下降。對比G-YOLOv5s和GC-YOLOv5s可知:在使用了注意力機(jī)制后,模型的參數(shù)量略微上升,PmA@0.50-0.95提升了1.5%,在少量增加參數(shù)的情況下,使主干網(wǎng)絡(luò)的特征提取能力得到提升。對比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)的特征融合能力。對比YOLOv5s和GCP-YOLOv5s的參數(shù)量、FLOPs、FPS、PmA@0.5和PmA@0.50-0.95可知:本文算法相比基準(zhǔn)模型參數(shù)量下降了41.6%,計(jì)算量下降了43.1%,檢測速度提高了12 FPS,PmA@0.5結(jié)果相同,PmA@0.50-0.95提高了1.7%。由此可見,本文改進(jìn)算法在更少參數(shù)量、計(jì)算量的情況下,實(shí)現(xiàn)了更高的檢測精度和更快的檢測速度。
YOLOv5s(基準(zhǔn)模型)和GCP-YOLOv5s對實(shí)驗(yàn)數(shù)據(jù)集的檢測結(jié)果的示例圖像如圖8所示,其評價(jià)指標(biāo)見表4。對比圖8(a)和圖8(b)的圖像1可知,基準(zhǔn)模型有一處誤檢,而本文方法未出現(xiàn)誤檢;對比圖8(a)和圖8(b)的圖像2可知,基準(zhǔn)模型有一處漏檢,而本文方法未出現(xiàn)漏檢。對比圖8(a)和圖8(b)的圖像3可知,本文方法的定位比基準(zhǔn)模型更準(zhǔn)確。從圖8和表4可知,本文提出的改進(jìn)算法在降低了誤檢率的同時(shí)提高了檢測率。
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)輕量化布匹瑕疵檢測算法GCP-YOLOv5s。在自建數(shù)據(jù)集中的實(shí)驗(yàn)結(jié)果顯示,相較于基準(zhǔn)模型YOLOv5s,本文所提GCP-YOLOv5s算法參數(shù)量下降了41.6%,計(jì)算量下降了43.1%,檢測速度提高了12FPS,檢測精度提高了1.7%。相比于其他主流目標(biāo)檢測算法,GCP-YOLOv5s在檢測速度更快、模型參數(shù)量更小的同時(shí)保持了較高的檢測精度。本文所提算法可以滿足實(shí)際工業(yè)現(xiàn)場的應(yīng)用需求,具有較好的推廣性。
參考文獻(xiàn):
[1]時(shí)造雄, 茅正沖. 基于改進(jìn)Yolov5的花色布匹瑕疵檢測方法[J]. 計(jì)算機(jī)測量與控制, 2023, 31(4): 56-62.
[2]許玉格, 鐘銘, 吳宗澤, 等. 基于深度學(xué)習(xí)的紋理布匹瑕疵檢測方法[J]. 自動化學(xué)報(bào), 2023, 49(4): 857-871.
[3]俞文靜, 劉航, 李梓瑞, 等. 基于圖像增強(qiáng)和CNN的布匹瑕疵檢測算法[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的布匹瑕疵識別系統(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ò)的花色布匹瑕疵檢測[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)檢測方法的研究[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]. 計(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ò)的輕量級服裝目標(biāo)檢測方法[J]. 紡織學(xué)報(bào), 2022, 43(10): 155-160.
[19]郭波, 呂文濤, 余序宜, 等. 基于改進(jìn)YOLOv5模型的織物疵點(diǎn)檢測算法[J]. 浙江理工大學(xué)學(xué)報(bào)(自然科學(xué)版), 2022, 47(5): 755-763.
[20]雷源毅, 朱文球, 廖歡. 復(fù)雜場景下的改進(jìn)YOLOv8n安全帽佩戴檢測算法[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é)任編輯:康 鋒)