楊 萌,張愛軍,潘文松
(1.南京理工大學(xué)機(jī)械工程學(xué)院,南京 210094;2.杭州康代思銳生物科技有限公司,杭州 311199)
消費(fèi)購物是人們?nèi)粘I钪谐R姷男袨榛顒?dòng),而商品包裝是消費(fèi)購物中重要的一部分。紙袋是一種常見的商品包裝方式,廣泛應(yīng)用于衣服、食品、禮品等領(lǐng)域。紙袋的質(zhì)量影響消費(fèi)者的使用體驗(yàn),影響紙袋質(zhì)量的缺陷通常出現(xiàn)在手把和底部。在紙袋的生產(chǎn)過程當(dāng)中,由于機(jī)器誤差、物料誤差等原因會(huì)出現(xiàn)手把錯(cuò)位、貼歪、單手把、無手把以及底部臟污、褶皺、脫膠、翻折等問題。目前,許多紙袋生產(chǎn)企業(yè)對(duì)紙袋手把和底部的缺陷檢測(cè)仍以人工檢測(cè)為主,由操作工人在檢測(cè)工位進(jìn)行檢測(cè),這種檢測(cè)方法人工成本高,并且會(huì)受操作工人主觀影響導(dǎo)致結(jié)果不穩(wěn)定、精度低,因此,紙袋生產(chǎn)企業(yè)存在著穩(wěn)定高效的自動(dòng)化缺陷檢測(cè)需求。
近年來,隨著機(jī)器視覺技術(shù)的發(fā)展,研究人員將機(jī)器視覺逐步應(yīng)用于檢測(cè)領(lǐng)域中,國際上歐洲與日本最先開始了機(jī)器視覺的發(fā)展,而我國的機(jī)器視覺的發(fā)展開始于上世紀(jì)90年代[1]。傳統(tǒng)的機(jī)器視覺流程一般為圖像預(yù)處理、手工設(shè)計(jì)特征進(jìn)行特征提取、利用分類器進(jìn)行分類。鐘飛等[2]提出了一種改進(jìn)遺傳算法,利用該算法和二維最大熵值法對(duì)經(jīng)過預(yù)處理的圖像進(jìn)行分割,再結(jié)合形態(tài)學(xué)方法,對(duì)特征進(jìn)行提取分類,并且基于該算法提出了一種編織袋表面缺陷檢測(cè)系統(tǒng)。吳世燃等[3]利用Sobel邊緣檢測(cè)算子和形態(tài)學(xué)處理以及自適應(yīng)生長(zhǎng)算法對(duì)圖像進(jìn)行1~2次的分割,實(shí)現(xiàn)紙塑復(fù)合袋缺陷圖像的檢測(cè)分割。然而,傳統(tǒng)方法檢測(cè)精度低、準(zhǔn)確率差,于是,隨著深度學(xué)習(xí)的發(fā)展,神經(jīng)網(wǎng)絡(luò)被越來越多的研究人員應(yīng)用于檢測(cè)技術(shù)當(dāng)中。王富豪等[4]將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到包裝盒缺陷檢測(cè)中,獲得了較好的檢測(cè)效果。
近年來,越來越多的神經(jīng)網(wǎng)絡(luò)被提出,其中,YOLO(you only look once)系列的網(wǎng)絡(luò)表現(xiàn)較為突出,YOLO系列的網(wǎng)絡(luò)較其他網(wǎng)絡(luò)而言能夠更好地在精度和速度方面保持平衡[5],目前性能更高、穩(wěn)定性較好、應(yīng)用較為廣泛的網(wǎng)絡(luò)結(jié)構(gòu)為YOLOv5,但原始YOLOv5網(wǎng)絡(luò)在特征提取部分不能關(guān)注到更為關(guān)鍵的特征信息,且預(yù)測(cè)框與真實(shí)框的相似性仍可以優(yōu)化,檢測(cè)精度仍可以提升。
因此,為了提高企業(yè)的缺陷檢測(cè)精度,本文提出了一種基于YOLOv5模型的改進(jìn)算法,改進(jìn)算法為了提高網(wǎng)絡(luò)對(duì)所關(guān)注缺陷特征的檢測(cè)能力,引入坐標(biāo)注意力CA(coordinate attention)模塊,以此來增強(qiáng)網(wǎng)絡(luò)特征學(xué)習(xí)表達(dá)力,提高網(wǎng)絡(luò)模型的定位能力,并且為了提升回歸精度,引入EIoU(efficient intersection over union)損失函數(shù),代替YOLOv5原始模型中的CIoU(complete intersection over union)損失函數(shù),并對(duì)原始網(wǎng)絡(luò)模型中的空間金字塔池化結(jié)構(gòu)SPPF(spatial pyramid pooling-fast)進(jìn)行改進(jìn),經(jīng)過實(shí)驗(yàn)驗(yàn)證可以得出,改進(jìn)后的算法與原始算法相比檢測(cè)精度有所提升。
YOLO算法是一種典型的單階段檢測(cè)方法,這種檢測(cè)方法的檢測(cè)速度更快。正如YOLO的名字所示,它意味著神經(jīng)網(wǎng)絡(luò)看圖片只需要看一次就可以得出預(yù)測(cè)結(jié)果。YOLOv5網(wǎng)絡(luò)模型與YOLOv4相比較,其大小減小了近90%,且其具有精度高、速度快等特點(diǎn)[6]。YOLOv5網(wǎng)絡(luò)模型結(jié)構(gòu)主要由輸入、主干、頸部特征融合和檢測(cè)頭部組成[7],網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,其中,主干Backbone實(shí)現(xiàn)特征提取功能,頸部Neck對(duì)特征進(jìn)行融合并傳遞給預(yù)測(cè)層,檢測(cè)頭部實(shí)現(xiàn)最終預(yù)測(cè)與輸出。
圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
其中,Conv、C3、SPPF模塊結(jié)構(gòu)分別如圖2所示。
圖2 YOLOv5網(wǎng)絡(luò)中模塊結(jié)構(gòu)
YOLOv5主要有s、m、l和x四種不同大小的模型,其中s的模型大小最小,x的模型大小最大,4種模型網(wǎng)絡(luò)結(jié)構(gòu)相同,不同點(diǎn)在于模型的深度和寬度。
本文基于YOLOv5s提出一種改進(jìn)算法,通過引入坐標(biāo)注意力CA來增強(qiáng)網(wǎng)絡(luò)特征學(xué)習(xí)表達(dá)力,將CA融合到C3模塊中得到C3CA模塊,利用C3CA模塊代替C3模塊,以此來提高網(wǎng)絡(luò)的特征提取能力,并且為了改善YOLOv5原模型中的CIoU損失函數(shù)的縱橫比合理性,提升回歸精度,引入了EIoU損失函數(shù),接著,改變?cè)伎臻g金字塔池化結(jié)構(gòu)SPPF,結(jié)合改進(jìn)的空間金字塔池化結(jié)構(gòu)SimCSPSPPF,提升檢測(cè)性能。改進(jìn)后的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)
神經(jīng)網(wǎng)絡(luò)通常是利用卷積操作來實(shí)現(xiàn)特征的提取,YOLOv5中的C3模塊是一種常見的卷積模塊,但一般的卷積操作不能關(guān)注到更為關(guān)鍵的感興趣特征,而紙袋缺陷如臟污或褶皺等有時(shí)會(huì)以微小的形態(tài)出現(xiàn),因此,為了提高網(wǎng)絡(luò)對(duì)所關(guān)注缺陷的檢測(cè)能力,提出引入注意力的方法。
針對(duì)神經(jīng)網(wǎng)絡(luò)模型,注意力可以通過增強(qiáng)網(wǎng)絡(luò)特征學(xué)習(xí)表達(dá)力從而提升網(wǎng)絡(luò)的性能,能夠讓網(wǎng)絡(luò)模型更好地學(xué)習(xí)到該特征。CA注意力不同于只關(guān)注通道信息或只能局部提取位置信息的注意力機(jī)制,其將垂直方向和水平方向的位置信息嵌入到通道當(dāng)中,從而能夠使網(wǎng)絡(luò)關(guān)注到較大的位置信息[8]。
CA注意力機(jī)制通過一維垂直全局池化和一維水平全局池化將輸入特征沿垂直與水平兩個(gè)方向集合到兩個(gè)獨(dú)立的特征圖中,這兩個(gè)特征圖具有方向感知性,接著,特征圖被處理成兩個(gè)注意力圖,每個(gè)注意力圖獲取輸入特征圖沿一個(gè)方向上的長(zhǎng)范圍關(guān)系,生成的注意力圖保存著位置信息,然后兩個(gè)注意力圖通過乘法運(yùn)算被應(yīng)用到輸入特征圖,以此來增強(qiáng)所感興趣部分特征的表達(dá)力。CA注意力結(jié)構(gòu)如圖4所示。
圖4 CA注意力結(jié)構(gòu)
全局池化一般會(huì)將信息擠壓到通道描述信息塊中,對(duì)空間信息進(jìn)行全局編碼處理,但位置信息未能被保存下來,因此將全局池化轉(zhuǎn)變成一對(duì)一維特征編碼處理,沿水平和垂直坐標(biāo)針對(duì)給定的輸入,利用兩個(gè)空間池化核(H,1)和(1,W)進(jìn)行編碼處理,第c個(gè)通道在高度h處的輸出為:
(1)
第c個(gè)通道在寬度w處的輸出為:
(2)
沿兩個(gè)方向分別進(jìn)行特征的集合,可以得到一對(duì)能夠感知方向的特征圖,并且注意力可以獲取到沿一個(gè)方向的長(zhǎng)范圍關(guān)系,以及沿另一個(gè)方向可以保存精準(zhǔn)的位置信息,以此可以改善網(wǎng)絡(luò),使之可以更好地定位感興趣對(duì)象的位置。
為了增強(qiáng)網(wǎng)絡(luò)的特征學(xué)習(xí)表達(dá)力,將CA坐標(biāo)注意力引入到Bottleneck模塊中得到Bottleneck_CA模塊,并用Bottleneck_CA模塊代替原始C3模塊中的Bottleneck模塊得到C3CA模塊,其結(jié)構(gòu)如圖5所示,使用C3CA模塊代替原始模型中的C3模塊,提高網(wǎng)絡(luò)對(duì)目標(biāo)的檢測(cè)定位能力。
圖5 改進(jìn)C3CA模塊
YOLOv5原始模型中所使用的CIoU損失函數(shù)通過增加縱橫比這一考量來提升預(yù)測(cè)框的精確性,但縱橫比是一個(gè)相對(duì)比值,而不是一個(gè)真實(shí)差異,所以預(yù)測(cè)框與真實(shí)框的相似性有時(shí)并不能得到很好的優(yōu)化,因此縱橫比的合理性有待提升,為了改善CIoU損失函數(shù)縱橫比合理性的問題,提升回歸精度,提出了引入EIoU損失函數(shù)的方法來進(jìn)行改進(jìn),分別計(jì)算寬高的差異值以此來取代縱橫比。
損失函數(shù)是用來表征模型預(yù)測(cè)結(jié)果與實(shí)際的差距程度的,它可以幫助我們對(duì)模型預(yù)測(cè)的好壞進(jìn)行衡量。目標(biāo)檢測(cè)中的損失函數(shù)一般由分類損失函數(shù)和邊界框回歸損失函數(shù)組成,IoU(intersection over union)即為交并比,計(jì)算預(yù)測(cè)邊框與實(shí)際邊框的交疊比值。其表達(dá)式為:
(3)
LIoU=1-IoU
(4)
YOLOv5原始模型使用的損失函數(shù)是CIoU,CIoU提出了增加縱橫比的考量,考慮了交疊面積、中心點(diǎn)距離和縱橫比3種影響因素,CIoU損失函數(shù)表達(dá)式為:
(5)
(6)
(7)
式中:b為預(yù)測(cè)框中心點(diǎn),bgt為真實(shí)框中心點(diǎn),ρ為兩中心點(diǎn)的歐氏距離,αv為考慮縱橫比的影響因子,c為預(yù)測(cè)框真實(shí)框最小封閉區(qū)域的對(duì)角線距離。
EIoU損失函數(shù)與CIoU損失函數(shù)相比能夠更精確回歸損失[9],EIoU在CIoU的基礎(chǔ)上,考慮了交疊面積、中心點(diǎn)和寬高在回歸損失中的差值,分別計(jì)算預(yù)測(cè)框?qū)捀吲c最小外接框的差值來代替CIoU中的縱橫比,提高了回歸精度,其表達(dá)式為:
(8)
式中:cw和ch是兩個(gè)框的最小外接框的寬和高。
為了進(jìn)一步提升原始模型中的SPPF結(jié)構(gòu)的表征性能,減少網(wǎng)絡(luò)冗余信息的處理,使用SimCSPSPPF結(jié)構(gòu)進(jìn)行改進(jìn)。
結(jié)合SPPF和跨階段局部網(wǎng)絡(luò)CSP(cross stage partial)結(jié)構(gòu)得到一種簡(jiǎn)化的空間金字塔池化結(jié)構(gòu)SimCSPSPPF,通過卷積和池化操作進(jìn)行特征提取,提高網(wǎng)絡(luò)的特征表征能力,并且SimCSPSPPF在SPPF結(jié)構(gòu)的基礎(chǔ)上,使之具有類似于CSP的結(jié)構(gòu),以此來減少冗余信息的處理,SimCSPSPPF與SPPF相比有了性能上的提升[10],結(jié)構(gòu)如圖6所示。
圖6 SimCSPSPPF結(jié)構(gòu)
采用相機(jī)拍攝獲取紙袋缺陷圖片來組成實(shí)驗(yàn)數(shù)據(jù)集,數(shù)據(jù)集總共2486張圖片,按8∶2的比例分為訓(xùn)練集和驗(yàn)證集,其中訓(xùn)練集共1989張圖片,驗(yàn)證集共497張圖片,對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注,缺陷總共分為8個(gè)類別,分別為手把錯(cuò)位、手把貼歪、單手把、無手把、臟污、褶皺、脫膠、翻折。部分缺陷特征示例如圖7所示。
(a) 手把錯(cuò)位 (b) 手把貼歪 (c)單手把 (d) 無手把
采用平均精度平均值mAP(mean average precision)、精確度P(precision)、召回率R(recall)作為實(shí)驗(yàn)評(píng)價(jià)指標(biāo)。
mAP是指平均精度平均值,是評(píng)估模型好壞的綜合指標(biāo)。mAP@.5和mAP@.5∶.95分別指當(dāng)IoU為0.5以及從0.5~0.95時(shí)的平均精度平均值。
精確度P是指在模型預(yù)測(cè)的所有目標(biāo)中,預(yù)測(cè)正確的比例,即預(yù)測(cè)的所有是正例的樣本中,預(yù)測(cè)正確的正例所占比例,也稱查準(zhǔn)率,如式(9)所示。召回率R是指所有真實(shí)目標(biāo)中,模型預(yù)測(cè)正確的目標(biāo)比例,即所有正例樣本中,預(yù)測(cè)的正例所占比例,如式(10)所示,也稱查全率。
(9)
(10)
式中:TP是指預(yù)測(cè)結(jié)果與真實(shí)結(jié)果相同且預(yù)測(cè)值為正例,FP是指預(yù)測(cè)結(jié)果與真實(shí)結(jié)果不同且預(yù)測(cè)值為正例,但真實(shí)值為反例;FN是指預(yù)測(cè)結(jié)果與真實(shí)結(jié)果不同且預(yù)測(cè)值為反例,但真實(shí)結(jié)果為正例。
為了方便對(duì)比,以下實(shí)驗(yàn)數(shù)據(jù)表格中分別采用v5s、v3-tiny、v3、v7-tiny簡(jiǎn)稱YOLOv5s、YOLOv3-tiny、YOLOv3、YOLOv7-tiny。
為了提高網(wǎng)絡(luò)對(duì)目標(biāo)的檢測(cè)定位能力,改進(jìn)算法在模型中引入了CA注意力機(jī)制。
為了對(duì)比不同的注意力機(jī)制對(duì)網(wǎng)絡(luò)模型的感興趣特征的檢測(cè)能力,在模型中分別引入SE注意力[11]、ECA注意力[12]和CA注意力機(jī)制進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1所示。
表1 注意力機(jī)制對(duì)比實(shí)驗(yàn) (%)
由實(shí)驗(yàn)結(jié)果可知,引入CA注意力機(jī)制和引入ECA注意力機(jī)制mAP漲值較好,且引入CA的精確度比引入ECA的精確度更好,實(shí)驗(yàn)對(duì)比可得,本文提出的引入CA注意力機(jī)制是更為合適的引入模塊,提升了網(wǎng)絡(luò)的檢測(cè)能力。
為了評(píng)估本文提出的改進(jìn)方法的效果,利用消融實(shí)驗(yàn)來進(jìn)行評(píng)估,分別進(jìn)行引入CA注意力機(jī)制、損失函數(shù)EIoU和空間金字塔池化結(jié)構(gòu)SimCSPSPPF的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。表格中打√表示引入該模塊,空白表示未引入該模塊。
表2 消融實(shí)驗(yàn) (%)
由表2可得,分別引入CA注意力、損失函數(shù)EIoU及空間金字塔池化SimCSPSPPF對(duì)于改進(jìn)YOLOv5都有一定效果,并且依次加入模塊能實(shí)現(xiàn)效果疊加,對(duì)比原始YOLOv5模型mAP、P、R各指標(biāo)均有改進(jìn),mAP@.5提升了1.6%,mAP@.5∶.95提升了0.9%,精確度P提升了0.3%,召回率R提升了0.5%。
選擇YOLOv3-tiny模型、YOLOv3模型、原始YOLOv5s模型以及YOLOv7-tiny模型與本文提出的改進(jìn)算法進(jìn)行實(shí)驗(yàn)對(duì)比,結(jié)果如表3所示。
表3 對(duì)比實(shí)驗(yàn) (%)
由表3可知,本文所提出的改進(jìn)算法與YOLOv3-tiny、YOLOv3、原始YOLOv5s模型以及YOLOv7-tiny模型相比較,mAP@.5分別提升了6.6%、3.5%、1.6%及0.9%,mAP@.5∶.95分別提升了9.4%、1.2%、0.9%及1.0%,召回率R分別提升了9.1%、2.4%、0.5%及0.4%,與YOLOv3-tiny、YOLOv3、原始YOLOv5s模型相比精確度P分別提升了3.5%、0.2%、0.3%,由實(shí)驗(yàn)指標(biāo)綜合對(duì)比可得本文改進(jìn)算法的檢測(cè)性能最優(yōu)。
綜上所述,本文所提出的改進(jìn)YOLOv5算法性能優(yōu)于YOLOv5s原始模型,具有較好的檢測(cè)性能。
本文提出了一種基于YOLOv5模型的改進(jìn)算法,通過引入坐標(biāo)注意力CA模塊增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)特征的表達(dá)力,引入EIoU損失函數(shù)代替YOLOv5原始模型中的CIoU損失函數(shù),并進(jìn)行空間金字塔池化的改進(jìn),將原始模型中的SPPF用改進(jìn)的空間金字塔池化SimCSPSPPF代替,改進(jìn)模型相比于YOLOv5原始模型,精度有所提升,有著較好的檢測(cè)能力,能夠滿足生產(chǎn)企業(yè)對(duì)紙袋缺陷的檢測(cè)需求。