蔣晨 錢永明 姚興 田李壯
(南通大學(xué),江蘇南通,226019)
噴水織機(jī)織物疵點(diǎn)檢測是生產(chǎn)過程中的重要環(huán)節(jié),該環(huán)節(jié)的質(zhì)量把控直接影響著企業(yè)最終紡織品的價(jià)格。目前,織物疵點(diǎn)檢測工作主要還是由人工進(jìn)行,準(zhǔn)確度低,容易出現(xiàn)漏檢現(xiàn)象[1]。
傳統(tǒng)的目標(biāo)檢測方法研究基于手工定義特征,可以在特定的織物產(chǎn)品上獲得良好的效果。為了提高織物疵點(diǎn)的分割精度,LI Renzhong等人[2]提出了一種基于EM算法的高斯混合模型,提高了織物疵點(diǎn)的分割精度。LI Pengfei等人[3]基于小波的方法設(shè)計(jì)了適當(dāng)?shù)男〔ɑ鶃肀硎静煌椢飯D像的背景,通過從原始數(shù)據(jù)圖像中減去背景圖像來檢測缺陷。柏順偉等人[4]針對噴水織機(jī)織物疵點(diǎn)的特征,提出一種同態(tài)濾波和二維信息熵的檢測方法,該方法較好地將疵點(diǎn)與背景區(qū)分開來,但是不能標(biāo)注和識別疵點(diǎn)。
近年來,深度學(xué)習(xí)廣泛應(yīng)用于織物疵點(diǎn)檢測。景軍鋒等人[5]針對色織物疵點(diǎn)提出作為一種可以基于深度卷積神經(jīng)系統(tǒng)網(wǎng)絡(luò)的檢測算法,對色織物缺陷能夠?qū)崿F(xiàn)快速檢測,并且能夠獲取準(zhǔn)確的缺陷位置。WEI Bing等人[6]提出一種將壓縮感知與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的新方法(CSCNN),解決了CNN在小樣本下無法較好分類的問題。MEI Shuang等人[7]提出了一種基于無監(jiān)督學(xué)習(xí)的織物疵點(diǎn)檢測方法,無需人工干預(yù),大大減少了工作量,具有良好的魯棒性。然而,這些方法沒有考慮當(dāng)織物疵點(diǎn)區(qū)域僅占整個(gè)織物圖像的一小部分的情況,都不能很好地處理織物疵點(diǎn)的檢測問題。因此,為了實(shí)現(xiàn)織物疵點(diǎn)高精度自動化檢測,針對本課題研究對象——噴水織機(jī)織物疵點(diǎn)的特點(diǎn)提出一種基于改進(jìn)的Faster RCNN檢測方法。
ResNet(深度殘差網(wǎng)絡(luò))于2015年被HE K等人[8]提出,很好地解決了由于網(wǎng)絡(luò)加深而導(dǎo)致訓(xùn)練出現(xiàn)過擬合的問題。ResNet是將不等量的卷積層(Conv)、池化層(Pool)和全連接層(FC)堆分為兩個(gè)支路,左邊的支路是把該層的輸入做一個(gè)參疊形成深層卷積神經(jīng)網(wǎng)絡(luò),而右分支直接將輸入發(fā)送到最后一個(gè)分支與左分支進(jìn)行融合,其中的殘差結(jié)構(gòu)解決了神經(jīng)網(wǎng)絡(luò)深化后會導(dǎo)致過擬合的問題[9];ResNet是一個(gè)具有良好遷移性的特征提取網(wǎng)絡(luò)?;谝陨蟽?yōu)點(diǎn),ResNet可以很容易地集成到其他網(wǎng)絡(luò)中。
MS-CAM是一種注意機(jī)制,遵循ParseNet[10]的思想,融合CNN中的局部和全局特征,在注意模塊中聚合多尺度特征的上下文信息。MSCAM在通道注意模塊中將局部信息與全局信息融合[11]。對于通道注意的尺度問題,MS-CAM是通過逐點(diǎn)卷積(Point-wise Conv)實(shí)現(xiàn)的。
Faster RCNN是于2017年提出改進(jìn)的RCNN算法,該算法將Fast RCNN與RPN(Region Proposal Network)相融合,大大提高了檢測速度與精度[12]。Faster RCNN的網(wǎng)絡(luò)結(jié)構(gòu)主要由3部分組成:特征提取網(wǎng)絡(luò)、RPN以及Fast RCNN網(wǎng)絡(luò)[13]。在特征提取網(wǎng)絡(luò)中,通過卷積合并等一系列操作對輸入圖像進(jìn)行特征提取,根據(jù)對象存在與否通過RPN生成建議框[14],并將特征圖與建議框架一起輸入Fast RCNN網(wǎng)絡(luò),執(zhí)行目標(biāo)分類任務(wù)和邊界框架的位置回歸任務(wù)。
本研究采用伽馬變換和直方圖均衡化對噴水織機(jī)織物疵點(diǎn)圖進(jìn)行預(yù)處理,將缺陷區(qū)域與背景區(qū)域區(qū)分開來,提高疵點(diǎn)區(qū)域的顯著性;然后通過改進(jìn)的Faster RCNN完成疵點(diǎn)圖的檢測任務(wù)。
2.1.1 伽馬變換
伽馬變換是一種可以直接對系統(tǒng)圖像像素進(jìn)行操作的空域信息技術(shù)[15],其變換表達(dá)式如公式(1)所示。部分疵點(diǎn)伽馬變換對比圖如圖1所示。
式中:x表示輸入圖像的灰度值;y表示輸出圖像的灰度值;c為縮放系數(shù),通常取1;γ為伽馬因子大小。變換時(shí),需要將[0,255]的灰度范圍映射到[0,1]的灰度范圍。當(dāng)γ<1時(shí),公式(1)為非線性變換,圖像低灰度區(qū)的亮度增強(qiáng);當(dāng)γ>1時(shí),公式(1)也是非線性變換,圖像高灰度區(qū)域亮度增強(qiáng);當(dāng)γ=1時(shí),公式(1)為線性變換,圖像的灰度區(qū)域不變。
圖1 伽馬變換對比圖
為了得到較好的結(jié)果,伽馬變量γ需要對不同疵點(diǎn)類型取不同的值。如圖1所示卷皺疵點(diǎn)區(qū)域灰度較低,γ取0.8;稀段疵點(diǎn)區(qū)域灰度較高,γ取1.5。
2.1.2 直方圖均衡化
直方圖均衡化就是通過變換函數(shù)將灰度分布不均勻的圖像變換成灰度分布均勻的圖像[16],從而增加圖像灰度的動態(tài)范圍,提高圖像對比度。直方圖Prk、灰度累積分布函數(shù)Sk、直方圖均衡化變換函數(shù)的計(jì)算如公式(2)~公式(4)所示。
式中:r為灰度級;n為輸入圖像的像素總數(shù);nk為第k個(gè)灰度級出現(xiàn)的個(gè)數(shù);Prk表示第k個(gè)灰度級出現(xiàn)的概率;P(rj)為第r灰度級出現(xiàn)j次的概率密度函數(shù);r'k為原始圖像的灰度級經(jīng)直方圖均衡化后的灰度級;round(·)為四舍五入取整運(yùn)算;L為灰度級的總個(gè)數(shù)。
由于不同織物疵點(diǎn)有集中性與偏離性的特點(diǎn),可通過直方圖均衡化,較好地提升疵點(diǎn)與背景間的對比度。部分疵點(diǎn)在伽馬變換基礎(chǔ)上作直方圖均衡化的對比圖像如圖2所示。
圖2 直方圖均衡化的對比圖
2.2.1 特征融合模塊
為了增強(qiáng)局部信息與全局信息的融合,提高模型的特征提取能力,本研究采用基于多尺度通道注意模塊(MS-CAM)的特征融合方式,其過程可以表示為公式(5)。
式中:Z是經(jīng)過特征融合后的特征圖;M代表MS-CAM模塊;⊕代表初始的特征整合;X代表其中的網(wǎng)絡(luò)加深的部分(identity);Y則代表的是殘差學(xué)習(xí)部分(residual)。
圖3是特征融合過程的視圖,其中虛線部分代表的就是1-M(X⊕Y)部分。這個(gè)特征融合方式能夠在特征圖X和Y之間進(jìn)行軟選擇或加權(quán)平均,其中的特征融合權(quán)重M(X⊕Y)為實(shí)數(shù),且范圍在[0,1]之間。
圖3 特征融合過程
本研究方法的特征提取網(wǎng)絡(luò)基于改進(jìn)的ResNet50,將原來網(wǎng)絡(luò)殘差模塊的最后步驟替換為特征融合模塊(用fusion表示),如圖4所示。
圖4 改進(jìn)的殘差模塊
2.2.2 RPN
為了進(jìn)一步提高模型的檢測精度,F(xiàn)aster RCNN在Fast RCNN的 基 礎(chǔ) 上 融 入 了RPN[17]。RPN是用來提取候選框,該方法比Fast RCNN中的Selective Search方法運(yùn)行速度更快。RPN這部分的損失包括分類損失和回歸損失。計(jì)算公式如公式(6)~公式(8)所示。
式中:Lcls代表分類損失函數(shù);Lreg代表回歸損失函數(shù);i表示訓(xùn)練以及測試樣本中錨點(diǎn)區(qū)域的索引;pi和pi*分別表示第i個(gè)錨點(diǎn)區(qū)域?yàn)槟繕?biāo)以及對應(yīng)樣本分類的概率;ti為預(yù)測的bounding box的4個(gè)參數(shù)化坐標(biāo);t*為正樣本對應(yīng)真實(shí)坐標(biāo)向量。SmoothL1表示回歸過程魯棒性損失函數(shù),定義如公式(9)所示。
2.2.3 ROIAlign
ROIAlign是針對ROIPooling過程中的兩次取整量化導(dǎo)致區(qū)域不匹配的問題進(jìn)行了改進(jìn)[18],解決了映射誤差和均分誤差問題,提高了后續(xù)分類與回歸的準(zhǔn)確率。ROIAlign消除量化,采用雙線性插值的方法獲得浮點(diǎn)坐標(biāo)像素上的圖像值(如圖5所示),從而將整個(gè)特征聚合過程轉(zhuǎn)化為連續(xù)運(yùn)算。具體流程:遍歷每一個(gè)候選區(qū)域,保持浮點(diǎn)數(shù)邊界;將候選區(qū)域分割成k×k個(gè)單元,每個(gè)單元的邊界不做量化;在每個(gè)處理單元中計(jì)算4個(gè)不同采樣點(diǎn)(根據(jù)經(jīng)驗(yàn),采樣點(diǎn)選擇4個(gè))的坐標(biāo)位置,使用雙線性插值的方法可以計(jì)算4個(gè)固定位置(指在每一個(gè)矩形單元中按照固定規(guī)則確定的位置),最后進(jìn)行最大池化操作。
圖5 ROIAlign操作原理
原始的ROIPooling的反向傳播過程用公式(10)表示。
式中:xi表示為池化操作之前特征圖上的像素點(diǎn);yrj表示池化后第r候選區(qū)域的第j個(gè)點(diǎn)。
由公式(10)可看出,在池化過程中只有當(dāng)i=i*×(r,j)時(shí),才能在xi點(diǎn)回傳梯度。
針對ROIPooling的缺點(diǎn),ROIAlign對反向傳播算法做了優(yōu)化。在ROIAlign中,i×(r,j)是前向傳播計(jì)算得到的采樣點(diǎn)的浮點(diǎn)型坐標(biāo)值,在特征圖池化前,i×(r,j)的水平與垂直坐標(biāo)值都小于1的點(diǎn)就要接受對應(yīng)點(diǎn)yrj回傳過來的梯度,故ROIAlign的反向傳播公式如公式(11)所示。
式 中:d(i,i×(r,j))表 示 為 兩 點(diǎn) 間 的 距 離;Δw、Δh分別為i與i×(i,j)水平以及垂直坐標(biāo)的差值,作為一個(gè)雙線性插值的系數(shù)與原始的梯度可以相乘。
訓(xùn)練數(shù)據(jù)集一共有480個(gè)樣本,分為4種類別:卷皺、厚段、稀段以及連入,如圖6所示。針對樣本數(shù)量較少的情況,采用遷移學(xué)習(xí)[19]的方法。首先對VOC2007數(shù)據(jù)集進(jìn)行訓(xùn)練,然后選擇效果最好的權(quán)重進(jìn)行遷移學(xué)習(xí)。設(shè)置模型訓(xùn)練的初始學(xué)習(xí)率為0.001,且每30個(gè)周期降低為之前的1/10,權(quán)值衰減為5×10-4,Batchsize設(shè)置為6,一共訓(xùn)練200個(gè)輪次。
圖6 樣本類別
本試驗(yàn)基于Pytorch深度學(xué)習(xí)框架并且采用Python編程語言來進(jìn)行,在Ubuntu18.04系統(tǒng)的服務(wù)器上,安裝CUDA11.1版本的環(huán)境,采用TC4系列的GPU進(jìn)行加速。
為了驗(yàn)證本研究提出模型的有效性,將噴水織機(jī)織物疵點(diǎn)數(shù)據(jù)集分別在SSD、Retinanet、傳統(tǒng)Faster RCNN以及本研究模型上進(jìn)行訓(xùn)練測試并對比,結(jié)果如表1所示。從表1中數(shù)據(jù)可知,本研究算法的mAP達(dá)到95.50%,相較于SSD獲得了11.83個(gè)百分點(diǎn)的提升,相較于Retinanet獲得了9.60個(gè)百分點(diǎn)的提升,相較于傳統(tǒng)Faster RCNN獲得了2.29個(gè)百分點(diǎn)的提升。而且對于這4個(gè)對象的平均精確度(AP),本研究算法比其他算法都要高,說明通過本研究改進(jìn)方法能有效提升噴水織機(jī)織物疵點(diǎn)的檢測效果。
表1 噴水織機(jī)織物疵點(diǎn)檢測結(jié)果對比
本研究訓(xùn)練試驗(yàn)損失值可視化如圖7所示??梢钥闯?,訓(xùn)練損失曲線和驗(yàn)證損失曲線都呈很快的下降趨勢并趨于穩(wěn)定,說明訓(xùn)練結(jié)果是收斂的;同時(shí)驗(yàn)證損失曲線低于訓(xùn)練損失曲線,表明訓(xùn)練過程沒有出現(xiàn)過擬合的情況,訓(xùn)練效果好。
圖7 損失值曲線
為了驗(yàn)證本研究提出的改進(jìn)方法的有效性,以4種噴水織機(jī)織物疵點(diǎn)為試驗(yàn)對象,分別設(shè)計(jì)了不同模塊的對比試驗(yàn)。
為了驗(yàn)證預(yù)處理對織物疵點(diǎn)檢測效果的影響,使用改進(jìn)的Faster RCNN模型分別對未預(yù)處理和有預(yù)處理的數(shù)據(jù)集進(jìn)行訓(xùn)練與檢測,并將檢測結(jié)果記錄在表2中。結(jié)果表明:本研究模型對經(jīng)過伽馬變換以及直方圖均衡化(預(yù)處理)后的數(shù)據(jù)集的檢測效果更好;4種織物檢測的AP都有不同程度的提高,尤其是厚段疵點(diǎn)的檢測效果提升明顯,較無預(yù)處理方案提高了3.68個(gè)百分點(diǎn)。本研究接下來的對比試驗(yàn)中均使用經(jīng)預(yù)處理的數(shù)據(jù)集。
表2 預(yù)處理對檢測效果的影響
為分析特征融合的有效性,本研究設(shè)計(jì)了以下3個(gè)對比試驗(yàn),并將結(jié)果記錄在表3中。結(jié)果表明:添加了特征融合模塊的ResNet50能有效提高模型的AP,mAP達(dá)到95.00%。除此之外,將ResNet50與VGG16對于模型的檢測效果做了對比,可以看出,ResNet50的特征提取能力更好。
表3 特征融合對檢測效果的影響
為驗(yàn)證ROIAlign映射方式對本研究模型精確度提升的有效性,設(shè)計(jì)映射方式采用ROIPooling和ROIAlign的對比試驗(yàn)(特征提取網(wǎng)絡(luò)采用改進(jìn)的ResNet50),結(jié)果如表4所示??梢钥闯觯成浞绞讲捎肦OIAlign的模型具有更好的檢測效果,mAP為95.50%;4種疵點(diǎn)中,卷皺的檢測AP最高,反映了ROIAlign作為映射方法對小目標(biāo)檢測的有效性。
表4 映射方式對檢測效果的影響
為了更直觀體現(xiàn)本研究方法的檢測結(jié)果,圖8可視化了當(dāng)輸入圖像分辨率為600 pixel×600 pixel時(shí),SSD、Retinanet、傳 統(tǒng)Faster RCNN與本研究算法在噴水織機(jī)織物疵點(diǎn)數(shù)據(jù)集上的測試結(jié)果。
圖8 不同算法與本研究算法的檢測結(jié)果對比
對比圖8展示的效果可看出,SSD對分辨率相對較低的目標(biāo)檢測效果較差,連入疵點(diǎn)沒有被檢測出來;Retinanet相比SSD檢測效果有所提升,但是分類精確度不高;傳統(tǒng)Faster RCNN的分類精度較高,但是缺陷定位效果較差,稀段、連入疵點(diǎn)不能夠準(zhǔn)確框?。幌噍^前3種算法,本研究算法的檢測效果最好,在分類精度與定位精度兩方面均有提高,驗(yàn)證了本研究算法對噴水織機(jī)織物疵點(diǎn)檢測的有效性。
對于噴水織機(jī)織物疵點(diǎn)對比度較低問題,本研究采用伽馬變換以及直方圖均衡化操作對疵點(diǎn)圖進(jìn)行預(yù)處理,能夠有效區(qū)分疵點(diǎn)圖的前景與背景。然后使用改進(jìn)的Faster RCNN方法對織物疵點(diǎn)數(shù)據(jù)集進(jìn)行訓(xùn)練檢測。首先利用特征融合模塊改進(jìn)特征提取網(wǎng)絡(luò)ResNet50,增強(qiáng)局部信息與全局信息的融合,提高模型的特征提取能力;接著特征提取圖經(jīng)過RPN層篩選出預(yù)選框,再通過ROIAlign將預(yù)選框映射到特定大小特征圖上送到檢測環(huán)節(jié),映射過程中取消量化操作,減少了映射誤差與均分誤差。通過對比,本研究提出的方法檢測結(jié)果較好,mAP值相較傳統(tǒng)Faster RCNN提高了2.29個(gè)百分點(diǎn);在搭載高性能GPU的試驗(yàn)平臺上的速度為16.85幀/s,基本可以實(shí)現(xiàn)實(shí)時(shí)性要求,今后會在速度方面展開進(jìn)一步的研究。