李 輝,呂祥聰,徐凌偉,申貝貝
(青島科技大學 信息科學技術學院,山東 青島 266061)
布匹瑕疵的檢測是紡織業(yè)急需解決的一大難題,在生產布匹的過程中,一旦出現缺陷,沒能及時發(fā)現,通常會大批量的生產,將會造成無法彌補的損失,一旦流入市場,將直接影響企業(yè)的信譽,且目前的布匹瑕疵檢測方法,依舊大多數采用人工結合放大鏡進行質檢,但由于無法克服自身的生理因素,容易出現大量漏檢和誤檢。因此,布匹瑕疵檢測對于紡織業(yè)生產具有重要的研究價值和研究意義,通過專門的布匹檢測方法應用到視覺儀器上,用機器代替人工質檢,可以有效提高布匹瑕疵的檢測率,產出更高質量的布匹。當前布匹檢測方法主要分為兩大類,傳統(tǒng)的檢測方法和基于深度學習的布匹檢測方法,傳統(tǒng)的布匹檢測方法除了人工檢測,還有利用波譜檢測[1]、數學統(tǒng)計[2,3]、圖像差分[4,5]以及圖像紋理[6]等方法進行布匹瑕疵特征提取,上述傳統(tǒng)方法可以實現某種布匹瑕疵的檢測,但是往往只針對一種瑕疵設計,魯棒性和遷移性較差,檢測能力有限,且無法真正應用到市場中,通常只在仿真中實現。目前采用基于深度學習的檢測方法,是當今目標檢測研究的主要方向,采用深度學習可以更加有效的學習到目標特征,對目標的檢測率更高,且精度遠高于傳統(tǒng)的檢測方法,可以最大化的節(jié)省人力,提高生產的效率[7,8]?;谏疃葘W習[9,10]的檢測方法主要分兩階段[11,12]和單階段[13,16]檢測方法,Qin等[17]提出了多分支殘差網絡的布匹缺陷檢測研究,該方法在原有殘差模塊的基礎上,增加了一個新的卷積分支,隨著網絡層數動態(tài)調整感受野的大小,然后在下采樣階段替換了殘差模塊,提出了一種新的多分支殘差骨干網。Wei等[18]首先利用瑕疵圖像的特征,減少了Faster RCNN中的錨點數量,然后在候選區(qū)域階段生成前景錨點和邊界框回歸,最后反饋到感興趣區(qū)域進行分類。Yan等[19]提出了改進的深度殘差網絡進行素色布匹瑕疵特征提取,再通過設計特征金字塔和候選區(qū)域網絡實現對瑕疵點的分類與檢測。Liu等[15]提出了基于SSD算法的自適應素色布匹瑕疵檢測方法,采用特征金字塔的方式加強了特征圖之間的傳遞,緩解了梯度消失問題,但該方法對小目標瑕疵檢測準確率有待提高。Zhao等[20]針對SSD對小瑕疵目標檢測效果不理想,提出了將多尺度特征融合用于布匹瑕疵小目標的檢測,該方法在多層特征提取時引入殘差模塊,通過多尺度特征融合提高了模型對小瑕疵目標的檢測率。Jing等[21]提出了改進的YOL Ov3模型用于素色布匹瑕疵檢測,該方法首先通過結合布匹瑕疵尺寸和k-means算法對目標瑕疵進行維度聚類,然后將底層特征與高層信息相結合,在不同大小的特征圖上加入YOLO檢測層,雖然方法檢測速度快,但是對于瑕疵檢測效果精度較差。
當前布匹缺陷檢測任務的難點主要有以下幾個方面:(1)小目標問題,布匹中的一些瑕疵特征極其小且數目繁多,難以用肉眼進行判別。(2)極端長寬比,布匹中的各類瑕疵形狀各不相同,尺寸跨度極大。(3)樣本不均衡,樣本不均衡是指部分疵點擁有大量的訓練樣本,而另一部分瑕疵點則只有少數的樣本;已有的目標檢測算法都難以解決小目標瑕疵、尺度變化大、樣本不均衡等布匹疵點的漏檢和瑕疵準確定位低的問題,因此本文提出了一種融合形變卷積和自注意力的素色布匹瑕疵檢測方法。該方法(1)針對原始的Res-Net[11]中殘差模塊中由于目標幾何畸變而導致特征圖對瑕疵特征表達能力不足的問題,提出了融合形變卷積(DCN)[22]的多尺度特征提取,從而提升模型對不規(guī)則瑕疵特征的表達能力。(2)針對數據集中小目標瑕疵居多的問題,提出了雙通道特征融合模塊,通過引入自注意力機制[23,24]自適應地融合深層的語義信息與淺層的結構信息,提高小目標瑕疵的準確率。(3)針對布匹瑕疵中尺度變化懸殊的疵點,在候選區(qū)域(RPN)階段設計自適應邊界框生成器,引導初始錨定框設計,適應極端長寬比的目標,利于后續(xù)檢測框回歸,使檢測效果進一步優(yōu)化。
本文提出的布匹瑕疵檢測方法主要分為三部分:(1)設計融合形變卷積的多尺度特征提取網絡,從而更好地處理布匹圖像中的目標形變問題,有效提取瑕疵特征;(2)由于布匹瑕疵中小目標占比較多,在骨干網絡后接入多通道注意力聚合網絡,生成新的具有強語義和精確位置信息的特征圖;(3)在RPN階段,設計自適應錨框聚類生成器,獲得更緊密的包圍框,同時級聯具有不同IOU閾值的檢測網絡逐級完成瑕疵的精確定位。
本文采用的特征提取骨干網絡是殘差網絡Res Net,主要有五個特征提取層,第一個特征提取層,包含卷積核、批處理以及最大池化層。其余四個特征提取層,分別用同樣結構的殘差模塊組成,經過深度殘差網絡特征提取,輸出五個特征表示層C1到C5,針對布匹瑕疵呈現出的極端長寬比,常規(guī)卷積不能有效進行特征提取,因此本文在C3到C5特征提取層,通過融合形變卷積替換常規(guī)卷積對布匹瑕疵進行特征提取,整體網絡提取過程如圖2所示。
圖2 Res Net引入DCN模塊網絡結構圖
本文在骨干網絡的最后三個階段采用形變卷積替換普通卷積,通過學習中心點的偏移和權重,使采樣點感受野可以根據目標特征進行自適應變化,以此來適應不同形狀的瑕疵,緩解了傳統(tǒng)卷積采樣無法適應目標的幾何形變問題,具體結構如表1所示,改進后的骨干網絡更能適應布匹疵點的極端長寬比,有利于疵點的精確檢測。
表1 融合形變卷積的多尺度特征提取網絡結構
常用特征聚合方式是通過將不同的特征圖進行重新放大或者縮小到統(tǒng)一尺度,再進行簡單的通道相加,將不同特征的通道信息進行融合,可以有效地提高特征圖的語義信息,但該特征聚合方式仍有一定的不足,對于一些小目標的特征信息表現的不是明顯,容易丟失,因此,本文通過改進自注意力機制,提出多通道特征聚合網絡模塊(MCFA)。該注意力網絡,可以融合特征圖中目標的關鍵信息,增強目標的特征與位置信息,尤其是對于小目標瑕疵,可以有效地解決小目標瑕疵特征難提取問題,提高網絡處理極端目標的檢測能力,增強網絡的魯棒性。
1.2.1 特征通道注意力模塊。采集到的布匹圖像中,小目標的數量占比較大,在布匹瑕疵檢測任務中,為了獲取更多小瑕疵目標特征信息,本文提出了改進的特征通道注意力網絡,該網絡通過將其中一個全局最大池化層去掉,采用全局平均池化層,減少池化層造成小目標瑕疵信息的丟失;其次將另一個全局最大池化層改為全局未池化層,增強小瑕疵目標的特征信息,對每個特征通道建模,產生特征依賴關系,使得特征通道獲取更多的權重。詳細的網絡結構如圖3所示,首先將特征圖F∈R H×W×C進行全局平均池化層Favg∈R C×1×1和全局未池化層Fno∈R C×1×1,生成兩個不同的特征通道層,再經過兩個全連接層增加或減少通道數,將兩個不同的特征層通道數變成一致,再結合激活函數Rel u,對特征層賦予不同的權重,再進行特征通道逐元素相乘聚合兩個特征層的通道信息,最終得到特征通道注意力圖FCA∈R C×1×1。
圖3 通道注意力模塊結構圖
1.2.2 空間注意力模塊。由于特征通道注意力網絡只對目標特征進行了增強,但沒有對目標位置信息進行建模,對于一些小瑕疵的位置信息,依然不能很好定位,出現一定的偏移。因此,在上述特征通道注意力網絡的基礎上,提出了空間通道注意力網絡,通過在空間通道中,對瑕疵位置信息進行加權,空間選擇性的聚合每個瑕疵的位置信息,實現更加精準的定位??臻g通道注意力網絡具體的過程如圖4所示。
圖4 空間注意力模塊結構圖
通過將特征通道注意力輸出的特征圖與低層的特征圖作為空間通道注意力網絡的輸入端,首先將該兩個特征圖進行簡單通道拼接,保留更多的低層特征信息,再進行批處理BN層,再通過Rel u層的1×1的卷積生成兩個特征圖F1和F2。先對F1重塑再轉置,即得到矩陣QT,將F2重塑為M矩陣,最后將QT與M矩陣進行相乘,再經過Sig moid函數生成空間通道注意力矩陣,表達公式如
再將生成的空間通道注意力矩陣與特征通道注意力矩陣進行逐元素相加,生成多通道注意力特征圖。表達公式如
在Cascade RCNN的候選區(qū)域建議網絡(RPN)階段,一般來說,會設置一些固定大小的先驗框,如圖5(a)所示,縱橫比通常為0.5、1.0、2.0,這樣網絡就可以從真實框中學習先驗框的偏差值。但是在布匹瑕疵檢測樣本圖片中,由于布匹疵點的特殊性,經常存在任意形狀和尺度大小不一的瑕疵點。如果通用先驗框的尺寸設計的不合理,很容易使得真實瑕疵目標與相對應的Anchor存在過大過小的情況,導致最終模型擬合效果較差。為了使算法模型在訓練過程中可以實現較理想的收斂效果,增大布匹瑕疵檢測的準確率,本文改進基于K-means聚類算法,設計了自適應邊框生成器。重新設計針對布匹瑕疵數據較為合適的Anchor尺寸,使得生成的候選框(Anchor box)和與之臨近的真實框(Gr ound tr uth)有更大的交并比,如圖5(b)所示。這樣設計不僅能夠加快模型收斂速度,而且還能有效提高檢測瑕疵的精度。
圖5 Anchor與IOU
傳統(tǒng)聚類方式使用歐式聚類作為度量標準進行聚類,這種方式對于布匹瑕疵數據集中存在的縱橫比懸殊問題并不適用。為了適應布匹瑕疵數據集分布特點,本文采用一種新的度量方式IOU度量替換歐式距離度量,指導Anchor對錨框大小進行聚類。過程如式(3),其中b是標注的真實邊界框,c是聚類的中心點,
詳細描述如:(1)聚類使用的原始數據為訓練集中的布匹瑕疵數據,其中包含的信息為樣本集中真實瑕疵框坐標信息。(2)對于每類瑕疵,隨機選取k個初始聚類中心點,每一個聚類中心代表一類瑕疵集簇。(3)對所有的真實標注框按公式(3)計算與k個瑕疵中心點的距離,并將各標注框歸類給距離最近的聚類中心,形成k個簇。(4)所有瑕疵集標注框分配完畢以后,對每個簇重新計算聚類中心點,計算公式為
(5)重復(3)和(4),直到算法計算得到最優(yōu)的錨定框,具體過程如算法1所示。
算法1:自適應邊框生成器算法輸入:每類待聚類瑕疵樣本集真實邊界框:B={b i,i∈{1,2,…,n}}初始Anchor大小:A={a j,j∈{1,2,…,m}}輸出:最優(yōu)初始錨定框 A*={a j1,j 1∈{1,2,…,m}}算法過程:1 Repeat 2 令Cj=?,j∈{1,2,…,m}3 f or i=1,2,…,n do 4 d ij=1-IOU(b i,a j) //計算真實邊界框和當前Anchor的距離5 λj=arg min i∈{1,2,…,m}d ij//距離最近的Anchor確定的b i簇標記6 Cλj=Cλj∪{b i} //將真實邊界框b i劃入相應的簇7 end f or 8 A*=? 9 f or j=1,2,…,m do 10 μj=1 Cj∑bi∈cj b i //計算新的Anchor大小11 A*=A*∪μj //將計算的Anchor大小添加到A*中12 end f or 13 Until達到最大迭代次數獲得最優(yōu)錨定框
實驗環(huán)境:本文實驗所有的環(huán)節(jié)在Ubunt u18.04系統(tǒng)上搭建,內存為64位,顯卡為NVIDIA GeForce RTX 3080Ti,代碼的運行環(huán)境為Python3.8,使用Pytorch作為本文的代碼實驗框架。為了排除其他相關變量對實驗結果的影響,所有實驗都是基于上述環(huán)境進行訓練和測試的。
實施細節(jié):實驗數據集采用COCO[25]數據集的格式,模型使用的優(yōu)化器類型為Adam優(yōu)化器,其中初始學習率為0.000 1,動量為0.9,Batch Size設置為8,衰減系數為0.001,訓練步數為20 000,為了加快收斂速度,使用了COCO的預訓練權重,并設置了梯度裁剪來穩(wěn)定訓練過程,避免產生梯度爆炸或梯度消失。
數據集:實驗采用的數據集來自天池布匹挑戰(zhàn)大賽布匹瑕疵圖像,素色布匹圖片一共9 596張,其中包含正常圖片3 683張和瑕疵圖片5 913張,每張瑕疵圖片中包含1種或多種瑕疵,圖像分辨率為2 446×1 000,在實驗中,對所有的瑕疵圖像按照8∶2劃分訓練集與測試集。樣本集中包含紡織工業(yè)中常見的20類瑕疵類別,如破洞、污漬、三絲、結頭、毛粒、松經、斷經等,數據集樣本瑕疵分布及數量如表2所示。
表2 布匹瑕疵的分類與數量
表2真實的反映出數據集的瑕疵類別分布極不平衡的問題,其中,結頭瑕疵點達到了1 996,而白腳瑕疵點僅有161,圖6為數據集中不同類型瑕疵點的目標數統(tǒng)計,不同瑕疵點間數目差異巨大,種類分布嚴重不均,例如結頭近2 000個樣本,而花板跳只有123個樣本,這容易產生過擬合,使訓練出來的模型泛化能力較差,圖7為不同面積目標的數量占 比其中小目標占比較高約四分之一,這些都給布匹疵點的檢測帶來了困難。
圖6 不同類別目標數統(tǒng)計
圖7 目標面積統(tǒng)計
為達到理想訓練效果,在訓練深度學習網絡模型時,通常需要大量的瑕疵樣本,因此本文采用數據增強的方式對原始的瑕疵樣本進行數據擴充,為避免失真,對原始瑕疵樣本集分別進行水平和垂直方向的翻轉,并對其疵點較少的樣本進行對稱變化等方式數據擴充,數據增強后的瑕疵樣本圖片數量為原來的2倍。
圖8是采用不同算法訓練時模型的損失收斂變化情況,從圖中可以看出,損失曲線逐漸擬合于所訓練的布匹瑕疵數據集。本文所提出的方法模型擁有更好的收斂性,并且誤差也降低到較低的水平,這是由于通過融合形變卷積的多尺度特征提取,引入自注意力機制使模型表現出更強的判別瑕疵特征的能力,在RPN階段采用自適應邊框生成器,指導初始錨設計,從而使所提出的方法擁有更好的收斂性。
圖8 模型的損失收斂曲線圖
圖9展示了不同類別的布匹瑕疵特征圖可視化,其中特征圖中紅色部分為重點關注的瑕疵區(qū)域部分,顯而易見,對于不規(guī)則、尺度變化大和小瑕疵的目標,該模型成功捕獲到了布匹的瑕疵特征。最主要的原因歸于采用自注意力機制設計了雙通道特征融合,通過進行自適應的調整融合獲取更為有效的瑕疵特征,使得模型更加關注瑕疵特征,表現出更強判別極端瑕疵特征的能力。
圖9 布匹瑕疵特征圖可視化
為了分析和評價提出的瑕疵檢測方法的性能,設置4組對比實驗,采用準確率(Acc)、平均精度均值(mAP)、F1度量(F1-Score)和誤檢率(NF)四個評價指標綜合說明算法的瑕疵和缺陷檢驗的準確性和有效性。
(1)驗證融合形變卷積多尺度特征提取網絡對模型性能的有效性,即在級聯網絡模型中分別以Resnet50、Resnet101以及加入形變卷積后的實驗對比。從表3中可以看出,在Resnet101中加入形變卷積后,準確率提高了1.56個百分點,且誤檢率降到了6.02%,這說明引入形變卷積后,多尺度特征提取網絡獲得具有更多瑕疵的關鍵信息的特征圖,使算法更精確的對不規(guī)則瑕疵進行定位。
表3 不同特征提取網絡對比結果
(2)多通道特征聚合網絡(MCFA)對模型性能的有效性,實驗對比如表4所示。從表4中可以看出,在基線方法的基礎上,添加特征通道注意力模塊后(TA),模型的mAP提升了0.75%,然后添加空間注意力模塊后(PA),模型的mAP提升了0.66%,說明了空間注意力模塊有助于定位小目標疵點特征;添加MCFA,本文模型的mAP提升了2.49%,且準確率達到95.84%,從而證明了MCFA的有效性。利用注意力機制篩選出語義信息更豐富的小瑕疵特征,緩解了小瑕疵目標特征表達的不足,實現了更準確的瑕疵識別與定位。
表4 不同特征融合性能對比結果
(3)驗證自適應錨框聚類對模型性能的有效性。實驗對比結果如表5所示,針對松經、斷經、吊經這類瑕疵極端長寬比的情況,采用自適應邊界框生成器后,平均檢測精度均提升明顯,充分說明了自適應錨框聚類算法的有效性。這得益于生成器計算最優(yōu)錨定框后,錨定框的尺寸適用于部分瑕疵極端長寬比的比例值,平均檢測精度提升的主要原因是初始錨定框設計的更加合理,尺寸適應布匹瑕疵真實框大小,利于后續(xù)的檢測和回歸,有效緩解極端瑕疵長寬比懸殊大對模型檢測性能的影響,增強瑕疵檢測模型的學習能力。
表5 部分瑕疵AP對比結果
(4)提出方法與其他先進的一階段和兩階段方法進行了實驗對比。表6為本文提出的方法與其它先進檢測方法在素色布匹瑕疵數據集上的效果比較,可以看出,級聯檢測器采用級聯的結構,設計了多個檢測器,
表6 不同網絡瑕疵檢測結果
通過逐步提升檢測框的IOU閾值,所以檢測準確率要優(yōu)于Mask RCNN、Retina Net、YOL Ov5等,與未改進的原Cascade RCNN相比,在檢測時間增加8.69 ms的前提下,準確率達到98.14%,mAP值提升16.7%。從實驗結果可以看出,本文所提方法單張樣本瑕疵檢測用時70.32 ms,可以滿足實際工廠車間生產要求,且平均檢測精度和準確率都達到了最高,因此本文方法對不規(guī)則瑕疵、小目標瑕疵和尺度變化大的瑕疵適用性更強。
為了驗證改進后模型對素色布匹瑕疵的檢測性能,在測試集中針對不同瑕疵類別進行測試。圖10給出了本文方法在素色布匹瑕疵數據集上的效果圖,其中,左側數字表示瑕疵類別,右側數字表示檢測精度,從該圖中可以看出,所提出的檢測方法對目標瑕疵的邊界識別更加精準,對小目標的檢出能力更強,疵點檢測效果更好;對瑕疵尺度變化大的目標檢測效果也相對較好,能夠得到精確地包圍框和較高的分類得分。
圖1 瑕疵檢測網絡框架圖
圖10 布匹瑕疵檢測結果
布匹瑕疵的自動檢測是工業(yè)界的重要研究熱點。將深度學習算法應用于布匹瑕疵檢測對于提高布匹瑕疵檢測性能有著重要意義。本文分析了實際工廠車間素色布匹瑕疵的特點,針對素色布匹中瑕疵不規(guī)則、小瑕疵目標多、瑕疵縱橫比懸殊等問題,提出了融合形變卷積和自注意力的素色布匹瑕疵檢測方法。通過融合形變卷積的多尺度特征提取、構建雙通道特征聚合的注意力模塊和采用自適應邊框生成器的方式,有效地提升了布匹瑕疵點的檢測精度。經實驗對比分析發(fā)現,這些改進很好地解決了不規(guī)則瑕疵、小目標瑕疵和瑕疵縱橫比懸殊帶來的負面影響,同時在素色布匹瑕疵數據集的消融實驗和性能對比實驗表明,對20種素色布匹瑕疵的整體檢測準確率達到了98.14%,平均精度均值為68.31%,單張瑕疵圖片的檢測時間為70.32 ms,優(yōu)于當前主流的素色布匹瑕疵檢測方法,證明了提出方法的先進性。但由于是采用兩階段的級聯檢測器,該模型存在較多參數,影響了檢測時間。因此,在保證檢測精度的同時減少參數量,使模型更加輕量化,更好的滿足實時性應用和需求,將是下一步的研究方向,未來還可以考慮在實際工廠車間對動態(tài)視頻識別處理,嘗試對動態(tài)視頻進行研究,更具有實際意義。