游大朋,楊 靜*,張 露,焦喜香,胡學(xué)進(jìn)
(1.合肥學(xué)院人工智能與大數(shù)據(jù)學(xué)院,安徽合肥 230601;2.合肥綜合性國(guó)家科學(xué)中心人工智能研究院,安徽合肥 230088)
目前國(guó)內(nèi)的制造業(yè)發(fā)展迅速,但部分行業(yè)的技術(shù)并不先進(jìn),例如鋼材生產(chǎn)行業(yè)。因鋼鐵的生產(chǎn)流程非常復(fù)雜,工序多,其現(xiàn)代化生產(chǎn)模式尚未完全普及,大部分工廠都還未實(shí)現(xiàn)完全的機(jī)械化,生產(chǎn)的方法也相對(duì)簡(jiǎn)單,這就導(dǎo)致鋼鐵的表面可能存在很多的缺陷,如裂紋(Crazing,Cr)、夾雜物(Inclusion,In)、斑塊(Patches,Pa)、麻點(diǎn)(Pitted Surface,Ps)、氧化鐵皮(Rolledin Scale,Rs)和劃痕(Scratches,Sc)。在上述各種缺陷中,裂紋的形狀比較復(fù)雜多樣,大部分是魚(yú)鱗狀,其產(chǎn)生的主要原因是溫度加熱不均。Cr 對(duì)鋼材的性能破壞極大,若未被及時(shí)發(fā)現(xiàn)和處理,其會(huì)造成鋼材的破損和開(kāi)裂;In是鋼材表面出現(xiàn)的深灰色或棕色斑塊,一般是在鋼材生產(chǎn)的過(guò)程中混入了其他的非金屬,其很容易導(dǎo)致鋼材的開(kāi)裂;Pa是鋼材表面出現(xiàn)的參差不齊的形狀,產(chǎn)生的主要原因是在冷卻過(guò)程中沒(méi)有均勻吸收冷卻液,其會(huì)影響鋼材的結(jié)構(gòu)穩(wěn)定性,縮短鋼材的使用壽命;Ps是參差不齊的粗糙面,加熱過(guò)程中產(chǎn)生的氧化物沒(méi)有得到完全清除時(shí),就會(huì)產(chǎn)生麻點(diǎn),麻點(diǎn)對(duì)鋼材的性能影響不大,但是會(huì)造成一定程度的厚度誤差,從而影響精度;Rs是在加熱時(shí)間過(guò)長(zhǎng)時(shí)鋼材表面產(chǎn)生的黑色或紅棕色氧化物,如未及時(shí)清理,會(huì)在軋制過(guò)程中被壓入鋼材表面,降低鋼材性能;Sc 是6 種缺陷里最常見(jiàn)的,其性狀是明亮的細(xì)長(zhǎng)白條,主要是因鋼材生產(chǎn)或搬運(yùn)過(guò)程中與堅(jiān)硬的物體非正常接觸造成的,劃痕會(huì)降低鋼材的強(qiáng)度,影響使用壽命。以上缺陷如圖1 所示。由圖1 可見(jiàn),這些缺陷會(huì)導(dǎo)致產(chǎn)品性能下降和壽命縮短,且極易引發(fā)安全事故。
圖1 鋼材表面缺陷類型圖片
隨著我國(guó)經(jīng)濟(jì)的飛速發(fā)展和鋼材市場(chǎng)供求新形勢(shì)的影響,市場(chǎng)對(duì)鋼材質(zhì)量和價(jià)格的要求發(fā)生了改變,質(zhì)量好的鋼材在建筑方面起到了重要的作用,可以直接影響建筑工程的質(zhì)量,競(jìng)爭(zhēng)愈發(fā)激烈,因此,如何更高效地生產(chǎn)無(wú)缺陷的鋼材成了工業(yè)生產(chǎn)中較重要的問(wèn)題[1-2]。近年來(lái),采用深度學(xué)習(xí)的目標(biāo)檢測(cè)系統(tǒng)得到了迅速發(fā)展。從目標(biāo)檢測(cè)方法的發(fā)展思路上來(lái)看,主要分為二階段(Two-stage)目標(biāo)檢測(cè)方法和一階段(One-stage)目標(biāo)檢測(cè)方法。Two-stage 目標(biāo)檢測(cè)方法主要以Faster R-CNN[3]算法為主,準(zhǔn)確率更高;Onestage目標(biāo)檢測(cè)方法主要有YOLO系列算法和SSD[4],其中YOLO 系列算法包含YOLOv3[5]、YOLOv4[6]、YOLOv5 等,One-stage目標(biāo)檢測(cè)方法具有更快的速度。此外,還有一些經(jīng)典的網(wǎng)絡(luò),如CenterNet[7]、DETR[8]和RetinaNet[9]。
國(guó)內(nèi)外的很多學(xué)者將目標(biāo)檢測(cè)技術(shù)應(yīng)用到缺陷檢測(cè)中,謝景洋等[10]在YOLOv3 的主干網(wǎng)絡(luò)中加入了MobileNets,在對(duì)織物的缺陷檢測(cè)中,不僅減少了參數(shù)量,速度也得到了提升;謝黎等[11]在YOLOv4 的基礎(chǔ)上增加一個(gè)用來(lái)檢測(cè)小目標(biāo)的檢測(cè)框,使得對(duì)于電路板元器件的檢測(cè)更加準(zhǔn)確;閆彥輝等[12]改進(jìn)了YOLOv5,對(duì)輸電線路的檢測(cè)中,不僅檢測(cè)精度高而且推理速度快;Zeng等[13]在缺陷檢測(cè)網(wǎng)絡(luò)中引入了模板和上下文,更適用于對(duì)大目標(biāo)進(jìn)行檢測(cè),但對(duì)小目標(biāo)檢測(cè)的區(qū)域不太準(zhǔn)確;Xu 等[14]在骨干網(wǎng)絡(luò)的不同階段采用了可變性卷積,細(xì)化和增強(qiáng)了獲取骨干網(wǎng)絡(luò)特征的能力,提高了平均精度,但是速度上沒(méi)有優(yōu)勢(shì);Liao等[15]改進(jìn)了骨干網(wǎng)絡(luò)中的激活函數(shù),減少了參數(shù)量,但對(duì)精度的提升不明顯。為了追求精度,李鑫等[16]在原有的YOLOv5s網(wǎng)絡(luò)中,用GhostBottleneck 結(jié)構(gòu)代替C3 和局部卷積結(jié)構(gòu),該新網(wǎng)絡(luò)的性能較原來(lái)的YOLOv5s網(wǎng)絡(luò)提高了3.3%;張宇杰等[17]增加了3 個(gè)小尺寸錨框,并且借鑒了YOLT算法的方式,可以更好地選中小目標(biāo)缺陷位置,提高整體精度;韓強(qiáng)等[18]利用特征融合和級(jí)聯(lián)檢測(cè)網(wǎng)絡(luò),對(duì)Faster R-CNN進(jìn)行了改進(jìn),其準(zhǔn)確率較原來(lái)的Faster R-CNN 提高了2.40%;Zhao等[19]重建了Faster R-CNN 的網(wǎng)絡(luò)結(jié)構(gòu),提高了對(duì)小目標(biāo)的檢測(cè)能力,平均精度提高到了75.2%;Wan 等[20]在YOLOv5s 的基礎(chǔ)上增加了注意力機(jī)制跟小尺度檢測(cè)層,提高了表面缺陷的檢測(cè)精度。Hao等[21]改進(jìn)了殘差網(wǎng)絡(luò),提出了基于特征金字塔與分散注意力網(wǎng)絡(luò)的DF-ResNeSt50 模型來(lái)提高精度;Sharma等[22]引入了一種分層方法來(lái)對(duì)鋼表面的缺陷進(jìn)行分類和檢測(cè),在NEU 數(shù)據(jù)集上檢測(cè)的精度高達(dá)77.12%;除此之外,為了追求速度,孫澤強(qiáng)等[23]采用CSPDarknet53 +FcaNet +Decoupled Head 的結(jié)構(gòu),檢測(cè)速度達(dá)到了27.71 f/s;翁玉尚等[24]改進(jìn)了Mask RCNN,去掉了掩碼分支,用K-means聚類算法改進(jìn)區(qū)域建議網(wǎng)絡(luò),檢測(cè)速度提高到了5.9 f/s;李丹等[25]提出了一種可分離的局部深度混合網(wǎng)絡(luò),識(shí)別一幅圖片平均僅需0.47 ms。
在已有的缺陷檢測(cè)研究中,大多數(shù)學(xué)者會(huì)把側(cè)重點(diǎn)放在精度或速度上,但由于涉及工業(yè)部署,算法應(yīng)該在精度和速度之間達(dá)到一個(gè)平衡,因此本文提出了一種基于結(jié)構(gòu)重參數(shù)化的鋼材缺陷檢測(cè)方法,主要特點(diǎn)如下。
①提出了Re-YOLOv5 架構(gòu),采用One-stage 方法的YOLOv5 算法,融入RepVGG模塊,能在加深網(wǎng)絡(luò)提升性能的同時(shí)提高推理速度,達(dá)到精度與速度的平衡。
②在網(wǎng)絡(luò)模型中引入改進(jìn)的SPP*層,增加感受野,加強(qiáng)網(wǎng)絡(luò)特征融合能力,提升對(duì)于不同類型目標(biāo)的檢測(cè)精度;將CSP組件改進(jìn)為CCBL組件,在保證檢測(cè)速度的同時(shí)實(shí)現(xiàn)精度的提升。
③在公開(kāi)的鋼材缺陷圖像數(shù)據(jù)集NEU-DET上進(jìn)行了驗(yàn)證,對(duì)6 種缺陷的平均檢測(cè)精度達(dá)到77.8%,比YOLOv5s 提升了6%,單幅圖片的推理時(shí)間僅為8.9 ms,精度和速度均能滿足工業(yè)部署的需求;在另一個(gè)公開(kāi)的鋼材缺陷圖像數(shù)據(jù)集GC10-DET上也進(jìn)行了驗(yàn)證,10 種鋼材的缺陷平均檢測(cè)精度超過(guò)原始的YOLOv5 算法。
在鋼材的實(shí)際生產(chǎn)過(guò)程中,由于生產(chǎn)速度極快,很容易產(chǎn)生缺陷。各種缺陷都有其顯著的特征,即缺陷之間的差異很大,會(huì)引發(fā)較大的數(shù)據(jù)波動(dòng),導(dǎo)致訓(xùn)練結(jié)果不夠全面,網(wǎng)絡(luò)在學(xué)習(xí)過(guò)程中出現(xiàn)過(guò)擬合,從而影響最終的檢測(cè)準(zhǔn)確率。此外,如何在保證缺陷檢測(cè)精度的同時(shí)提升效率是一個(gè)急需解決的問(wèn)題。基于此,本文提出了一種用于鋼材缺陷實(shí)時(shí)檢測(cè)的模型Re-YOLOv5,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 Re-YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5 有5 個(gè)版本,分別是YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x,5 個(gè)版本的層數(shù)與深度不同,依次遞增。本文提出的Re-YOLOv5 是在YOLOv5s 模型上進(jìn)行改進(jìn),以達(dá)到精度與處理效率的提升與平衡。具體地,Re-YOLOv5由3 個(gè)部分組成,Backbone、Head 和Output。將YOLOv5 的Neck 層與Head 層合并為Head 部分,用作預(yù)測(cè);Backbone用作特征提取。整個(gè)過(guò)程如下:首先對(duì)所輸入的圖像進(jìn)行預(yù)處理,設(shè)定為640 px ×640 px的RGB 圖像并對(duì)齊,然后將其輸入到Backbone網(wǎng)絡(luò)中進(jìn)行特征提取,根據(jù)Backbone 部分中的3 層輸出,經(jīng)過(guò)Head 部分,輸出3 層不同尺寸大小的特征圖,再由RepVGG模塊和卷積層輸出,最終得到目標(biāo)檢測(cè)結(jié)果。
1.1.1 Backbone
Backbone部分主要用于對(duì)輸入端接收到的圖像進(jìn)行特征提取,由若干CBL 層、CCBL 層和MC 層構(gòu)成,如圖3 所示。
圖3 Backbone部分的構(gòu)成
CBL 層主要由卷積層、BN 層和Leaky ReLU 激活函數(shù)構(gòu)成,其中CBL層有3 種不同的大小和步長(zhǎng):(3,1)表示卷積核大小為3,步長(zhǎng)為1;(3,2)表示卷積核大小為3,步長(zhǎng)為2;(1,1)表示卷積核大小為1,步長(zhǎng)為1。CCBL層主要由多個(gè)卷積層、BN層和Leaky Re-LU激活函數(shù)構(gòu)成,其輸入和輸出的特征大小保持不變,僅是剛開(kāi)始時(shí)候的2 個(gè)CBL 的通道不一致,之后的幾個(gè)輸入通道和輸出通道均保持一致,在經(jīng)過(guò)最后一個(gè)CBL后,輸出為所需要的通道。MC 層主要由最大池化層Maxpool 和CBL 層構(gòu)成,一共有5 層。輸入端的圖片首先經(jīng)過(guò)4 層CBL 層,此時(shí)特征圖變成160 px×160 px×128 px,隨后經(jīng)過(guò)CCBL層,此時(shí)特征圖變成160 px ×160 px ×256 px,接著經(jīng)過(guò)MC 層和CCBL層,此時(shí)特征圖變成80 px×80 px×512 px,分出一條分支經(jīng)過(guò)CBL層,此時(shí)特征圖變成80 px ×80 px×128 px,接著與Head 部分的模塊進(jìn)行張量拼接,另一條分支繼續(xù)經(jīng)過(guò)MC 層和CCBL 層,特征圖變?yōu)?0 px×40 px×1 024 px,依然分成2 條分支,其中一條分支經(jīng)過(guò)CBL層,特征圖變?yōu)?0 px ×40 px ×256 px,與Head 部分的模塊進(jìn)行張量拼接,另外一條分支繼續(xù)經(jīng)過(guò)MC層和CCBL層,特征圖變?yōu)?0 px×20 px×1 024 px,融入到Head部分。整個(gè)Backbone部分共計(jì)50 層,交替長(zhǎng)寬減半,通道增倍,用于特征提取。
1.1.2 Head
Head部分主要用于特征融合。本文將YOLOv5的Neck 層與Head 層合并為Head 部分,采用CIOU Loss做Bounding box的損失函數(shù),CIoU 損失函數(shù)如式(4)所示。在式(1)中:IIoU為交并比,ρ2(b,bgt)為預(yù)測(cè)框與真實(shí)框中心點(diǎn)的歐氏距離,c 為可以同時(shí)包含預(yù)測(cè)框與真實(shí)框的最小閉包區(qū)域的對(duì)角線距離。式(2)計(jì)算的是生成的錨框和目標(biāo)框之間的相似程度。式(3)為權(quán)重函數(shù),由式(3)可知損失函數(shù)是通過(guò)增加真實(shí)框與目標(biāo)框之間的重疊度來(lái)優(yōu)化的。由此可見(jiàn),CIoU損失函數(shù)的優(yōu)勢(shì)是可以使目標(biāo)框和真實(shí)框的距離最小化,加快損失函數(shù)的收斂速度。
如圖4 所示,Head 部分由SPP*層、若干MC 層、若干CCBL 層、張量拼接和RepVGG 模塊層組成。SPP*層首先把通道分為5 路,其中1 路經(jīng)過(guò)3 層CBL層,然后跟其中的3 條分支張量拼接在一起,之后再經(jīng)過(guò)2 層CBL層,與最后1 路經(jīng)過(guò)CBL層的分支張量拼接在一起。UP 層是上采樣操作。RepVGG 模塊在模型的訓(xùn)練和推理中有區(qū)別。在訓(xùn)練中,RepVGG 模塊由3 ×3 Conv和BN層、1 ×1 Conv和BN層再增加BN分支,3 個(gè)分支的組合相加輸出;而在推理中,則將各分支的參數(shù)重參數(shù)化到主分支上,再通過(guò)主分支的卷積來(lái)進(jìn)行運(yùn)算。
圖4 Head部分的構(gòu)成
輸入端的圖片經(jīng)過(guò)Backbone 的特征提取后到達(dá)Head,Head是一個(gè)PAFPN結(jié)構(gòu),即路徑聚合網(wǎng)絡(luò)加特征金字塔網(wǎng)絡(luò),經(jīng)過(guò)上采樣后進(jìn)行張量拼接。具體地,首先得到3 個(gè)特征圖,大小分別為20 px ×20 px ×1 024 px、40 px ×40 px ×256 px 和80 px ×80 px ×128 px。20 px×20 px ×1 024 px 大小的特征圖首先經(jīng)過(guò)SPP*層,隨后分成2 條分支,其中一條經(jīng)過(guò)上采樣,與從Backbone輸出的40 px×40 px×256 px特征圖進(jìn)行張量拼接,再經(jīng)過(guò)CCBL層,此時(shí)層數(shù)為63。然后,再次分成2條分支,一條為40 px×40 px×256 px大小,經(jīng)過(guò)上采樣,與Backbone 輸出的80 px ×80 px ×128 px大小的特征圖進(jìn)行張量拼接,再經(jīng)過(guò)CCBL 模塊,此時(shí)為75 層,繼續(xù)分成2 條分支。其中一條80 px ×80 px ×128 px 大小的分支經(jīng)過(guò)RepVGG 模塊和卷積層,輸出為80 px×80 px×(80 +5)px×3,用來(lái)預(yù)測(cè)輸入圖片中的大目標(biāo)。另一條分支經(jīng)過(guò)MC 層,與之前的一條CCBL 的輸出分支做張量拼接,再經(jīng)過(guò)CCBL層,此時(shí)為88 層,之后分成2 條分支,其中一條特征圖大小為40 px×40 px×256 px,經(jīng)過(guò)RepVGG模塊和卷積層,輸出為40 px×40 px×(80 +5)px ×3,用來(lái)預(yù)測(cè)輸入圖片中的中等目標(biāo)。另一條分支經(jīng)過(guò)MC 層,與之前的20 px ×20 px ×512 px 特征圖做張量拼接,隨后經(jīng)過(guò)CCBL,此時(shí)為101 層,特征圖大小為20 px×20 px×512 px,隨后經(jīng)過(guò)RepVGG模塊和卷積層,輸出為20 px×20 px ×(80 +5)px ×3,用來(lái)預(yù)測(cè)輸入圖片中的小目標(biāo)。
目前,卷積網(wǎng)絡(luò)的研究大多集中在卷積網(wǎng)絡(luò)的結(jié)構(gòu)上,大部分都是簡(jiǎn)單和復(fù)雜2 種。對(duì)于復(fù)雜構(gòu)造,如添加殘差塊等,ResNet 是其中最具代表性的。由于該模型具有多個(gè)分支結(jié)構(gòu),因此其計(jì)算精度高,但也會(huì)降低計(jì)算效率。在簡(jiǎn)單結(jié)構(gòu)中,VGG 是最具代表性的一種,其是一種直線結(jié)構(gòu),訓(xùn)練和推理速度都很快,但其結(jié)果并不理想。VGG 在出現(xiàn)的最初的幾年中已經(jīng)被廣泛地用于骨干網(wǎng)絡(luò),但是隨著新網(wǎng)絡(luò)架構(gòu)的提出,產(chǎn)生了較多精度更高的網(wǎng)絡(luò)。
ResNet和RepVGG[26]之間的網(wǎng)絡(luò)體系結(jié)構(gòu)如圖5所示。在圖5 中,原始的ResNet網(wǎng)絡(luò)如圖5(a)所示,其中的藍(lán)色部分表示卷積層,橘色部分表示ReLU 激活函數(shù),而帶有弧線部分的代表含有1 ×1 卷積殘差結(jié)構(gòu)和Identity 殘差結(jié)構(gòu)以及ReLU 激活函數(shù)。由于ResNet包含了殘差結(jié)構(gòu),深層網(wǎng)絡(luò)的梯度彌散和消退問(wèn)題得以改善,使得網(wǎng)絡(luò)易于收斂。圖5(b)為RepVGG網(wǎng)絡(luò)的訓(xùn)練階段,其中包含1 ×1 的卷積殘差結(jié)構(gòu)和Identity殘差結(jié)構(gòu)和ReLU激活函數(shù)。圖5(c)為RepVGG網(wǎng)絡(luò)的推理階段,其中僅包含3 ×3 的卷積和ReLU激活函數(shù)。由于訓(xùn)練和推理采用的是2 種結(jié)構(gòu),在訓(xùn)練中注重精確性,推理時(shí)注重速度。因此RepVGG可以在不增加運(yùn)算量的前提下,提高運(yùn)算速度,且不會(huì)降低精度。
圖5 RepVGG模塊示意圖
1.2.1 卷積層和BN層融合
BN(Batch Normalization)被廣泛用于卷積神經(jīng)網(wǎng)絡(luò),它可以改善網(wǎng)絡(luò)的泛化性能、加速收斂、減輕梯度擴(kuò)散等問(wèn)題。本文在網(wǎng)絡(luò)推理的過(guò)程中,將BN 層的操作直接嵌入到卷積層中,從而大幅降低了計(jì)算工作量,提高了網(wǎng)絡(luò)的運(yùn)行速度。該卷積層的計(jì)算公式如下:
式中:x為每一層輸入;w為權(quán)重;b為偏置。
BN層主要包括歸一化和縮放2 部分,BN 層輸出的具體計(jì)算方法如下:
式中:γ為縮放參數(shù);μ 為樣本均值;σ 為標(biāo)準(zhǔn)差;ε 為一個(gè)極小值(防止分母為0);β 為偏移參數(shù)。將卷積層和BN層合并,將式(5)代入式(6)可得:
BN層的輸出y2變形可得:
在推理過(guò)程中,BN層的樣本均值和標(biāo)準(zhǔn)偏差源于訓(xùn)練樣本的分布,而尺度和偏差則與其他模型的參數(shù)結(jié)合起來(lái),即μ、σ、γ、β 均為固定常數(shù)值。令w′ =
由此可見(jiàn),將BN層與卷積層的計(jì)算結(jié)合在一起,相當(dāng)于將卷積核按一定的比例放大,并且在一定程度上改變了偏移,減少了BN層的計(jì)算量,從而可以加快推理的速度。
1.2.2 RepVGG 模塊
將卷積層與BN層進(jìn)行融合之后,可以得到3 ×3卷積、1 ×1 卷積、Identity分支和3 個(gè)偏置向量。假設(shè)輸入信道數(shù)目與輸出信道數(shù)目相等,并且各類型的卷積都有相同的步長(zhǎng),1 ×1 和3 ×3 的卷積處理流程如圖6 所示。由圖6 可見(jiàn),RepVGG模塊將1 ×1 卷積核中的數(shù)值等價(jià)轉(zhuǎn)移到3 ×3 的卷積核中央,而Identity分支則可以等價(jià)為單位矩陣的1 ×1 卷積,再用3 ×3卷積的形式來(lái)表示。在此基礎(chǔ)上,1 ×1 卷積、Identity分支最終均可填充為3 ×3 卷積,利用卷積的可加性,對(duì)1 ×1 卷積分支和Identity 分支進(jìn)行等值變換,可以與3 ×3 卷積相結(jié)合。最后的偏置向量可以通過(guò)3 個(gè)偏置向量的相加獲得。
圖6 1 ×1和3 ×3卷積處理流程
SPP結(jié)構(gòu)是空間金字塔池化模型,功能是將任意大小的特征圖轉(zhuǎn)換為具有一定大小的特征向量,SPP的基本結(jié)構(gòu)如圖7 所示。
圖7 SPP基本結(jié)構(gòu)
但由于在工業(yè)鋼材缺陷的檢測(cè)過(guò)程中,鋼材的種類較多,而且每種鋼材缺陷檢測(cè)的難度也不盡相同,為了提取各種尺度大小的圖像特征信息,本文對(duì)空間金字塔池化模型SPP 進(jìn)行改進(jìn),將改進(jìn)后的SPP 稱為SPP*。SPP*模塊結(jié)構(gòu)如圖8 所示。首先將其劃分為5 個(gè)分支,其中一路經(jīng)過(guò)3 層CBL模塊,接著跟其中一路經(jīng)過(guò)最大池化層的分支進(jìn)行張量拼接,結(jié)果分支與最初的2 路經(jīng)過(guò)最大池化層的分支再進(jìn)行張量拼接,其后再經(jīng)由2 個(gè)CBL模塊,與最初經(jīng)過(guò)CBL模塊的分支進(jìn)行張量拼接,最終合并成一路。由此可見(jiàn),改進(jìn)后的SPP*采用的是局部信息結(jié)合全局信息的方式,增加了感受野和網(wǎng)絡(luò)特征融合能力,因而可以提升模型對(duì)于不同類型目標(biāo)的檢測(cè)精度。
圖8 SPP*模塊結(jié)構(gòu)
YOLOv5 中發(fā)揮最主要功能的是CSP 模塊,CSP模塊結(jié)構(gòu)如圖9 所示。在YOLOv4 中只在Backbone中使用了CSP 模塊,而YOLOv5 的Backbone 和Neck中均用到了CSP 模塊。CSP 模塊可以在特征圖中綜合反映梯度的變化,降低模型的參數(shù)量和維度,從而增強(qiáng)模型的推理速度和精確度。另外,由于YOLOv5 的網(wǎng)絡(luò)深度比較高,因此可以利用CSP模塊來(lái)解決梯度消失的問(wèn)題。
圖9 CSP模塊結(jié)構(gòu)
為了進(jìn)一步提升推理速度和精確度,本文將CSP模塊替換為CCBL模塊,CCBL模塊結(jié)構(gòu)如圖10 所示。CCBL模塊中包含了多個(gè)CBL 模塊,主要包含2 個(gè)分支:第一個(gè)分支經(jīng)過(guò)CBL 模塊后分成兩路;第二個(gè)分支經(jīng)過(guò)2 個(gè)CBL模塊,接著分成兩路,其中一路經(jīng)過(guò)2個(gè)CBL模塊,與第一個(gè)經(jīng)過(guò)CBL模塊的分支和另一路進(jìn)行張量拼接,拼接后的結(jié)果經(jīng)過(guò)最后一個(gè)CBL 模塊,用來(lái)獲取不同的感受野的信息。改進(jìn)后的CCBL模塊更有助于模型的加深。在之后的消融實(shí)驗(yàn)中,也證明了CCBL模塊的有效性。
圖10 CCBL模塊結(jié)構(gòu)
本文使用的2 個(gè)數(shù)據(jù)集分別為東北大學(xué)(NEU)發(fā)布的熱軋帶鋼表面缺陷數(shù)據(jù)集NEU-DET[27]和工業(yè)生產(chǎn)中的焊接件表面缺陷數(shù)據(jù)集GC10-DET[28]。NEU-DET共收錄了1 800 幅圖片,并標(biāo)注了每幅圖片的缺陷范圍和缺陷部位數(shù)據(jù)。數(shù)據(jù)集中以xml文檔形式記錄缺陷類型的信息,用圖片的名稱記錄缺陷的類別。缺陷類型包括6 種,每種類型約有300 幅圖片。6種缺陷分別為:Cr、In、Pa、Ps、Rs、Sc。在本文使用NEU-DET的實(shí)驗(yàn)中,將原始數(shù)據(jù)集按照8∶2 的比例隨機(jī)劃分為訓(xùn)練集和驗(yàn)證集,即1 440 幅訓(xùn)練集圖片,360 幅驗(yàn)證集圖片,并采用不同的算法對(duì)數(shù)據(jù)集進(jìn)行測(cè)試與驗(yàn)證。
GC10-DET是在工廠實(shí)際生產(chǎn)過(guò)程中采集到的焊接件表面缺陷圖片數(shù)據(jù)集,包含10 種不同缺陷的圖片。分別為沖孔(Punching,Pu)、焊縫(Welding_line,Wl)、新月形縫隙(Crescent_gap,Cg)、水斑(Water_spot,Ws)、油斑(Oil_spot,Os)、絲斑(Silk_spot,Ss)、夾雜物(Inclusion,In)、軋坑(Rolled_pit,Rp)、折痕(Crease,Cr)和腰部折痕(Waist_folding,Wf),共收錄了2 300 幅灰度圖像,修正了一些錯(cuò)誤信息后,得到數(shù)據(jù)集圖像共2 294 幅。
本文實(shí)驗(yàn)在Windows系統(tǒng)上進(jìn)行評(píng)估。實(shí)驗(yàn)使用深度學(xué)習(xí)框架Pytorch和編譯器Pycharm。Python版本為3.7,硬件環(huán)境為CPU Intel?CoreTMi7-10750H處理器,內(nèi)存大小16 G;NVIDIA GeForce RTX 2060 顯卡。在網(wǎng)絡(luò)參數(shù)設(shè)置方面,訓(xùn)練時(shí)輸入圖像設(shè)置為640 px×640 px,epoch 設(shè)置為120,Batch-Size 為16,訓(xùn)練環(huán)節(jié)的IoU閾值設(shè)置為0.5。
本文主要以平均精度均值(mean Average Precision,mAP)和時(shí)間效率作為評(píng)定鋼材缺陷的方法。一般地,每個(gè)分類的識(shí)別準(zhǔn)確率評(píng)估指標(biāo)由平均精度(Average Precision,AP)來(lái)代表。mAP 是各個(gè)類型AP的平均值,它是一個(gè)整體的衡量指標(biāo),反映了目標(biāo)檢測(cè)的能力。
mAP、AP指標(biāo)與準(zhǔn)確率(Precision)、召回率(Recall)有關(guān)。準(zhǔn)確率和召回率的計(jì)算方式如下:
式中:σTP為一個(gè)被模型預(yù)測(cè)為正類的正樣本;σFP為一個(gè)被模型預(yù)測(cè)為正類的負(fù)樣本;σFN為一個(gè)被模型預(yù)測(cè)為負(fù)類的正樣本。
將所獲得的準(zhǔn)確率與召回率進(jìn)行比較,得出了一條以R 為橫坐標(biāo)、以P 為縱坐標(biāo)、表示特定類型的正確率與召回率的關(guān)系曲線,并將此曲線進(jìn)行積分,獲得AP值,如式(12)所示。對(duì)于含N 種類別的測(cè)試集,mAP是單類目標(biāo)平均準(zhǔn)確率除以類別總數(shù)N,計(jì)算方法如式(13)所示:
mAP數(shù)值越大,說(shuō)明該模型的綜合表現(xiàn)越好。
為了驗(yàn)證本文所提模型的可行性和有效性,主要在NEU-DET鋼材缺陷數(shù)據(jù)集上進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果如表1 所示。YOLOv5 系列模型采用了YOLOv5s、YOLOv5m和YOLOv5l。這3 個(gè)模型的區(qū)別是網(wǎng)絡(luò)的層數(shù)與深度不同,其中YOLOv5s網(wǎng)絡(luò)最小,速度最快,精度最低;YOLOv5m 在YOLOv5s 的基礎(chǔ)上不斷加深網(wǎng)絡(luò)的寬度,隨著網(wǎng)絡(luò)寬度的提升,速度變慢,精度提高;YOLOv5l在YOLOv5m 的基礎(chǔ)上進(jìn)一步增加網(wǎng)絡(luò)寬度,提高了精度。實(shí)驗(yàn)中,用于對(duì)比的參數(shù)分別有mAP值、參數(shù)量、GFLOPs(模型的計(jì)算量,是一種用于評(píng)判模型復(fù)雜度的標(biāo)準(zhǔn))、模型大小、訓(xùn)練時(shí)間和推理時(shí)間。由表1 的數(shù)據(jù)可以看出,YOLOv5l的mAP值最高,達(dá)到了78.2%,但是耗時(shí)最久,參數(shù)量也最大。Re-YOLOv5 的mAP值略低于YOLOv5l,但參數(shù)量縮減了86.9%,模型也減小了80.6MB。YOLOv5s 所用時(shí)間最少,訓(xùn)練時(shí)間只消耗了0.968 h。Re-YOLOv5 比YOLOv5s的耗時(shí)稍有增加,YOLOv5s單幅圖片的推理時(shí)間為5.5 ms,Re-YOLOv5 單幅圖片的推理時(shí)間為8.9 ms,但其精度上實(shí)現(xiàn)了6.0%的提升,對(duì)應(yīng)的參數(shù)量和模型更小。具體地,在Re-YOLOv5 中,SPP*模塊增大了感受野,提升了特征融合能力,CCBL模塊可以更好地獲取感受野的信息,提高模型的精度,更有助于模型的加深,RepVGG 模塊能夠在模型加深的同時(shí)減少所用時(shí)間,實(shí)現(xiàn)了推理時(shí)間的縮短,體現(xiàn)了本文所提模型的優(yōu)勢(shì)。
表1 在NEU-DET鋼材缺陷數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
消融實(shí)驗(yàn)結(jié)果如表2 所示?!啊獭北硎揪W(wǎng)絡(luò)中對(duì)應(yīng)模塊的添加。本文考慮了用CCBL 模塊替換YOLOv5s中的CSP 模塊,添加改進(jìn)的SPP*、RepVGG模塊這3 個(gè)因素對(duì)模型性能的影響,共進(jìn)行了8 組實(shí)驗(yàn)。
表2 消融實(shí)驗(yàn)結(jié)果
在消融實(shí)驗(yàn)中可見(jiàn)CCBL、SPP*和RepVGG 模塊的引入對(duì)于基線YOLOv5s 模型的精度提升均有一定程度的幫助。實(shí)驗(yàn)1 是原始的YOLOv5 模型用于鋼材缺陷檢測(cè)任務(wù),mAP 為71.8%。實(shí)驗(yàn)2 是在原始的YOLOv5s模型中用CCBL模塊替換CSP模塊,mAP提高了1.4%。結(jié)合實(shí)驗(yàn)4 和實(shí)驗(yàn)6 可見(jiàn),本文設(shè)計(jì)的CCBL模塊更能加強(qiáng)YOLOv5s的特征提取能力。實(shí)驗(yàn)3中,將改進(jìn)后的SPP*模塊引入YOLOv5s中,mAP比原始模型提高了1.5%。綜合分析實(shí)驗(yàn)4 和實(shí)驗(yàn)7,結(jié)果表明改進(jìn)后的SPP*可以增加感受野,有效地提高特征融合的能力,進(jìn)而實(shí)現(xiàn)精度的提升。在實(shí)驗(yàn)4 中,融合RepVGG 模塊至原始模型中,實(shí)現(xiàn)了2.3%的mAP提升。結(jié)合實(shí)驗(yàn)5 和實(shí)驗(yàn)8,表明使用RepVGG 可以提高模型的特征融合能力和對(duì)不同尺度目標(biāo)的檢測(cè)準(zhǔn)確性。
由于6 種鋼材缺陷的復(fù)雜程度不同,各類算法對(duì)其檢測(cè)準(zhǔn)確度也存在較大區(qū)別和波動(dòng)。本文對(duì)目前主流算法進(jìn)行了測(cè)試,得到各類算法的AP及mAP 值如表3 所示。本文構(gòu)建的Re-YOLOv5 模型,由于Head推理端融入了RepVGG模塊,并且采用改進(jìn)后的SPP*模塊對(duì)候選框進(jìn)行分類和修正,獲取了多尺度特征信息,最終在鋼材缺陷數(shù)據(jù)集取得的mAP為77.8%,相比于原始的YOLOv5s 算法提高了6%。此外,作為經(jīng)典的兩階段算法Faster R-CNN 模型的檢測(cè)結(jié)果高于YOLOv5s 2.6%,但仍比Re-YOLOv5 低3.4%。RetinaNet、CenterNet 和DETR 的Backbone 均采用Res-Net50。對(duì)于NEU-DET數(shù)據(jù)集,RetinaNet 的準(zhǔn)確率為65.4%,對(duì)于Ps類別檢測(cè)結(jié)果較好,但是對(duì)于Sc 類別的檢測(cè)效果較差;CenterNet 的準(zhǔn)確率為67.9%,對(duì)于Cr的檢測(cè)效果較差;DETR 的準(zhǔn)確率為69.5%,對(duì)Sc的檢測(cè)效果較好。對(duì)于Cr類別,目前已知的算法均不能獲得較高的準(zhǔn)確率。分析其原因:由于Cr是細(xì)小的目標(biāo),且相互交疊,較難進(jìn)行特征提取,并且其和無(wú)缺陷鋼材的差別很小,因此導(dǎo)致對(duì)于該類別的檢測(cè)精度較低。但從整體模型準(zhǔn)確率來(lái)看,本文提出的Re-YOLOv5 性能最佳。
表3 不同算法在NEU-DET數(shù)據(jù)集上的準(zhǔn)確率對(duì)比
混淆矩陣是表示精度評(píng)價(jià)的一種形式,用于可視化算法的性能。由式(12)和式(13)可以計(jì)算出mAP。Re-YOLOv5 在NEU-DET數(shù)據(jù)集上的混淆矩陣實(shí)驗(yàn)結(jié)果如圖11 所示,橫坐標(biāo)代表數(shù)據(jù)的真實(shí)類別,縱坐標(biāo)代表預(yù)測(cè)的類別。在目標(biāo)檢測(cè)中,判斷一個(gè)檢測(cè)結(jié)果是否準(zhǔn)確是通過(guò)計(jì)算檢測(cè)框與真實(shí)框的交并比決定的,并根據(jù)交并比來(lái)判斷是否匹配。假設(shè)檢測(cè)框預(yù)測(cè)的信息正確,并且與真實(shí)標(biāo)注框的交并比大于設(shè)定的閾值,代表檢測(cè)正確(TP);假設(shè)檢測(cè)框預(yù)測(cè)的信息錯(cuò)誤,但是與真實(shí)標(biāo)注框的交并比大于設(shè)定的閾值,代表分類錯(cuò)誤(FP);假設(shè)檢測(cè)框預(yù)測(cè)的信息正確,但是與真實(shí)標(biāo)注框的交并比小于設(shè)定的閾值,沒(méi)有跟真實(shí)標(biāo)注框匹配上,則代表定位錯(cuò)誤(FP);如果沒(méi)有檢測(cè)框,則代表漏檢(FN)。
圖11 混淆矩陣
由圖11 可見(jiàn),對(duì)角線代表的是準(zhǔn)確率,顏色越深代表準(zhǔn)確率越高。最右邊一列代表誤檢率,In 誤檢率達(dá)到50%,說(shuō)明Re-YOLOv5 會(huì)把一部分不屬于In 的缺陷檢測(cè)為In,主要原因是In 缺陷跟背景比較相似。最下面一行代表漏檢率,在已檢測(cè)到的候選框中,Re-YOLOv5 對(duì)于NEU-DET數(shù)據(jù)集中的Cr缺陷檢測(cè)準(zhǔn)確率為28%,漏檢率高達(dá)72%。原因是Cr 缺陷目標(biāo)較小,且相互交疊,較難進(jìn)行特征提取。雖然Re-YOLOv5 對(duì)于Cr檢測(cè)的正確率不高,但是對(duì)于其他5種缺陷的檢測(cè)準(zhǔn)確率均有提升;Re-YOLOv5 也有預(yù)測(cè)錯(cuò)誤的類別,對(duì)于Ps,有70%的概率被正確檢測(cè),29%的概率漏檢,有1%的概率會(huì)被錯(cuò)誤地檢測(cè)為In類別,因?yàn)閿?shù)據(jù)集里部分Ps 跟In 缺陷較為相似。整體上,Re-YOLOv5 對(duì)6 種復(fù)雜的缺陷檢測(cè)正確率較高,誤檢率和漏檢率都相對(duì)較低。
圖12(a)~圖12(d)分別為模型的F1曲線圖,P曲線圖,PR 曲線圖和R 曲線圖。通過(guò)式(10)和式(11)可以計(jì)算出P 和R 的值,通過(guò)式(12)和式(13)可以計(jì)算出PR的值,并以曲線記錄。F1分?jǐn)?shù)是分類的一個(gè)衡量標(biāo)準(zhǔn),介于[0,1]之間,越大越好。圖12(a)為F1分?jǐn)?shù)與置信度之間的關(guān)系,F(xiàn)1的計(jì)算公式為
圖12 Re-YOLOv5模型評(píng)估指標(biāo)曲線圖
由圖12(a)可見(jiàn)每個(gè)類別的F1值相差比較大,Cr的F1值最低,因此總類別F1值最高,為0.73。圖12(b)為準(zhǔn)確率與置信度的關(guān)系曲線,橫坐標(biāo)為置信度,縱坐標(biāo)為準(zhǔn)確率,由圖12(b)可見(jiàn),所有類別的置信度越高,準(zhǔn)確率越高。圖12(c)為準(zhǔn)確率與召回率的關(guān)系曲線,P 與R 所圍成的面積即mAP 值,所有類別的平均mAP值為77.8%。Cr的mAP值最低,為46.3%,Pa 和Sc 的mAP 比較高,分別達(dá)到了91.7%和93.2%。圖12(d)為召回率與置信度之間的關(guān)系,可以看出所有類別的平均召回率為98%,表明可以檢測(cè)出絕大部分的鋼材缺陷。圖13 為各階段的Loss曲線圖,最終經(jīng)過(guò)120 輪epoch,模型達(dá)到了收斂。
圖13 Loss曲線圖
圖14 展示的是YOLOv5s 與Re-YOLOv5 對(duì)NEUDET驗(yàn)證集的一些推理結(jié)果。從左往右依次為:Cr、In、Pa、Ps、Rs 和Sc。由圖14 可見(jiàn),Re-YOLOv5 對(duì)于6 種不同類型的缺陷的檢測(cè)效果與YOLOv5s 相比,目標(biāo)檢出更多,準(zhǔn)確率更高,整體性能有明顯提升。
圖14 YOLOv5s與Re-YOLOv5對(duì)NEU-DET驗(yàn)證集的推理結(jié)果
但Re-YOLOv5 仍存在一些檢測(cè)效果不佳的案例,如圖15 所示。第一列是包含Cr 的圖片,Re-YOLOv5和YOLOv5s均沒(méi)有檢出。第二列和第三列為Rs和Sc的檢測(cè)結(jié)果??梢钥闯鯮e-YOLOv5 對(duì)于檢測(cè)一些有少量的Rs和Sc的圖片細(xì)化程度沒(méi)有YOLOv5s高,準(zhǔn)確率還有待提升。但是從上述表格中的實(shí)驗(yàn)數(shù)據(jù)總體進(jìn)行分析,本文提出的Re-YOLOv5 模型的缺陷檢測(cè)精度整體高于基線模型YOLOv5s。
圖15 NEU-DET數(shù)據(jù)集檢測(cè)效果不佳案例
此外,為了驗(yàn)證Re-YOLOv5 的有效性,本文在GC10-DET 圖片數(shù)據(jù)集上進(jìn)行了相應(yīng)的測(cè)試。將GC10-DET數(shù)據(jù)集按照8∶2 的比例隨機(jī)劃分為訓(xùn)練集和驗(yàn)證集,與基線模型YOLOv5s 進(jìn)行對(duì)比,準(zhǔn)確率如表4 所示。
表4 GC10-DET數(shù)據(jù)集上的準(zhǔn)確率對(duì)比
如表4 所示,本文提出的Re-YOLOv5 模型對(duì)于GC10-DET圖片數(shù)據(jù)集的整體檢測(cè)準(zhǔn)確率依然高于基線模型YOLOv5s。該數(shù)據(jù)集的10 類缺陷Pu、Wl、Cg、Ws、Os、Ss、In、Rp、Cr 和Wf,大部分圖片均包含兩種及以上的缺陷,每種缺陷的個(gè)數(shù)分別為:265、422、227、293、431、701、270、73、60 和117。但由于GC10-DET圖片數(shù)據(jù)集缺陷種類較多,且各類缺陷包含樣本數(shù)量極不均衡,導(dǎo)致部分檢測(cè)精度欠佳。
YOLOv5s 與Re-YOLOv5 在GC10-DET 數(shù)據(jù)集上的檢測(cè)效果如圖16 所示。Re-YOLOv5 的檢測(cè)準(zhǔn)確率整體高于YOLOv5s;YOLOv5s對(duì)于一些小目標(biāo)的檢測(cè)能力不如Re-YOLOv5,會(huì)產(chǎn)生漏檢,并且標(biāo)注檢測(cè)框的準(zhǔn)確度偏低。
圖16 在GC10-DET數(shù)據(jù)集上的檢測(cè)效果
針對(duì)工業(yè)鋼材缺陷數(shù)據(jù)集存在的背景復(fù)雜、缺陷目標(biāo)小、類內(nèi)差異小、類間差異大等問(wèn)題,為了進(jìn)一步實(shí)現(xiàn)工業(yè)鋼材缺陷的快速準(zhǔn)確檢測(cè),本文提出了一種基于結(jié)構(gòu)重參數(shù)化的工業(yè)鋼材缺陷檢測(cè)方法Re-YOLOv5。在公開(kāi)的鋼材缺陷圖片數(shù)據(jù)集上進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果表明了本文方法的有效性。得益于RepVGG、SPP*及CCBL模塊的特征整合能力、模型加深能力,本文的方法可以在提升網(wǎng)絡(luò)性能的同時(shí)加快推理速度,達(dá)到精度與速度的平衡,滿足工業(yè)部署的需求。在未來(lái)的工作中考慮針對(duì)類似Cr等不顯著缺陷,加入圖像增強(qiáng)技術(shù);改進(jìn)網(wǎng)絡(luò)的Backbone 部分,并引入自注意力機(jī)制,將結(jié)構(gòu)重參數(shù)化與DETR 中表現(xiàn)較好的Transformer結(jié)合實(shí)現(xiàn)結(jié)構(gòu)與性能的整體優(yōu)化。