竇 智,胡晨光,李慶華,鄭李明
1.河南師范大學 計算機與信息工程學院,河南 新鄉 453007
2.萊蕪鋼鐵集團銀山型鋼有限公司板帶廠,濟南 271104
3.金陵科技學院 機電工程學院,南京 211169
鋼板是制造業中用途最為廣泛的材料之一,由于其表面積較大,生產過程中極易產生不同種類的表面傷痕。然而,這些傷痕往往會對下游產品的質量和耐久性產生嚴重影響,進而成為整個產業鏈品控的高風險節點。如何對鋼板表面傷痕進行高精度自動化檢測和分類是智能制造業缺陷檢測中極具挑戰的問題。
近年來,大多數較為先進的目標檢測算法都使用了卷積神經網絡模型,并且在目標檢測任務中表現出優異的檢測效果,如一階段檢測器SSD[1]和YOLO[2]等,二階段檢測器Faster R-CNN[3]、R-FCN[4]等。一些學者為將目標檢測算法能夠更好地應用于工業檢測做出了嘗試,Li等[5]基于一階段目標檢測YOLO網絡用來檢測鋼板表面缺陷。Zhang 等[6]將YOLOv3[7]用于橋梁的缺陷檢測任務上,通過遷移學習方法來優化原網絡的檢測性能。Chen 等[8]嘗試將DenseNet[9]嵌入到YOLOv3 網絡結構中,使改進后的網絡能夠更好地應用于LED 缺陷檢測任務上。曹義親等[10]提出了一種改進YOLOv5 的鋼材表面缺陷檢測算法。值得注意的是,面向訓練樣本規模不足的多分類問題(即小樣本問題)時,這類方法并不適用。
與傳統的人工檢測相比,上述方法確實提高了制造業中的產品質檢效率和準確率,降低人工成本。但是,智能制造業中良品率比較高,有缺陷的樣本數量極少,會導致正負樣本極度不均衡,而且行業數據有其特殊的商業價值和保密性特征,公開率極低,有效的訓練樣本難以獲得,且價格較為昂貴,是典型的小樣本問題,深度學習方法不具備可行性;此外,該領域對檢測精度的行業要求較高,傳統的深度網絡模型難以達到行業要求,需進一步地降低漏檢、誤檢率,方能達到智能制造業產品缺陷檢測的行業要求。針對該特殊場景下的缺陷檢測問題,本文提出了一種基于改進YOLOv7[11]的小樣本鋼板表面缺陷檢測算法,通過高仿真度的樣本生成算法解決訓練樣本不足問題,通過改進網絡模型提高檢測精度,降低漏檢和誤檢的現象。使此類場景下的深度學習方案具備了可行性,同時也獲得了更加優秀的檢測性能。
本文主要貢獻可總結為:首先,提出了一種小樣本驅動的鋼板表面缺陷樣本生成算法,使深度學習應用于樣本不足的檢測任務具備了可行性;然后,對YOLOv7中的ELAN模塊進行優化,來增強網絡提取到關鍵特征的能力;接著,引入注意力機制,將卷積與自注意力相融合,降低網絡對小目標的漏檢率;最后,優化原網絡中的損失函數,來提升模型的定位性能。
大規模的高質量訓練樣本,是深度網絡得以訓練和優化的數據基礎。在某些特殊領域中,無法獲取足夠的訓練樣本,將導致深度學習無法得到應用。數據增強思想是有效解決樣本不足問題的重要手段,能夠起到提升深度網絡模型性能的作用[3],不僅可以提高模型的泛化能力,防止訓練時過度擬合,而且具備較好的可行性。常見的方法是將已有樣本進行多種變換操作[12],模擬生成更多樣本,提升訓練集規模。Nair等[13]對數據采取了顏色變換以及幾何變換的操作,通過隨機水平翻轉、隨機裁剪以及在色彩空間上應用PCA來增加數據集樣本數量。Dwibedi 等[14]通過對樣本數據進行剪切、粘貼等操作提高了模型的檢測性能。Tran等[15]從訓練集合中,學習特征分布的特點,通過貝葉斯分析方法來生成增強后的數據。
上述方法都采用了比較簡單的數據變換,難以在已有樣本極其有限的情況下,真實模擬出符合客觀分布特征且具有多樣性的復雜樣本,也難以有針對性地對某特定領域數據集進行高保真度的樣本生成與擴充。
另外,目前對于小樣本問題,研究人員普遍使用生成對抗網絡GAN(generative adversarial nets)[16]來擴充樣本數量,如CGAN(conditional generative adversarial nets)[17]、CycleGAN(unpaired image-to-image translation using cycle-consistent adversarial networks)[18]、StyleGAN(a style-based generator architecture for generative adversarial networks)[19]、StyleGAN2(analyzing and improving the image quality of StyleGAN)[20]等,但其均需要足夠的數據來訓練模型,當樣本數據極其稀少時無法應用,具有很大的局限性,無法解決鋼板表面缺陷小樣本問題。
針對以上問題,本文提出一種面向鋼板表面缺陷小樣本數據集的樣本生成算法。
在計算機視覺領域中,目標檢測算法可以分為兩大類,分別是一階段和二階段目標檢測算法。其中一階段以YOLO 系列的算法作為代表,其檢測速度較快,檢測性能更加優異,滿足實時檢測任務的需求,常應用于實際項目的檢測任務。YOLOv7 是YOLO 系列中檢測性能較為優異的算法,在檢測速度和檢測精度上,比大多數目標檢測器更好,如YOLOR[21]、YOLOx[22]、YOLOv5、PPYOLOE[23]等。YOLOv7網絡架構如圖1所示,其骨干網絡(Backbone)主要是由ELAN、CBS 和MP-1 結構組成,用于提取特征。Head 由SPPCSPC、ELAN-C、MP-2和REP結構組成,用于模型預測。
YOLOv7將模型重參數化引入到網絡架構,訓練時采用多分支的網絡使模型獲取更好的特征表達;同時加入標簽分配策略進一步地提升網絡性能;利用有效層聚合網絡使得深層網絡可以有效學習和收斂,使得模型更加高效,提升模型檢測精度。
鋼板缺陷檢測是在鋼板制造和生產過程中的一個重要環節,旨在發現和識別鋼板上的缺陷,以確保生產出高質量的鋼板產品。主要有以下幾種檢測技術。
1.3.1 視覺檢測技術
視覺檢測是最常用的鋼板缺陷檢測方法之一,它利用高分辨率相機和圖像處理算法,對鋼板表面進行掃描和分析,以檢測缺陷如裂紋、劃痕、孔洞等。這些技術通常結合光源、濾光器和圖像處理算法,以提高檢測的準確性和效率。
1.3.2 超聲波檢測技術
超聲波檢測是一種非接觸式的檢測方法,適用于檢測鋼板內部的缺陷,如氣孔、夾雜等。超聲波技術通過向鋼板中發送超聲波脈沖,并通過接收器接收反射回來的信號,根據信號的強度和時間延遲來確定缺陷的位置和類型。
1.3.3 磁粉檢測技術
磁粉檢測是一種常用的鋼板表面缺陷檢測方法,它利用磁場和磁粉顆粒來檢測鋼板表面的裂紋、疤痕等缺陷。在磁粉檢測過程中,鋼板表面涂覆有磁粉顆粒,然后施加磁場,如果存在缺陷,磁粉顆粒會在缺陷處形成可見的磁粉堆積。
1.3.4 熱成像檢測技術
熱成像檢測利用紅外熱像儀來檢測鋼板表面的溫度分布情況,以識別潛在的缺陷。缺陷通常會導致局部溫度變化,因此通過檢測溫度異常可以定位和識別缺陷。
1.3.5 機器學習檢測技術
近年來,機器學習技術在鋼板缺陷檢測中得到廣泛應用,通過大量的數據訓練模型,可以使計算機自動學習和識別鋼板上的各種缺陷,這種方法具有高度的自動化和準確性,并且可以處理大規模的生產線上的數據。
制造業的特殊性使得鋼板傷痕的通用數據集缺失,若要將深度學習用于該領域的缺陷檢測問題,就必須自制大規模的訓練集合。然而,多種缺陷出現概率極低,數月的在線采集也僅能得到十幾張到幾十張不等的缺陷樣本,無法實現對深度網絡的有效訓練和優化,最終導致檢測失敗,如3.3 節實驗所示。以邊絲壓入缺陷為例,采集到的該類次品樣本極少,僅占總樣本數的0.3%,正負樣本嚴重不均衡,無法對深度網絡進行有效的訓練。為了能將深度學習應用于上述小樣本分類問題,本文提出一種基于多維統計特征模型的樣本生成算法,能夠在尊重缺陷固有特征的前提下,生成大規模保真度高且多樣性強的樣本集合,進而解決樣本規模不足和樣本不均衡問題,使得將深度學習應用于小樣本目標檢測任務具備較好的可行性。
首先,統計良品集合中圖像各像素點亮度值的概率分布,舍棄3σ以外的亮度分布,對剩余的亮度值求歸一化加權平均,得到背景模型IB:
其中,x、y分別為樣本圖像中各像素的行、列坐標,Ii表示選取到的第i個亮度級,N為亮度級的最大值,pi表示Ii出現的概率,圖2為得到的背景模型。
然后,提取次品集合中各樣本圖像的傷痕區域,并對其進行有效特征的統計分析。通過實驗分析可知,鋼板邊絲壓入缺陷檢測的強特征包括傷痕長度α(單位為像素),傷痕寬度β(單位為像素)和傷痕角度θ(單位為度),傷痕的統計特征向量可表示為C=(α,β,θ)T。分別統計α、β及θ的均值及標準差,(μα,σα)=(401,16),(μβ,σβ)=(1 3,2),(μθ,σθ)=(1 20,45)。假設強特征之間相互獨立,且均符合正態分布,據此建立鋼板傷痕的三元正態分布模型Sαβθ。依據此模型的概率分布特征,隨機生成M(本文中M=2 000)個傷痕子圖。設特征向量生成樣本的概率密度函數為:
其中,Σ=Cov(C)為C=(α,β,θ)T的協方差矩陣,μ為數學特征均值向量,μ=(μα,μβ,μθ)T。得到的邊絲壓入缺陷子圖如圖3所示。

圖3 生成的傷痕子圖Fig.3 Generated scar subgraph
接著,對生成的各傷痕子圖的邊緣進行半徑為R(本文中R=60)的羽化,即使處于傷痕子圖邊緣R行、R列像素的透明度dr隨邊緣半徑r的增大逐漸從0%遞增到100%,羽化效果如圖4所示,透明度函數表示為:

圖4 傷痕子圖羽化后效果Fig.4 Effect of feathered scar sub image
最后,隨機調節羽化處理后的各傷痕子圖的位置,并將其與背景模型IB進行基于透明度的圖像融合,去除結構相似性較差的樣本,即可得到規模為M的多樣性邊絲壓入缺陷樣本集合。將該集合并入原傷痕樣本集合,即可在不改變樣本統計分布特征的前提下,獲得保真度好且多樣性強的大規模訓練樣本,有效解決正負樣本不均衡的問題,使得深度網絡能夠被有效訓練,并最終實現高性能缺陷檢測。圖5 為使用邊絲壓入缺陷樣本生成算法生成樣本的展示效果圖。

圖5 傷痕樣本生成展示Fig.5 Display of scar sample generation
本文基于原YOLOv7 網絡在特征提取環節進行改進,對網絡中ELAN模塊進行了優化,引入SE模塊[24]來加強網絡提取關鍵特征的能力。SE-ELAN模塊采用一種特征重標定策略,使網絡能夠充分利用全局信息,通過損失函數來自主地學習特征權重,取得各個特征通道的重要程度,達成特征通道自適應標定,增加有效特征通道的權值,減少無效特征通道的權值,從而增強重要的特征、抑制次要的特征,提升模型的檢測性能。圖6為SE-ELAN的結構圖。

圖6 SE-ELAN模塊Fig.6 SE-ELAN module
SE-ELAN原理如下:首先,給定特征圖X′,維度信息為H′×W′×C′,經過卷積操作后生成維度為H×W×C的特征圖U。然后,經過全局平均池化操作,將H×W×C大小的特征圖壓縮為1×1×C。這一維參數亦獲取了H×W全局的感受野。接著,依次經過全連接層和激活函數,利用全連接層對特征圖進行下采樣操作,將特征維度由1×1×C降采樣為1×1×C/r,其中r表示為一個縮放參數,降低模型的參數量,加快模型訓練。然后,使用激活函數來增加網絡非線性擬合能力。再通過全連接層將特征維度由1×1×C/r上采樣到1×1×C的大小。之后,經過Sigmoid 歸一化成數值為0~1的權重,不同大小的權重代表了不同特征通道的重要性。最后,通過一個Scale步驟,將各個通道對應的特征與相應的權重進行加權處理。
本文由CoAtNet[25]網絡得到啟發,結合卷積以及自注意力機制的特點,引入ACmix[26]模塊來提升網絡對鋼板表面缺陷小尺寸目標的關注度。其結構是卷積與自注意力兩部分融合而成,原理如圖7所示。
首先,利用三個1×1的卷積對輸入的特征進行投影后分成N部分,得到3N個映射之后的中間特征。在第一個分支上,利用卷積操作獲取局部感受野的特征信息,中間特征經過全連接層后,再將生成的特征進行位移以及聚合的操作,接著對輸入的特征采取卷積處理,得到H×W×C的特征;在第二個分支上,利用自注意力機制獲取全局感受野,而且更加關注重點。3N個中間特征對應三個特征圖,分別為Query、Key和Value,并遵循多頭自注意力模塊,再通過卷積處理得到H×W×C的特征。最后,將以上兩個分支的輸出加在一起,其強度由兩個可學習的標量控制。
其中,Fout為ACmix 模塊中最后的輸出結果,Fatt、Fconv分別為自注意力路徑與卷積路徑上的輸出結果,α和β值設置為1。ACmix 集成卷積和自注意力模塊的優點,作用于YOLOv7網絡中的Head部分,利用注意力機制來加權不同邊界框的預測結果,根據每個邊界框的特征表示或置信度等信息,動態地調整不同邊界框的重要性,以提高對小目標的關注度,降低網絡模型檢測小目標時產生的漏檢情況,提升整體的檢測準確度。
改進后YOLOv7網絡結構如圖8所示。

圖8 改進后YOLOv7網絡結構Fig.8 Improved YOLOv7 network structure
本文在實驗過程中,發現數據集存在低質量的樣本,幾何因素會造成低質量樣本加重懲罰,導致模型泛化能力不足。針對此問題,本文引入動態非單調的聚焦機制WIoU[27]替換YOLOv7 中的損失函數,使用離群值β替代IoU對錨框質量評估,其定義如式(5)、(6)所示:
3.1.1 實驗設定
在本文中,實驗使用Linux 操作系統,GPU 采用GeForce RTX 2080 Ti 的11 GB 顯 卡,CPU 為Intel?Xeon?E5-2620 V4 2.10 GHz,CUDA 版本為10.0。所有網絡均未使用預訓練模型,設置訓練輪次epoch=100,批量大小batch size=8,設置網絡初始學習率為0.01,輸入的圖片尺寸大小統一縮放為640×640。
3.1.2 數據集介紹
本文共使用兩種數據集,第一種為微軟公司發布的COCO2017 數據集,實驗中使用118 287 張圖片用來訓練,5 000張圖片用來驗證,共計數據123 287張,包含80個種類。第二種為鋼板表面缺陷數據集SPD(steel plate defect data set),從鋼板生產過程中采集的缺陷樣本數據,并對其進行了標注、分類,其中訓練集圖片有690張,驗證集圖片為176張,共計數據866張,包含5個種類。在SPD數據集中有一種名為“邊絲壓入”的缺陷,樣本數量極少,屬于小樣本數據,本文通過樣本生成算法將其樣本數據由16張擴增為150張。
3.1.3 評價指標
本實驗中,以召回率、準確率、mAP 作為評價指標。召回率用來表示模型在檢測任務中,正確檢測到的正樣本數量,占總正樣本數的比例。準確率用來表示模型在實際檢測任務當中,正確檢測到的樣本數量,占總樣本數的比例。mAP 體現了目標檢測網絡的綜合性能,其中mAP又分為mAP0.5、mAP0.5:0.95、mAPsmall、mAPmedian、mAPlarge。
3.2.1 算法改進有效性驗證
本文提出的算法是在YOLOv7基礎上改進所得,為體現改進方法的優勢,排除數據增強對實驗結果的影響,在未使用樣本生成算法的SPD數據集上對各改進策略進行有效性驗證,消融實驗結果如表1所示。

表1 消融實驗結果對比Table 1 Comparison of ablation experiment results
實驗結果表明,本文在YOLOv7 算法基礎上提出的各種改進方法,對模型的檢測性能均起到一定的提升作用,而且本文提出的檢測算法在檢測性能上表現更為優異。
3.2.2 樣本生成算法有效性驗證
針對鋼板表面缺陷數據集中存在的小樣本問題,本文提出一種樣本生成算法,下面使用YOLOv7驗證小樣本數據集擴增前后對檢測結果的影響。
實驗結果如表2 所示,未經過擴增的小樣本數據集,由于訓練樣本過少,導致模型檢測性能較差,無法滿足檢測任務。而在經過樣本擴增之后,訓練數據量得到擴充,模型的檢測性能也隨之提升。另外,為驗證2.1節中傷痕子圖羽化前后是否對檢測結果產生影響,本文通過實驗進行論證,實驗結果表明,羽化操作有助于還原真實樣本特征,更加接近真實數據,便于模型對真實特征的學習,從而提升模型的檢測性能。

表2 樣本生成算法有效性實驗結果Table 2 Experimental results on effectiveness of sample generation algorithm
3.3.1 驗證樣本生成算法的有效性
從SPD 數據集中,取出產品缺陷為邊絲壓入的小樣本數據,來驗證本文提出的傷痕樣本生成算法是否有效。
由圖9可知:原YOLOv7在小樣本數據集上無法準確檢測到目標,這是由于訓練集樣本過少,正負樣本不均衡,導致缺陷檢測失效。而使用本文的樣本生成算法后,模型檢測精度得到提高,沒有漏檢和誤檢現象,說明本文算法可以改善小樣本數據中正負樣本不均衡的情況,在解決鋼板表面缺陷小樣本問題上是有效、可行的。

圖9 檢測效果對比圖Fig.9 Comparison of detection effects
3.3.2 公共數據集上的實驗對比
為了評價本文基于YOLOv7改進前后算法優勢,使用COCO數據集來驗證本文提出改進方法的有效性,實驗結果如表3所示。

表3 COCO數據集實驗結果Table 3 Experimental results of COCO dataset
由圖10可知,組圖從左至右,原YOLOv7依次出現了定位不準確、小目標漏檢、誤檢、檢測精度低的情況,而本文算法均未出現此類問題,檢測精度更高,檢測性能更優。經過實驗證明,本文基于YOLOv7改進的方法是有效、可行的。

圖10 COCO數據集檢測結果對比Fig.10 Comparison of COCO dataset detection results
3.3.3 鋼板表面缺陷數據集(SPD)上的實驗對比
為了論證本文基于YOLOv7 改進的算法在鋼板表面缺陷檢測任務上更加優異,使用在鋼板生產過程中采集的鋼板表面缺陷樣本數據集,通過對比模型檢測結果,來驗證本文提出的算法優勢。
圖11 中,圖(a)為原YOLOv7 檢測結果,圖(b)為本文算法檢測結果。經過對比可知YOLOv7存在誤檢、漏檢現象,無法滿足工業檢測的需求。而本文提出的算法不僅可以正確檢測出圖中所有缺陷目標,而且沒有發生誤檢、漏檢的現象,檢測精度更高,對于復雜的工業數據中的目標有著較好的檢測效果,更能滿足鋼板表面缺陷檢測任務。本文算法在鋼板表面缺陷數據集上與其他算法的對比實驗結果,如表4所示。

表4 鋼板表面缺陷數據集實驗結果對比Table 4 Comparison of experimental results of steel plate surface defect dataset

圖11 SPD數據集檢測結果對比Fig.11 Comparison of SPD dataset detection results
本文提出一種改進YOLOv7 網絡的鋼板表面缺陷檢測方法,對原網絡的ELAN 模塊進行優化改進,便于提取鋼板表面缺陷的重要特征信息。加入ACmix注意力模塊,將自注意力機制和傳統卷積注意力機制相融合,提高對鋼板表面小尺寸缺陷的關注度,同時對損失函數進行優化,使用WIoU 替換原損失函數,增強網絡模型的定位能力,提高檢測的準確性。當訓練輪次足夠,模型收斂時,檢測精度可達到98.6%,高于工業檢測的需求。最后,針對鋼板表面缺陷數據中存在小樣本的問題,本文提出一種小樣本缺陷樣本生成算法,改善了鋼板表面缺陷檢測任務中小樣本數據集正負樣本不均衡的情況,極大地提高了小樣本數據集檢測的精度,為解決小樣本問題提供了一個有效的方案。下一步將在保證模型高檢測精度的前提下,降低模型參數的規模,降低計算量,提升模型的檢測速度,使之更適于實際應用。