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