張力丹 余方劍 董婉祾 崔 宸
(中國核動(dòng)力研究設(shè)計(jì)院,四川 成都 610000)
隨著全球?qū)δ茉葱枨蟮牟粩嘣鲩L,保障核電安全正面臨巨大的機(jī)遇和挑戰(zhàn),如何高效進(jìn)行核電設(shè)備缺陷檢測已成為重要的研究課題,基于深度學(xué)習(xí)的機(jī)器視覺算法是該領(lǐng)域的關(guān)鍵技術(shù)[1]。與傳統(tǒng)特征提取算法不同,基于深度學(xué)習(xí)的算法不需要手動(dòng)設(shè)計(jì)特征,而是通過卷積核從圖像數(shù)據(jù)中提取具有較強(qiáng)魯棒性和深層語義的特征,因此其提取的特征圖具有很強(qiáng)的表達(dá)能力[2]。卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)在許多計(jì)算機(jī)視覺任務(wù)中有突出表現(xiàn),例如圖像分類、目標(biāo)檢測以及圖像分割等。目前,基于深度學(xué)習(xí)的目標(biāo)檢測算法從結(jié)構(gòu)上主要分為以Fster R-CNN 為代表的兩階段網(wǎng)絡(luò)和以單步多框目標(biāo)檢測(Single Shout Multibax Detector,SSD)或YOLO 為代表的一階段網(wǎng)絡(luò)[3]。一階段的目標(biāo)檢測算法與二階段的“選取候選框+分類驗(yàn)證”模式完全不同,一階段算法直接將整張圖像作為網(wǎng)絡(luò)的輸入,通過主干網(wǎng)絡(luò)提取特征圖,輸入分類器進(jìn)行分類和目標(biāo)框的預(yù)測。Zhang C B 等[4]將最新的YOLOv3 版本應(yīng)用于橋梁表面缺陷定位, 與原始YOLOv3 網(wǎng)絡(luò)相比,其引入了預(yù)訓(xùn)練權(quán)重、批量歸一化和Focal loss 損失函數(shù),進(jìn)一步提高了缺陷檢測率。隨后YOLOv4、YOLOv5 版本相繼出世,進(jìn)一步提高了檢測精度,彌補(bǔ)了一階段算法精度不足的缺點(diǎn)。
該文研究的數(shù)據(jù)來自某核電站2016—2021 年的缺陷檢查報(bào)告和總結(jié)報(bào)告。首先,進(jìn)行數(shù)據(jù)預(yù)處理,從上千份檢查報(bào)告中提取圖像數(shù)據(jù),并對其進(jìn)行初步的缺陷類別標(biāo)注,即圖像級分類。其次,對提取的圖像數(shù)據(jù)進(jìn)行篩選,選出僅有一類缺陷且特征較明顯的圖像數(shù)據(jù)。該小節(jié)研究的核電設(shè)備缺陷類型有4 個(gè)類別,分別是腐蝕、涂層脫落、起泡以及開裂。其中,起泡、開裂的特征比較微弱,在原圖中所占的像素比太低,圖像級的標(biāo)注難以達(dá)到預(yù)期的檢測效果。因此,該文進(jìn)一步對數(shù)據(jù)集進(jìn)行區(qū)域標(biāo)注,即用區(qū)域框標(biāo)注圖像中的缺陷區(qū)域。由于核電設(shè)備缺陷圖像樣本數(shù)量十分有限,僅有5 000多張,且各類缺陷類別之間存在類別不平衡的問題。因此,需要對原圖像數(shù)據(jù)進(jìn)行翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、縮放、局部遮擋、添加噪聲、隨機(jī)模糊以及顏色變換等操作,對各個(gè)類別的缺陷數(shù)據(jù)進(jìn)行擴(kuò)充,以解決類別不平衡的問題。
該文構(gòu)建了基于YOLOv5 的目標(biāo)檢測模型,并利用該模型對核電設(shè)備缺陷數(shù)據(jù)集進(jìn)行檢測,網(wǎng)絡(luò)結(jié)構(gòu)由主干網(wǎng)絡(luò)(Backbone)、頸部(Neck)以及頭部(Head)構(gòu)成,主干網(wǎng)絡(luò)使用CSP-DarkNet+SPP 結(jié)構(gòu)進(jìn)行特征提?。活i部使用雙向融合結(jié)構(gòu)(PANet 結(jié)構(gòu))生成特征金字塔;頭部使用YOLOv3 head 實(shí)現(xiàn)識別和回歸功能。
1.2.1 主干網(wǎng)絡(luò):交叉融合結(jié)構(gòu)(Cross Stage Partial,CSP)
CSP 基本結(jié)構(gòu)為將輸入特征按照比例分為2 個(gè)部分,一部分輸入殘差結(jié)構(gòu)進(jìn)行特征變換,另一部分直接使用1×1 的卷積進(jìn)行特征變換,再將2 個(gè)部分的特征拼接(concat),最后進(jìn)行批歸一化處理,使用Leaky Relu作為激活函數(shù),通過基礎(chǔ)卷積層進(jìn)行特征變換。YOLOv5中包括CSP 結(jié)構(gòu)(如圖 1 所示),采用2 種結(jié)構(gòu),分別為CSP1和CSP2,差別在于CSP2中將CSP1中的殘差結(jié)構(gòu)替換為普通的卷積結(jié)構(gòu)。YOLOv5 中使用CSPDarkNet 作為主干網(wǎng)絡(luò),從輸入圖像中提取豐富的信息特征,解決了其他大型神經(jīng)網(wǎng)絡(luò)框架的主干網(wǎng)絡(luò)優(yōu)化的梯度信息重復(fù)問題,將梯度的變化集成到特征圖中,從而減少了模型的參數(shù)量和每秒浮點(diǎn)運(yùn)算次數(shù),既保證了推理速度和準(zhǔn)確率,又縮減了模型的規(guī)模。
1.2.2 頸部:雙向特征融合結(jié)構(gòu)(PANet 結(jié)構(gòu))
PANet 在特征金字塔的結(jié)構(gòu)上添加了自底向上的特征融合結(jié)構(gòu)。由于淺層特征中包括更多的邊緣、形狀等特征信息,自低向上的特征融合結(jié)構(gòu)使頂層特征圖可以共享底層帶來的豐富位置信息,能充分利用網(wǎng)絡(luò)淺層特征進(jìn)行分割,因此可以提高大物體的檢測效果。
圖1 交叉融合結(jié)構(gòu)
1.2.3 頭部結(jié)構(gòu)
頭部結(jié)構(gòu)是網(wǎng)絡(luò)的最終檢測結(jié)構(gòu),通過主干網(wǎng)絡(luò)和特征融合結(jié)構(gòu)實(shí)現(xiàn)特征提取和融合,從而對特征進(jìn)行檢測。這部分對PANet 結(jié)構(gòu)輸出的3 個(gè)尺度的特征進(jìn)行特征變換后實(shí)現(xiàn)預(yù)測,最終輸出的特征圖上會(huì)應(yīng)用錨定框并輸出張量:批量大小×(五維張量+類別總數(shù))×特征圖寬×特征圖高。其中,五維張量為回歸框的4 個(gè)角坐標(biāo)、中心點(diǎn)坐標(biāo)以及識別的置信度。不同的是在錨框分配方面,YOLOv5 通過跨網(wǎng)格匹配規(guī)則的方式來區(qū)分錨框的正、負(fù)樣本,即計(jì)算標(biāo)注框和當(dāng)前層的錨框的寬高比,如果寬高比大于設(shè)定的閾值,就說明標(biāo)注框與錨框匹配度不夠,需要過濾。計(jì)算剩下的標(biāo)注框?qū)儆谀膫€(gè)網(wǎng)格,利用四舍五入規(guī)則找出最近的2 個(gè)網(wǎng)格,將這3 個(gè)網(wǎng)格都認(rèn)為是負(fù)責(zé)預(yù)測該標(biāo)注框的網(wǎng)格,這樣正樣本數(shù)量就增加了3 倍。
1.2.4 損失函數(shù)
損失函數(shù)是為了讓網(wǎng)絡(luò)模型向檢測目標(biāo)不斷學(xué)習(xí)而設(shè)定的目標(biāo)函數(shù),其中YOLOv5 的損失函數(shù)分為3 個(gè)部分:1) 參數(shù)化坐標(biāo)框Lbox,如公式(1)所示。
式中:v為衡量長寬比一致性的參數(shù),其比較了重疊面積、中心點(diǎn)距離以及長寬比(wgt、hgt為目標(biāo)框轉(zhuǎn)換為640×640的寬、高;wp、hp為目標(biāo)框在80×80 網(wǎng)格中的網(wǎng)格坐標(biāo));IOU為2 個(gè)目標(biāo)框的交并比;Distance_2 為2 個(gè)目標(biāo)框中心點(diǎn)的歐氏距離;Distance_C為目標(biāo)框?qū)蔷€的距離。
置信度的損失Lobj采用BEC Logits Loss 損失函數(shù),如公式(2)所示。
式中:yi為每輪訓(xùn)練的標(biāo)簽值;yi*為每輪訓(xùn)練的期望值。
類別損失Lclass采用交叉熵?fù)p失函數(shù)(BCEcls Loss),如公式(3)所示。
總損失函數(shù)Ltotal如公式(4)所示。
式中:λ1、λ2和λ3為3 個(gè)超參數(shù),可通過試驗(yàn)結(jié)果調(diào)整。
試驗(yàn)在原始網(wǎng)絡(luò)上使用預(yù)訓(xùn)練權(quán)重直接訓(xùn)練數(shù)據(jù)集,YOLOv5 模型有4 種不同寬度和深度的結(jié)構(gòu)(s、m、l 和x)。由于試驗(yàn)的數(shù)據(jù)集規(guī)模較小,因此選用s 模型進(jìn)行訓(xùn)練,在訓(xùn)練過程中設(shè)置超參數(shù):學(xué)習(xí)率為0.003 2,學(xué)習(xí)率動(dòng)量為0.843,權(quán)重衰減系數(shù)為0.000 36,預(yù)熱學(xué)習(xí)迭代輪數(shù)為2,預(yù)熱學(xué)習(xí)率動(dòng)量為0.5,預(yù)熱學(xué)習(xí)率0.05,目標(biāo)框損失系數(shù)為0.029 6,分類損失系數(shù)為0.243,分類損失中正樣本的權(quán)重為0.631,有無物體損失系數(shù)為0.301,有無物體損失中的正樣本權(quán)重為0.911,標(biāo)注框與錨框的交并比閾值為0.2。
該文選取召回率、精確率作為評價(jià)指標(biāo),在訓(xùn)練集、驗(yàn)證集上的試驗(yàn)結(jié)果分別如圖2、圖3 所示,模型在訓(xùn)練集上的損失不斷下降,模型在驗(yàn)證集上的損失不斷增加。在驗(yàn)證集上的召回率如圖4 所示,訓(xùn)練達(dá)到一定輪次后,召回率在22%左右波動(dòng)。在驗(yàn)證集上的精確率如圖5 所示,精確率升至50%后不斷下降。模型在訓(xùn)練集上的損失正常下降,說明模型在不斷收斂,在驗(yàn)證集上的精確率卻在下降,說明模型的泛化能力弱。
圖2 訓(xùn)練集上的損失值
圖3 驗(yàn)證集上的損失值
圖4 驗(yàn)證集上的召回率指標(biāo)
圖5 驗(yàn)證集上的精確率指標(biāo)
初步訓(xùn)練后,該文對訓(xùn)練集和驗(yàn)證集的數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)訓(xùn)練集和驗(yàn)證集的數(shù)據(jù)類別分布不均,因此重新劃分訓(xùn)練集和驗(yàn)證集的比例并重新訓(xùn)練模型。如圖6 所示,模型在訓(xùn)練集上的損失不斷下降,收斂至0.026。如圖7 所示,模型在驗(yàn)證集上的損失也不斷下降,收斂至0.016,說明模型在驗(yàn)證集上不斷收斂,具有較好的泛化能力。在驗(yàn)證集上的召回率、精確率分別如圖8、圖9 所示,訓(xùn)練達(dá)到70 輪后,召回率在90%左右波動(dòng), 精確率在95%左右波動(dòng)。
圖6 訓(xùn)練集上的損失值
圖7 驗(yàn)證集上的損失值
圖8 驗(yàn)證集上的召回率指標(biāo)
圖9 驗(yàn)證集上的精確率指標(biāo)
對比2 次試驗(yàn)的召回率、精確率指標(biāo),第二次訓(xùn)練結(jié)果明顯比第一次訓(xùn)練結(jié)果好,說明數(shù)據(jù)集的質(zhì)量對試驗(yàn)結(jié)果至關(guān)重要。同時(shí),也說明YOLOv5 算法模型適用于該類數(shù)據(jù)集,可用于核電設(shè)備的缺陷檢測。
通過試驗(yàn)發(fā)現(xiàn),采用機(jī)器視覺技術(shù)對缺陷樣本進(jìn)行檢測具有高效、節(jié)約成本的優(yōu)勢。當(dāng)模型的魯棒性較高時(shí),只需要提供1 臺(tái)計(jì)算服務(wù)器就可以進(jìn)行缺陷檢測。
該文采用基于深度學(xué)習(xí)的目標(biāo)檢測算法YOLOv5 對某核電站的核電設(shè)備表面缺陷進(jìn)行檢測。研究結(jié)果表明,基于深度學(xué)習(xí)的目標(biāo)檢測算法適用于核電設(shè)備表面缺陷檢測,在檢測速度和檢測精度方面都滿足需求。目前,該數(shù)據(jù)集的數(shù)據(jù)量較少,還需要大量的數(shù)據(jù)來提高算法的魯棒性,這樣才能投入實(shí)際使用。未來可以通過更多的數(shù)據(jù)積累、數(shù)據(jù)生成等方式來形成專業(yè)領(lǐng)域,使算法可以投入實(shí)際的生產(chǎn)使用。