范 濤,王明泉,張俊生,曹鵬娟,朱榕榕
(1.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原 030051;2.太原工業(yè)學(xué)院電子工程系,山西 太原 030008)
鋁合金輪轂因具有重量輕、散熱快等優(yōu)點(diǎn),而被廣泛應(yīng)用于汽車行業(yè)。在低壓鑄造工藝下,鋁合金輪轂容易產(chǎn)生一些常見的鑄造缺陷,如氣孔、縮孔、縮松和裂紋[1],嚴(yán)重影響產(chǎn)品質(zhì)量。為了保證輪轂質(zhì)量能夠滿足工業(yè)檢測(cè)標(biāo)準(zhǔn),需要在出廠前使用X射線對(duì)其進(jìn)行無損檢測(cè)[2]。傳統(tǒng)手動(dòng)檢測(cè)法具有檢測(cè)結(jié)果主觀性強(qiáng)、效率低等缺點(diǎn),已經(jīng)逐漸被淘汰。21世紀(jì)以來,隨著計(jì)算機(jī)視覺技術(shù)快速發(fā)展,使用深度學(xué)習(xí)算法來實(shí)現(xiàn)DR圖像缺陷的自動(dòng)判定和實(shí)時(shí)檢測(cè)成為工業(yè)界研究的熱點(diǎn)[3]。Ferguson等[4]從模型的數(shù)據(jù)管理問題作為切入點(diǎn),指出當(dāng)前深度神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練缺乏標(biāo)準(zhǔn)化方法,提出一種基于預(yù)測(cè)模型標(biāo)記語(yǔ)言來優(yōu)化模型訓(xùn)練過程中的分割問題。Mery[5]評(píng)估了用于檢測(cè)鋁鑄件缺陷的8種最先進(jìn)的深度目標(biāo)檢測(cè)方法(基于YOLO、RetinaNet和EfficientSet),提出了一種使用少量的鑄件無缺陷X射線圖像,同時(shí)疊加模擬缺陷來訓(xùn)練網(wǎng)絡(luò),并得到了很好的結(jié)果。蔡彪等[6]提出了一種基于Mask R-CNN的鑄件 X 射線DR圖像缺陷檢測(cè)算法對(duì)鑄件缺陷進(jìn)行分類分級(jí)。王陶然等[7]提出Mask R-CNN卷積網(wǎng)絡(luò)識(shí)別輪轂缺陷并將不同缺缺陷標(biāo)注出來并進(jìn)行分割,從而實(shí)現(xiàn)了輪轂缺陷的自動(dòng)分割目標(biāo)。Jiang等[8]針對(duì)深度監(jiān)督網(wǎng)絡(luò)需要大的數(shù)據(jù)集來提高精度這一難題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)和注意力引導(dǎo)數(shù)據(jù)增強(qiáng)的X射線圖像鑄件缺陷檢測(cè)方法,該方法引入新的數(shù)據(jù)增強(qiáng)方法來解決訓(xùn)練圖像數(shù)量少的難題。
上述方法對(duì)工業(yè)鑄件射線圖像進(jìn)行了缺陷識(shí)別,但是在模型上普遍都存在參數(shù)量過大、難以訓(xùn)練的問題。為此,本文提出一種輕量化YOLOv4的輪轂內(nèi)部缺陷檢測(cè)算法。
MobileNet是由Google提出的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)。MobileNetV1是一種應(yīng)用深度可分離卷積搭建的一種網(wǎng)絡(luò)。深度可分離卷積結(jié)構(gòu)如圖1所示,它將1個(gè)標(biāo)準(zhǔn)卷積分解為深度卷積和1個(gè)1×1的點(diǎn)卷積。相對(duì)于標(biāo)準(zhǔn)卷積,這種分解方法可以大大減少計(jì)算量和模型大小。
圖1 深度可分離卷積結(jié)構(gòu)
假設(shè)輸入特征圖為DW×DH×M,其中DW、DH、M和N分別為特征圖的寬、高、輸入通道數(shù)和輸出通道數(shù)。對(duì)于1個(gè)DK×DK的標(biāo)準(zhǔn)卷積,共有N個(gè)DK×DK×M的卷積核,參數(shù)量P1為
P1=DK×DK×M×N
(1)
每個(gè)卷積核經(jīng)過DW×DH次計(jì)算,其計(jì)算量Q1為
Q1=DK×DK×M×N×DW×DH
(2)
深度卷積參數(shù)量P2為
P2=DK×DK×M+M×N
(3)
深度卷積計(jì)算量Q2為
Q2=DK×DK×M×DW×DH+M×N×DW×DH
(4)
深度可分離卷積模塊與標(biāo)準(zhǔn)卷積參數(shù)量的比值R1為
(5)
計(jì)算量比值R2為
(6)
MobileNetV1網(wǎng)絡(luò)在訓(xùn)練過程中存在兩大局限:一是卷積核權(quán)重?cái)?shù)量??;二是網(wǎng)絡(luò)中沒有使用殘差連接。這樣導(dǎo)致網(wǎng)絡(luò)訓(xùn)練結(jié)果精度低。MobileNetV2在V1的基礎(chǔ)上使用了Inverted residuals block結(jié)構(gòu),如圖2所示。
圖2 Inverted residuals block結(jié)構(gòu)
MobileNetV2在輸入與輸出維度相同時(shí),引入ResNet中的殘差連接將輸入與輸出直接連接。這種在內(nèi)部保持一個(gè)高緯度特征空間,輸入和輸出保持一個(gè)低維度的緊密連接的倒殘差的結(jié)構(gòu)特點(diǎn),可以有效解決MobileNetV1網(wǎng)絡(luò)訓(xùn)練的局限問題。
MobileNetV3[9]在V2的基礎(chǔ)上進(jìn)行了優(yōu)化,網(wǎng)絡(luò)使用一個(gè)3×3的標(biāo)準(zhǔn)卷積和多個(gè)bneck結(jié)構(gòu)提取特征,bneck結(jié)構(gòu)如圖3所示。MobileNetV3包括Large和Small這2種結(jié)構(gòu),本文使用Large結(jié)構(gòu)。為適應(yīng)輪轂缺陷識(shí)別任務(wù),將輸入的圖片大小設(shè)為416×416。bneck結(jié)構(gòu)種引入輕量級(jí)注意力模塊增加特征提取能力強(qiáng)的通道權(quán)重,并且使用深度可分離卷積和殘差結(jié)構(gòu)同時(shí)構(gòu)建網(wǎng)絡(luò)模塊。
圖3 bneck結(jié)構(gòu)
在主干模塊和SE模塊中分別使用h-swish和h-sigmoid激活函數(shù)代替swish和sigmoid,減少了網(wǎng)絡(luò)的計(jì)算量。h-swish和h-sigmoid的計(jì)算公式為:
(7)
(8)
YOLOv4[10]是目前比較先進(jìn)的目標(biāo)檢測(cè)算法之一,它將定位和分類任務(wù)集成到一個(gè)網(wǎng)絡(luò)中,實(shí)現(xiàn)端到端的目標(biāo)檢測(cè)。YOLOv4是在YOLOv3[11]的基礎(chǔ)上對(duì)主干網(wǎng)絡(luò)特征提取網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)、激活函數(shù)和損失函數(shù)等進(jìn)行了優(yōu)化。YOLOv4采用Darknet53中的跨級(jí)部分網(wǎng)絡(luò)(CSParknet53)來構(gòu)建CSPDarknet53主干網(wǎng)[12]。主干網(wǎng)從輸入圖像中提取特征并將激活函數(shù)替換為Mish函數(shù),在降低計(jì)算量的同時(shí)保證了算法的精確度。頸部網(wǎng)絡(luò)采用空間金字塔池化(SPP)和路徑聚集網(wǎng)絡(luò)(PANet)[13]生成特征金字塔,來替換YOLOv3采用的特征金字塔FPN。SPP+PANet將低層空間特征與精確位置信息相結(jié)合,高層語(yǔ)義特征與高語(yǔ)義信息相結(jié)合,實(shí)現(xiàn)了雙向融合。檢測(cè)部分延用了YOLOv3中的檢測(cè)頭。
圖像經(jīng)過卷積得到的特征圖每個(gè)通道都保持相同的權(quán)重,利用通道注意力模塊可以對(duì)目標(biāo)檢測(cè)有用信息的通道賦予更高的權(quán)重并抑制權(quán)重低的特征,增強(qiáng)特征之間的表達(dá)[14],如圖4所示。輸入為特征圖X,經(jīng)過卷積變換后得到特征信號(hào)U,其維度為RH×W×C。接著對(duì)特征圖U沿著空間維度(RH×W)通過全局平均池化(Fsq)來對(duì)其進(jìn)行壓縮,生成1個(gè)R1×1×C維度的向量,即
圖4 注意力機(jī)制的權(quán)重分配
(9)
再將zc通過激勵(lì),即可得到
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1,z))
(10)
δ為ReLU函數(shù);W1和W2為訓(xùn)練權(quán)重。
YOLOv4被廣泛應(yīng)用于基于深度學(xué)習(xí)的目標(biāo)檢測(cè)領(lǐng)域,但其骨干網(wǎng)絡(luò)CSPDarknet53內(nèi)存消耗較大,有29個(gè)卷積層,大約2 800萬個(gè)參數(shù)。在頸部網(wǎng)絡(luò)使用標(biāo)準(zhǔn)卷積也會(huì)產(chǎn)生大量的卷積運(yùn)算,這不僅對(duì)設(shè)備的性能要求更高,而且還會(huì)大大增加計(jì)算時(shí)間。為了達(dá)到工業(yè)上實(shí)時(shí)檢測(cè)輪轂缺陷的目的,本文提出了一種輕量化YOLOv4的輪轂內(nèi)部缺陷檢測(cè)算法。整體網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,在YOLOv4目標(biāo)檢測(cè)算法的基礎(chǔ)上,使用去掉分類以及輸出層的MobileNetV3網(wǎng)絡(luò)替換原有YOLOv4主干網(wǎng)絡(luò),并利用深度卷積對(duì)PANet模塊中的傳統(tǒng)卷積進(jìn)行了替換。SPP(spatial pyramid pooling)模塊分別使用13×13、9×9、5×5、1×1不同大小的卷積核對(duì)前層特征進(jìn)行最大池化處理。處理后的結(jié)果保留了淺層特征的同時(shí)也增加網(wǎng)絡(luò)深度。PANet模塊對(duì)主干網(wǎng)絡(luò)提取的特征結(jié)果首先進(jìn)行上采樣,將上采樣融合之后的特征圖輸入通道注意力模塊,從深層和淺層特征融合之后的信息中選擇對(duì)目標(biāo)檢測(cè)有用的信息進(jìn)行增強(qiáng),抑制那些無用的信息,減少冗余特征的重復(fù)傳遞和運(yùn)算,接著完成下采樣操作。通過PANet結(jié)構(gòu)會(huì)得到3個(gè)大小分別為52×52、26×26、13×13的特征層。YOLO Head 將輸入圖像劃分為對(duì)應(yīng)大小的網(wǎng)絡(luò),分別實(shí)現(xiàn)對(duì)不同大小的缺陷目標(biāo)的檢測(cè)。
圖5 改進(jìn)的YOLOv4網(wǎng)絡(luò)模型
YOLOv4算法在PASCALVOC數(shù)據(jù)集通過邊框聚類預(yù)設(shè)了9個(gè)目標(biāo)框(Anchor box),分別用于不同尺度的YOLO檢測(cè)頭預(yù)測(cè)。不同數(shù)據(jù)集中目標(biāo)框的位置與大小均存在一定差異,而預(yù)設(shè)框選取的準(zhǔn)確性對(duì)于網(wǎng)絡(luò)模型性能影響較大,所以原始的預(yù)設(shè)框并不適用于輪轂內(nèi)部缺陷識(shí)別任務(wù)。為了網(wǎng)絡(luò)能夠更好定位到目標(biāo)位置,采用k-means++算法對(duì)本文的缺陷數(shù)據(jù)集邊框進(jìn)行聚類,得到的Anchor box寬和高為(9,17)、(11,29)、(29,43)、(58,79)、(81,93)、(94,155)、(124,160)、(132,70)、(157,234),單位為像素。
損失函數(shù)是模型訓(xùn)練的基準(zhǔn)。本文算法采用損失函數(shù)包含邊界框回歸損失、置信度損失和分類損失。其中邊界框回歸損失使用CIoU描述位置損失。CIoU損失公式為:
(11)
(12)
(13)
Bt、Bp為標(biāo)記樣本中的真實(shí)框和預(yù)測(cè)框;SIoU為2個(gè)錨框之間的交并比;wt、ht、wp和hp分別為真實(shí)框的寬高和預(yù)測(cè)框的寬高;C為包含Bt和Bp的最小外接矩形的對(duì)角線長(zhǎng)度;ρ2(Bp,Bt)為預(yù)測(cè)框與真實(shí)框中心的歐氏距離;ν為測(cè)量預(yù)測(cè)框和真實(shí)框之間寬高比的一致性的參數(shù)。
總損失函數(shù)Lobject公式為
Lobject=LCIoU+Lconf+Lclass
(14)
置信度Lconf損失為
(15)
類別損失Lclass為
(16)
本文實(shí)驗(yàn)的相關(guān)配置如表1所示,本文采用TensorFlow 框架來實(shí)現(xiàn)輕量化目標(biāo)識(shí)別算法。
表1 相關(guān)配置
模型訓(xùn)練分為2個(gè)階段:第1階段在公開數(shù)據(jù)集VOC2007上進(jìn)行預(yù)訓(xùn)練,將訓(xùn)練好的參數(shù)作為初始權(quán)值,然后凍結(jié)主干網(wǎng)絡(luò)的權(quán)值,對(duì)頸部和頭部網(wǎng)絡(luò)的參數(shù)進(jìn)行訓(xùn)練和優(yōu)化;在第2階段根據(jù)第1階段網(wǎng)絡(luò)權(quán)值對(duì)所有參數(shù)進(jìn)行訓(xùn)練和優(yōu)化。模型訓(xùn)練共進(jìn)行140個(gè)epoch,第1階段和第2階段各進(jìn)行70個(gè)epoch。2個(gè)訓(xùn)練階段的批數(shù)分別設(shè)置為4和2,學(xué)習(xí)速率分別設(shè)置為0.001和0.000 1。
取平均精度pA給定類別pmA的平均值、調(diào)和均值F1對(duì)檢測(cè)精度進(jìn)行評(píng)價(jià),定義為:
(17)
(18)
(19)
P(R) 為當(dāng)召回率(recall)為R時(shí)一個(gè)類的精度;C為數(shù)據(jù)集中類別總量。召回率和精確度定義為:
(20)
(21)
Tp為檢測(cè)正確的目標(biāo)數(shù)量;FN為漏檢數(shù)量;Fp為檢測(cè)錯(cuò)誤的目標(biāo)數(shù)量。
訓(xùn)練140個(gè)epoch后,每訓(xùn)練一個(gè)epoch后保存一次模型參數(shù)。訓(xùn)練過程中,模型在100個(gè)epoch之后維持在較低水平。
本文在控制對(duì)YOLOv4所做的PANet特征加強(qiáng)網(wǎng)絡(luò)改進(jìn)和目標(biāo)框優(yōu)化不變的條件下,選取Darknet53(YOLOv3骨干網(wǎng)絡(luò))、CSPDarknet53(YOLOv4骨干網(wǎng)絡(luò))、MobileNetV1、MobileNetV2和MobileNetV3 這5個(gè)骨干網(wǎng)絡(luò)進(jìn)行試驗(yàn)對(duì)比,驗(yàn)證它們對(duì)網(wǎng)絡(luò)的影響,對(duì)比結(jié)果如表2所示。
表2 不同骨干網(wǎng)絡(luò)的性能
由表2可知,在5個(gè)骨干網(wǎng)絡(luò)中,MobileNetV3的權(quán)值文件最小為45.20 MB,檢測(cè)精度最大90.23%,并且FPS比較結(jié)果顯示,MobileNetV3的檢測(cè)速率最高為68.38幀/s。綜上所述,作為骨干網(wǎng)絡(luò)MobileNetV3具有明顯的檢測(cè)優(yōu)勢(shì)。
為進(jìn)一步驗(yàn)證本文算法在檢測(cè)輪轂內(nèi)部缺陷時(shí)是否具有更高的精度和更快的檢測(cè)速度,將YOLOv4-Tiny、輕量化YOLOv4 和YOLOv4目標(biāo)檢測(cè)算法對(duì)4種不同的缺陷進(jìn)行檢測(cè),結(jié)果如圖6所示。
圖6 缺陷識(shí)別結(jié)果對(duì)比
由圖6可以知道,YOLOv4-Tiny算法對(duì)輪轂DR圖像中的缺陷檢測(cè)效果不佳,本文的輕量化YOLOv4和YOLOv4算法對(duì)輪轂數(shù)據(jù)集的缺陷檢測(cè)精度相差不大,但是YOLOv4模型參數(shù)量過大且檢測(cè)速度比較慢,難以完成實(shí)時(shí)監(jiān)測(cè)的任務(wù)。
同時(shí)為了驗(yàn)證算法的普適性,在VOC2007數(shù)據(jù)集上做了同樣的試驗(yàn),得到的結(jié)果基本與本文自建數(shù)據(jù)集結(jié)果一致。綜上所述,輕量化YOLOv4算法更適合檢測(cè)輪轂內(nèi)部缺陷。
針對(duì)當(dāng)前模型在工業(yè)鑄件射線圖像缺陷識(shí)別上存在參數(shù)量大、難以訓(xùn)練和對(duì)計(jì)算機(jī)算力要求高的問題。本文基于YOLOv4 算法結(jié)合MobileNetV3 提出了一種應(yīng)用于輪轂內(nèi)部缺陷實(shí)時(shí)檢測(cè)的輕量化算法。 使用自制的數(shù)據(jù)集,采用k-means++ 聚類對(duì)目標(biāo)樣本進(jìn)行錨定框大小的優(yōu)化。 通過實(shí)驗(yàn)證明改進(jìn)的算法權(quán)值文件為45.2 MB,平均每秒檢測(cè)速度達(dá)到了68.38幀/s,在檢測(cè)輪轂缺陷方面成功率達(dá)到90.23%,完全能夠?qū)崿F(xiàn)輪轂內(nèi)部缺陷的實(shí)時(shí)檢測(cè),且降低了對(duì)于計(jì)算機(jī)硬件的要求。