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