楊毅,桑慶兵
(江南大學人工智能與計算機學院,江蘇無錫 214122)
織物質量檢測一直以來都是紡織產業(yè)生產加工中的重要環(huán)節(jié),織物瑕疵的出現會直接影響企業(yè)的利潤。隨著企業(yè)生產效率不斷提升,傳統(tǒng)人工檢測的方法已不能適應大批量自動化生產檢測的要求[1]。因此,采用自動疵點檢測技術已成為提高織物質量、降低人工成本的必然趨勢[2],但是機器自動檢測織物瑕疵的效率和準確性仍面臨較大挑戰(zhàn)。
傳統(tǒng)織物瑕疵檢測方法主要分為結構法、統(tǒng)計法、頻譜法、模型法、基于學習的方法等[3]。MIRMAHDAVI等[4]將無瑕疵樣本輸入高斯混合模型訓練,通過實驗設定歐氏距離閾值進行瑕疵檢測。文獻[5]利用織物紋理的周期性,通過匹配缺陷位置的相對偏移量和傅里葉位移定理曲線,分割出織物瑕疵部分。然而,傳統(tǒng)算法存在缺陷分割性能差、噪聲敏感、漏檢率高等問題。隨著計算機算力的快速提升,深度學習被廣泛應用于織物視覺計算與處理領域。LIU等[6]提出一種基于CGAN[7]的多判別器模型,研究潛在匹配規(guī)則和服裝屬性之間關系,ZHAO等[8]開發(fā)了一個基于 雙向長短期記憶Bi-LTSM[9]模型的端到端服裝搭配學習框架,ZHANG等[10]提出使用GAN[11]從人體穿著服裝圖像生成具有真實紋理的平鋪服裝圖像。在織物瑕疵檢測任務中,深度學習方法具有較強的特征表征能力。文獻[12]采用深度學習方法,通過改進ResNet50[13]網絡提取特征,使用特征金字塔網絡過濾冗余特征,實現對織物瑕疵的檢測。以上檢測方法解決了部分織物瑕疵檢測問題,但目前織物檢測存在缺陷種類多,尤其是小目標缺陷較多,對實時性要求高的問題,給深度學習方法的應用帶來一定困難。
為滿足織物瑕疵數據檢測任務實時性需求,本文將YOLOv4[14]網絡的主干網絡替換為MobileNetv2[15],并使用CoordAttention[16]模塊對MobileNetv2 的逆殘差結構進行改進,增強其對小目標瑕疵的特征提取能力。采用自適應特征融合(Adaptively Spatial Feature Fusion,ASFF)[17]網絡改進路徑聚合網絡(Path Aggregation Network,PANet)[18]結構,提高小目標缺陷檢測精度。針對不同種類瑕疵長寬比差異大、原始先驗框尺寸不適用的問題,使用K-means++[19]算法進行瑕疵尺寸聚類,確定錨框尺寸,并采用Focal Loss[20]函數降低正、負樣本不平衡對檢測效果的影響。
目標檢測算法根據有無區(qū)域建議主要分為兩類:一類是無區(qū)域建議算法,通過一個卷積神經網絡直接對圖像各個位置上的候選框進行預測和分類,例如YOLOv4[14]與SSD[21];另一類是基于區(qū)域建議的算法,由區(qū)域提議和檢測2 個步驟組成,相較于無區(qū)域建議算法,其精度較高但速度慢,代表網絡有Faster R-CNN[22]等。
YOLOV4 是無區(qū)域建議目標檢測算法的代表之一,其結構如圖1 所示。其主干網絡CSPDarknet-53在YOLOv3[23]網絡的Darknet53 基礎上引進了CSPNet[24]模塊結構,相較于Darknet53 網絡,模型預測的準確率和推理速度均有所提高。頸部網絡包括空間金字塔池化(Spatial Pyramid Pooling,SPP)[25]和PANet 兩個部分,SPP 通過使用不同大小的滑動核,有效增加了網絡感受野,并將局部與全局的特征進行融合,增加了特征的豐富性。PANet 相較于FPN[26]網絡增加了自下而上的增強路徑,通過保留空間信息以增強實例分割過程。頭部網絡采用YOLOv3 網絡檢測頭,分別提取主干特征網絡最后3 層的圖像特征,生成邊界框和類別預測。
圖1 YOLOv4 網絡結構Fig.1 Structure of YOLOv4 network
YOLOv4 原始主干網絡CSPDarknet-53 雖然能有效提取深度特征信息,但結構復雜且參數量多,導致難以應用于計算資源較差、實時性要求高的織物瑕疵檢測任務中。
MobileNetv2 是一種輕量化的特征提取網絡,其核心為深度可分離卷積和具有線性瓶頸的逆殘差結構,具體如下:
1)深度可分離卷積。相較于普通卷積,深度可分離卷積能有效減少模型的參數量和計算量,其流程如圖2 所示。
圖2 深度可分離卷積流程Fig.2 Procedure of depth separable convolution
對于輸入為FH×FW×M的特征圖,FH、FW分別為特征圖的高和寬,M為通道數,對特征圖進行卷積操作,卷積核大小為K×K,卷積核數量為N,輸出特征圖大小為DH×DW×N,在對特征圖進行標準卷積的過程中,計算量C1和參數量P1的表達式如下所示:
對特征圖進行深度可分離卷積運算,計算量C2和參數量P2的表達式分別如下所示:
深度可分卷積與標準卷積計算量之比如式(5)所示:
若將深度可分離卷積的卷積核大小設為3×3,步長設置為1,按式(5)進行計算,其計算量下降為普通卷積的1/9,模型檢測速度得到大幅提高。
2)具有線性瓶頸的逆殘差結構。普通殘差塊先通過1×1 卷積將特征圖通道數降維,經過卷積提取特征后再擴張通道數。逆殘差結構與其相反,由于輸入通道數的增加有利于深度可分離卷積提取特征,所以先對特征圖通道數進行升維,以提取更多特征,再壓縮通道數。同時,為了消除Relu 函數對被壓縮特征的影響,在1×1 卷積降維后使用Linear 函數代替Relu 函數。
表1 所示為MobileNetv2 網絡的結構,可以看到MobileNetv2 網絡由多個具有線性瓶頸的逆殘差結構組成。
表1 MobileNetv2 網絡結構Table 1 Structure of MobileNetv2 network
在輕量級網絡上的研究表明,通道注意力會給模型帶來較顯著的性能提升。為提高模型對瑕疵特征提取能力,本文在MobileNetv2 逆殘差塊中加入新型注意力機制CoordAttention 模塊,如圖3 所示,通過將位置信息嵌入到通道注意力中,使網絡能夠更好地獲取空間方向的特征信息,使小目標檢測定位更加精確,同時也能避免產生大量的計算開銷。
圖3 加入CoordAttention 模塊的逆殘差結構Fig.3 Inverse residual structure with CoordAttention module
CoordAttention 的運算過程由坐標信息嵌入和坐標注意力生成兩步組成,具體過程如下所示:
1)坐標信息嵌入。相對于全局池化壓縮全局空間信息,導致位置信息難以保存,CoordAttention 模塊使用一對一特征編碼操作替換全局池化,并分別沿2 個空間方向聚合特征,得到一對具有空間信息的特征圖,從而有利于網絡更準確地定位感興趣的目標。
2)坐標注意力生成。將生成的特征圖進行拼接,然后使用1×1 卷積生成具有水平和垂直方向空間信息的特征圖,如式(6)所示:
其中:[·,·]為沿空間維數的concatenate 操作;F為1×1卷積變換函數;δ為非線性激活函數;zh、zw分別為水平與豎直方向特征圖。得到同時具有水平、豎直方向空間信息的特征圖之后,按空間維度將f分解為兩個獨立的張量,并使用1×1 卷積與sigmoid 激活函數對張量分別進行處理,將結果gh、gw分別展開作為水平與豎直方向的注意力權重,其表達式如下所示:
其中:σ是sigmoid 激活函數;Fh和Fw為1×1 卷積變換。將權重與輸入的特征圖相乘,使原始特征圖具有注意力權重,增強聚焦特征能力。使用嵌入CoordAttention 模塊的逆殘差替換原網絡中的逆殘差結構,提升MobileNet 網絡提取精確位置信息和感興趣領域的能力,且不過多增加計算開銷。相較于SE 模塊[27]只考慮通道間信息的編碼而忽視位置信息,CBAM 模塊[28]僅能捕獲局部相關性而無法捕獲更大區(qū)域的依賴關系,而CoordAttention 模塊對于特征信息的提取更全面。
深層特征圖具有較強的語義信息,但分辨率低,細節(jié)感知能力差,適合大目標檢測。淺層特征圖感受野小,包含更多位置、信息細節(jié),且?guī)缀伪碚髂芰姡m合小目標檢測。PANet 網絡結構如圖4 所示,YOLOv4 使用該結構進行多尺度特征融合,
圖4 PANet 網絡結構Fig.4 Structure of PANet network
PANet 網絡在原有FPN 自上而下的特征融合路徑(如圖4(a)所示)的基礎上,增加自下而上的增強路徑(如圖4(b)所示),通過對淺層與深層特征圖的反復提取,融合不同尺度特征圖的特征信息。但PANet 網絡的融合方式只是簡單地將特征圖轉換成相同尺度再相加,不能充分利用不同尺度的特征。使用ASFF 網絡改進PANet 結構,通過給不同尺度的特征融合分配自適應的權重參數,實現多尺度特征圖的高效融合,改進后的PANet 結構如圖5 所示。
圖5 改進后的PANet 網絡結構Fig.5 Structure of improved PANet network
以ASFF-2 的計算過程為例,ASFF-2 由特征圖Level 1、Level 2 和Level 3 融合得到,Level 1 通過1×1卷積將通道數調整到與Level 2 一致,再用插值方式調整尺寸與Level 2 一致,得到X1→2;對Level 3 特征圖進行stride=2 的3×3 卷積操作,并調整通道數與Level 2 一致,得到X3→2。Level 2 特征層即X2→2,最后利用卷積核為1×1 的卷積操作壓縮通道數,沿通道方向拼接,再使用卷積將通道數降為3,對3 個通道上的特征圖使用softmax 函數處理,分別得到X1→2、X2→2、X3→2的融合權重αij、βij、γij。ASFF網絡的融合過程表達式如式(9)所示:
ASFF 網絡實現了αij、βij、γij這3 個比例參數的自適應調整,將其作為網絡模型的可更新參數,通過誤差梯度反向傳播更新融合權重,使模型的多尺度特征融合更加充分,能更有效地利用特征,提高模型對小目標瑕疵的檢測能力。
YOLOv4 的先驗框是在PASCAL VOC 數據集中采用K-means 算法聚類而來,織物瑕疵數據集中小目標瑕疵較多,粗經、軋痕等瑕疵長寬比較大,因此需要針對織物缺陷數據集聚類出先驗框。傳統(tǒng)K-means 聚類算法結果不穩(wěn)定且易陷入局部最優(yōu),導致聚類先驗框與實際目標匹配度低,影響檢測精度。本文使用K-means++聚類算法穩(wěn)定初始化聚類中心選擇,具體過程如下:
1)在數據點之間隨機選擇一個聚類中心;
2)計算每個樣本與當前已有聚類中心最短距離D(x),數據點被選取作為聚類中心的概率與D(x)大小正相關,使用輪盤法選出下一個聚類中心;
3)重復步驟2 直到選擇出k個聚類中心點。
K-means++能夠優(yōu)化初始聚類中心點的選取,從而改善分類結果誤差,修改后的anchor box 大小分別為(4,15)、(8,10)、(12,48)、(22,52)、(36,55)、(46,52)、(55,396)、(65,118)、(228,38)。
由于織物瑕疵數據中瑕疵區(qū)域占整個織物圖像的比例很小,若將不含瑕疵的區(qū)域當做負樣本,含瑕疵的區(qū)域為正樣本,則不含瑕疵區(qū)域的負樣本數量遠多于含瑕疵的正樣本數量。正負樣本數量嚴重失衡可能導致給模型提供的瑕疵特征較少,影響模型收斂,因此采用Focal Loss 函數優(yōu)化分類損失。類別損失、置信度損失和位置損失共同構成YOLOv4 的損失函數,其中,原始YOLOv4 的類別損失為交叉熵損失函數,其表達式如式(10)所示:
其中:L表示交叉熵;C表示分類種類數;y為期望輸出,表示經過激活函數后的輸出。改進后的Focal loss 函數表達式如式(11)所示:
其中:α為矯正系數,作用是平衡樣本數量;β為超參數,一般取2。通過引入α 和β 兩個約束參數,可以在網絡訓練過程中自動對正負樣本不平衡進行調整。
本次實驗操作系統(tǒng)為Windows10,CPU 為Intel Core i7-8700K,內存16 GB,GPU 為NIVIDA GeForce GTX1080,顯存8 GB,選用Pytorch 作為深度學習框架,開發(fā)工具為Pycharm2019.1。初始學習率設定為0.001,Momentum 動量參數設為0.2,IOU 閾值設置為0.5,共訓練300 個epoch。
本次實驗所使用的數據集來自阿里天池布匹疵點數據集,為驗證本文改進算法在織物瑕疵檢測任務,尤其是對小目標瑕疵檢測任務中的性能提升,從其中選取實際生產較為常見的6 種缺陷,包括結頭、三絲、破洞、粗經、緯縮和軋痕圖片共2 026 張,其中結頭、三絲、破洞為小目標瑕疵。采用圖像翻轉、圖像縮放、圖像融合等數據增強方式擴充至8 104 張,處理訓練圖片大小為608×608 像素,各類瑕疵圖片數量如表2 所示,訓練集、測試集和驗證集的劃分比例為8∶1∶1。
表2 阿里天池布匹疵點數據集的類別統(tǒng)計結果Table 2 Statistics results of alibaba tianchi fabric defect dataset category
本文實驗的評價指標為平均精度(Average Precision,AP),平均精度均值(mean Average Precision,mAP),幀率(Frame Per Second,FPS),FPS 指模型每秒能夠檢測的圖片數量,可以作為檢測速度的衡量指標。平均精度指標的表達式如下所示:
其中:p為準確率;r為召回率。準確率和召回率的表達式如下所示:
其中:TTP、FFP分別表示正確、錯誤判斷的瑕疵樣本個數,FFN為被錯誤檢測的負樣本數量。
平均精度均值的表達式為:
為驗證本文算法在織物瑕疵檢測任務中的性能,將主流目標檢測算法Faster-RCNN[20]、YOLOv4、YOLOv4-Tiny、YOLOv4-MobileNet 與本文改進YOLOv4 算法在相同的數據集上進行訓練,結果如表3 所示。由表3 可知,Faster-RCNN 算法的mAP 較高,但檢測速度較慢,模型體積大,對算力要求高,難以滿足織物瑕疵檢測實時性的要求。將本文改進YOLOv4 算法與YOLOv4 算法相比,mAP 提升2.3 個百分點,檢測速度提升了12 frame/s,且本文模型體積相較于YOLOv4 算法大幅減少,能夠滿足工業(yè)生產部署需求。YOLOv4-Tiny 算法是輕量級檢測算法的代表之一,參數量僅為YOLOv4 算法的1/10,檢測速度滿足實時性需求,但結構簡單,無法滿足檢測精度要求。
表3 主流算法與本文算法的對比Table 3 Comparison between mainstream algorithm and improved algorithm in this paper
由表3 還可知,本文算法的mAP 相較于YOLOv4-Tiny 算法高9.06 個百分點。將YOLOv4 原特征提取網絡CSPDarkNet53 替換為MobileNet 網絡后,檢測速度提升了15 frame/s,mAP 減少5.58 個百分點,原因是特征提取網絡層數減少,導致特征提取的效果下降,但模型計算量減小,檢測速度有所提高。與僅將YOLOv4 主干網絡替換為MobileNet 的算法對比,本文算法mAP 提升了7.88 個百分點,這充分說明ASFF 算法對PANet 網絡改進的積極作用。在MobileNet 逆殘差塊中加入CoordAttention 模塊,在沒有增加較多模型體積的前提下,提高了模型的mAP,檢測速度僅降低3 frame/s。
通過對比實驗數據,本文算法在織物瑕疵檢測任務中相較于大型網絡檢測mAP 相近,檢測速度更快,模型體積更小。相較于輕量級網絡,本文算法瑕疵檢測能力更強,mAP 更高,更適用于織物瑕疵檢測任務。
為驗證ASFF 算法、CoordAttention 注意力模塊和Focal Loss 損失函數對模型性能的影響,以將主干網絡替換為MobileNet 的YOLOv4 算法作為基準,對加入的模塊進行消融實驗。實驗結果如表4 所示,其中“×”表示不加入,“√”表示加入。
表4 消融實驗結果Table 4 Results of ablation experiment
由表4 可知,在MobileNet 網絡的逆殘差結構中插入CoordAttention 注意力模塊后,小目標瑕疵的AP 分別提升了3.83、3.75、4.54 個百分點,緯縮、粗經、軋痕三種缺陷的AP 也所提升,這說明加入CoordAttention 注意力模塊提高了MobileNet 的特征提取能力,可以捕獲更精確的位置信息與缺陷特征,對于小目標瑕疵檢測效果較好。在此基礎上加入使用ASFF 網絡改進的PANet,相較于原始的PANet,改進后的PANet 在結頭、三絲、破洞等小目標缺陷上的AP 分別提高了3.85、4.03、3.48 個百分點,表明相較于原始的PANet 網絡,使用ASFF 網絡改進PANet 結構,利用多尺度特征圖將模型訓練學習到的權重進行融合,能大幅提升對小目標瑕疵的檢測能力。最后,加入Focal Loss 損失函數,能使算法整體mAP 和精度提高。
為驗證本文算法相較于原始YOLOv4 算法在織物瑕疵檢測任務中的優(yōu)勢,選取結頭、三絲、破洞圖片各一張,進行檢測結果對比,YOLOv4 與本文算法檢測結果對比如圖6 所示。圖6 中6 組檢測效果圖中,左側為YOLOv4 檢測效果,右側為本文算法的檢測效果。從中可以看出,原始YOLOv4 算法在結頭、三絲等小目標瑕疵檢測中存在漏檢情況,本文算法有效改善了漏檢情況,并且檢測置信度值得到了明顯提高。這充分說明CoordAttention 模塊對逆殘差結構的改進,增強了模型對于小目標瑕疵的聚焦能力。ASFF 網絡對PANet 的改進,充分融合與利用多尺度特征圖的信息,有效增強了對于小目標瑕疵的檢測性能。同時,通過K-means++聚類算法聚類先驗框使模型檢測框更加適用于粗經、軋痕等長寬比較大的瑕疵類型檢測。
圖6 YOLOv4 算法與本文算法檢測效果對比Fig.6 Comparison of detection effect between YOLOv4 algorithm and algorithm in this paper
本文提出一種基于多尺度特征自適應融合的輕量化織物瑕疵檢測算法,通過在MobileNetv2 網絡的逆殘差塊中加入CoordAttention 注意力模塊,并使用該網絡作為YOLOv4 主干網絡,減少參數總量與計算量,增強網絡聚焦小目標瑕疵特征能力。使用自適應空間特征融合結構改進PANet 網絡,提高小目標瑕疵檢測精度,采用K-means++算法獲得適合的候選框,并使用Focal Loss 函數優(yōu)化分類損失降低正、負樣本不平衡對檢測結果的影響。實驗結果表明,本文算法相較于原始YOLOv4 算法的平均精度均值提升了2.3 個百分點,幀率提高了12 frame/s,模型體積大幅減少。下一步將通過知識蒸餾和模型剪枝技術,在保證檢測精度的基礎上降低參數量和計算量,提高模型檢測速度,并針對瑕疵特征改進模型,提高算法的檢測精度。