劉雙輝,易燦燦,肖 涵,黃 濤
(武漢科技大學 a.冶金裝備及其控制教育部重點實驗室;b.機械傳動與制造工程湖北省重點實驗室;b.精密制造研究院,武漢 430081)
冷軋帶鋼是汽車制造、家電制造、輕工等眾多行業(yè)的主要原材料[1],但在帶鋼軋制過程中,由于原料、軋制設備和加工工藝等方面的原因,帶鋼表面時常會出現(xiàn)夾雜、結疤、擦傷和壓痕等缺陷。這些缺陷會給鋼鐵企業(yè)和產品用戶帶來不可估量的經濟損失[2]。傳統(tǒng)的帶鋼表檢方法具有準確率不高、效率低等特點,難以滿足企業(yè)的生產要求[3]。近年來,隨著深度學習(deep learning,DL)的提出與發(fā)展,卷積神經網絡(convolutional neural networks,CNN)被廣泛應用于帶鋼表面缺陷識別[4-5]。
針對CNN計算量大的問題,近年來,已經提出了許多不同的方法來提高其計算效率,包括網絡剪枝、權重量化、知識蒸餾、設計高效網絡等[6-7]。然而,上述方法主要是更改網絡的結構和參數(shù),所構造的是靜態(tài)的網絡,均采用相同的網絡架構與參數(shù)進行推理,這在一定程度上限制了模型的計算效率。與靜態(tài)網絡不同的是,動態(tài)神經網絡可以在處理不同的樣本時,動態(tài)的調節(jié)網絡結構和參數(shù),這樣可以極大的減少計算量[8]。在此基礎上,為了解決高分辨率圖像存在空間冗余的問題,HUANG等[9]提出掃視-聚焦網絡(glance and focus network,GFNet)框架,該框架對于不同的輸入圖像,可以自適應地處理其與任務最相關的區(qū)域,以小的計算量得到可信的結果。因此,本文基于GFNet結構提出了一種適用于帶鋼表面缺陷識別的網絡模型。
現(xiàn)有CNN的帶鋼表面缺陷識別方法主要針對低分辨率的圖像,如目前公開的帶鋼數(shù)據集有NEU-CLS[10]、X-SDD[11]等。但是,為了檢測到毫米級的缺陷,帶鋼表檢獲取的圖像分辨率較高,例如本文收集的帶鋼數(shù)據是1920×400像素。在基于CNN的分類任務中,為了提高效率,輸入圖像通常被調整為相對較小的大小(如224×224)。目前常用的圖像調整方法有最近鄰插值(nearest neighbour interpolation,NNI)、雙三次插值(bicubic interpolation,BCI)等[12],但是這些方法沒有針對DL進行優(yōu)化。SHARMA等[13]最近指出在分類任務中,圖像預處理的目標是提高模型的精度,而非人類視覺感知質量。FENG等[14]通過改進ResNet,將高分辨率帶鋼圖像調整為224×224,該方法提高了分類模型的精度,但同時也增加了計算的時間成本。TALEBI等[15]設計了一種可學習的圖像調整器(learnable image resizer,LIR)來調整圖像大小,進而提高模型性能。因此,本文將LIR用于帶鋼表面缺陷圖像的大小調整和特征增強。
綜上所述,為了滿足工業(yè)現(xiàn)場的帶鋼表面缺陷識別需求,本文基于GFNet構建分類模型,采用LIR代替?zhèn)鹘y(tǒng)的圖像大小調整方法,將二者采用聯(lián)合訓練的方式,提出一種基于LIR和GFNet的帶鋼表面缺陷識別方法。為了驗證本文提出方法的可行性,收集整理了某鋼鐵企業(yè)冷軋薄板廠帶鋼表面缺陷數(shù)據集,并對其進行分析。
本文基于掃視-聚焦網絡(glance and focus network,GFNet)提出了一個新的帶鋼表面缺陷圖像分類模型,其識別不同圖像時的過程如圖1所示。該過程類似于人類視覺的識別過程,人類識別圖像時通常會關注圖像中的一部分,進而得出可靠的結果。GFNet將圖像識別任務建模為一個序列決策的過程,先將原始圖像的縮略圖輸入神經網絡進行處理,再不斷選擇最關鍵的圖像區(qū)域進行處理,直至網絡輸出一個足夠高的置信度時停止。GFNet對于簡單和困難的樣本分配不同的計算資源,可以提升網絡的整體效率。
圖1 GFNet結構處理不同圖像的過程示意圖
該結構由于減小了輸入圖像的分辨率,每個步驟都可以高效的完成。例如,推斷96×96圖像塊的計算成本僅為處理原始224×224輸入的18%。GFNet第一步將原始輸入圖像縮小為96×96,這一步稱為掃視(Glance),模型在該步驟中可以生成具有全局特征信息的快速預測。對于特征明顯的圖像,在Glance階段就以較高的置信度η正確分類。當Glance階段無法對圖像輸出足夠高的置信度η時,該模型將根據圖像塊位置建議網絡π的建議,選擇最具有辨別力的特征區(qū)域,由于選擇的區(qū)域是從原始圖像中裁剪一小塊,這一步被稱為聚焦(Focus)。Focus階段會針對不同的輸入圖像動態(tài)的進行迭代定位、處理最具有辨別力的圖像區(qū)域,當達到較高的推理置信度時終止。該結構在測試時在不同圖像之間不均勻的分配計算,可以顯著提高整體任務的效率,如圖1所示,將一張224×224的圖片分解為3個96×96的圖像塊進行處理,所需的計算量僅為原圖的55.1%。
基于GFNet的帶鋼表面缺陷圖像分類模型是一個通用框架,由4個部分組成:全局編碼器fG、局部編碼器fL、分類器fC和圖像塊位置建議網絡π,網絡結構如圖2所示。
圖2 GFNet的網絡結構圖
(1)
(2)
式中:Dtrain是訓練集的大小,y表示輸入圖像x對應的標簽,T是序列的最大可能長度,LCE(·)為標準的交叉熵損失函數(shù)。
π是另一個循環(huán)神經網絡GRU,用于從輸入圖像中確定裁剪圖像塊的位置。它在第t步接收特征圖et,并從π的參數(shù)化分布中隨機選擇一個定位動作lt+1:
(3)
rt+1=p(t+1)y-pty
(4)
式中:y∈{1,…,C}是輸入圖像x的標簽,輸入的圖像共有C類。π的目標就是為了最大化折扣獎勵的總和:
(5)
式中:γ∈(0,1)是預定義的折扣因子。式(5)表示π能夠在最少的圖像塊序列T的前提下,盡快選擇對產生正確的預測結果最有幫助的圖像塊。
可學習的圖像調整器(learnable image resizer,LIR)[15]是專門為提高DL算法性能而設計的,調整器結構位于分類模型之前,采用與分類模型聯(lián)合訓練的方式,實現(xiàn)調整圖像大小和特征增強的功能,LIR和分類模型聯(lián)合學習框架如圖3所示。
圖3 LIR和分類模型聯(lián)合學習框架
本文設計的LIR結構如圖4所示,其中雙線性特征調整器(bilinear feature resizer)和跳躍連接(skip connection)發(fā)揮了重要的作用。前者可以將原始分辨率計算的特征合并到模型中。后者可以直接將雙線性調整模塊輸出的圖像傳遞到基線任務中,簡化了學習過程。該網絡中采用了r個殘差模塊(residual blocks,Resblock),所有中間卷積層的通道數(shù)都是16,卷積核大小為3×3。為了提取和融合較大的特征,網絡第一層和最后一層均采用7×7的卷積核。網絡中還采用批量歸一化層(batch normalization layers)和斜率系數(shù)為0.2的LeakyReLu激活函數(shù)。該網絡結構簡單,沒有向分類模型中添加較多的參數(shù)。
圖4 LIR的網絡結構圖
LIR可以通過設置輸出圖像的像素大小,實現(xiàn)圖像大小的調整,其輸出的圖像從人眼視覺感知上評判效果較差,不像現(xiàn)有的圖像調整器(NNI、BLI、BCI等)輸出具有與原始圖像相同的視覺質量。但LIR與識別模型聯(lián)合訓練,使其調整大小后的圖像可以學習一些提升CNN識別效果的特征,提高下游DL模型的性能。
針對冶金工業(yè)生產中帶鋼表面缺陷圖像的識別任務,本文提出一種基于LIR和GFNet的帶鋼缺陷圖像識別方法。本文提出的算法結構如圖5所示,分類模型ResNet-50采用GFNet框架構建,圖像調整大小方法采用LIR代替?zhèn)鹘y(tǒng)的方法,將二者聯(lián)合訓練,構建帶鋼表面缺陷識別模型。
圖5 基于LIR和GFNet的帶鋼表面缺陷識別算法結構圖
基于LIR和GFNet的分類模型的聯(lián)合訓練時設置信度閾值ηt=1(1≤t≤T-1),具體訓練步驟為:
步驟2:然后,固定步驟1得到的LIR、fG,fL和fC,在網絡中插入初始化的π,通過π的輸出來選擇每一步裁剪圖像塊的位置,以策略梯度法優(yōu)化式(5)所示的折扣獎勵函數(shù);
步驟3:最后,采用步驟1訓練得到的LIR和步驟2訓練得到的π,微調步驟1得到的fG,fL和fC,實現(xiàn)在T盡可能小情況下,滿足識別任務的需求。
實驗采用的原始數(shù)據由某鋼鐵企業(yè)冷軋薄板廠提供,其表面缺陷檢測裝置通過在帶鋼上下表面布置工業(yè)相機實時采集并分析圖像,達到實時控制產品質量的目的。采集后的圖像大小為1920×400,本文將原始數(shù)據進一步整理成冷軋帶鋼表面缺陷數(shù)據集,數(shù)據集圖像大小為400像素×400像素,命名為CR-CLS,共2427張圖像,部分樣本如圖6所示。
圖6 本文整理的CR-CLS數(shù)據集
CR-CLS包括8類常見的冷軋帶鋼表面缺陷和無缺陷樣本,共9個類別,其中折疊(Fold,Fo)293張、麻面(Rough Surfuce,RS)98張、夾雜(Inclusion,In)453張、結疤(Scab,Sca)320張、壓痕(Indentation,Ind)431張、鎖扣印(LockImpression,LI)105張、凹坑(Pit)160張、擦傷(Scratches,Scr)257張,無缺陷(Normal,Nor)310張。
CR-CLS數(shù)據集更接近工業(yè)現(xiàn)場采集的數(shù)據,缺陷數(shù)據類間差異小、類內差異較大、缺陷大小不一、大量樣本的缺陷位置不在圖像中心,這給識別任務帶來一定的挑戰(zhàn)。因此,本文采用的數(shù)據集對帶鋼表面缺陷識別的算法開發(fā)與工程應用有較大的研究意義。
本文的實驗環(huán)境配置如下:Intel i5-11400F處理器,16 G內存,Nvidia GeforceRTX3070顯卡,CUDA版本為11.6,Ubuntu 18.04操作系統(tǒng),Pytorch框架。模型網絡參數(shù)配置如下:LIR中殘差塊的數(shù)量r=2,原始圖像大小為400×400,調整后的圖像為224×224,GFNet中最大的序列長度T=3,圖像塊的大小為96×96,優(yōu)化器采用隨機梯度下降(SGD),動量參數(shù)為0.9,權重衰減因子為0.000 1,epoch為200,batchsize為16,學習率初始設置為0.01。
本文將CR-CLS中每類數(shù)據按照8:2的比例劃分訓練集(Train,Tr)和測試集(Test,Te),其中訓練集1944張,測試集483張,每類樣本的劃分情況如表1所示。
表1 CR-CLS數(shù)據集劃分情況
為了評估本文提出方法的性能,本文使用準確率(Accuary,Acc)、召回率(Recall,Rec)、精確率(Precision,Prec)和F1值(F1-score)來評估。每個指標的計算公式如下:
(6)
(7)
(8)
(9)
式中:TP表示被模型判斷為有缺陷且本身有缺陷的樣本數(shù)量,FP表示被模型判斷為有缺陷但本身沒有缺陷的樣本數(shù)量,TN表示被判斷為無缺陷且本身為無缺陷的樣本數(shù)量,FN表示被模型判斷為無缺陷但本身有缺陷的樣本數(shù)量。
準確率表示的是預測正確的結果占總樣本的百分比,通常來說準確率越高,分類模型越好;召回率又叫查全率,是針對原樣本而言的,其表示在實際為正的樣本中被預測為正樣本的概率;精確率又叫查準率,是針對預測結果而言的,其表示在被預測為有缺陷的樣本中真正為有缺陷的概率;F1分數(shù)是一個比較全面的評價指標,其同時考慮精確率和召回率,讓兩者同時達到最高,取得平衡。
為了驗證模型在測試階段的推理效率,本文采用在相同的軟硬件平臺下單張圖像的平均推理時間(inference time,Inf.time)[17]來進行對比。
為了驗證本文所提出算法框架的效果,主干網絡采用ResNet-50[10]來進行實驗。本文設計了5個實驗:①原始ResNet-50直接處理原始分辨率圖像;②通過雙三次插值(BCI)調整圖像大小,然后輸入ResNet-50進行分類;③采用LIR和ResNet-50聯(lián)合訓練的方式進行圖像分類;④采用BCI來進行圖像大小調整,分類模型采用GF+ResNet-50;⑤采用本文提出的算法LIR+GF+ResNet-50進行圖像分類,實驗結果如表2所示,各模型計算量(Flops)和參數(shù)量(Params)對比如表3所示。
表2 實驗結果對比
表3 模型計算量和參數(shù)量對比
從表2可以看出,ResNet-50模型在直接處理原始大小圖像時,由于原始圖像具有豐富的信息,其在Accuracy、Recall、Precision、F1-score都取得了較好的結果,但由于其處理圖像較大,單張圖像的計算時間為28.43 ms,耗時最長。當采用圖像調整器將原始圖像從400×400調整到224×224時,模型的性能有所降低,但推斷時間明顯縮短,提高了模型的實時性。其中,以LIR為調整器的模型性能比BCI的會有所提高。在推理時間方面,LIR與BCI的計算時間相當,證明LIR可以代替現(xiàn)有的插值方法來進行圖像縮放。最后,當識別模型采用GFNet結構時,模型的Recall、Precision、F1-score都取得了最佳的效果,Accuracy與ResNet-50直接處理原始分辨率的低0.21%,但單張圖像推理時間與直接處理400×400的降低約3.58倍,僅為7.95 ms。
由表3可以看出,LIR模型結構簡單,參數(shù)量只有0.017 M,再加上其對分類模型性能的提升,進一步證明LIR可以替代傳統(tǒng)的插值方法來實現(xiàn)圖像的縮放。網絡模型引入GFNet結構后,由于網絡結構較為復雜,增加了模型的參數(shù)量,但由于GFNet的優(yōu)勢,計算量會大大減少,以本文所提方法為例,LIR+GF+ResNet-50的計算量與ResNet-50、LIR+ResNet-50相比,分別降低約6.11倍和1.90倍,很大的提升網絡的整體效率。
綜上所述,本文所提方法將ResNet-50作為主干網絡時,與原始的ResNet-50相比,可以在識別效果相當?shù)那闆r下,將單張圖像的推理時間降低約3.58倍,計算量降低約6.11倍,證明了所提方法的實用性。
為了對比LIR與傳統(tǒng)線性插值方法的不同,本文列出了經BCI和LIR處理后的圖像,如圖7所示。
圖7 不同圖像調整大小方法效果對比圖 圖8 本文算法處理不同樣本的可視化流程
從圖7可以看出,LIR輸出的圖像在視覺上效果比BCI處理后的較差,但圖像缺陷區(qū)域明顯增強,有利于提高模型的性能。
為了更直觀的表明所提方法的優(yōu)越性,將LIR+GF+ResNet-50(T=3,H′=W′=96)在處理不同樣本時的推理過程的可視化,結果如圖8所示,方框表示圖像塊的位置,方框顏色表示當前步驟的預測是否正確(淺色表示正確,深色表示錯誤),方框左上角顯示的是當前步驟輸出的置信度。根據獲得正確分類結果所需的輸入序列數(shù)量,展示的樣本被分為3行。從圖中可以觀察到,對于特征明顯的樣本,在Glance過程就以高置信度正確分類,不再需要多余的計算;而對于特征不明顯的難樣本,Glance過程通過處理低分辨率圖像讀取樣本的全局信息,為后期Focus過程裁剪圖像塊的位置提供有效的建議,直至達到較高的置信度為止。本文提出的算法相比直接處理原始的圖像,可以明顯減少因空間冗余而帶來的計算量。
本文提出一種基于LIR和GFNet的帶鋼表面缺陷識別方法,以解決DL模型在處理帶鋼表面缺陷圖像過程中存在的計算量大、實時性差的問題。本文的結論為:
(1)本文基于GFNet結構構建的帶鋼表面缺陷分類模型,對于不同的缺陷圖像,可以自適應地處理缺陷所在的圖像塊區(qū)域,解決了帶鋼缺陷圖像因空間冗余而帶來的計算量較大的問題,提升網絡的整體效率。
(2)利用LIR結構代替?zhèn)鹘y(tǒng)的圖像縮放方法,將LIR與分類模型GFNet聯(lián)合訓練,實現(xiàn)圖像大小的調整和針對分類模型的特征增強,提高分類模型的準確率。
(3)在工程實際中采集的冷軋帶鋼表面缺陷數(shù)據集CR-CLS上驗證本文提出方法的有效性,實驗結果表明,本文提出的方法把ResNet-50作為主干網絡時,與原始的ResNet-50處理原始數(shù)據相比,可以實現(xiàn)在不犧牲準確率的情況下,將單張圖像的推理時間降低約3.58倍,模型計算量降低約6.11倍,進一步滿足工業(yè)現(xiàn)場實時檢測的要求。