陳昕卓,李建軍,張 超
(內蒙古科技大學 信息工程學院,內蒙古 包頭 014010)
隨著我國工業的蓬勃發展,我國已進入制造大國行列。近年來,隨著我國“工業4.0”和“中國制造2025”等戰略目標的提出以及制造業數字化、網絡化、智能化的普及,工業品供應商對其產品的質量把控越來越嚴。在工業品生產線上,表面缺陷檢測技術是保障工業品質量、性能和提高企業綜合競爭力的關鍵。目前工業品缺陷檢測的方法可以概括為以下3類:1)采用傳統的人工方法檢測產品表面,耗費大量人力、物力資源,費時且效率低下;人工處理具有較強的主觀性,檢測的準確率無法得到保障;2)采用傳統的機器學習的方法提取特征進行缺陷檢測時,主要任務量集中于圖像預處理、提取特征、特征分類器設計。此類方法過度依賴人為設計的特征提取與分類方法,并且需要通過大量的實驗進行參數調節和閾值設定,準確率隨外界環境波動較大,誤差率較高[1-4];3)基于卷積神經網絡(CNN)的檢測方法,該方法以經典的卷積神經網絡為基礎進行圖像處理,進而生成特征圖,最后完成缺陷檢測,但是工業品表面缺陷復雜多樣、缺陷區域大小不一、種類和程度均不相同,使得深度神經網絡在工業品表面檢測領域的應用受到了限制[5-7]。
基于卷積神經網絡的檢測和分類方法近年來已取得較好發展,Krizhevsky等[8]在2012年提出AlexNet網絡模型,該模型由5個卷積層、3個全連接層和3個池化層構成,采用BN層加快收斂速度、采用Dropout防止過擬合。在ILSRVC大規模視覺識別挑戰賽中斬獲冠軍,top5數據集預測的錯誤率為16.4%。Li等[9]簡化了AlexNet模型的參數并用于鋼板表面的缺陷分類,通過網絡訓練學習缺陷特征,避免了特征提取與圖像分類分離的問題,形成了端到端的缺陷識別,分類準確率達99.05%。
K.M.He等[10]在2015年提出了ResNet網絡,基于Basic Block層數的不同,將殘差網絡分為ResNet18、ResNet34、ResNet50、ResNet101、ResNet152共5個類型,通過downsample使輸入與輸出尺寸相統一,利用恒等映射原理,可以使網絡進一步地加深而不會導致網絡梯度消失和爆炸,也不會增加誤差。獲得當年CVPR大賽第一名,在ImageNet測試集上達到了96.32%的準確率。何[11]等人提出了基于RestNet34的弱監督鋼板缺陷分類檢測系統,分類準確率達93.2%。
He等[12]通過采用殘差網絡(ResNet34、ResNet50)在每個階段生成的特征圖,提出多級特征融合網絡(MFN),進行鋼板表面缺陷檢測,該方法可以在單個GPU上以20fps的速度進行檢測,缺陷檢測任務的準確率達到82.3%。
基于以上基礎。本文針對現有網絡模型復雜、特征尺度單一、參數過多、難以訓練、網絡收斂速度慢等問題,在ResNet網絡模型的基礎上提出了一種多尺度殘差融合模型。其主要創新點包括:
1)在特征提取方面,為避免輸入特征尺度單一、特征信息丟失。使用多尺度特征融合網絡模型,將卷積核分別設置為5×5、7×7、9×9提取多尺度特征信息。
2)針對神經網絡中全連接層參數量大,導致的收斂速度滿,且易產生過擬合等問題。在網絡模型中,采用全局平局池化層替代全連接層。防止網絡的過擬合,加強特征圖與類別的一致性,加快網絡收斂速度。
3)為了提高神經網絡中BatchNorm[13]模塊對圖像進行批量歸一化能力,避免樣本之間差異過大的問題,使用Representative BatchNorm[14]層代替BatchNorm層,在原BatchNorm層的基礎上增加中心校準和縮放校準環節。增強特征信息并削弱噪聲,提高分類任務的準確率。
本文所提出的網絡,在東北大學鋼板缺陷數據集NEU-CLS進行實驗分析,相比現有技術,得到了比現有檢測更高的識別準確率,因此,將該項技術應用于實際生產中,將會進一步提升產品的質量保障,提升產品競爭力。
在運用殘差網絡ResNet時,由于特征提取尺度的單一性,存在特征信息丟失的現象。針對這個問題,提出多尺度特征融合模塊提取圖像中不同尺度的特征。本文提出的多尺度特征融合模塊的基本思想是運用多個不同的卷積核提取多尺度特征,采用并聯三通道結構,并將多個卷積操作提取的特征圖融合,最終構成了完整的多尺度特征提取模塊。該模塊的結構如圖1所示。

圖1 多尺度特征融合模塊結構示意圖
多尺度特征提取與融合模塊主要分為兩個部分:多尺度特征提取部分、多尺度特征融合部分。
1)多尺度特征提取部分采用并聯三通道結構,且各分支結構卷積核不同。卷積核大小分別為5×5、7×7和9×9,不同尺寸的卷積核對不同尺度的特征進行提取,既保留淺層的細節信息又融合了深層信息。
2)特征融合部分是將多尺度特征提取層提取的多個特征圖進行融合,運用Concatenate使多通道提取的特征圖拼接成一個完整的特征圖。最后融合成的特征圖的輸出通道數為各分支輸出通道數之和。在融合過程中,為保證輸出特征圖大小一致,采用padding填充特征圖邊緣區域。多尺度特征提取與融合模塊原理如圖2所示。

圖2 多尺度特征提取與融合模塊原理圖
在使用卷積神經網絡進行分類任務時,全連接層通常作為神經網絡的最后一層。該層存在大量的參數,導致計算量增大,極大地限制了神經網絡的收斂速度,且易產生過擬合等問題。為解決上述問題,一般會在全連接層設置Dropout,按照一定的概率隨機失活一些網絡單元,減弱神經元之間的依賴性,增加網絡的泛化能力。但是采用Dropout會增加網絡的訓練時間,并且不易設置最優參數。
全局平均池化(GAP,global average pooling)[15]不以小窗的形式滑動,而是在上一層輸出的整張特征圖上進行全局均值化,將特征圖轉化為一個特征向量,輸入的每一層特征圖由特征向量的每一個數值表示,其原理如圖3所示。使用全局平均池化層對整張特征圖所有值求平均,可以充分利用每張特征圖的信息提取關鍵特征并減少計算量。本文利用全局池化層代替殘差網絡中的最大池化層,將特征向量導入殘差網絡的輸出層進行求解,即可獲得分類結果,減少了參數量,不需要優化參數,提高了網絡訓練效率,減輕了擬合程度。因此,運用GAP代替全連接層有助于提高網絡性能,提升識別率。

圖3 全局平均池化原理圖
1.3.1 BN
BatchNorm模塊能加速神經網絡的收斂并提升識別準確率,因而被廣泛使用。Batch- Norm由特征居中、特征縮放和放射變換3個步驟實現。給定輸入特征x∈RN×C×H×W,其中N、C、H、W為batch的大小、通道數、輸入特征的高度和寬度。特征居中、縮放、仿射公式如下:
xm=x-μ
(1)
(2)
Y=γxs+β
(3)
式中,xm為feature map中心,xs為特征縮放值,Y為仿射變換后的結果,γ是用來調整數值分布的方差大小,β是用來調節數值均值的位置。γ、β是由反向傳播過程中學習得到,γ的默認值是1,β的默認值是0。μ和σ為feature map 所有像素值點總數的平均值和方差,在歸一化的過程中,使其滿足均值為0,方差為1的分布,其公式為:

(4)
(5)
式中,μ為像素點總數的平均值,σ為像素點總數的方差值;xi為該圖像樣本中第i個像素點值;n表示該樣本總像素點數,∈為保證分母恒大于0的常數值。
BN通過歸一化方程對樣本進行歸一化操作將數據規整到統一的區間,減輕了數據的發散度,降低了網絡的學習難度。且在一定程度上保留原數據的分布。
1.3.2 RBN
通過BatchNorm的均值和方差歸一化處理使得神經網絡的訓練更加穩定,通過使用小批量統計信息將中間特征限制在歸一化分布內,從而減輕了訓練難度,但在歸一化過程中忽略了樣本之間的表示差異。為了解決上述問題,提出了RBN(representative batch normalization)模型,其中RBN分為兩個步驟:1)中心化校準(centering calibration);2)縮放校準(scaling calibration) 。中心化步驟是為了增強信息特征,減少噪聲:縮放步驟是為了讓特征服從一個穩定的分布,其原理如圖4所示。

圖4 BN(左)和RBN(右)工作流程圖
1)中心化校準。中心化校準在原BatchNorm層的居中操作前添加中心校準環節。若給定輸入特征為X,定心校準如式(6)所示:
Xm=X+ωm⊙Km
(6)
式中,輸入特征X∈RN×C×H×W,Xm為定心校準值,其中N、C、H、W為batch的大小、通道數、輸入特征的高度和寬度。ωm是一個形狀為(N,C,1,1)的可學習變量,Km是各個實例特征的統計量且Km∈RN×C×H×W,⊙是將兩個特征散步同一形狀的點積運算符。通過定心校準后,feature map的中心公式為:
XM=Xm-E(Xm)
(7)
式中,XM為特征中心,E(Xm)為中心校準后的均值。
2)縮放校準。縮放操作是添加在特征縮放之后的校準環節,可對特征的方差進行縮放,并得到特征的單位方差。然而,均值縮放會導致特征強度不穩定,即某些通道的特征遠大于其他通道的特征。因此,在縮放操作后采用縮放校準來校準特征強度。縮放校準公式如下:
XS=XS·R(ωv⊙Ks+ωb)
(8)
式中,ωv、ωb∈R1×c×1×1是可學習變量,R()為限制函數,本文采用Sigmoid函數作為限制函數抑制極值,Ks是實例特征XS的統計量。
RBN采用了簡單而有效的特征校準方案,保留了樣本中各實例的特征,并產生了更穩定的特征分布。定心校準增強了信息特征并削弱了噪聲;縮放校準限制了特征強度以形成更穩定的特征分布。用RBN取代BN可較大限度地提高神經網絡模型的性能。
1.4.1 ResNet網絡的優缺點
隨著深度學習的發展,自AlexNet網絡誕生以來,許多學者選擇通過加深網絡深度的方法解決目標檢測、分類等任務,雖然取得了較好的效果,但也帶來了一些問題:
1)傳統的卷積神經網絡由一系列卷積層與下采樣層進行堆疊得到,在淺層網絡疊加到一定深度時,會產生梯度消失和梯度爆炸問題。導致網絡反向傳播過程中無法對前面的網層權重進行有效的調整。
2)在深度模型上增加更多的網層會導致網絡退化的現象,即隨著網絡深度的增加,準確性達到飽和,然后迅速下降。這是由于冗余的網層學習了非恒等映射的參數造成的。
ResNet網絡通過引入一個深度殘差學習框架解決了深層網絡梯度消失(爆炸)的問題,使用shortcut 的連接方式,進行恒等映射,不會產生額外的參數,也不會增加計算復雜度。以ResNet18為例,ResNet18共有18層,網絡輸入為224×224,通過卷積和最大池化操作,圖像降維到56×56,且通道數保持不變。完成前兩步操作后進入殘差模塊,每經歷一部分殘差模塊圖像降維一半,通道數則增加到原通道數的二倍,通過4次殘差網絡的處理,圖像降維到7×7,此時通道數為512,最后連接平均池化層和全連接層。
ResNet雖然解決了梯度消失(爆炸)的問題,也可以避免隨著網層的疊加而導致的網絡退化現象。但在工業品表面缺陷檢測與分類的使用場景下,仍存在特征提取尺度單一、模型參數多、資源需求大、收斂速度慢等缺陷。
1.4.2 改進的ResNet網絡
通過設計多尺度特征提取模塊,充分提取深淺層的特征信息,并且隨著網絡寬度的增加,可以有效緩解訓練樣本有限的問題。全局平均池化層代替全連接層,減少了參數量,提高了網絡訓練效率,減輕了殘差網絡過擬合程度。
在每個殘差塊中,當輸入通過卷積操作后,采用RBN層代替BN層,通過中心化校準和縮放校準,增強信息特征,減少噪聲,并使特征分布更加均勻。再通過線性整流函數(ReLU,rectified linear unit)進行激活,最后通過卷積層和RBN層的處理得到輸出,設計框圖如圖5所示。

圖5 殘差塊設計框圖
該網絡首先使用多尺度特征提取和融合模塊對原圖像進行卷積操作學習特征,然后添加RBN層進行數據的歸一化處理,保證網絡性能的穩定。然后采用線性整流函數,以提高該模塊的非線性映射能力,函數關系如下式所示:
fi(x)=ωi*x+bi
(9)
(10)
其中:x表示多尺度特征提取模塊的輸入;fi(x)為第i個卷積層的的輸出;wi和bi分別表示該模塊的第i個卷積層的權重和偏置;“*”表示卷積操作;σ(·)表示ReLU激活函數。最后將得到的f(x)作為ResNet的輸入。
將殘差網絡結構分為4個階段(當輸出空間大小或輸出通道數要改變時,標志著另一個階段的開始)。每個階段有2個BasicBlock,在網絡末端使用全局平均池化層代替全連接層。網絡模型架構如圖6所示。

圖6 改進的ResNet網絡結構圖
本文的實驗在東北大學公開的鋼板表面缺陷數據集NEU-CLS上進行,該數據集涵蓋了6類常見的熱軋鋼板表面缺陷,分別為軋制氧化皮(RS),斑塊(Pa),開裂(Cr),點蝕表面(PS),內含物(In)和劃痕(Sc)該數據集共有1 800張樣本,每個類別300張。訓練集與測試集的比例設置為8∶2。
以搭載Intel酷睿i7-11700kF CPU,內存大小32G,Nidia 1660GPU的計算機作為實驗硬件基礎,實驗軟件環境基于Windows10操作系統、pytorch1.6深度學習框架、python3.7搭建的缺陷檢測框架。
在原有ResNet18、ResNet34、ResNet50上進行改進,采用多尺度輸入代替單一尺度輸入,通過RBN層代替BN層,通過平均池化層代替全連接層得到Multi-scale-RBN-ResNet網絡。將Multi-scale-RBN-ResNet模型和原有ResNet模型進行對比實驗,在非遷移學習的情況下,訓練時每次讀取數據的樣本數為batch size=8,本文提出的網絡模型在該數據集上迭代30次(epoch=30),實驗結果如圖7所示。

圖7 NET-CLS數據集實驗結果對比圖
由圖可知,隨著迭代次數的增加,各模型的測試準確率也隨之提高,最終接近100%。其中,本文提出的模型明顯優于傳統殘差網絡模型,在不使用遷移學習的情況下,分類準確率可達到100%。其中,Multi-scale-RBN-ResNet18收斂速度最快,并且相對穩定,模型的識別性能最為優異。
該數據集來源于實際生產中帶有表面缺陷的鋼板并已完成圖像預處理:將尺寸歸一到200×200、對噪聲進行去除、并完成二值化操作,使得缺陷檢測過程中受外界干擾較小,檢測的準確率達100%。
本文提出的Multi-scale-RBN-ResNet18網絡模型和使用NEC-CLS數據集的其他方法在分類準確率上的對比實驗,結果如表1所示。

表1 本文模型與其他的檢測方法對比實驗
其中,在文獻[16]中,提出了一種金字塔特征融合和全局注意力網絡,用于表面缺陷檢測;在文獻[17]中,根據基線卷積神經網絡在每個階段生成的特征地圖,提出多級特征融合網絡(MFN)用于融合更多深度信息;在文獻[13]中,提出了一種基于卷積神經網絡的鋼表面缺陷半監督學習方法,該方法需要的標記樣本較少,并利用偽標簽對CNN進行了改進;在文獻[18]中,提出一種用于帶鋼表面檢測的端到端表面缺陷識別系統。該系統基于對稱的環繞顯著圖進行表面缺陷檢測,深度卷積神經網絡直接以缺陷圖像作為輸入,以缺陷類別作為輸出;可對數據集中的6類缺陷和無缺陷鋼板進行分類。本文提出的模型取得了最高的識別準確率,驗證了該模型的有效性。
為了驗證本文提出的網絡模型對不同工業品表面缺陷的測試效果,選取阿里天池比賽的鋁型材表面缺陷數據集,并結合鋁型材在生產過程中的常見缺陷類別進行實驗驗證。大賽數據集里有1萬份來自實際生產中有瑕疵的鋁型材監測圖像數據,本文隨機選取其中的8個瑕疵類別,每個類別包含200個數據。訓練集和測試集的比例設置為8∶2。原始樣本瑕疵種類如圖8所示。

圖8 鋁型材表面缺陷數據集
在鋁型材缺陷數據集上疊加30個epoch,將本文提出的模型與AlexNet[19]、VGG16[20]和ResNet模型進行對比,如圖9所示。由圖可知,對于橘皮、劃痕、擦花缺陷種類,缺陷信息較為接近,且鋁型材的制造與加工處于工況復雜的場景下,通過小樣本和細節缺陷信息的輸入,網絡分類準確率仍可達到98.8%。與AlexNet、VGG16和ResNet網絡模型相比,Multi-scale-RBN-ResNet18在準確率和收斂速度兩方面均得到了極大限度的提升。

圖9 鋁型材數據集測試準確率對比圖
本文針對工業品表面缺陷檢測任務,在ResNet模型的基礎上,添加多尺度特征融合模塊,利用多尺度卷積提取更多尺度的特征;然后,采用RBN層代替BN層,增強了特征信息;最后使用全局平均池化代替全連接層,使輸出與特征類別映射更加直觀,并簡化了網絡模型。在NEU-CLS數據集上識別率達100%,在阿里天池鋁型材表面數據集上識別率達98.8%。實驗結果表明,改進后的網絡模型對工業品表面陷檢測效果比較理想,性能優于其他同類模型。