費利斌,徐 洋,余智祺,孫以澤,季誠昌
(東華大學(xué) 機械工程學(xué)院,上海 201620)
目前國內(nèi)大多數(shù)紡織企業(yè)采取人工進行布匹瑕疵檢測的方式。但近幾年來,部分紡織企業(yè)開始開發(fā)基于機器視覺的布匹瑕疵自動檢測系統(tǒng)。國內(nèi)紡織行業(yè)中多數(shù)布匹瑕疵檢測系統(tǒng)存在檢測精度低、普適性差的問題,同時受限于傳統(tǒng)圖像處理技術(shù)的局限,算法依賴于對人工設(shè)計的特征進行提取,只適用于在較為簡單的素色布上進行瑕疵檢測[1]。國外已有較為成熟的自動檢測設(shè)備[2],但造價較為昂貴,且只適合素色布的檢測。但在工廠實際生產(chǎn)中,大多數(shù)布匹為具有復(fù)雜背景圖案的花色布,受限于傳統(tǒng)圖像處理技術(shù),現(xiàn)有布匹瑕疵檢測系統(tǒng)難以取得很好的檢測效果。
新網(wǎng)絡(luò)結(jié)構(gòu)[3]和損失函數(shù)等深度學(xué)習(xí)理論的發(fā)展,給花色布瑕疵檢測帶來了新的突破。Jing等[4]通過將紋理織物圖像分解為局部補丁,并對標(biāo)記的補丁進行網(wǎng)絡(luò)訓(xùn)練,最后利用訓(xùn)練模型在圖像上滑動來檢測瑕疵。另外,Jing等[5]采用YOLOv3模型加入K-means聚類預(yù)選框尺寸和特征融合的方法進行瑕疵檢測。上述兩種方法都可以用來檢測較為規(guī)則的條紋和格子等布匹,但構(gòu)造的網(wǎng)絡(luò)較為簡單,并不適用于圖案復(fù)雜的花色布。Han等[6]使用無監(jiān)督學(xué)習(xí)方法,利用堆疊卷積自動編碼器來進行瑕疵檢測,可以緩解工業(yè)領(lǐng)域樣本不足的影響,但其檢測準(zhǔn)確率不高。Xie等[7]使用改進的RefineDet網(wǎng)絡(luò),并加入常用的優(yōu)化方法以提高模型的檢測準(zhǔn)確率,但不可避免因瑕疵形狀和顏色與布匹背景的相似而出現(xiàn)誤判。
為解決花色布瑕疵檢測的問題,本文提出基于改進Faster R-CNN[8](faster region with convolutional neural networks)的花色布瑕疵檢測算法。首先在二階模型Faster R-CNN的基礎(chǔ)上,使用Resnet-50[9]作為主干網(wǎng)絡(luò),并嵌入可變形卷積[10]來提高瑕疵特征的學(xué)習(xí)能力。設(shè)計多尺度模型來提高小瑕疵的檢測能力,并通過級聯(lián)網(wǎng)絡(luò)不斷提高瑕疵定位的準(zhǔn)確度和對瑕疵的識別能力。然后使用改進的損失函數(shù)減弱難易樣本和正負樣本不均衡問題的影響。最后,通過對瑕疵圖片進行測試并與基礎(chǔ)模型進行對比以驗證模型的效果。
花色布瑕疵檢測系統(tǒng)主要由線陣相機、條形光源、計算機、編碼器、檢測平臺組成,如圖1所示。
圖1 花色布瑕疵檢測系統(tǒng)Fig.1 The defect detection system for patterned fabrics
其中線陣相機為DALSA彩色線掃相機,圖像分辨率為4 096像素×1像素。編碼器的安裝位置需和布匹表面接觸,布匹移動時帶動編碼器轉(zhuǎn)動,從而發(fā)出脈沖信號控制相機采集卡進行采集。相機高度可以根據(jù)布匹的幅寬進行調(diào)整,當(dāng)前實驗室檢測平臺幅寬為1 m。條形光源的亮度可以通過輸出電壓進行調(diào)節(jié),設(shè)置為40V。計算機配置為Intel(R)Xeon(R)CPU E5-2650 v2和NVIDIA GeForce GTX 1080Ti GPU。瑕疵檢測算法使用python 3.6語言,開發(fā)框架為Pytorch框架。
本文以Faster R-CNN為網(wǎng)絡(luò)框架,采用融合可變形卷積的Resnet-50作為主干網(wǎng)絡(luò)對輸入圖像進行特征提取,然后經(jīng)過多尺度模型進行特征融合操作得到多個不同尺度的特征圖,通過區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)模塊獲得較好的感興趣區(qū)域(regions of interest,RoI),并將RoI對應(yīng)到相應(yīng)的特征圖進行池化,最后通過級聯(lián)網(wǎng)絡(luò)對池化得到的特征進行分類和位置的回歸?;ㄉ艰Υ脵z測改進算法整體結(jié)構(gòu)如圖2所示。其中,H表示R-CNN部分網(wǎng)絡(luò),C和B分別表示分類和回歸部分網(wǎng)絡(luò)。
圖2 花色布瑕疵檢測改進算法整體結(jié)構(gòu)Fig.2 The whole structure of defect detection improved algorithm for patterned fabrics
在卷積神經(jīng)網(wǎng)絡(luò)中,卷積具有特征提取的功能。普通的卷積是按照固定的矩形形狀對輸入的特征圖進行采樣,以3×3的卷積為例,其卷積操作和采樣位置為
(1)
S={(x,y)|(-1,-1),(-1,0),…,(1,1)}
(2)
式中:F為輸出特征圖;d0為中心位置;di為采樣位置與中心位置的固定偏移量;ω為卷積核的權(quán)重;f為輸入特征圖;S為偏移量的取值范圍,在3×3卷積中偏移量共有9個。
在花色布瑕疵檢測中,部分瑕疵為不規(guī)則的形狀,普通的卷積核無法根據(jù)瑕疵的形狀自適應(yīng)地調(diào)整采樣的位置,限制了對瑕疵特征的學(xué)習(xí)能力。
可變形卷積網(wǎng)絡(luò)(deformable convolution network,DCN)通過引入采樣位置的偏移量來自適應(yīng)地調(diào)整采樣位置,提高網(wǎng)絡(luò)對瑕疵特征的提取能力,其原理如圖3所示,其卷積操作為
圖3 可變形卷積網(wǎng)絡(luò)原理Fig.3 Principle of deformable convolution network
(3)
式中:Δdi為可變形卷積網(wǎng)絡(luò)訓(xùn)練得到的偏移量。
Faster R-CNN使用VGG-16來進行特征提取,但VGG-16網(wǎng)絡(luò)結(jié)構(gòu)簡單,特征提取的能力較低,在花色布瑕疵檢測問題上并不能取得很好的效果。Resnet-50有著較深的網(wǎng)絡(luò)結(jié)構(gòu),具有很好的特征提取的能力,且通過殘差模塊來消除網(wǎng)絡(luò)退化的影響,可以有效提取瑕疵特征。為提高主干網(wǎng)絡(luò)的瑕疵特征提取能力,在Resnet-50的后面4個階段的最后一個殘差模塊中分別融入可變形卷積網(wǎng)絡(luò),殘差模塊結(jié)構(gòu)如圖4所示。
圖4 殘差網(wǎng)絡(luò)Fig.4 Residual network
Faster R-CNN只在特征提取網(wǎng)絡(luò)的最后一個特征圖上進行后續(xù)的檢測,因為特征圖是經(jīng)過原圖多次下采樣得到的,所以在特征圖上的花色布瑕疵,尤其是小瑕疵會丟失很多有效信息,因此需要設(shè)計多尺度模型(見圖5)來提高瑕疵的檢測效果。特征金字塔網(wǎng)絡(luò) (feature pyramid network,F(xiàn)PN)[11]通過自底向上和自頂向下兩種方式對特征圖進行特征融合,將深層的語義信息結(jié)合到具有較多位置信息的淺層,提高了小目標(biāo)的檢測。由圖5可知,在Resnet-50后面4個階段會得到4個特征圖,分別為C2、C3、C4和C5,另外對C5進行2倍下采樣得到C6。先對每個特征圖通過1×1卷積統(tǒng)一通道數(shù)為256,再對深層的特征圖通過2倍上采樣得到和前一層相同尺度的特征圖,并和前一層的特征圖相加,最后通過3×3卷積以減少上采樣過程的混疊效應(yīng),得到5個特征圖F2、F3、F4、F5和F6。因為Resnet-50在特征提取的同時會對瑕疵周圍的語義信息有一定的破壞,而原圖中包含的全局信息可以為瑕疵特征提供周圍的語義信息,對分類和定位具有指導(dǎo)意義,因此將全局信息作為一個RoI進行特征提取,將提取的特征加入到RoI在不同特征圖上池化得到的特征中。
圖5 多尺度模型Fig.5 Multi-scale model
通過多尺度模型可以得到5個不同尺度的特征圖,后續(xù)根據(jù)RPN網(wǎng)絡(luò)得到的RoI大小選擇尺度合適的特征層分別進行預(yù)測。面積較小的RoI選擇淺層特征圖如F2,面積較大的RoI選擇深層的特征圖如F5。
在二階檢測器中,當(dāng)?shù)玫絉oI后,通過選擇RoI和標(biāo)簽框之間合適的交并比(intersection over union,IoU)閾值來判斷RoI屬于正樣本還是負樣本。在Faster R-CNN網(wǎng)絡(luò)中,如果閾值過高,雖然選出的RoI更接近真實物體,但由于符合該閾值條件的RoI會變少,使得正負樣本更加不均衡,導(dǎo)致訓(xùn)練過擬合;如果閾值過低,雖然使得正樣本變多,但相應(yīng)的誤檢會增加,導(dǎo)致分類誤差會增大。
在閾值問題上遵循兩個原理:一是當(dāng)輸入的RoI與標(biāo)簽的IoU在設(shè)置閾值附近時,檢測效果會比基于其他閾值時好;二是通過回歸后候選框的IoU會有所提高。基于這兩個原理,通過設(shè)置級聯(lián)網(wǎng)絡(luò)來優(yōu)化檢測器的效果。級聯(lián)網(wǎng)絡(luò)通過級聯(lián)3個檢測器,因為在通過檢測器回歸后檢測框的準(zhǔn)確度會得到提高,所以將上一個檢測器的回歸結(jié)果輸入到下一個檢測器中后,其檢測框的定位會更加準(zhǔn)確,從而使級聯(lián)的3個檢測器的檢測結(jié)果不斷提高,其中3個檢測器的IoU閾值應(yīng)逐步提高,本文模型閾值分別設(shè)置為0.5、0.6和0.7,級聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中參數(shù)優(yōu)化的穩(wěn)定性在一定程度上取決于損失函數(shù)的選擇。在Faster R-CNN中分類損失使用交叉熵損失函數(shù),其計算式為
(4)
式中:p為置信度;y為標(biāo)簽值,取值為0或1。
在花色布瑕疵檢測問題上,因為實際的花色布瑕疵數(shù)量往往較少,因此在訓(xùn)練過程中存在正樣本數(shù)量遠少于負樣本數(shù)量的情況,產(chǎn)生類別間不均衡的問題。Focal Loss[12](見式(5))函數(shù)通過參數(shù)來調(diào)節(jié)權(quán)重,可以同時緩解正負樣本和難易樣本不均衡的問題。
(5)
式中:α和γ分別為調(diào)節(jié)正負樣本和難易樣本的權(quán)重參數(shù),常取α=0.25,γ=2。
因為Focal Loss過多關(guān)注難分樣本,從置信度p的角度衰減損失值,導(dǎo)致模型整體的準(zhǔn)確度下降。梯度均衡機制[13](gradient harmonized mechanism,GHM)通過一定范圍置信度p的樣本數(shù)量的角度衰減損失值。首先定義一個梯度模長,如式(6)所示。
(6)
式中:g為梯度模長。
梯度模長g正比于檢測的難易程度。其次定義一個變量梯度密度(G(g))用來衡量一定梯度范圍內(nèi)的樣本數(shù)量,如式(7)所示。
(7)
式中:δε(gk,g)為樣本中g(shù)分布在(g-ε/2,g+ε/2)內(nèi)的樣本個數(shù);lε(g)為(g-ε/2,g+ε/2)區(qū)間的長度。
分類損失函數(shù)LGHM為
(8)
但GHM在正負樣本不均衡的問題上并沒有很好處理,因此本文模型采用融合損失函數(shù),如式(9)所示。
(9)
式中:μ0和μ1分別為兩個損失函數(shù)的權(quán)重參數(shù),本文模型中取μ0=0.5,μ1=0.5。
為驗證算法改進后的檢測效果,對花色布瑕疵圖片進行檢測試驗。取常見花色布瑕疵5種,分別為破洞、臟污、縫頭、花毛、縫頭印,輸入圖像大小為1 024像素×1 024像素,其中訓(xùn)練集圖片共1 901張,用于檢測的測試集圖片共297張,數(shù)據(jù)集樣本分布如表1所示。
表1 數(shù)據(jù)集樣本分布Table 1 Sample distribution of the data set
訓(xùn)練過程使用隨機梯度下降,動量取0.9,初始學(xué)習(xí)率為0.02,Batch size為48,epoch為20,學(xué)習(xí)率采用常數(shù)衰減方式,分別在第3、8、13、18個epoch時減小10倍。
將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型在花色布測試集上進行瑕疵檢測試驗,使用Faster R-CNN+Resnet-50作為對比模型。兩種模型的檢測效果對比如圖6所示,其中瑕疵檢測框上面分別是預(yù)測瑕疵標(biāo)簽以及瑕疵的置信度,其中,標(biāo)簽1、2、3、4、5分別代表臟污、縫頭、破洞、縫頭印、花毛,置信度越高代表模型對瑕疵的識別能力越強,瑕疵分類愈加準(zhǔn)確。由圖6可知,相較于對比模型,本文模型對瑕疵的識別和定位更加準(zhǔn)確,能夠準(zhǔn)確地框選出完整的瑕疵。部分破洞和臟污顏色形狀較為相似,對比模型易出現(xiàn)誤判。同時,本文模型可以檢測出對比模型中漏檢的部分瑕疵,主要是面積較小的瑕疵。
圖6 兩種模型的瑕疵檢測效果對比Fig.6 Comparison of defect detection effect between the two models
將兩種模型在測試集上的檢測結(jié)果進行統(tǒng)計,結(jié)果如表2所示。
表2 兩種模型的瑕疵檢測結(jié)果統(tǒng)計對比Table 2 Statistical comparison of defect detection results between the two models %
由表2可知,本文模型瑕疵檢測的平均準(zhǔn)確率相較于對比模型提高了8.52個百分點,小瑕疵的檢測準(zhǔn)確率提高了15.39個百分點,平均精確率也有8.91個百分點的提升。由此表明,本文模型的瑕疵識別準(zhǔn)確率更高,定位更加準(zhǔn)確。另外,在模型改進的同時,瑕疵檢測的平均時間并沒有增加太多。在實驗室檢測平臺下,對幅寬1 m的花色布進行在線檢測,布匹傳送的速度可以設(shè)置為0.5~0.8 m/s,滿足工廠檢測實際需求。
本文采用基于卷積神經(jīng)網(wǎng)絡(luò)的花色布瑕疵檢測算法,在試驗的花色布瑕疵數(shù)據(jù)集上取得94.97%的平均準(zhǔn)確率,具有較好的檢測效果,可以代替人工檢測,具體結(jié)論如下:
(1)通過使用基于卷積神經(jīng)網(wǎng)絡(luò)的檢測算法,突破傳統(tǒng)機器視覺算法的檢測范圍的限制,可以有效對具有復(fù)雜背景的花色布進行瑕疵檢測。
(2)通過在檢測算法中加入多尺度模型,提高了對小瑕疵的檢測效果。
(3)通過使用融合可變形卷積的Resnet-50,引入級聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)進行分類和回歸,對損失函數(shù)進行優(yōu)化,提高了檢測算法的準(zhǔn)確度。