劉 琪,雷景生
(上海電力大學 計算機科學與技術學院,上海 201300)
在鋼材工業的生產過程中,由于生產機器和生產流程等因素,會造成鋼材表面存在斑塊、裂紋、劃痕等缺陷[1,2]。這些缺陷不僅會影響帶鋼的抗腐蝕性和耐磨性,嚴重時甚至會導致安全事故的發生。因此,研究一種能夠準確、高效檢測鋼材表面缺陷的算法具有重要實際意義。
近幾年,隨著深度學習在各領域的應用,掀起了基于深度學習的目標檢測的熱潮[3,4]。現有的基于深度學習的目標檢測方法主要分為兩類:一類是以Fast RCNN[5]、Faster RCNN[6]、Mask RCNN[7]為代表的基于候選框的two-stage目標檢測算法,該類算法檢測精度高但檢測速度低;另一類是以SSD[8]、YOLO[9]為代表的基于端到端的one-stage目標檢測算法[10],該類算法特點是高速度、低精度[11]。Faster RCNN使用RPN網絡獲取候選框,在PASCAL VOC2007數據集上的平均檢測精度達到73.2%[12],是在檢測精度和檢測速度上較為平衡的最優檢測算法之一。因此,選取Faster RCNN作為鋼材表面缺陷檢測的基礎網絡。
但是,基于Faster RCNN的鋼材表面缺陷檢測存在小缺陷難以檢測、特征提取過程中小缺陷信息丟失等問題。為了更精準、快速檢測鋼材,本文在Faster RCNN算法的基礎上做出以下幾點改進:①使用雙路徑網絡進行特征提取。②加入多尺度特征融合模塊,融合高低層特征來提升小目標檢測效果。③使用CIoU邊框回歸損失函數,進一步提高檢測的準確性。
Faster RCNN算法的核心思想在于摒棄了耗時的選擇性搜索算法,使用區域建議網絡(RPN)自動獲取目標候選框。其模型結構如圖1所示,主要包含特征提取、RPN、預測網絡3個部分。

圖1 Faster RCNN算法流程
RPN的引入,真正將two-stage目標檢測算法的整個流程融入到神經網絡中。其結構如圖2所示,將經過特征提取后的特征圖輸入到RPN中,之后使用一個3×3的滑動窗口遍歷整個特征圖,以該滑動窗口的中心像素點為錨點,按照不同尺寸和比例生成k個錨框。然后在分類層中使用2k個1×1的卷積核對256-d的低維向量進行分類,得到k個候選框是前景還是背景的概率。在回歸層中使用k個1×1的卷積核對k個錨框進行位置回歸,輸出k個邊界框的位置坐標。

圖2 RPN網絡結構
Faster RCNN在訓練過程中的損失主要來源于分類損失和回歸損失。如式(1)所示

(1)

(2)
Lreg表示回歸損失,如式(3)所示
(3)

(4)
最后,將RPN網絡產生的候選框輸入到ROI Pooling層中下采樣到固定尺寸,再輸入到預測網絡中進行缺陷類別的預測和缺陷定位。
Faster RCNN算法使用ResNet101[13]網絡提取特征,模型計算參數量大,且殘差結構不利于發掘新特征。同時,Faster RCNN算法在特征提取過程中未考慮特征融合方式,僅通過自底向上的單路徑方式提取特征,隨著卷積網絡層數的增多,這將導致特征信息的丟失。傳統Faster RCNN算法使用Smooth L1作為邊框回歸損失函數,未將交并比考慮到損失計算中,不利于邊框回歸的準確性。
針對傳統Faster RCNN算法對小缺陷檢測精度不夠高以及隨著卷積網絡的加深位置信息丟失等問題,對Faster RCNN算法做出以下幾點改進:①使用融合了密集連接結構和殘差結構的雙路徑網絡作為特征提取網絡,降低算法的計算復雜度和模型復雜度。②使用改進PANet模塊對深層網絡和淺層網絡進行多尺度特征融合,解決隨著卷積網絡層數的增加引起的特征信息丟失問題,提升對小缺陷的檢測效果。③使用CIoU損失函數替換原算法中的Smooth L1損失函數,將交并比損失考慮到邊框回歸損失函數中,進一步提高檢測模型的準確性。改進后的算法整體流程如圖3所示。

圖3 改進算法流程
隨著卷積神經網絡層數的不斷加深,會出現梯度爆炸或梯度彌散等問題。ResNet引入殘差結構,將輸入與卷積的輸出相加,降低特征冗余,側重于再利用已有特征,但難以利用高層特征再發掘底層特征,導致語義信息的丟失。DenseNet[14]網絡引入密集連接結構,將輸入和輸出的通道進行拼接,側重于再發掘淺層特征,但會產生特征冗余。雙路徑網絡[15]融合了ResNet和DenseNet的核心部分,結合了殘差結構和密集連接結構的優勢,該模型內部采用拓撲結構將ResNet和DenseNet網絡進行連接,實現彼此特征的共享,為ResNet和DenseNet網絡建立了形式統一的數學表達。DPN網絡采用雙通道連接結構,在解決梯度消失問題的同時又能夠再發掘淺層特征,同時提高了訓練參數的利用率,在充分利用特征的基礎上有效降低了模型復雜度和計算復雜度。
DPN網絡由多個模塊化的block堆疊而成,每個模塊包含2個1×1卷積和1個3×3卷積,其流程如圖4所示,上一個block塊的輸出特征x先經過一個1×1卷積層,再通過一個3×3和1×1的卷積操作后,將輸出分割為兩個部分:第一部分輸入到殘差網絡中與當前模塊的輸入進行逐像素相加;另一部分輸入到密集連接網絡中進行通道合并操作。將經過殘差結構和密集連接結構兩條路徑的輸出再進行相加運算,相加的結果作為下一個block模塊的輸入,以此循環下去,構成雙路徑特征提取網絡。該網絡既能重復利用已有特征,又能發掘出新的特征,同時減少了特征冗余,充分利用了ResNet網絡和DenseNet網絡的優勢,從而實現了對圖像特征的充分挖掘和提取。

圖4 DPN網絡結構
在Faster RCNN算法中,由于淺層網絡卷積操作少,因此圖像的分辨率高、位置細節信息多,但包含的語義信息弱、噪聲強。隨著網絡層數的加深、卷積操作的增多,深層網絡特征具有更強的語義信息,但圖像分辨率降低,對細節的感知能力也較差。特別是針對小缺陷,在深層神經網絡中不僅丟失了位置信息,語義信息也比較模糊。因此如何將高低層特征進行融合是改善模型性能的重要手段。
特征金字塔網絡[16](FPN)是增強卷積神經網絡對圖像特征信息輸出表達的一種方法,旨在改進卷積神經網絡特征提取方式,加入高低層特征融合結構,能夠更好表達出具有較強語義信息的各個維度的圖片特征。FPN在傳統的自底向上的單路徑卷積神經網絡模型基礎上增加了自頂向下路徑,即增加了深層網絡和淺層網絡的特征融合方式,并通過橫向連接的方式將自底向上和自頂向下的路徑進行結合,如圖5所示。將不同卷積層的特征圖通過1×1卷積核后與自頂向下路徑上的經過兩倍上采樣的特征圖進行通道合并操作,將融合后的特征圖通過3×3卷積來降低上采樣帶來的混疊影響。融合后的特征圖包含較強的語義信息和豐富的位置信息以及較高的圖像分辨率,能夠提升對小缺陷的檢測效果。

圖5 FPN網絡結構
然而信息傳播路徑過長會導致信息傳遞不夠充分。雖然在傳播過程中圖像的語義信息得到增強,但位置細節信息丟失,同時對深層網絡的特征圖進行兩倍上采樣操作會削弱圖像的語義信息。PANet[17]對特征金字塔網絡進行了改進,在FPN的基礎上增加了一條自底向上的增強路徑,建立淺層網絡到深層網絡的信息傳播路徑,將底層網絡的信息又傳遞到深層網絡中去,從而在深層網絡中保留淺層網絡的特征,解決信息傳播路徑過長導致的信息傳遞不夠充分的問題。將增強路徑上的特征圖通過3×3卷積后與FPN輸出的不同路徑的特征圖進行相加,在不降低模型性能同時,減少特征信息的丟失。輸出的特征圖既包含更強的語義信息,又包含準確的位置信息。其結構如圖6(a)所示。
為了更加充分地利用深層網絡的語義信息和淺層網絡的位置信息,提高檢測模型的缺陷分類和定位能力。為此,在路徑增強網絡上進行了改進,在同一層級的輸入與輸出節點之間增加一條跨級連接路徑,縮短深層特征和淺層特征的融合距離,如圖6(b)所示,所有的融合路徑都通過通道相加的運算方式進行特征圖的融合,融合后的特征映射再經過一個3×3卷積核處理,得到新的特征圖作為下一層網絡的輸入。在不增加參數等額外消耗的情況下實現了特征信息在不同層級網絡輸出之間的傳遞,多組對比實驗結果表明該特征融合方式能夠有效提升帶鋼缺陷的檢測效果。

圖6 多尺度特征融合結構
原Faster RCNN算法中使用Smooth L1作為邊框回歸損失函數,因其能從兩個方面限制梯度值,具有較強的魯棒性。Smooth L1損失函數通過計算檢測框和實際邊框的位置坐標的誤差之和得到最終的邊框回歸損失。但實際使用交并比(IoU)作為評價檢測框的標準,具有相同Smooth L1 loss值的一對檢測框IoU值可能差異較大。如圖7所示,圖7(a)和圖7(b)中的預測邊框和實際邊框的坐標誤差相同,但邊框重疊度不同,即交并比差異很大。因此Smooth L1作為邊框回歸損失函數和邊框評價指標的關聯度不大,不利于邊框回歸的準確性。

圖7 Smooth L1損失和IoU損失對比
針對Smooth L1直接作為邊框回歸損失函數存在的問題,為進一步提高缺陷定位的準確性,引入CIoU[18]損失函數,其計算方法如式(5)所示
(5)
式中:IoU為交并比,表示真實框和預測框相交部分與兩個框集合的區域的比值,如式(6)所示。ρ代表預測框和真實框中心點之間的歐式距離,c代表預測框和真實框最小閉包區域的對角線長度。α是一個正的權衡參數,v是用來度量長寬比一致性的參數,其表達式如式(7)、式(8)所示
(6)
式中:B為預測框,Bgt為真實框
(7)
(8)
其中,wgt、hgt為真實框的寬和高,w、h為預測框的寬和高。
CIoU邊框回歸損失函數綜合考慮預測框和實際邊框的重疊面積、高寬比和中心距離等度量標準,具有更快的收斂速度,同時克服了IoU為0時損失無法計算等問題,避免了在訓練過程中損失值出現發散問題,使得邊框能夠準確、快速回歸。


圖8 NEU-DET數據集6種表面缺陷示例
本文實驗在基于PyTorch的深度學習框架、Python語言環境下進行編程。實驗使用的硬件環境為Intel i5-7500處理器,采用TITIAN的GPU進行模型訓練,內存為16 G,顯存為12 G。實驗的軟件環境為Ubuntu操作系統,cuda9.0,anaconda3。
3.3.1 實驗參數和評價指標
為驗證本文提出的改進算法的正確性和有效性,對不同的改進策略進行多組對比實驗。在訓練過程中,實驗參數的學習率設置為0.001、batch_size大小為128、權重衰減系數為0.0001、epoch為50輪。通過基于預訓練模型的遷移學習方式進行模型訓練,將在ImageNet大型數據集上預訓練的權重遷移到新的網絡中作為模型訓練的初始化權重,大大縮短了模型訓練的時間。本文采用平均精度均值(mAP)作為模型的評價指標,其計算方法如式(9)所示
(9)
式中:TP代表正樣本被正確地劃分為正樣本的個數,FN代表正樣本被錯誤地劃分為負樣本的個數,FP代表負樣本被錯誤地劃分為正樣本的個數。而正負樣本按照IoU的閾值來劃分,根據實際邊框和預測邊框的交并比來判斷是否成功預測為正樣本,當IoU>0.7時為正樣本,否則為負樣本。因此召回率R表示正確地預測為正樣本個數占所有預測為正樣本的比例,準確率P表示正確地預測為正樣本個數占所有正樣本的比例。
3.3.2 不同的特征提取網絡實驗結果
為驗證不同的特征提取網絡對模型檢測結果的影響,證明雙路徑網絡對檢測模型性能提升的有效性,該部分分別使用VGG16、ResNet、DenseNet、DPN網絡作為Faster RCNN的主干網絡進行模型訓練。研究不同的特征提取網絡對缺陷檢測精度的影響,實驗結果見表1。

表1 不同的特征提取網絡檢測結果對比
由表1的數據可知,使用殘差網絡或密集連接網絡進行特征提取相較于VGG網路具有更好的檢測結果,能夠避免訓練過程中出現梯度消失或梯度爆炸等問題,模型學習能力更強。結合了殘差結構和密集連接結構的DPN網絡具有最優的檢測結果,訓練過程中能夠更好地利用圖像特征,對缺陷的定位和分類更加準確,平均精度均值達到79.10%,相較于ResNet網絡提升了1.52%。實驗結果表明,DPN作為Faster RCNN模型的主干網絡在NEU-DET數據集上具有更優的檢測性能。
3.3.3 不同特征融合方式實驗結果
特征融合是提升模型檢測性能的重要方式,為驗證特征融合的有效性以及不同特征融合方式對檢測結果產生影響的大小。基于上一步對比實驗結果,采用DPN作為特征提取網絡,該部分分別使用FPN、PANet、改進PANet網絡在Faster RCNN模型上進行特征融合對比實驗,通過實驗數據驗證不同的特征融合方式對檢測結果的影響,實驗結果見表2。

表2 不同的特征融合方式檢測結果對比
由表2數據可知,在Faster RCNN算法基礎上,使用DPN作為特征提取網絡,分別使用3種特征融合方式進行對比實驗,在以平均精度均值作為模型評價指標時,使用改進PANet網絡進行特征融合的檢測結果的mAP值達到83.21%,比原PANet特征融合方式在mAP上提升1.10%,相較于FPN提升了2.84%,并相比于原算法中未使用特征融合方法在mAP上提升了4.11%。實驗結果表明,使用DPN作為特征提取網絡、改進PANet網絡進行特征融合能夠有效改善模型訓練性能,提升模型的缺陷分類和定位的準確性。
3.3.4 邊框回歸損失函數實驗對比結果
在前兩步實驗的基礎上,以DPN作為特征提取網絡、改進PANet進行多尺度特征融合,使用CIoU邊框回歸損失函數替代原算法中的Smooth L1損失函數,通過實驗驗證邊框損失函數對檢測結果的影響,實驗結果見表3。

表3 不同的損失函數檢測結果對比
由表3數據可知,在以DPN特征提取網絡作為檢測模型的骨干網絡,以改進PANet特征融合網絡作為Faster RCNN模型的基礎訓練策略,采用CIoU作為邊框損失函數相較于原算法中的Smooth L1損失函數在NEU-DET數據集上的mAP值提升了1.39%。實驗結果表明,CIoU損失函數能夠使得邊框準確回歸,改善模型檢測性能。
3.3.5 不同模型實驗對比結果
由以上實驗數據可知,使用DPN作為特征提取網絡、改進PANet作為特征融合網絡、CIoU作為邊框回歸損失函數的改進后的模型相較于原算法中使用ResNet101特征提取網絡、未使用特征融合網絡、使用Smooth L1作為邊框回歸損失函數在NEU-DET數據集上檢測結果的平均精度均值從77.58%提升到84.59%。實驗結果表明改進后的模型具有較優的檢測效果。
為進一步驗證改進Faster RCNN在NEU-DET數據集上的缺陷檢測性能,將本文模型與目前主流目標檢測算法進行實驗對比,以NEU-DET缺陷檢測數據集為基礎,本部分在Faster RCNN、SSD、YOLO、本文模型上進行4組對比實驗,采用平均精度均值來評估模型檢測結果的好壞,實驗結果見表4。

表4 不同模型的檢測結果對比
由表4數據可知,本文使用的DPN特征提取網絡、改進的PANet特征融合網絡、CIoU邊框回歸損失函數能夠有效地改善原Faster RCNN算法對鋼材缺陷的檢測性能,mAP值達到84.59%,高于實驗中其它的目標檢測算法,相較于原Faster RCNN算法在mAP上提升了7.01%,多種改進策略的加入使得本文模型相較于原模型在檢測速度和檢測精度上都有一定的提升。由于是兩階段檢測算法,在檢測速度上稍有不足,但工業應用場景的高精度需求使得本文模型具有良好的實用性。
基于改進Faster RCNN與傳統的Faster RCNN模型在鋼材缺陷數據集上訓練過程的損失變化對比如圖9所示。從圖中可以明顯看出,改進后的Faster RCNN檢測模型相較于傳統的Faster RCNN算法在訓練過程中具有更快的收斂速度,并且loss值更低。在改進Faster RCNN算法的帶鋼缺陷檢測結果的基礎上,選取6類鋼材缺陷圖像各一張進行缺陷檢測測試,檢測結果如圖10(a)~圖10(f)所示,圖中黑色矩形框為缺陷位置,標簽為缺陷類別和精確度。從圖中可以明顯看出,提出的改進模型對不同尺度和類型的鋼材表面缺陷具有較好的檢測效果,不僅能準確識別出缺陷位置,且具有較高的類別檢測精度。

圖9 訓練損失變化對比

圖10 6類帶鋼缺陷檢測結果
為提升熱軋帶鋼表面缺陷檢測的準確率,本文提出了一種改進的Faster RCNN模型,首先使用融合了ResNet和DenseNet核心思想的DPN網絡進行特征提取,解決了原模型中ResNet作為特征提取網絡難以再發掘新特征的問題。接著引入改進PANet模塊進行多尺度特征融合,實現不同尺度特征的融合與再利用,使得輸出的特征圖具有更強的語義信息和位置信息。最后,將交并比損失考慮到邊框回歸損失函數中,使用CIoU替代原算法中的Smooth L1損失函數作為邊框回歸損失函數,從而改善了模型的檢測效果,提升了缺陷檢測速度和精度。通過多組對比實驗驗證了提出的改進策略的有效性和正確性。最后,基于改進的Faster RCNN算法在NEU-DET帶鋼缺陷檢測數據集上進行實驗,6類缺陷檢測結果的平均精度均值高達84.59%。結果表明,改進模型能夠滿足鋼材表面缺陷的檢測需求,對提升鋼材表面質量具有重要實際意義。