徐天倫,李波,胡文杰,姚為
(中南民族大學(xué) 計算機科學(xué)學(xué)院,武漢 430074)
在棉布生產(chǎn)工業(yè)中,缺陷檢測是棉布產(chǎn)品質(zhì)量控制的重要組成部分,旨在及時有效地檢測出有缺陷區(qū)域的織物產(chǎn)品以減少由這些劣質(zhì)產(chǎn)品引起的額外經(jīng)濟損失.近年來,基于機器視覺方法的棉布瑕疵檢測也逐步在企業(yè)得到應(yīng)用[1].
1980 年以來,在織物缺陷檢測領(lǐng)域已經(jīng)有了很多研究成果.傳統(tǒng)的棉布瑕疵檢測方法分別為頻譜法(小波變換[2]、Gabor 變換[3])、統(tǒng)計法(數(shù)學(xué)形態(tài)學(xué)法[4]、直方圖統(tǒng)計法[5])、模型法(隱馬爾科夫模型[6])等.基于Gabor 濾波的織物缺陷檢測方法主要使用Gabor 濾波器提取圖像的語義特征[7].采用數(shù)學(xué)形態(tài)學(xué)方法增強圖像中的缺陷區(qū)域.這些傳統(tǒng)的缺陷檢測方法可以在某些特定的織物產(chǎn)品(無圖案或規(guī)則圖案的背景)上獲得良好的效果,然而大多需要基于預(yù)定義的特征或手工特征,包括統(tǒng)計特征、結(jié)構(gòu)特征和圖像的光譜特征[8].這意味著模型參數(shù)的配置需要一些先驗知識或針對特定問題的研究.當(dāng)具有新設(shè)計模式的織物產(chǎn)品出現(xiàn)時,必須修改甚至重新設(shè)計這些檢測方法.
隨著深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)和圖形處理單元(GPU)計算能力的發(fā)展[9],許多研究人員越來越重視基于CNN 等深度學(xué)習(xí)方法的目標(biāo)檢測模型[10],如Fast RCNN[11]、Faster RCNN[12]等兩階段檢測器模型框架,這類模型首先生成一些Proposal,然后對它們進(jìn)行分類,能實現(xiàn)較好的檢測效果,但導(dǎo)致步驟繁瑣,檢測速度較慢.一階段檢測器SSD[13]、YOLO 等模型框架省去Proposal 生成過程[14],輸入整張圖像后直接在輸出層回歸出目標(biāo)位置和類別,從而得到較快的檢測速度.基于深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)模型的缺陷檢測方法在速度、精度和適應(yīng)性上都有了較大的提升,成為了目前最為主流的研究方向.
為了進(jìn)一步提高棉布生產(chǎn)過程中瑕疵檢測算法的精度,本文結(jié)合通道注意力機制和高效的EfficientDet 目標(biāo)檢測模型[15]提出了一種基于CAEfficientDet 的棉布瑕疵檢測方法,改進(jìn)了BiFPN 特征融合,增加了不同層級的特征融合,提高了多尺度特征融合的效率.由于在工業(yè)生產(chǎn)中棉布瑕疵的樣本非常少,基于CA-EfficientDet 的棉布瑕疵檢測方法采用了數(shù)據(jù)增強的策略,在小目標(biāo)和低對比度樣本的條件下,瑕疵樣本檢測的精確率和速度都優(yōu)于目前使用的檢測方法.
EfficientDet 是谷歌在2020 年提出的目標(biāo)檢測模型,EfficientNet作為主干特征提取網(wǎng)絡(luò)[16],對于不同設(shè)備和計算資源的限制,分別包含了D0~D7 總共8個版本.EfficientDet提出了一種加權(quán)雙向特征金字塔網(wǎng)絡(luò)(BiFPN),允許簡單快速的多尺度特征融合;還提出了一種復(fù)合縮放方法,同時均勻地縮放所有骨干網(wǎng)絡(luò)的分辨率、深度和寬度.EfficientDet-D0有3層BiFPN堆疊,算法模型如圖1所示[15].
圖1 EfficientDet-D0網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of EfficientDet-D0
EfficientDet 提出了一種新的縮放方法,使用復(fù)合系數(shù)φ均勻地縮放網(wǎng)絡(luò)深度、寬度和分辨率,該方法的公式如(1)~(3)式:
其中,α、β、γ是可以通過小網(wǎng)格搜索確定的常數(shù),φ是一個用戶指定的系數(shù),可用于模型縮放控制資源分配,而α、β、γ分別指定如何將這些額外資源分配給網(wǎng)絡(luò)深度、寬度和分辨率.
EfficientDet 提出了加權(quán)雙向特征金字塔網(wǎng)絡(luò)BiFPN(Weighted Bi-Directional Feature Pyramid Network)使用了以下幾種優(yōu)化方法:(1)刪除只有一條輸入邊的節(jié)點;(2)在同一級別的輸入節(jié)點到輸出節(jié)點添加額外的邊;(3)擁有自頂向下和自底向上兩條融合特征路徑.
為了解決不同的輸入特征處于不同的分辨率貢獻(xiàn)輸出不均的問題,為每個輸入添加額外的權(quán)重,讓網(wǎng)絡(luò)了解每個輸入功能的重要性,使用了快速歸一化特征融合方法,O是特征融合的結(jié)果,公式如下:
其中,wi和wj是可學(xué)習(xí)的權(quán)重,Ii是向量,為避免數(shù)值不穩(wěn)定性ε取值0.0001.快速融合方法與基于Softmax 的融合方法具有非常相似的學(xué)習(xí)行為和準(zhǔn)確性,其中wi≥0,再通過Relu之后來確保數(shù)值的穩(wěn)定,融合特征在第6層的情況公式如下:
EfficientNet 是EfficientDet 主干特征提取網(wǎng)絡(luò),EfficientNet-B0的網(wǎng)絡(luò)框架(B1-B7是在B0的基礎(chǔ)上修改Resolution、Channels 以及Layers)總共分成了9個Stage.第一個Stage 是一個卷積核大小為3×3、步長為2 的普通卷積層(包含BN 和激活函數(shù)Swish).Stage2~Stage8 都 是 在 重 復(fù) 堆 疊MBConv 結(jié) 構(gòu)(Layers 表示該Stage 重復(fù)MBConv 結(jié)構(gòu)多少次).Stage9 由一個普通的1×1 的卷積層(包含BN 和激活函數(shù)Swish)、一個平均池化層和一個全連接層組成.每個MBConv 有值為1或6的倍率因子n,即MBConv中第一個1×1 的卷積層會將輸入特征矩陣的Channels 擴 充 為n倍,k3×3 或k5×5 為MBConv 中Depthwise Conv 所采用的卷積核大小.Channels 表示通過該Stage后輸出特征矩陣通道.
注意力機制在特征提取時關(guān)注重要的信息,SE注意力[17]對模型性能的提升具有顯著效果,但通常會忽略位置信息,而位置信息對于生成空間選擇性attention maps 是非常重要.與通過二維全局池化將特征張量轉(zhuǎn)換為單個特征向量的通道注意力不同,本文使用CA 注意力模塊[18],將通道注意力分解為兩個一維特征編碼過程,分別沿兩個空間方向聚合特征,高度和寬度的通道輸出分別為:
其中,H和W分別為垂直和水平方向上的坐標(biāo),xc為通道特征映射.這樣可以沿一個空間方向捕獲遠(yuǎn)程依賴關(guān)系,同時可以沿另一空間方向保留精確的位置信息;然后,將生成的特征圖分別編碼為一對方向感知和位置敏感的attention maps,可以將其互補地應(yīng)用于輸入特征圖,以增強關(guān)注對象的表示.EfficientNet 使用的MBConv 結(jié)構(gòu)主要由一個1×1 的普通卷積(升維作用,包含BN 和Swish)、一個k×k的Depthwise Conv 卷積(包含BN 和Swish)、一個1×1 的普通卷積(降維作用,包含BN)、一個Dropout 層構(gòu)成.為了讓模型忽略無關(guān)信息而關(guān)注重要信息,將通道中嵌入位置信息的注意力模塊融合到MBConv結(jié)構(gòu)中,提升模型的檢測能力,改進(jìn)的MBConv 網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 融合CA模塊的MBConv網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 MBConv network structure with CA module
EfficientDet 使用的BiFPN(高效的雙向跨尺度連接和加權(quán)特征融合),使用雙向的特征融合路徑提高了高層級和低層級之間特征信息的傳輸效率,加入跳躍連接融合更多特征信息,刪除只有一個輸入的節(jié)點以簡化網(wǎng)絡(luò).但BiFPN 不同層級之間也存在豐富的特征信息,為了更加充分地利用不同層級的語義和位置信息,本文在BiFPN 的基礎(chǔ)上進(jìn)行改進(jìn),增加了不同層級之間的特征融合,提升網(wǎng)絡(luò)性能,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,紅色線條為加入的特征融合路徑.改進(jìn)的BiFPN 特征融合在第6 層的公式如下
圖3 改進(jìn)的BiFPN網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of improved BiFPN
式中的變量見上文變量含義說明.
實驗數(shù)據(jù)集來自于企業(yè)提供的4360 張棉布瑕疵樣本,瑕疵樣本類型可分為點狀瑕疵point、劃痕狀瑕疵stride、線條狀瑕疵line 等類型,如圖4 所示.由于在高速攝像機采集棉布瑕疵樣本的過程中,出現(xiàn)瑕疵樣本的情況較少,且有大量重復(fù)和相似的瑕疵樣本,實際有效瑕疵樣本為94 張,其中點狀瑕疵為65張,劃痕狀瑕疵為6張,線條狀瑕疵為23張.實驗中對樣本集進(jìn)行了增強,每輪訓(xùn)練前采取將原圖翻轉(zhuǎn)、旋轉(zhuǎn)、改變亮度、改變尺寸、加入噪聲等方式隨機增強,訓(xùn)練1000 輪,增廣后的數(shù)據(jù)為原來的1000 倍,線性數(shù)據(jù)增強是當(dāng)前一種新穎的增廣方式,得到的樣本比常規(guī)增廣方法更加豐富,可增強模型的魯棒性.將圖像裁剪成416×416 的統(tǒng)一大小輸入神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到的部分?jǐn)?shù)據(jù)增強效果如圖5所示.
圖4 棉布瑕疵樣本類型Fig.4 Cotton defect sample types
圖5 數(shù)據(jù)增強效果Fig.5 Effect of data enhancement
實驗環(huán)境主要包括:硬件環(huán)境是64 位的Windows操作系統(tǒng),NVIDIA Tesla P40 24GB的顯卡;軟件環(huán)境是Pycharm 編程平臺下Python3.6,深度學(xué)習(xí)框架為Pytorch1.4 和Cuda9.2.由于顯卡計算能力限制且更高的版本精確率提升較小,實驗選擇的目標(biāo)檢測框架為EfficientDet-D3版本.
訓(xùn)練過程中使用VOC2007 數(shù)據(jù)集預(yù)訓(xùn)練權(quán)重,用遷移學(xué)習(xí)的方法微調(diào)網(wǎng)絡(luò)模型的參數(shù)值,動量值為0.9,學(xué)習(xí)率為0.001,批處理大小為4,權(quán)重衰減速率為0.0005,迭代次數(shù)為1000 次,使用Adam 優(yōu)化器動態(tài)調(diào)整參數(shù)的學(xué)習(xí)步長,損失函數(shù)為Focal Loss,IoU 為0.5,當(dāng)預(yù)測框與標(biāo)記框重合比例達(dá)到0.5,則為正確預(yù)測.樣本數(shù)據(jù)集劃分為10等份,9份用于訓(xùn)練,1 份用于測試,其中有瑕疵圖片為正樣本,無瑕疵圖片為負(fù)樣本.
棉布瑕疵檢測需要得到目標(biāo)檢測框的位置信息和分類結(jié)果.評估指標(biāo)主要包括精確率(P)、召回率(R)、平均精確率(AP)、精度和召回率的調(diào)和平均數(shù)(F1)和平均AP(mAP),公式如(11)~(15)式:
其中,TP是檢測為正樣本且實際為正樣本的例子,F(xiàn)P是檢測為正樣本但實際為負(fù)樣本的例子,F(xiàn)N是檢測為負(fù)樣本但實際是正樣本的例子.點狀瑕疵、劃痕狀瑕疵和線條狀瑕疵的精確率分別為98.82%、77.89%和96.67%,F(xiàn)1分?jǐn)?shù)為分別為85.34%、74.60%和91.10%.精確率、召回率和F1 分?jǐn)?shù)都存在單點值的局限性,平均精確率AP是最能反映全局性能的指標(biāo),3 種瑕疵類型的平均精確率AP分別為88.99%、78.91%和97.80%,mAP為88.57%,結(jié)果如圖6所示,由此可見模型訓(xùn)練結(jié)果具有良好的分類檢測能力.
圖6 點狀、劃痕狀和線條狀瑕疵的平均精確率Fig.6 Average precision of point,stride and line defects
為了體現(xiàn)該棉布瑕疵檢測模型的分類檢測能力,將該模型與目前常用的模型進(jìn)行對比實驗,包括一階段目標(biāo)檢測模型Yolo v4、兩階段目標(biāo)檢測模型Faster RCNN 和CA-EfficientDet-D0 版本,這幾種模型的檢測效果對比如圖7 所示.Faster RCNN 模型可以正確分類點狀和線條狀的瑕疵,但把劃痕狀瑕疵錯誤分類為點狀瑕疵,由于劃痕狀瑕疵樣本比例相對較少,模型訓(xùn)練的分類檢測能力較弱以至于把該劃痕瑕疵錯誤分類.Yolo v4 模型正確分類點狀和線條狀瑕疵,而把劃痕狀瑕疵同時預(yù)測分類為點狀瑕疵和劃痕狀瑕疵,該瑕疵沒有完全錯誤分類,但分類能力還不理想.CA-EfficientDet-D0 模型只能正確分類線條狀瑕疵,把點狀瑕疵錯誤分類為劃痕狀瑕疵,劃痕狀瑕疵錯誤分類為點狀瑕疵,該模型對于特征比較接近的小目標(biāo)分類預(yù)測能力較弱.CAEfficientDet-D3可以正確分類點狀、劃痕狀和線條狀瑕疵,可見該模型對樣本比例較少的瑕疵類型和特征較為接近的小目標(biāo)都有較好的分類檢測能力.這幾種目標(biāo)檢測模型的效果對比圖顯示:CAEfficientDet-D0 版本的模型的檢測能力比Faster RCNN 模型更好,比Yolo v4 稍差一些但錨框精度更高,CA-EfficientDet-D3 模型的分類能力和檢測精度都明顯高于Yolo v4 和Faster RCNN,具有較好的棉布瑕疵目標(biāo)檢測能力.
圖7 幾種目標(biāo)檢測模型效果對比Fig.7 Effect comparison of several target detection models
以上幾種目標(biāo)檢測模型用棉布瑕疵樣本對比實驗的相關(guān)指標(biāo)Ppoint為點狀瑕疵的精確率,Pstride為劃痕狀瑕疵的精確率,Pline為線條狀瑕疵的精確率,F(xiàn)1point為點狀瑕疵的F1 分?jǐn)?shù),F(xiàn)1stride為劃痕狀瑕疵的F1 分?jǐn)?shù),F(xiàn)1line為線條狀瑕疵的F1 分?jǐn)?shù),APpoint為點狀瑕疵的平均精確率,APstride為劃痕狀瑕疵的平均精確率,APline為線條狀瑕疵的平均精確率,mAP為所有類的AP平均值,mAP值最能衡量目標(biāo)檢測模型的分類檢測能力.由于樣本集瑕疵類型比例不均衡的特點,劃痕狀瑕疵占比過少,且部分劃痕狀瑕疵與點狀瑕疵特征較為接近,劃痕狀瑕疵類型的各項指標(biāo)數(shù)值相對較低,尤其是在檢測能力較弱的模型中,由于劃痕狀樣本數(shù)量不平衡,導(dǎo)致F1 分?jǐn)?shù)相對較低.由表1可知,CA-EfficientDet-D3模型的mAP比CA-EfficientDet-D0 版本 高出22.30%,比Faster RCNN 模型高出35.56%,比Yolo v4 高出14.15%,分類檢測能力較好.CA-EfficientDet-D3 模型檢測一張圖片的時間為1.69 s,檢測速度大約是Faster RCNN模型的5 倍,大約是Yolo v4 模型的1.6 倍,由于CAEfficientDet-D3 模型網(wǎng)絡(luò)結(jié)構(gòu)中又加了3 層BiFPN模塊堆疊以達(dá)到更好的特征融合效果,增大了模型的網(wǎng)絡(luò)參數(shù)和時間開銷,檢測時間相比于CAEfficientDet-D0 增加了,但仍滿足實時要求,且在檢測速度上相比其他模型有著更好的表現(xiàn).可見,本文提出的CA-EfficientDet-D3 目標(biāo)檢測模型在分類檢測能力和檢測速度上均優(yōu)于目前主流的目標(biāo)檢測模型,且在樣本不均衡時依然具有高效的目標(biāo)檢測能力.
表1 幾種目標(biāo)檢測模型對比Tab.1 Comparison of several target detection models
為了評價目標(biāo)檢測模型檢測能力提升的重要性,對改進(jìn)的BiFPN 模塊和通道注意力模塊進(jìn)行了一系列的消融實驗,基本的EfficientDet-D3 框架為目標(biāo)檢測模型的baseline.由表2 可知,基于baseline的mAP值只有85.90%,只加入改進(jìn)的BiFPN 模塊mAP提升了1.15%,只加入通道注意力模塊mAP提升了2.17%,加入改進(jìn)的BiFPN 模塊和通道注意力模塊mAP提升了2.67%,改進(jìn)的BiFPN 模塊和通道注意力模塊在提升檢測精度的同時,增加了網(wǎng)絡(luò)模型的參數(shù),會增加時間開銷,工業(yè)生產(chǎn)中目前的檢測方法已經(jīng)基本達(dá)到實時性要求,因而更加重視檢測精確率的提升.可見EfficientDet-D3 模塊加入改進(jìn)的BiFPN模塊和通道注意力模塊后具有更優(yōu)的棉布瑕疵檢測能力.
表2 模型消融實驗Tab.2 Model ablation experiment
棉布的材質(zhì)和紋理圖案的復(fù)雜多樣性對棉布檢測方法提出了更高的要求,為了檢驗算法的適應(yīng)性,在MVTec AD 公開數(shù)據(jù)集[19]進(jìn)行測試.MVTec AD 包含15 種工業(yè)缺陷數(shù)據(jù)集,選擇其中的布匹缺陷樣本Carpet進(jìn)行測試,瑕疵種類包括染色瑕疵、金屬瑕疵(金屬劃破的瑕疵)、破洞瑕疵.布匹缺陷樣本共50 張,染色瑕疵樣本18 張,金屬瑕疵樣本16張,破洞瑕疵樣本16 張.布匹缺陷樣本的部分瑕疵類型檢測結(jié)果如圖8 所示,模型訓(xùn)練和測試的結(jié)果可得染色瑕疵的AP值為91.76%,金屬瑕疵的AP值為89.93%,破洞瑕疵的AP值為90.34%,布匹缺陷樣本瑕疵檢測的mAP為90.68%,在不同紋理背景下依然具有很好的檢測能力,表明該檢測算法具有良好的適應(yīng)性.由表3 可見,由于企業(yè)樣本集樣本不均衡,并且弱對比度的樣本特征相對不明顯,目標(biāo)檢測模型在MVTec AD 數(shù)據(jù)集上的各項指標(biāo)均優(yōu)于企業(yè)樣本數(shù)據(jù)集,表明提高數(shù)據(jù)集的質(zhì)量,該模型會有更高效的棉布瑕疵檢測能力.本文對該公開數(shù)據(jù)集和其他已有工作進(jìn)行對比.采用其他文獻(xiàn)[19]使用AUC 來衡量檢測性能的指標(biāo),見表4,公開數(shù)據(jù)集中布匹缺陷類別的樣本使用AE(SSIM)方法[19]得到的AUC 為0.87,本文方法得到的AUC 值為0.93,在AUC 指標(biāo)上也有一定的提升. 可見,基于CAEfficientDet的棉布瑕疵檢測方法在公開數(shù)據(jù)集上也有良好的表現(xiàn).
表3 本文模型的不同數(shù)據(jù)集結(jié)果對比Tab.3 The comparison results of different data sets of this model
表4 檢測方法對比Tab.4 Comparison of detection methods
圖8 公開數(shù)據(jù)集的測試結(jié)果Fig.8 Test results of public data sets
本文結(jié)合通道注意力機制和EfficientDet 目標(biāo)檢測模型提出了基于CA-EfficientDet 的棉布瑕疵檢測方法,在特征提取時關(guān)注重要的信息.改進(jìn)的BiFPN 特征融合,增加了不同層級的特征融合,提高了多尺度特征融合的效率.在棉布瑕疵樣本上的實驗結(jié)果表明:基于通道注意力機制的高效棉布瑕疵檢測模型具有良好的目標(biāo)檢測能力.未來的相關(guān)工作中,將從以下3 個方面進(jìn)行改進(jìn):(1)棉布瑕疵樣本很少,針對小樣本數(shù)據(jù)集的特征,提高模型對小樣本數(shù)據(jù)集的目標(biāo)檢測效果;(2)模型在檢測精度大幅度提升的同時,網(wǎng)絡(luò)模型的參數(shù)也變得更大,增加了時間開銷,以后還要研究如何壓縮目標(biāo)檢測模型的大?。唬?)在樣本數(shù)據(jù)集類別不均衡的情況下,提高模型的檢測能力.