丁 瓊,祝雙武,田 樂,王 茹,余靈婕
(西安工程大學(xué)紡織科學(xué)與工程學(xué)院,西安 710048)
在紡織工業(yè)中,織物缺陷是產(chǎn)品外觀質(zhì)量的主要考慮因素之一??椢锶毕菘赡軐?dǎo)致產(chǎn)品降低價值,對企業(yè)造成嚴(yán)重經(jīng)濟(jì)損失。因此,實(shí)現(xiàn)自動檢測織物疵點(diǎn)已成為該領(lǐng)域的重要研究方向。
傳統(tǒng)疵點(diǎn)檢測方法通常涉及圖像分割、邊緣提取、特征提取等步驟,適用于單一背景、平整布面和明顯疵點(diǎn)的情況。然而,在實(shí)際生產(chǎn)中,對各種織物進(jìn)行準(zhǔn)確和快速的疵點(diǎn)檢測依然具有挑戰(zhàn)性。隨著科技的進(jìn)步,各行各業(yè)越來越傾向于智能化和無人化。在過去二十年中,研究領(lǐng)域提出了多種基于計(jì)算機(jī)視覺和深度學(xué)習(xí)的解決方案,以克服傳統(tǒng)方法的缺陷。近年來深度學(xué)習(xí)的方法已經(jīng)成為研究人員的主要研究關(guān)注點(diǎn)[1-2]。一些研究者設(shè)計(jì)了關(guān)于自編碼器[3]、長短期記憶網(wǎng)絡(luò)[4]、深層卷積神經(jīng)網(wǎng)絡(luò)[5]、UNet[6]、弱監(jiān)督淺層網(wǎng)絡(luò)[7]等深度學(xué)習(xí)方法,采用不同策略和技術(shù),具有各自的優(yōu)點(diǎn)和適用性。文獻(xiàn)[8-10]提出了改進(jìn)RCNN 的不同算法,其中陳夢琦等[11]將卷積塊注意力(CBAM)引入Faster R-CNN,將疵點(diǎn)檢測精度提高至78.81%。文獻(xiàn)[11-14]分別改進(jìn)了YOLOv3、YOLOv4、YOLOv5,獲得了不同程度的性能提升。Yue等[15]在YOLOv4 中引入注意力模塊,并提出CEIoU 損失,增強(qiáng)了小疵點(diǎn)檢測的準(zhǔn)確性。Transformer[10]利用四叉樹注意力機(jī)制,更好地捕捉全局特征,優(yōu)化了織物圖像重構(gòu)。這種方法減輕了缺陷樣本采集和手動標(biāo)記的困難。
綜上所述,許多研究人員已經(jīng)提出了各種深度學(xué)習(xí)算法,相較于傳統(tǒng)方法有了巨大的進(jìn)步。然而,由于織物缺陷的多樣性,差異和分布不均勻性,如何實(shí)現(xiàn)檢測速度和準(zhǔn)確性之間的平衡仍然是疵點(diǎn)檢測領(lǐng)域的主要挑戰(zhàn)。而本文提出的模型在實(shí)時性和準(zhǔn)確性方面表現(xiàn)出色,能夠迅速識別多種織物缺陷。為了提高特征提取能力,引入了一種LSKBlock(large selective kernal block)選擇性注意力機(jī)制。相較于其他注意力機(jī)制,LSKBlock 更具自適應(yīng)性,具有更廣泛的感受野,同時能夠保持較高的計(jì)算效率。此外,引入可變形卷積,增強(qiáng)變換建模能力。最后,采用了輕量型網(wǎng)絡(luò)設(shè)計(jì)范式Slimneck,以降低網(wǎng)絡(luò)參數(shù)數(shù)量。在TILDA數(shù)據(jù)庫上對這一方法進(jìn)行了評估,結(jié)果表明它在檢測和識別織物缺陷方面表現(xiàn)出了出色的能力。同時,我們還在收集的織物缺陷圖像上進(jìn)行了測試,充分證明了該算法的泛化能力,取得了良好的效果。
YOLO 系列算法是單階段檢測算法,其優(yōu)勢是把定位和分類兩個步驟合并在一起,相比雙階段大大減少了計(jì)算量、提高了檢測效率,最新的YOLOv8模型檢測速度非???,但其精度略有降低。因此本文采用融合注意力機(jī)制、引入可變形卷積和輕量化結(jié)構(gòu)的方法,以期達(dá)到小幅度降低速度、提升精度,滿足實(shí)際生產(chǎn)中疵點(diǎn)檢測任務(wù)的高精度和實(shí)時性要求。
LSKBlock[16]結(jié)構(gòu)如圖1 所示,由兩個殘差子塊組成:大核選擇(LK Selection)子塊和前饋網(wǎng)絡(luò)(FFN)子塊。LK 選擇子塊根據(jù)需要動態(tài)地調(diào)整網(wǎng)絡(luò)的感受野,前饋網(wǎng)絡(luò)子塊則用于通道混合和特征細(xì)化。
圖1 LSK塊結(jié)構(gòu)圖
為了使模型更關(guān)注空間中的重點(diǎn)背景信息,選擇性地用多尺度大型卷積核提取空間特征。首先,將來自于不同感受野卷積核的特征進(jìn)行通道拼接(channel concatenation):
然后進(jìn)行空間適應(yīng)池化,平均池化Pavg( )· 和最大池化Pmax( )· 保留重要空間信息,得到SAavg和SAmax特征:
交互不同空間池化特征SAavg和SAmax的信息,經(jīng)過卷積層F2→N(·),將兩通道的池化特征映射為N個空間注意力特征:
之后,再用Sigmoid 激活每一個,得到解耦的大卷積核所對應(yīng)的獨(dú)立空間選擇掩膜:
最后將輸入特征X與注意力特征S進(jìn)行逐元素點(diǎn)乘,獲得LSK module的最終輸出,即:
現(xiàn)有的卷積神經(jīng)網(wǎng)絡(luò)所能應(yīng)對的幾何變換是有限的,為了增強(qiáng)變換建模能力,如圖2 所示,通過引入少量參數(shù)用于位移學(xué)習(xí),可以容易地替換掉現(xiàn)有CNNs中對應(yīng)的模塊,并且可通過標(biāo)準(zhǔn)的反向傳播輕松進(jìn)行網(wǎng)絡(luò)的端到端學(xué)習(xí),最終所得網(wǎng)絡(luò)具有內(nèi)在的轉(zhuǎn)換參數(shù),這些參數(shù)是直接從數(shù)據(jù)中學(xué)到的。
圖2 3*3可變形卷積
本文引入了Slimneck 設(shè)計(jì)范式,用于在降低網(wǎng)絡(luò)計(jì)算復(fù)雜度和推理時間的同時,保持模型準(zhǔn)確性。Slimneck 中的GSConv 降低了深度可分離卷積對模型性能的負(fù)面影響,首先對輸入特征圖進(jìn)行下采樣,然后深度卷積對其進(jìn)行處理,并Concat 兩個Conv 的結(jié)果;最后shuffle 操作重洗數(shù)據(jù),增強(qiáng)網(wǎng)絡(luò)泛化能力。同時,本文在GSConv 的基礎(chǔ)上繼續(xù)引入跨級網(wǎng)絡(luò)模塊VoV-GSCSP,使用該模塊代替Neck 中的CSP 模塊,在降低網(wǎng)絡(luò)結(jié)構(gòu)和計(jì)算復(fù)雜性的同時,保持足夠的精度。如圖3所示。
圖3 VoV-GSCSP模塊
圖4是改進(jìn)后的YOLOv8 模型。所作改進(jìn)如下,在主干特征提取的尾部即SPPF 層前后第9層和第11 層融合了選擇性注意力機(jī)制LSKBlock,該機(jī)制可以使網(wǎng)絡(luò)更關(guān)注小目標(biāo)的細(xì)節(jié)信息,通過自適應(yīng)地學(xué)習(xí)這些細(xì)節(jié)特征,并與其他特征進(jìn)行有效融合,從而改善織物中小疵點(diǎn)檢測難的問題,提高網(wǎng)絡(luò)整體的檢測準(zhǔn)確率;其次將部分卷積層替換為可變形卷積,將C2f結(jié)構(gòu)與DCN 結(jié)合得到C2f_DCN 卷積層,使網(wǎng)絡(luò)更容易按照疵點(diǎn)目標(biāo)形狀提取特征,提升網(wǎng)絡(luò)性能;最后,在模型頸部引入輕量化范式Slimneck,原始的C2f 模塊由VoV-GSCSP 代替,同時將主干部分中第5 層和第7 層的普通Conv 改進(jìn)為提取特征更高效的GSConv,使Concat 后的特征更豐富,這種設(shè)計(jì)方式能最大程度地提高精度,并且在保持網(wǎng)絡(luò)精度的同時適量減少網(wǎng)絡(luò)的參數(shù)量。
圖4 改進(jìn)后的YOLOv8n
本文采用兩個織物疵點(diǎn)圖像數(shù)據(jù)集。一個是常用的公共數(shù)據(jù)庫TILDA,該數(shù)據(jù)庫包含八種具有代表性的織物類別。根據(jù)紡織品圖譜分析,定義了七個錯誤類別和一個正確類別。與文獻(xiàn)[17]類似,選擇了300張織物圖像,將其分為正常、孔洞、污漬、劃痕、攜帶和結(jié)頭六類,并依次分別標(biāo)記為e0~e5。其中每個類由50 個織物圖像組成,將每個圖像的大小調(diào)整為256×256像素,在實(shí)驗(yàn)中,將整個數(shù)據(jù)庫的70%作為訓(xùn)練集,剩下的30%作為測試集。圖5 展示了六類樣本及其標(biāo)簽。
圖5 TILDA數(shù)據(jù)庫中的樣本
另一個數(shù)據(jù)集中包含有阿里天池紡織品缺陷圖像和實(shí)驗(yàn)室內(nèi)拍攝的疵點(diǎn)圖像[18-23],原始圖像尺寸不一,經(jīng)過處理后將所有圖像調(diào)整為640×640像素,且對圖像進(jìn)行隨機(jī)旋轉(zhuǎn)變化、色彩變換、亮度調(diào)節(jié)及自適應(yīng)對比增強(qiáng)等圖像處理,以此增強(qiáng)數(shù)據(jù)集,提高網(wǎng)絡(luò)的泛化能力。
經(jīng)過預(yù)處理后的圖片共5453張,包括破洞、跳花、污漬及長條狀的紗線缺陷四種疵點(diǎn)類型,其中將斷經(jīng)、斷緯、缺經(jīng)、缺緯和并緯五種長條狀的紗線缺陷劃分為一類疵點(diǎn)。將四種疵點(diǎn)分別標(biāo)記為e1~e4,圖6展示了四種類型的疵點(diǎn)圖像。
圖6 疵點(diǎn)數(shù)據(jù)集中的部分樣本
數(shù)據(jù)集中包含有6163 個疵點(diǎn)目標(biāo),其中包含跳花類疵點(diǎn)1688 個、破洞類疵點(diǎn)1532 個、污漬疵點(diǎn)1366 個和長條狀的紗線缺陷疵點(diǎn)1577個。圖7(a)顯示了四種疵點(diǎn)目標(biāo)框的中心位置分布,揭示了這些疵點(diǎn)目標(biāo)框主要分布在圖像的上下中心區(qū)域,呈現(xiàn)相對均勻的分布特征。圖7(b)則呈現(xiàn)了疵點(diǎn)目標(biāo)的各種形狀和尺寸分布,表明數(shù)據(jù)集中包含許多小型目標(biāo)以及極端長寬比的目標(biāo)。
圖7 疵點(diǎn)分布狀況
圖8 TILDA檢測效果圖
本文算法主要采用精度(Precision,P)、召回率(Recall,R)和平均精度均值(mean Average Precision,mAP)作為評估標(biāo)準(zhǔn),具體計(jì)算公式如下:
式中:TP表示成功預(yù)測為正類的部分,F(xiàn)P表示誤報為正類的部分,F(xiàn)N代表了被錯誤預(yù)測為負(fù)類的部分,即漏檢的情況。mAP代表平均精度的均值,它是一種衡量算法多類別檢測的綜合性能度量。AP由精確率-召回率曲線下的面積計(jì)算得到,mAP則是各個類別AP值的平均。
式中:k表示類別的數(shù)量。
網(wǎng)絡(luò)運(yùn)行基于PyTorch 1.11.0 的深度學(xué)習(xí)平臺,使用NVIDIA GeForce RTX 3090 加速計(jì)算,顯存為24 GB,CUDA 版本為11.3,編譯語言Python3.8。同時使用AdamW 優(yōu)化器和指定的學(xué)習(xí)率來訓(xùn)練模型,初始學(xué)習(xí)率為0.001,訓(xùn)練批次設(shè)置為16,測試批次設(shè)置為1,按比例將數(shù)據(jù)集劃分為訓(xùn)練集(70%)和測試集(30%),兩個數(shù)據(jù)集分別訓(xùn)練300、100 epochs。
本文設(shè)計(jì)了三組實(shí)驗(yàn),首先對LSKBlock、MHSA 和Biformer 這三種注意力機(jī)制進(jìn)行對比分析,以選擇最適合融入YOLOv8 的注意力機(jī)制。其次在公共數(shù)據(jù)集TILDA 上進(jìn)行消融實(shí)驗(yàn),以驗(yàn)證不同方法的改進(jìn)效果。最后在織物疵點(diǎn)數(shù)據(jù)集上進(jìn)行不同算法的性能比較,驗(yàn)證本文算法的有效性與先進(jìn)性。
2.4.1 注意力機(jī)制對比
在YOLOv8n 模型的相同位置分別引入三種注意力機(jī)制LSKBlock、MHSA 和Biformer,進(jìn)行了網(wǎng)絡(luò)訓(xùn)練,并在相同配置下使用測試集進(jìn)行性能評估。表1 展示了測試結(jié)果,明顯可見,LSKBlock 注意力機(jī)制在提升網(wǎng)絡(luò)性能方面表現(xiàn)出色,這進(jìn)一步證實(shí)了它的高效性和先進(jìn)性。
表1 不同注意力機(jī)制的表現(xiàn)對比(%)
2.4.2 消融實(shí)驗(yàn)
在公共數(shù)據(jù)集TILDA 上進(jìn)行消融實(shí)驗(yàn),以驗(yàn)證不同方法的改進(jìn)效果,包括融和注意力機(jī)制、可變形卷積的引入以及模型輕量化。如表2所示,改進(jìn)1 引入了LSKBlock,雖然精確率有所下降,但召回率提高至70.3%,mAP 提高至84.9%,說明模型能夠識別更多的正例。由于在原模型中直接加入了兩層注意力層導(dǎo)致模型深度增加,所以參數(shù)量較原模型略微增加;改進(jìn)2只引入了Slimneck,可以看到模型的參數(shù)量有很大幅度減少,相對較輕,而且性能上也有所提高,召回率提高了7.1個百分點(diǎn),mAP 提升到85.9%,同時保持了與原模型相同的檢測速度:2.3 ms;改進(jìn)3和4比較了在卷積層C2f_DCN提取特征的情況下分別引入Slimneck與LSKBlock的模型性能,兩者檢測性能都有提升,其中改進(jìn)4的檢測精度更高,但檢測速度也更慢,而改進(jìn)3中引入Slimneck模塊降低了計(jì)算復(fù)雜度和參數(shù)量,進(jìn)而節(jié)省了計(jì)算資源;改進(jìn)5同時引入了LSKBlock、Slimneck和C2f_DCN,此時模型性能最優(yōu),精確率與召回率均有提升,mAP 較原模型提高了4.1個百分點(diǎn)。同時參數(shù)量比改進(jìn)4 中沒有Slimneck結(jié)構(gòu)的模型也有所降低。
表2 不同改進(jìn)方法的實(shí)驗(yàn)效果
綜上所述,不同的改進(jìn)方法在性能和模型復(fù)雜度之間存在權(quán)衡。改進(jìn)5 在性能上表現(xiàn)最佳,參數(shù)量較原模型增加不多,檢測精度提升最大,雖然檢測速度略微變慢,但由于YOLOv8模型速度非??欤赃@種幅度的減速并不影響實(shí)際生產(chǎn)中的檢測速度。
2.4.3 不同織物疵點(diǎn)檢測算法比較
在織物疵點(diǎn)數(shù)據(jù)集上驗(yàn)證本文算法的有效性與先進(jìn)性。從表3 可以看出,改進(jìn)的YOLOv8n,即本文算法可以準(zhǔn)確檢測數(shù)據(jù)集中的四種疵點(diǎn),其中跳花檢測精度可達(dá)97.6%、破洞檢測精度為95.2%、污漬及長條狀的紗線缺陷檢測精度為88.5%和89.4%,而且相比原YOLOV8n 算法,跳花、污漬、紗線缺陷的AP 值均有提高。平均精度均值的提高說明模型識別正樣本的能力總體得到提升。此外,跳花、破洞、污漬、紗線缺陷的識別準(zhǔn)確率分別提高了1.2、1.6、2.6 和2.0個百分點(diǎn)。
表3 算法在織物疵點(diǎn)數(shù)據(jù)集上的改進(jìn)效果(%)
為證明改進(jìn)算法的先進(jìn)性,本文將改進(jìn)的YOLOv8n 算法與一些主流目標(biāo)檢測算法及改進(jìn)的織物疵點(diǎn)檢測網(wǎng)絡(luò)模型[10]進(jìn)行了mAP、權(quán)重以及檢測效率方面的對比,結(jié)果見表4。經(jīng)過改進(jìn)的YOLOv8n的mAP值達(dá)到了92.7%,且2.5 ms就可以檢測一張疵點(diǎn)圖像(640×640),對比其它主流網(wǎng)絡(luò)有很大提升,較原模型的mAP值增加了4個百分點(diǎn)。整體而言,本文改進(jìn)的YOLOv8n 網(wǎng)絡(luò)相比主流的目標(biāo)檢測模性更有優(yōu)越性。
表4 織物疵點(diǎn)數(shù)據(jù)集中不同織物疵點(diǎn)檢測算法的比較
鑒于織物缺陷檢測在紡織工業(yè)中的重要作用,提出了一種基于YOLOv8的織物缺陷自動檢測方法。該方法通過引入注意力機(jī)制、可變形卷積以及輕量化設(shè)計(jì)范式提高模型精度以獲得更好的檢測性能。在公共數(shù)據(jù)庫和收集的織物圖像上進(jìn)行算法性能評估。幾種改進(jìn)方法在公共數(shù)據(jù)集和織物疵點(diǎn)數(shù)據(jù)集上都有不同程度的提升效果,在NVIDIA RTX 3090上測試,TILDA數(shù)據(jù)集中平均單張疵點(diǎn)圖像檢測速度可達(dá)2.8 ms,mAP 從84.5%提升到88.6%;織物疵點(diǎn)數(shù)據(jù)集中平均單張疵點(diǎn)圖像檢測速度可達(dá)2.5 ms,mAP從88.7%提升到92.7%。同時與其他主流方法的比較表明,該方法的檢測精度和速度都明顯高于常見目標(biāo)檢測網(wǎng)絡(luò),滿足實(shí)際生產(chǎn)中紡織品缺陷的自動檢測任務(wù)。