鄧能輝,周秉國,張志杰,石 杰,吳昆鵬
(1.北京科技大學(xué)國家板帶生產(chǎn)先進(jìn)裝備工程技術(shù)研究中心,北京 100083;2.北京科技大學(xué)設(shè)計(jì)研究院有限公司,北京 100083;3.六安鋼鐵控股集團(tuán)有限公司,安徽六安 237400)
鑄坯在生產(chǎn)過程中因工藝及原料影響會產(chǎn)生不同程度缺陷,嚴(yán)重的缺陷不僅會影響后續(xù)生產(chǎn),還影響最終產(chǎn)品的耐腐蝕性和耐磨性。針對表面溫度1 000 ℃左右的鑄坯表面缺陷檢測,傳統(tǒng)人工目視檢測方法[1]不能完全反映金屬表面質(zhì)量情況,同時因?qū)崟r性不足,無法適應(yīng)生產(chǎn)的高效率運(yùn)行,并且受到質(zhì)檢人員主觀經(jīng)驗(yàn)因素差異的影響,缺乏缺陷判定的一致性與科學(xué)性。
隨著對高質(zhì)量鑄坯需求的增加,基于機(jī)器視覺的表面檢測系統(tǒng)在鋼鐵行業(yè)得到廣泛的應(yīng)用。傳統(tǒng)經(jīng)典的機(jī)器視覺方法主要包括:SIFT[2]、LBP[3-4]、Gabor 濾波器[5]和Haar[6]等,對于鑄坯表面檢測,這些方法僅對背景相對干凈的缺陷圖像檢測效果較好。然而實(shí)際的鑄坯生產(chǎn)過程中,由于現(xiàn)場灰塵鐵屑干擾、鑄坯背景復(fù)雜和缺陷辨識度低等因素影響,使得傳統(tǒng)經(jīng)典的機(jī)器視覺方法在實(shí)時性和準(zhǔn)確率上均無法滿足實(shí)際需求。
與傳統(tǒng)機(jī)器視覺方法相比,深度學(xué)習(xí)方法具有檢測能力和可擴(kuò)展性強(qiáng)的優(yōu)點(diǎn)。深度學(xué)習(xí)方法經(jīng)歷了由二階段到一階段的發(fā)展過程。經(jīng)典的二階段方法主要是Faster-RCNN系列[7-9],該方法具有檢測精度高的優(yōu)勢,然而參數(shù)量龐大且運(yùn)行速度慢也是其非常顯著的缺點(diǎn)。針對這些問題,一階段方法SSD[10]和YOLO系列[11-13]被提出,這些方法有運(yùn)行速度快的優(yōu)點(diǎn),能夠滿足智慧工廠的實(shí)時表面質(zhì)量檢測需求,但是檢測精度又有所損失。而實(shí)際鑄坯生產(chǎn)過程中,鑄坯表面缺陷檢測存在2個難點(diǎn):由于冷卻氧化的影響,鑄坯表面圖像的背景復(fù)雜,大大增加檢測的難度;高準(zhǔn)確度與實(shí)時性相互矛盾,鑄坯的上下表面共需4~8個相機(jī)來采集圖像,且需要進(jìn)行實(shí)時處理,然而準(zhǔn)確度越高的方法速度越慢,設(shè)計(jì)能夠進(jìn)行大量缺陷圖像的實(shí)時兼高準(zhǔn)確度的檢測方法具有較大難度。YOLOv5s[14-15]作為YOLO系列改進(jìn)方法的典型代表網(wǎng)絡(luò),速度上優(yōu)勢明顯,模型體積小,靈活性高,能夠解決上述難點(diǎn),是個較好的檢測方法,但是仍需在檢測速度和準(zhǔn)確度上進(jìn)一步提高。因此本文提出了一種基于改進(jìn)YOLOv5s的鑄坯表面缺陷檢測方法,實(shí)時有效完成鑄坯表面缺陷的檢測,降低鑄坯產(chǎn)品質(zhì)量問題產(chǎn)生的經(jīng)濟(jì)損失。
基于機(jī)器視覺的鑄坯表面檢測系統(tǒng)結(jié)構(gòu)如圖1所示,主要分為圖像采集部分和數(shù)據(jù)處理部分。
圖像采集部分包括激光光源和CCD(charge coupled device)線陣相機(jī)。圖像采集原理為光源發(fā)出的光照射到運(yùn)行態(tài)的鑄坯表面,并反射到CCD成像靶面,接收到的光強(qiáng)通過灰度呈現(xiàn)出來,光強(qiáng)越大,灰度值越高,光強(qiáng)越小,灰度值越低。由于鑄坯表面的缺陷區(qū)域和無缺陷區(qū)域?qū)夥瓷涞男再|(zhì)不同,有無缺陷的圖像灰度會存在差異,因此通過對CCD相機(jī)采集到的灰度圖像進(jìn)行處理分析,可以檢測鑄坯表面是否存在缺陷。
數(shù)據(jù)處理單元由服務(wù)器和圖形工作站組成,形成并行計(jì)算機(jī)系統(tǒng)。由CCD相機(jī)獲取到鑄坯圖像通過以太網(wǎng)傳輸?shù)讲⑿杏?jì)算機(jī)系統(tǒng),存儲后進(jìn)行圖像處理及分析。相機(jī)采集的原始鑄坯表面圖像如圖2所示,圖像大小為4 096 pixel×1 024 pixel。
(a)具有劃傷缺陷的鑄坯圖像
從圖2可以可明顯觀察到圖像中背景較為復(fù)雜,存在大量的氧化鐵皮干擾,缺陷隱藏在復(fù)雜的背景中,增大了缺陷檢測的難度。而冷軋帶鋼表面圖像的背景則更為干凈,易于進(jìn)行缺陷檢測,因此采用CycleGAN[16]將鑄坯復(fù)雜背景遷移為冷軋帶鋼圖像的圖像域再作為缺陷檢測模型的輸入圖像。由于背景遷移部分增加了網(wǎng)絡(luò)的參數(shù)和計(jì)算量,因此利用Ghost卷積[17]和GhostBottleneck[18]重新構(gòu)建原始YOLOv5的特征提取骨架,重點(diǎn)改善其中的標(biāo)準(zhǔn)卷積和C3結(jié)構(gòu),實(shí)現(xiàn)網(wǎng)絡(luò)的輕量化。此外為了彌補(bǔ)輕量化過程可能帶來的檢測準(zhǔn)確度損失,在YOLOv5s模型的頸部模塊中嵌入SE注意力機(jī)制。改進(jìn)YOLOv5s的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)
CycleGAN的重要應(yīng)用在于其具備域遷移能力,并且其對于訓(xùn)練數(shù)據(jù)的要求可以是不成對的樣本,訓(xùn)練所需的輸入圖像和輸出圖像沒有嚴(yán)格的對應(yīng)關(guān)系,極大地降低了跨域遷移所需的數(shù)據(jù)采集難度。本文綜合考慮背景及缺陷的特性,采用冷軋帶鋼的樣本集作為目標(biāo)域進(jìn)行圖像的跨域轉(zhuǎn)換。
CycleGAN的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,在域遷移的過程中,鑄坯域圖像A和冷軋域圖像B互相轉(zhuǎn)化,A→B和B→A的過程各需要一組生成器GA2B和GB2A,以及一組鑒別器DA和DB。生成器和鑒別器的作用如下:
(a)鑄坯域A→冷軋域B的轉(zhuǎn)化網(wǎng)絡(luò)
GA2B的作用為將真實(shí)鑄坯圖像轉(zhuǎn)化為冷軋域圖像(假的)或者將生成的鑄坯圖像轉(zhuǎn)化為冷軋圖像。
GB2A的作用為將真實(shí)冷軋圖像轉(zhuǎn)化為鑄坯域圖像(假的)或者將生成的冷軋圖像轉(zhuǎn)化為鑄坯圖像。
DA的作用為鑒別真實(shí)鑄坯圖像或者生成的鑄坯圖像。
DB的作用為鑒別真實(shí)冷軋圖像或者生成的冷軋圖像。
CycleGAN的損失函數(shù)Loss主要由2部分組成,表達(dá)式如(1)所示。
Loss=LossGAN+Losscycle
(1)
式中:LossGAN為鑒別器的損失函數(shù);Losscycle為生成器的損失函數(shù)。
A→B和B→A的生成器損失函數(shù)如式(2)和式(3)所示。LossGAN如式(4)所示,是式(2)和式(3)的加和。
LGAN(GA2B,DB,A,B)
=Eb~B[logDB(b)]+Ea~A[log(1-DB(GA2B(a)))]
(2)
式中:LGAN(GA2B,DB,A,B)為A→B的生成器損失函數(shù);E為最大似然估計(jì);a和b分別屬于數(shù)據(jù)集A和數(shù)據(jù)集B。
LGAN(GB2A,DA,B,A)=Ea~A[logDA(a)]+
Eb~B[log(1-DA(GB2A(b)))]
(3)
式中LGAN(GB2A,DA,B,A)表示B→A的生成器損失函數(shù)。
LossGAN=LGAN(GA2B,DB,A,B)+
LGAN(GB2A,DA,B,A)
(4)
GA2B和GB2A的損失函數(shù)相加的和Losscycle如式(5)所示。
Losscycle=Ea~A[‖GB2A(GA2B(a))-a‖1]+
Eb~B[‖GA2B(GB2A(B))-B‖1]
(5)
本文中改進(jìn)YOLOv5在訓(xùn)練過程中需提前進(jìn)行整體CycleGAN模型的訓(xùn)練,在訓(xùn)練YOLOv5目標(biāo)檢測網(wǎng)絡(luò)部分時采用CycleGAN模型中A→B的參數(shù)進(jìn)行改進(jìn)YOLOv5模型中跨域轉(zhuǎn)換部分的參數(shù)初始化,并且這部分參數(shù)在目標(biāo)檢測部分訓(xùn)練時進(jìn)行凍結(jié)操作,不進(jìn)行參數(shù)的迭代更新。
YOLOv5s網(wǎng)絡(luò)中特征提取層和頸部層共有8個C3模塊和若干個傳統(tǒng)卷積Conv,每個C3模塊又由標(biāo)準(zhǔn)卷積Conv和Bottleneck組成,并且采用了殘差結(jié)構(gòu)增強(qiáng)網(wǎng)絡(luò)提取能力,各模塊的組成結(jié)構(gòu)如圖5所示。
(a)標(biāo)準(zhǔn)卷積Conv (b)Bottleneck (c)C3
為了輕量化YOLOv5s模型達(dá)到提升檢測效率的目的,本文采用Ghost卷積優(yōu)化標(biāo)準(zhǔn)卷積結(jié)構(gòu)。Ghost能夠利用更少的參數(shù)生成更豐富的特征,其原理示意圖如圖6所示。
圖6 Ghost原理示意圖
Ghost的計(jì)算過程:假設(shè)輸入特征圖為X∈Rh×w×c。Y′為輸出的m個特征圖。f′為大小為k×k的卷積核,f′∈Rh×w×m。輸入和輸出關(guān)系如式(6)所示。
Y′ =X×f′
(6)
為了獲得n-m個特征圖,利用卷積核大小為d×d的線性卷積層對Y′進(jìn)行s-1次線性運(yùn)算,s=n/m。
然后將輸出的Y′與通過線性計(jì)算得到的特征圖進(jìn)行拼接,獲得n個特征圖。其線性計(jì)算如式(7)所示。
yij=Φij(yi′),?i=1,…,m;j=1,…,s
(7)
式中:yi′為Y′的第i個特征;Φij為第i個特征圖進(jìn)行第j個線性計(jì)算,最終獲得n個特征Y=[y11,y12,…,yms]。
采用GhostBottleneck與Ghost的組合替換原始的C3結(jié)構(gòu),GhostBottleneck的網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示,采用級聯(lián)的Ghost結(jié)構(gòu)和殘差結(jié)構(gòu)組合而成,分為stride=1 Bottleneck結(jié)構(gòu)和stride=2 Bottleneck結(jié)構(gòu),stride=2 Bottleneck結(jié)構(gòu)是增加深度卷積DWConv(Depthwise Convolution)得到的,由于添加深度卷積增加計(jì)算量較少卻能夠有效提高準(zhǔn)確度,因此本文主要采用stride=2 Bottleneck結(jié)構(gòu)替換Bottleneck。
(a)Stirde=1 Bottleneck (b)Stirde=2 Bottleneck
輕量化YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)在大幅度降低參數(shù)量和計(jì)算量的同時,也不可避免地影響到模型檢測的準(zhǔn)確度。為了彌補(bǔ)模型參數(shù)降低帶來的特征損失,在YOLOv5s的頸部引入SE注意力機(jī)制[18]提升模型分辨缺陷的能力。SE注意力機(jī)制網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示,先通過全局池化得到1×1×C維度的權(quán)重,然后經(jīng)過2個全連接層進(jìn)行注意力權(quán)重的學(xué)習(xí),最后與原始特征進(jìn)行加權(quán)乘積運(yùn)算得到新的特征。
圖8 SE注意力機(jī)制結(jié)構(gòu)圖
從圖3可以看到在YOLOv5s輸出頭處增加了2個注意力機(jī)制特征抽取模塊,可以有效提升模型檢測的準(zhǔn)確度。
鑄坯表面缺陷數(shù)據(jù)集共有4 671張圖片,包含縱裂、結(jié)疤、揭痕、渣皮、劃傷、切割瘤共6個類別,以8∶2的比例將數(shù)據(jù)集劃分為訓(xùn)練集3 736張圖片,驗(yàn)證集935張圖片,數(shù)據(jù)集分布情況見表1,其中各缺陷類別典型樣本圖像如圖9所示。
表1 各類樣本數(shù)據(jù)集 張
圖9 鑄坯典型缺陷圖像
為進(jìn)行CycleGAN網(wǎng)絡(luò)域遷移的訓(xùn)練,挑選了與鑄坯數(shù)據(jù)集同等數(shù)量的冷軋表面缺陷樣本,冷軋樣本未區(qū)分具體缺陷類別,部分參考圖像如圖10所示。
圖10 冷軋參考缺陷圖像
直接進(jìn)行相機(jī)原始數(shù)據(jù)的處理,不僅需要占用較多的計(jì)算資源,還會因?yàn)閿?shù)據(jù)下采樣影響檢測精度,因此,在輸入模型前需要對圖像進(jìn)行預(yù)處理,將原始鑄坯表面圖像沿寬度方向上以1 024 pixel進(jìn)行圖像裁剪,裁剪步長為768 pixel,每張圖像會被裁剪為5張1 024 pixel×1 024pixel大小的子圖,相鄰子圖之間存在一定區(qū)域的重合,可以防止缺陷信息的丟失。裁剪后的子圖會最終根據(jù)具體模型的需求尺寸再進(jìn)行Resize后作為模型輸入。
3.2.1 CycleGAN域遷移效果分析
域遷移過程主要目的是通過轉(zhuǎn)換鑄坯圖像域,一方面使得圖像灰度分布更加均勻進(jìn)而提升缺陷展示效果,另一方面能夠起到一定的背景抑制作用,降低后續(xù)目標(biāo)檢測過程中出現(xiàn)缺陷誤報(bào)的概率,提升檢測的準(zhǔn)確率。
如圖11所示,圖11(a)是原始鑄坯圖像,圖11(b)為經(jīng)過鑄坯到冷軋生成器的域遷移結(jié)果,即具有冷軋樣本域的鑄坯圖像,圖11(c)為再次轉(zhuǎn)換還原的鑄坯圖像。實(shí)驗(yàn)結(jié)果表明,無論鑄坯圖像的背景復(fù)雜、過暗或過曝,通過CycleGAN域轉(zhuǎn)換后的圖像中缺陷形貌均更為清晰,背景灰度也相對均勻,為目標(biāo)檢測模型抽取有效特征提供了良好的圖像基礎(chǔ)。
圖11 域遷移轉(zhuǎn)換結(jié)果
3.2.2 改進(jìn)YOLOv5s效果分析
模型訓(xùn)練過程batch size設(shè)置為16,初始學(xué)習(xí)率為0.01,學(xué)習(xí)率采用余弦退火方式調(diào)整,輸入圖像大小為640 pixel×640 pixel,epochs為300輪。
為了驗(yàn)證本文改進(jìn)YOLOv5s網(wǎng)絡(luò)各模塊對于總體檢測指標(biāo)的影響,通過消融實(shí)驗(yàn)來測試不同模塊的效果。
如表2所示,表中“√”表示YOLOv5s網(wǎng)絡(luò)中填加了該模塊,反之“-”表示未填加該模塊。
表2 消融實(shí)驗(yàn)結(jié)果
表2中FLOPs(floating point operations)表示浮點(diǎn)運(yùn)算次數(shù),mAP表示均值平均精度。
利用CycleGAN域遷移后,YOLOv5s的檢測準(zhǔn)確度提高了3.6%,但計(jì)算量卻大大增加,而經(jīng)過Ghost和GhostBottleneck輕量化網(wǎng)絡(luò)后,計(jì)算量明顯降低,同時準(zhǔn)確度下降5.1%。經(jīng)過添加SE注意力模塊后,改進(jìn)的YOLOv5s相比原始YOLOv5s的檢測準(zhǔn)確度提高了2.9%,整體改進(jìn)后計(jì)算量降低2.5 FLOPs。
將本文的缺陷檢測方法與其他改進(jìn)YOLOv5s的輕量化檢測方法進(jìn)行比較,如表3所示。
表3 不同缺陷檢測模型的實(shí)驗(yàn)結(jié)果對比
本文計(jì)算量較大,這主要是由于添加CycleGAN模塊引入了較多計(jì)算。但本文方法在滿足實(shí)時檢測的基礎(chǔ)上,缺陷檢測準(zhǔn)確度方面相比其他模型提升超過7.5%,檢測效果得到明顯改善。
圖12為本文模型在鑄坯圖像上的檢測效果。圖12(a)~圖12(c)中Hs、Jh、Lw分別表示劃傷、接痕和裂紋,數(shù)字表示置信度。從圖中能夠發(fā)現(xiàn)在復(fù)雜背景下具備對不明顯缺陷的檢出能力,同時無顯著的誤報(bào)情況。
(a)劃傷
本文為解決鑄坯表面缺陷檢測面臨的背景氧化鐵皮干擾、噪聲較多的問題,提出采用CycleGAN模塊進(jìn)行域轉(zhuǎn)換,降低鑄坯背景中復(fù)雜噪聲引起的缺陷誤報(bào),為目標(biāo)檢測模型提供了穩(wěn)定的數(shù)據(jù)源。
通過進(jìn)行YOLOv5s的輕量化,在對缺陷檢測準(zhǔn)確率影響不大的情況下降低了模型計(jì)算量,提升了缺陷檢測效率。
本文中雖然合理地整合了CycleGAN和YOLOv5s模型,但在計(jì)算量上相對其他輕量型模型還存在需要改進(jìn)的地方,可以在2個模型的融合的策略上進(jìn)行研究改進(jìn)。