郭殿鵬 柯海森 李孝祿 施庚偉
(中國計量大學,浙江杭州,310018)
在紡織品的生產(chǎn)過程中,織物疵點是難以避免的,而制造過程中的意外因素是其產(chǎn)生的主要原因之一[1]。這些疵點可能以不同的形狀、顏色和大小出現(xiàn)在織物表面,導(dǎo)致產(chǎn)品價格縮水一半左右[2],從而直接影響企業(yè)的盈利情況。因此,織物疵點檢測在紡織行業(yè)中非常重要。目前,較多的紡織車間是通過人工的方式來分揀疵點產(chǎn)品。但人工分揀效率低、容易受到主觀因素的干擾,而且長時間工作疲勞、眼花容易導(dǎo)致漏檢、誤檢的發(fā)生[3],不能滿足流水線日益增長的生產(chǎn)需求。為使工藝流程更加自動化和智能化,提升檢測效率與準確率,基于機器視覺的檢測方法開始進入大眾的視野[4]。
現(xiàn)階段,傳統(tǒng)視覺檢測有統(tǒng)計法[5]、頻域法[6]、模板法[7]等方式。由于傳統(tǒng)視覺受制于光照視角的依賴性、疵點形態(tài)的多樣性等因素,其泛化能力和適應(yīng)新場景的能力被嚴重限制,在檢測領(lǐng)域中仍存在一定的局限性。隨著檢測算法的不斷發(fā)展,諸 多 深 度 學 習 分 類 網(wǎng) 絡(luò) 如VGG[8]、Inception[9]、ResNet[10]等,憑借其強大的學習能力、優(yōu)秀的數(shù)據(jù)處理能力以及較優(yōu)的魯棒性和適應(yīng)性在檢測領(lǐng)域中大放異彩[11]。
相比于其他算法,YOLO[12]算法因能在保證一定精度的情況下大幅提升檢測速度,因而在織物疵點的實時檢測中獲得眾多青睞。JIN R 等[13]在YOLOv5 中引入多任務(wù)學習,通過優(yōu)化焦點損失函數(shù)和加強中心約束來提高識別性能。YUE X 等[14]在YOLOv4 的 主 干 特 征 提 取 網(wǎng) 絡(luò) 中 融 入卷積塊注意力模塊,并創(chuàng)新性地將CIoU 損失函數(shù)替換為CEIoU 損失函數(shù),實現(xiàn)對疵點的準確分類和定位。LIN G J 等[15]提出一種滑動窗口多傳感頭自注意力機制,并引入Swin Transformer模塊代替原YOLOv5 算法中的主模塊,提高對小目標疵點的感知。
由于織物疵點的小尺度性、不規(guī)則性和分散性等特點,現(xiàn)階段的YOLO 算法還是存在檢測精度較低等問題。本研究基于YOLOv7[16]算法進行改進,通過新設(shè)計的DR-SPD 結(jié)構(gòu)增強模型強化對復(fù)雜形態(tài)的表征能力;修改網(wǎng)絡(luò)結(jié)構(gòu)并引入注意力機制,提升對于小目標的檢測精度,減少背景信息對識別帶來的負面影響,使改進后的模型能夠滿足工業(yè)實際生產(chǎn)需求。
YOLOv7 是一種單階檢測算法,相比于其他YOLO 算法,它在檢測效率與精度之間取得了非常好的平衡。YOLOv7 模型整體結(jié)構(gòu)如圖1 所示,主要由輸入模塊(Input)、主干網(wǎng)絡(luò)(Backbone)和頭部(Head)組成。
圖1 YOLOv7 模型整體結(jié)構(gòu)圖
Input 的主要作用是調(diào)整圖片格式以適應(yīng)后續(xù)流程,主要包括數(shù)據(jù)增強、調(diào)整錨框和放縮圖片等操作。
Backbone 是YOLOv7 的特征提取器,主要由CBS 模塊、ELAN 模塊和MP-1 模塊構(gòu)成。它負責從輸入圖像中提取多尺度的特征圖,其特點是具有較大的感受野和較高的特征表達能力,可以捕獲圖像中的語義信息。
Head由SPPCSPC模塊、ELAN-W模塊、MP-2模塊、Cat 模塊以及后續(xù)輸出的RepConv 模塊組成。Head 通過利用上述模塊進行跨層級上采樣和特征拼接的方式實現(xiàn)特征融合,以獲得多尺度的上下文信息。然后根據(jù)融合后的特征圖進行目標預(yù)測,用于提取目標的位置和類別信息。預(yù)測頭的特點是具有較小的感受野和高分辨率特征圖,能夠準確地定位和分類目標。
對于織物疵點檢測,當前YOLOv7 在特征提取與融合的過程中還是會發(fā)生關(guān)鍵信息遺漏,從而導(dǎo)致模型對疵點位置和類型判斷錯誤。下面將會對特征提取網(wǎng)絡(luò)與特征融合網(wǎng)絡(luò)進行針對性地改進。
2.1.1 DRes 單元
神經(jīng)網(wǎng)絡(luò)強大的表征能力源于不同過濾器對不同級別信息的提取。對于織物中復(fù)雜不規(guī)則的疵點形狀,如果想要獲取更全面的圖像信息,可以通過增加卷積的數(shù)量來實現(xiàn)。但當結(jié)構(gòu)中卷積的數(shù)量已經(jīng)趨近于飽和時,再一味地增加卷積則會導(dǎo)致參數(shù)量冗雜、收斂性變差、網(wǎng)絡(luò)優(yōu)化困難等負面問題。為解決上述局限性,利用動態(tài)區(qū)域感知卷積(DRConv)[17]設(shè)計DRes 單元,使其能有效處理復(fù)雜多變的圖像信息。
如圖2 所示,DRConv 通過k×k的標準卷積,從輸入特征圖X中生成具有m個通道的引導(dǎo)特征,再根據(jù)引導(dǎo)特征將空間維度劃分為相對應(yīng)的區(qū)域,使引導(dǎo)掩碼中具有相同顏色的像素附著到對應(yīng)區(qū)域。同時濾波器生成模塊G(X)會根據(jù)每個區(qū)域的圖像特性生成對應(yīng)的定制濾波器W=[W0,…,Wm-1],進行卷積運算。最后,將所有區(qū)域融合在一起便得到輸出特征圖Y。由于需要優(yōu)化的參數(shù)主要在G(X)中,所以DRConv 幾乎不會增加模型的大小。
圖2 動態(tài)區(qū)域感知卷積
設(shè)計的DRes 單元如圖3 所示。該單元使用卷積核為3 的DRConv 和CBS 進行特征提取,再加入一條跳躍連接,直接將原輸入與卷積層的輸出相加形成殘差結(jié)構(gòu)。與同等數(shù)量的普通卷積塊相比,DRes 單元能在幾乎不增加模型大小的基礎(chǔ)上增強對于不規(guī)則疵點的表征能力。
圖3 DRes 單元
2.1.2 SPD 卷積
當點狀疵點與織物顏色相近時,同色像素沉淀的特性容易導(dǎo)致DRes 對該類疵點的檢測準確率下降。為降低上述問題帶來的影響,利用SPD[18]卷積充當末尾卷積,對其他卷積層的輸出集合進行最終處理,以增強網(wǎng)絡(luò)對圖像細節(jié)的提取能力。
SPD 由空間深度層和非跨步卷積層組成,對于任何尺度為S×S×C1的特征圖X,SPD 可將其切為如下公式的子特征序列。
將這些特征子圖沿著通道維度連接起來便使特征 圖X(S,S,C1)轉(zhuǎn)換成 中間特征 圖X′(S/scale,S/scale,scale2C2)。如圖4 所示,當scale=2時通過降采樣得到大小為(S/2,S/2,C1)的4 個特征 子 圖f0,0、f1,0、f0,1、f1,1。其 中X′的 空 間 維 度 減 少了1/2,通道維度增加了4 倍。
圖4 SPD 特征提取
為盡可能保留所有的判別性特征信息,在SPD 特征轉(zhuǎn)換層之后再添加一個帶有濾波器的非跨步卷積層,得到最終特征圖X″(S/scale,S/scale,C2),這樣可以有效減少細粒度信息的丟失。
2.1.3 結(jié)構(gòu)整體設(shè)計
本研究提出了一種新的聚合網(wǎng)絡(luò)結(jié)構(gòu)DRSPD,該結(jié)構(gòu)將DRes 的動態(tài)感知和SPD 卷積的細節(jié)提取結(jié)合在一起,以增強對各類型疵點的語義捕捉能力,提升檢測精度。DR-SPD 結(jié)構(gòu)如圖5所 示,CBS 由1×1 卷 積(Conv)、數(shù) 據(jù) 歸 一 化(Batch Normalization)和激活函數(shù)SiLU 組成,Cat表示連接操作。DR-SPD 通過控制最長和最短的梯度路徑使網(wǎng)絡(luò)能夠?qū)W習更多的特征,最后引入殘差結(jié)構(gòu)的思想將特征信息進行疊加后輸送到SPD 卷積中,從而具有更好的泛化能力。
圖5 DR-SPD 結(jié)構(gòu)
在檢測過程中,當疵點的顏色、形態(tài)與織物紋理相似時也會對檢測結(jié)果造成較大的影響。GAM[19]能在減少信息丟失的同時擴大全局交互性,在多個維度獲取特征信息,以達到提升網(wǎng)絡(luò)性能的目標。GAM 在CBAM 注意力的基礎(chǔ)上加以改進。如圖6 所示,通道注意力子模塊使用3D 序列來保存每個維度上的信息,然后通過兩層的編碼-解碼器結(jié)構(gòu)(MLP)增強跨維度通道的空間相關(guān)性。為更好地聚焦于空間信息,空間注意力子模塊使用兩個卷積層進行空間信息融合。由于最大池化操作容易造成信息丟失從而影響整體性能,所以省略池化操作以達到更優(yōu)的映射特性保留。空間注意力子模塊如圖7 所示。
圖6 通道注意力子模塊
圖7 空間注意力子模塊
GAM 整體計算過程如圖8 所示。將上述兩個子模 塊進行融合,當輸入特征映射F1∈RC×H×W時,中間狀態(tài)F2和輸出結(jié)果F3的計算公式如下。
圖8 GAM 整體計算過程
式中:MC表示通道注意力圖;Ms表示空間注意力圖;?表示按元素進行乘法操作。
將GAM 模塊添加到模型Backbone 與Head的連接處,可以有效抑制干擾信息,提升對于小目標的敏感性,使Head 部分能夠進行更好的特征融合,以提高檢測精度。
在原YOLOv7 特征融合過程中為了能獲得多尺度信息,對輸入的特征圖進行多次上下層采樣。由于檢測目標尺度較小,在不斷上下采樣的過程中很容易導(dǎo)致圖像細節(jié)的丟失,影響檢測精度。所以,本研究在保留其原始融合路徑的同時,加入3 條橫向跳躍路徑,如圖9 所示。將同一層的輸入和輸出節(jié)點跨層連接起來,使模型中各個檢測層均多加了一條特征融合通道,縮短深淺層之間信息傳遞的距離,加速模型收斂,強化不同層級的細節(jié)特征。
圖9 特征融合網(wǎng)絡(luò)改進
改進后的YOLOv7 整體網(wǎng)絡(luò)結(jié)構(gòu)如圖10所示。
圖10 改進后的YOLOv7 模型
數(shù)據(jù)集采自浙江義烏某紡織車間,共計3 514張含有疵點的圖片,其中每張圖片中包含1 種及以上的疵點類型。根據(jù)廠家實際檢測需求,本研究選取的疵點類型及圖片數(shù)量為臟漬822 張、結(jié)頭738 張、漿 斑537 張、松經(jīng)776 張、三絲641 張。將數(shù)據(jù)集按照8∶2 的比例作為訓(xùn)練集和測試集。
在實際應(yīng)用場景中,根據(jù)公式(7)計算后得出的rs值若小于3%,則稱該疵點為小目標。
式中:Sbox表示疵點標注框的面積;Simage表示圖像的總面積。
經(jīng)計算,該數(shù)據(jù)集中的大部分對象都符合小目標的定義。為能清晰展示疵點類型,將圖像中的疵點部分進行裁剪并放大處理,如圖11 所示。
圖11 疵點類型
本次試驗中的硬件平臺選用搭載了6×Intel Xeon E5-2680 v4、Nvidia RTX 3080 GPU、內(nèi)存26 GB 的服務(wù)器。環(huán)境配置為PyTorch2.0.0、Python3.8、Cuda11.8。選擇隨機梯度優(yōu)化器,使用遷移學習的方法加載預(yù)訓(xùn)練權(quán)重,使用模型主干凍結(jié)的訓(xùn)練策略,開啟多線程訓(xùn)練,并開啟Mosaic 圖像增強,學習率隨著訓(xùn)練世代的增加而減少。為了更好地評價模型,選定精確率(Precision,P)和召回率(Recall,R)作為基礎(chǔ)指標,通過這兩個基礎(chǔ)指標可以進一步整合成更綜合的檢測指標:平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP)。
針對本研究中對YOLOv7 算法提出的幾處改進,通過逐一增加改進模塊的方法設(shè)計了消融試驗,以驗證其有效性,試驗結(jié)果如表1 所示。將DR-SPD 結(jié)構(gòu)中的SPD 卷積換為普通卷積即對應(yīng)表1 中的DR 結(jié)構(gòu)。可以看出DR 結(jié)構(gòu)對漿斑、三絲的提升效果最明顯,其AP值分別提升了2.14 個百分點和1.83 個百分點,但也導(dǎo)致臟漬、結(jié)頭的檢測精度有所下降。這說明設(shè)計的DRes單元雖然使模型對不規(guī)則疵點有了更為動態(tài)的視野,但同時也容易對點狀疵點產(chǎn)生誤判,而加入SPD 卷積后解決了上述問題,這也驗證了DRSPD 結(jié)構(gòu)的有效性。加入GAM 注意力機制后,臟漬、結(jié)頭和松經(jīng)的AP值分別提升了1.46 個百分點、1.23 個百分點和1.65 個百分點,反映出模型對于織物紋理的抗干擾能力增強,也能對分散性的疵點給予更多的關(guān)注度。在加入改進的特征融合網(wǎng)絡(luò)后,臟漬和結(jié)頭精度的提升最為明顯,而這兩種疵點的尺度相比于其他疵點類型都更小,這表明該網(wǎng)絡(luò)能更好地保留細節(jié)特征。模型對小目標疵點的檢測精度得到了有效提升。
表1 消融試驗結(jié)果
在目標檢測領(lǐng)域,其他主流算法也占據(jù)著相當重要的地位。為了更好地展示改進效果,將改進的YOLOv7 與其他算法進行對比試驗,結(jié)果如表2 所示。可以看出,F(xiàn)aster RCNN 在檢測速度上花費時間較長,不滿足對實時性的要求,而YOLOv5s 在實時性上表現(xiàn)良好但精度較低。改進的YOLOv7 模型雖然檢測速度有所下降,但其在滿足實時性要求的同時提升了檢測精度,在整體表現(xiàn)上相比其他模型更加優(yōu)秀。
表2 主流算法對比表
YOLOv7 模型改進前后檢測效果對比如圖12 所示??梢钥闯?,當疵點特征與背景相似或疵點尺寸較小時,改進YOLOv7 由漏檢、誤檢變?yōu)榭梢詼蚀_地檢測出其位置及大小,并給出更高的置信度;對于不規(guī)則形狀的疵點,改進YOLOv7模型的預(yù)測框長寬都會更加貼近疵點形狀,并通過多預(yù)測框的方式來精準表示各部分疵點。
圖12 檢測效果對比圖
為驗證本研究算法在實際工業(yè)場景中的有效性,在工廠現(xiàn)有平臺上搭建一個視覺采集模塊后,將改進模型部署到設(shè)備中進行實際測試。測試環(huán)境如圖13 所示。
圖13 測試環(huán)境
將130 個無疵點與65 個有疵點的織物作為一組測試對象,對該組對象進行20 次無序測試,試驗mAP值94.85%,檢測速度43 幀/s。由于檢測過程中受傳送帶、相機振動等環(huán)境因素的影響,導(dǎo)致mAP略有下降。同時,上位機在檢測時也消耗了系統(tǒng)資源,所以檢測速度下降到43 幀/s,但仍能較好地滿足實際生產(chǎn)需求。
對于因織物疵點尺寸小、形狀復(fù)雜而導(dǎo)致檢測精確率較低等問題,本研究在YOLOv7 的基礎(chǔ)上加入新設(shè)計的DR-SPD 結(jié)構(gòu),并在模型主干網(wǎng)絡(luò)與頭部的連接處添加GAM 注意力模塊;最后,通過加入3 條橫向跳躍路徑對特征融合網(wǎng)絡(luò)進行改進。試驗結(jié)果表明:改進后YOLOv7 模型相較于 原 始YOLOv7 模 型,mAP值 提 升 了3.97 個 百分點,其特征提取能力和抗干擾能力都得到增強,能聚焦于更為關(guān)鍵的圖像細節(jié),綜合性能也優(yōu)于其他主流算法。將改進YOLOv7 模型部署到車間設(shè)備上進行測試,其mAP值達到94.85%,檢測速度為43 幀/s,驗證了其在實際工業(yè)場景中的有效性。后續(xù)工作將研究如何使該模型更輕量化,以更大程度降低部署時對于硬件設(shè)備的要求。