石玉文 林富生 宋志峰 余聯(lián)慶
(1.武漢紡織大學(xué),湖北武漢,430200;2.三維紡織湖北省工程研究中心,湖北武漢,430200;3.湖北省數(shù)字化紡織裝備重點(diǎn)實(shí)驗(yàn)室,湖北武漢,430200)
目前,從織物疵點(diǎn)目標(biāo)檢測(cè)的實(shí)現(xiàn)技術(shù)來分,可分為傳統(tǒng)的機(jī)器視覺識(shí)別方法和深度學(xué)習(xí)兩大類。傳統(tǒng)的機(jī)器視覺疵點(diǎn)識(shí)別方法主要依賴于顏色或亮度、紋理等表層可辨特征,同時(shí)對(duì)于燈光或檢測(cè)背景要求苛刻,因此檢測(cè)局限性較大,算法性能存在諸多不穩(wěn)定因素,這就會(huì)導(dǎo)致算法的檢測(cè)準(zhǔn)確率低、小目標(biāo)漏檢等問題,同時(shí)對(duì)于不同背景、不同種類織物的泛化能力較弱。隨著工業(yè)智能化快速發(fā)展,利用人工智能技術(shù)[1-3]迅速準(zhǔn)確地完成對(duì)織物疵點(diǎn)的自動(dòng)識(shí)別,已經(jīng)成為智能裝配領(lǐng)域研究的熱點(diǎn)。
近年來,隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,上述問題得到一定程度的解決。羅俊麗等[4]提出將YOLOv5 的特征金字塔網(wǎng)絡(luò)模塊替換為雙向特征金字塔網(wǎng)絡(luò)來增強(qiáng)算法對(duì)不同尺度特征提取的泛化能力;蔡兆信等[5]提出改進(jìn)Faster RCNN 網(wǎng)絡(luò)的RPN 結(jié)構(gòu),融合多層不同尺度特征圖,增加了圖像細(xì)節(jié)提取的能力;黃漢林等[6]提出了以MobileNet 網(wǎng)絡(luò)結(jié)構(gòu)代替SSD 算法中的特征提取部分的方法,提高了SSD 算法的運(yùn)行效率;李楊等[7]提出了一種基于深度信念網(wǎng)絡(luò)的織物疵點(diǎn)檢測(cè)方法,用改進(jìn)的受限玻爾茲曼機(jī)模型對(duì)深度信念網(wǎng)絡(luò)進(jìn)行訓(xùn)練,完成模型識(shí)別參數(shù)的構(gòu)建,完成了在復(fù)雜環(huán)境下織物疵點(diǎn)檢測(cè)的任務(wù);胡越杰等[8]提出了用ResDCN 替代YOLO 網(wǎng)絡(luò)中的殘差單元來增強(qiáng)網(wǎng)絡(luò)模型的特征提取能力,使得YOLOv5 網(wǎng)絡(luò)的準(zhǔn)確率提高了4.99 個(gè)百分點(diǎn)。
盡管許多學(xué)者已經(jīng)提出了各種不同的織物疵點(diǎn)檢測(cè)方法,并取得了一定的成果,但仍存在兩個(gè)主要問題。首先,由于織物疵點(diǎn)的類型多樣并且分布不均勻,導(dǎo)致檢測(cè)難度增大;其次,織物疵點(diǎn)通常為小目標(biāo)且形狀多變,使得識(shí)別較為困難。本研究提出了一種改進(jìn)的YOLOv5 織物疵點(diǎn)檢測(cè)算法,即YOLOv5-Eff。在算法中引入了改進(jìn)的EfficientNet[9]模塊來替換原有的特征提取網(wǎng)絡(luò),同時(shí)結(jié)合了Swish 動(dòng)態(tài)激活函數(shù)來優(yōu)化模型,設(shè)計(jì)了ACmix 注意力模塊,使得網(wǎng)絡(luò)能夠捕獲更多疵點(diǎn)的特征信息以提高對(duì)小目標(biāo)疵點(diǎn)的敏感度。
在現(xiàn)有的目標(biāo)檢測(cè)算法中,YOLOv5 因其速度高和準(zhǔn)確率較高等特點(diǎn)而得到廣泛應(yīng)用。YOLOv5 目標(biāo)檢測(cè)模型如圖1 所示。在輸入端,采用了mosaic 數(shù)據(jù)增強(qiáng)方式,將包含目標(biāo)的4 張圖片拼接成1 張圖片。這樣新的圖片中包含了4 種具有相同背景的目標(biāo),大大豐富了被檢測(cè)物體的背景,加快了圖片的讀取速度,并且增強(qiáng)了網(wǎng)絡(luò)的魯棒性。在特征提取部分,引入了Focus 結(jié)構(gòu),將原始的512×512×3 輸入圖像切片后生成256×256×12 特征圖,在不丟失任何信息的情況下獲得了兩倍的下采樣特征圖。特征融合部分結(jié)合了路 徑 聚 合 網(wǎng) 絡(luò)(PAN)[10]和 特 征 金 字 塔 網(wǎng) 絡(luò)(FPN)[11]。FPN 網(wǎng)絡(luò)從頂部向下傳遞并與主干特征提取網(wǎng)絡(luò)的特征圖進(jìn)行融合,傳遞深層次的語義信息。PAN 網(wǎng)絡(luò)從底部向上傳遞目標(biāo)位置信息。這種方式更利于模型學(xué)習(xí)目標(biāo)特征,減少了底層特征信息的丟失,并增強(qiáng)了模型對(duì)小目標(biāo)的敏感度。
圖1 YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)
本研究采用兩種激活函數(shù),在保持原有YOLOv5 網(wǎng)絡(luò)Neck 層和Head 層SiLU 激活函數(shù)的基礎(chǔ)上引入改進(jìn)版Swish 激活函數(shù)。傳統(tǒng)的YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)使用的是SiLU 激活函數(shù),與RELU[12]激活函數(shù)類似,都屬于靜態(tài)函數(shù),對(duì)所有輸入數(shù)據(jù)都執(zhí)行相同操作,并產(chǎn)生大量的冗余數(shù)據(jù)。在輸入負(fù)值越大的情況下,其對(duì)結(jié)果的影響逐漸增加。為了避免負(fù)樣本對(duì)訓(xùn)練精度的過大影響,引入可學(xué)習(xí)參數(shù)β的Swish 激活函數(shù),如式(1)所示。
與LeakyReLU[13]激活函數(shù)相比,Swish 函數(shù)在負(fù)無窮方向上更加平滑,在保持有負(fù)樣本輸入的前提下,減弱了其對(duì)整個(gè)網(wǎng)絡(luò)的影響。這樣不僅允許信息更深入地傳播到網(wǎng)絡(luò)中,同時(shí)也提高了網(wǎng)絡(luò)的效率。
在執(zhí)行注意力機(jī)制時(shí),卷積注意力模塊優(yōu)先處理輸入與輸出之間的交互關(guān)系,而自注意力模塊則著重于輸入間的內(nèi)部關(guān)聯(lián)。本研究受CoAt-Net[14]網(wǎng)絡(luò)的啟發(fā),融合自注意力和卷積注意力的優(yōu)勢(shì),設(shè)計(jì)ACmix 注意力模塊,旨在提高網(wǎng)絡(luò)對(duì)微小目標(biāo)的敏感度。ACmix 注意力模塊如圖2所示。
圖2 ACmix 注意力模塊
ACmix 注意力模塊由卷積注意力和自注意力兩個(gè)模塊并行構(gòu)建,原理如下。先將H×W×C的特征通過3 個(gè)1×1×C的卷積進(jìn)行映射,分割為N個(gè)部分,得到3×N個(gè)尺寸為H×W×C/N的子特征。在上半部分(以K為內(nèi)核的卷積路徑),網(wǎng)絡(luò)如同傳統(tǒng)的卷積注意力模塊,從局部感受野中抽取信息,子特征通過3N×K2N的全連接層,對(duì)生成的特征進(jìn)行位移、融合和卷積處理,從而得到H×W×C/N的特征,共N組。而在下半部分(自注意路徑),網(wǎng)絡(luò)在全局信息的考量下,同時(shí)關(guān)注關(guān)鍵區(qū)域。3N個(gè)子特征對(duì)應(yīng)的3 個(gè)H×W×C/N尺寸的特征圖各自充當(dāng)查詢、鍵和值的功能,嚴(yán)格遵從傳統(tǒng)的多頭自注意力模型。通過位移、聚合和卷積處理后,得到H×W×C的特征。接著,兩條路徑的輸出經(jīng)過Concat 操作,其強(qiáng)度由兩個(gè)可學(xué)習(xí)的標(biāo)量控制,如公式(2)所示。
式中:Fout指代路徑的最終輸出;Fatt指代自注意力分支的輸出;Fconv代表卷積注意力分支的輸出;參數(shù)α和β的值均設(shè)為1。兩個(gè)分支的輸出在合并之后,全局特征與局部特征得到了平衡的考慮,從而增強(qiáng)網(wǎng)絡(luò)對(duì)微小目標(biāo)的識(shí)別能力。
YOLOv5 的特征抽取網(wǎng)絡(luò)主要基于CSPDarknet 結(jié)構(gòu),該框架在輸入圖像上進(jìn)行下采樣處理,這可能導(dǎo)致小目標(biāo)的信息遺失,因此對(duì)于小尺寸疵點(diǎn)的檢測(cè)YOLOv5 可能表現(xiàn)出一些局限性。此外,YOLOv5 的特征抽取網(wǎng)絡(luò)采用了深度卷積層設(shè)計(jì),使得感受野逐步擴(kuò)大。然而,這樣的擴(kuò)大感受野可能會(huì)使得目標(biāo)檢測(cè)算法對(duì)目標(biāo)的局部精細(xì)特征敏感性降低,特別是對(duì)于具有精細(xì)紋理特征的目標(biāo)。
為了解決這些問題,本研究在特征提取階段引入了優(yōu)化后的EfficientNet 網(wǎng)絡(luò)結(jié)構(gòu)作為YOLOv5 的檢測(cè)網(wǎng)絡(luò)。EfficientNet 的基礎(chǔ)卷積模塊稱為移動(dòng)倒置瓶頸卷積(MBConv)模塊,包含1×1 升維卷積層(Conv)、批量歸一化(BN)、隨機(jī)失活(Dropout)、深度卷積(DWConv)、1×1 降維卷積層(Conv)以及殘差連接等,結(jié)構(gòu)如圖3所示。
圖3 MBConv 結(jié)構(gòu)
本研究選用EfficientNet B1 進(jìn)行改進(jìn)作為特征提取網(wǎng)絡(luò),通過融入ACmix 注意力機(jī)制來彌補(bǔ)YOLOv5 在特征抽取細(xì)節(jié)方面的不足。假設(shè)輸入圖像的維度為H×W×C,首先,通過全局平均池化和全連接層將其轉(zhuǎn)換為1×1×C的形狀,然后將其與原始圖像進(jìn)行逐元素乘法,以賦予每個(gè)通道相應(yīng)的權(quán)重,因此通過嵌入ACmix 注意力機(jī)制,使得網(wǎng)絡(luò)可以了解到更多疵點(diǎn)的特征信息。此外,EfficientNet B1 網(wǎng) 絡(luò)的MBConv 模 塊 中 在兩個(gè)完整的連接層之間增加了Swish 激活函數(shù),以加快算法的收斂速度,改進(jìn)MBConv 結(jié)構(gòu)如圖4 所示。本研究改進(jìn)的YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖4 改進(jìn)MBConv 結(jié)構(gòu)
圖5 改進(jìn)的YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)
本研究樣本來自于阿里云天池?cái)?shù)據(jù)集和江蘇某紡織企業(yè),融合兩個(gè)數(shù)據(jù)集構(gòu)成一個(gè)包含1 780張540 pixel×450 pixel 彩色圖像的數(shù)據(jù)集。針對(duì)疵點(diǎn)數(shù)據(jù)量少的問題,本研究采取數(shù)據(jù)翻轉(zhuǎn)、數(shù)據(jù)旋轉(zhuǎn)、數(shù)據(jù)縮放和增加顏色4 種處理的方法對(duì)織物疵點(diǎn)數(shù)據(jù)集進(jìn)行擴(kuò)容處理,以增加樣本數(shù)量,擴(kuò)充后的數(shù)據(jù)集共7 120 張。在擴(kuò)充后根據(jù)疵點(diǎn)的長(zhǎng)度面積以及出現(xiàn)的頻率,將織物疵點(diǎn)分為2個(gè)大類6個(gè)小類,缺紗、斷紗、錯(cuò)紗為線類疵點(diǎn);污漬、磨花、結(jié)頭為點(diǎn)類疵點(diǎn)。本試驗(yàn)按照9∶1 劃分訓(xùn)練集和驗(yàn)證集。
本研究試驗(yàn)環(huán)境為64 位Win10 操作系統(tǒng),NVIDIA GeForce RTX3080 顯 卡,CPU 為Inter(R)Core(TM)i7-7700。編程語言為Python,深度學(xué)習(xí)框架為Pytorch。
為了保證模型訓(xùn)練的精度,防止訓(xùn)練過程中過擬合的現(xiàn)象發(fā)生,訓(xùn)練時(shí)采用YOLOv5 原始網(wǎng)絡(luò)提供的預(yù)訓(xùn)練權(quán)重來訓(xùn)練本研究網(wǎng)絡(luò),以加快網(wǎng)絡(luò)的收斂速度。在訓(xùn)練過程中采用標(biāo)簽平滑技術(shù),將整個(gè)訓(xùn)練過程分為兩個(gè)階段。第一階段采用凍結(jié)訓(xùn)練的方式,將學(xué)習(xí)率設(shè)置為0.001,批處理大小為6,并進(jìn)行10 個(gè)epoch 的訓(xùn)練。第二階段進(jìn)行解凍訓(xùn)練,使用了SGD(隨機(jī)梯度下降)[15]方法,以防止模型陷入局部最優(yōu)解。此外采用了余弦學(xué)習(xí)率衰減方法,將最大學(xué)習(xí)率改為0.01,最小學(xué)習(xí)率改為0.000 1,批處理大小設(shè)置為3。
為量化改進(jìn)YOLOv5 模型對(duì)小目標(biāo)疵點(diǎn)和復(fù)雜背景下檢測(cè)的優(yōu)越性,本研究采用3 個(gè)常用的目標(biāo)檢測(cè)評(píng)價(jià)指標(biāo):精確率(P)、召回率(R)和平均精度均值(mAP)。
選 用EfficientNet B1、ACmix、Swish 方法 分別作為獨(dú)立的變量模塊,在相同的環(huán)境及訓(xùn)練技巧的前提下,研究各個(gè)模塊在YOLOv5 網(wǎng)絡(luò)的改進(jìn)效果。表1 為消融試驗(yàn)結(jié)果。
表1 消融試驗(yàn)
由表1 可看出,選用EfficientNet B1、ACmix、Swish 單個(gè)模塊均能達(dá)到預(yù)期的效果,將EfficientNet B1 作為檢測(cè)頭后模型的精確率P、召回率R、平均精度均值mAP相比原始YOLOv5 算法分別提升了1.56 個(gè)百分點(diǎn)、1.04 個(gè)百分點(diǎn)、0.57個(gè)百分點(diǎn);加入ACmix 后模型的P、R、mAP相比原始YOLOv5 算法分別提升了2.43 個(gè)百分點(diǎn)、0.86 個(gè)百分點(diǎn)、0.66 個(gè)百分點(diǎn),說明加入注意力機(jī)制后,模型加強(qiáng)了疵點(diǎn)目標(biāo)區(qū)域檢測(cè),增加了模型對(duì)疵點(diǎn)目標(biāo)的準(zhǔn)確率。加入Swish 激活函數(shù)后mAP相比原始YOLOv5 提升了2.64 個(gè)百分點(diǎn),也表明Swish 在引入了較少的參數(shù)情況下有效地提升了模型性能。
為驗(yàn)證本研究算法的實(shí)用性和先進(jìn)性,在同一試驗(yàn)環(huán)境下對(duì)比了YOLOv5、SSD、Faster RCNN和EfficientNet B1 4 種模型,結(jié)果如表2 所示。
表2 不同模型的試驗(yàn)結(jié)果對(duì)比
由表2 可知,與EfficientNet B1、SSD 算法相比,本研究算法mAP值分別提高了5.08 個(gè)百分點(diǎn)、6.81 個(gè)百分點(diǎn)。Faster RCNN、YOLOv5 網(wǎng)絡(luò)雖然P、R均達(dá)到了90%以上,但和本研究算法相比仍有一定差距。綜合衡量不同的檢測(cè)算法,本研究算法在無明顯影響檢測(cè)速度的前提下,具有較大的優(yōu)勢(shì)圖6 展示了5 種算法在同一環(huán)境下分別進(jìn)行疵點(diǎn)識(shí)別的部分檢測(cè)結(jié)果??梢钥闯觯珽fficient-Net B1 網(wǎng)絡(luò)雖可以檢測(cè)到較小疵點(diǎn)以及多個(gè)疵點(diǎn)目標(biāo),但對(duì)于疵點(diǎn)區(qū)域的定位精度不高,容易造成較高的錯(cuò)誤率。SSD 網(wǎng)絡(luò)對(duì)于檢測(cè)環(huán)境要求較高,容易受到燈光影響,所以對(duì)于線類疵點(diǎn)和小疵點(diǎn)這種與圖片背景對(duì)比度不高的疵點(diǎn)容易漏檢。Faster RCNN 網(wǎng)絡(luò)在檢測(cè)單一疵點(diǎn)時(shí)可表現(xiàn)出良好的檢測(cè)效果,但受錨框固定的參數(shù)影響不能完全適應(yīng)多個(gè)疵點(diǎn)目標(biāo),降低了模型檢測(cè)效果。YOLOv5 網(wǎng)絡(luò)算法對(duì)于小疵點(diǎn)目標(biāo)不夠敏感,并且在多個(gè)疵點(diǎn)同時(shí)出現(xiàn)時(shí)定位不準(zhǔn)。本研究算法在織物疵點(diǎn)檢測(cè)方面有顯著效果,特別是在疵點(diǎn)分類和檢測(cè)準(zhǔn)確率方面,相比于原始YOLOv5 算法,雖犧牲了1.6 ms 的檢測(cè)時(shí)間,但解決了網(wǎng)絡(luò)對(duì)小疵點(diǎn)不敏感、多目標(biāo)定位不準(zhǔn)的問題,滿足了工業(yè)要求。
圖6 模型檢測(cè)對(duì)比試驗(yàn)
本研究提出了一種基于改進(jìn)后的YOLOv5織物疵點(diǎn)檢測(cè)算法,通過將原網(wǎng)絡(luò)的檢測(cè)頭替換為EfficientNet B1 來增強(qiáng)特征提取能力;將注意力機(jī)制ACmix 模型嵌入YOLOv5 模型中,顯著提高了模型在多種場(chǎng)景下的疵點(diǎn)檢測(cè)性能;使用Si-LU 和Swish 兩種激活函數(shù),使得預(yù)測(cè)框回歸更精準(zhǔn),并提高網(wǎng)絡(luò)的魯棒性;在疵點(diǎn)目標(biāo)檢測(cè)這一單一場(chǎng)景下,過濾了分類損失,提高了網(wǎng)絡(luò)的抗干擾能力;為了降低過擬合風(fēng)險(xiǎn),采用了幾何變換等數(shù)據(jù)增強(qiáng)技術(shù);采用了余弦學(xué)習(xí)率衰減法和隨機(jī)梯度下降法,以防止模型陷入局部最優(yōu)解并確保模型精確收斂。試驗(yàn)結(jié)果表明:本研究模型在對(duì)小目標(biāo)的提取能力和精確率方面取得了顯著提升。本研究算法的P、R和mAP值分別為96.47%、97.18%和81.33%,相比于原始YOLOv5,本研究算法的P、R和mAP分別提升了4.33 個(gè)百分點(diǎn)、2.11 個(gè)百分點(diǎn)和4.32 個(gè)百分點(diǎn),可滿足實(shí)際部署中小目標(biāo)和檢測(cè)的實(shí)時(shí)性等需求。