趙先圣,馮 鵬, ,沈 寬,楊敬軒,漆 偉,羅 燕,何 鵬,,劉 鑫
(1.重慶大學(xué) 光電技術(shù)及系統(tǒng)教育部重點實驗室,重慶 400044;2.重慶大學(xué) 工業(yè)CT無損檢測教育部工程研究中心,重慶 400044)
近些年來,隨著中國鐵路運輸?shù)母咚侔l(fā)展,對鐵路運輸零部件的安全問題提出了更高的要求,其中搖枕、側(cè)架是鐵路鑄件零部件中比較重要的零部件之一,它們的制造質(zhì)量直接決定了鐵路運輸?shù)陌踩c效率。在鐵路運輸過程中,當(dāng)受到過大的載荷交變應(yīng)力作用時,容易導(dǎo)致?lián)u枕、側(cè)架斷裂,造成重大經(jīng)濟損失,因此,提高對鐵路鑄件缺陷檢測的效率和精度十分必要。X射線DR(Digital Radiography)是一種射線數(shù)字檢測技術(shù),DR技術(shù)因為檢測速度快、探測效率高、價格成本低、分辨率好、更能適應(yīng)現(xiàn)代工業(yè)生產(chǎn)快速在線檢測要求等諸多優(yōu)點得到越來越廣泛的重視和應(yīng)用。目前,對于鑄件X射線DR圖像分類分級的主要研究方法是圖譜經(jīng)驗判別法,通過人工判定被測工件是否含有和標(biāo)準(zhǔn)缺陷圖譜上相同的缺陷類型。采用的主要標(biāo)準(zhǔn)有我國的TB/T3105[1]、美國的ASTM系列標(biāo)準(zhǔn)[2-4]和歐盟的EN 12681[5]標(biāo)準(zhǔn)。該方法存在勞動強度大、工作效率低、易發(fā)生漏判誤判等情況,無法進(jìn)行大規(guī)模檢測。隨著計算機技術(shù)與人工智能技術(shù)的不斷發(fā)展,基于DR圖像的自動檢測方法也層出不窮,可以分為以下三類:第一類是基于數(shù)字圖像處理技術(shù)進(jìn)行直接缺陷檢測。通過手工進(jìn)行特征設(shè)計,并用數(shù)字圖像處理算法實現(xiàn)圖像某些類特征的提取,從而實現(xiàn)目標(biāo)檢測。例如,Dalal等提出的HOG[6]算法,通過對圖像局部梯度方向做統(tǒng)計直方圖,經(jīng)歸一化后,實現(xiàn)對圖像輪廓特征的提取。Ojala T等提出的LBP[7]算法,通過獲取像素點的局部二進(jìn)制值來提取圖像局部紋理特征。第二類是采用傳統(tǒng)機器學(xué)習(xí)網(wǎng)絡(luò)與淺層神經(jīng)網(wǎng)絡(luò)(如支持向量機、貝葉斯分類器等[8])進(jìn)行圖像缺陷檢測。例如,Xiao-Cong L等提出的基于量子粒子群算法(QPSO)來計算SVM分類器參數(shù),進(jìn)而識別表面缺陷的方法[9];第三類是基于深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行缺陷識別與檢測。在保證高準(zhǔn)確度的同時,具有識別速度快、泛化性更高,以及實時檢測等優(yōu)勢。主要分為雙階段檢測算法和單階段檢測算法。雙階段檢測算法是以R-CNN系列為代表的基于候選區(qū)域的目標(biāo)檢測算法;單段檢測算法是以Yolo、SSD為代表的基于回歸分析的目標(biāo)檢測算法[10]。而目前,將Yolo系列算法應(yīng)用于鑄件X射線DR圖像缺陷檢測研究較少,所以,利用Yolo v5算法對鑄件X射線DR圖像進(jìn)行分級分類以及自動檢測缺陷具有重要的理論和應(yīng)用價值。
針對鐵軌鑄件射線DR圖像存在的問題,以及需要對鐵軌鑄件缺陷實現(xiàn)精確的檢測,本文提出了如圖1所示的算法整體理論框架:數(shù)據(jù)采集模塊、數(shù)據(jù)預(yù)處理模塊、目標(biāo)檢測算法模塊。
圖1 Yolo v5算法整體理論框架
數(shù)據(jù)采集模塊主要是用于獲取鐵軌鑄件射線DR圖像,構(gòu)建用于目標(biāo)檢測算法的原始圖像數(shù)據(jù)集。數(shù)據(jù)預(yù)處理模塊主要是為了抑制DR圖像中的散射噪聲,提高圖像對比度。目標(biāo)檢測算法模塊的作用主要是學(xué)習(xí)鐵軌鑄件缺陷的分布特征,根據(jù)學(xué)習(xí)規(guī)律,實現(xiàn)鐵軌鑄件缺陷的目標(biāo)檢測。
工件缺陷檢測的難點主要在于工件本身結(jié)構(gòu)復(fù)雜、缺陷種類多,缺陷的形狀、位置、區(qū)域面積多樣化。而鑄件的X射線DR圖像存在圖像邊緣模糊,灰度值與背景差異較小等問題,導(dǎo)致工件缺陷的高精度檢測存在較大的難度。
針對以上問題,本文算法首先對DR圖像開展預(yù)處理,進(jìn)行導(dǎo)向濾波,在抑制噪聲的同時,保持圖像的邊緣信息,增強圖像對比度。該算法需要一個引導(dǎo)圖像I,本文采用的引導(dǎo)圖像為原圖像本身,此時導(dǎo)向濾波轉(zhuǎn)化為Edge-preserving濾波器,可以用于圖像的平滑降噪。對于一個輸入的圖像p,通過引導(dǎo)圖像I,經(jīng)過濾波后得到輸出圖像q,其中p和I都是算法的輸入,對于i位置的像素點,得到的濾波輸出是一個加權(quán)平均值,濾波器定義如式(1)所示:
(1)
式中,i和j分別表示像素下標(biāo)。Wij(I)表示引導(dǎo)圖像來確定加權(quán)平均的權(quán)值。得到平滑處理的圖像后,為了使細(xì)節(jié)和紋理更清晰,本文將原圖I和平滑圖像q做相減運算得到圖像的細(xì)節(jié)和大致輪廓,對其進(jìn)行放大運算,系數(shù)為λ,再與平滑圖像q進(jìn)行相加運算得到最后的增強圖像Ie,如式(2)所示:
Ie=(I-q)×λ+q
(2)
經(jīng)過數(shù)據(jù)調(diào)整發(fā)現(xiàn),當(dāng)λ=4.5時,圖像增強效果為最佳值。
Yolo v5的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,主要由Backbone模塊、Neck模塊和Output模塊三個部分組成。
圖2 Yolo v5的網(wǎng)絡(luò)結(jié)構(gòu)圖
(1)Backbone模塊
Backbone模塊主要作用是在不同圖像細(xì)粒度上聚合并形成圖像特征的卷積神經(jīng)網(wǎng)絡(luò)。Backbone前端使用了Focus模塊對圖像進(jìn)行步長為2的采樣操作,并將采樣得到的切片堆疊。Focus模塊切片示意圖如圖3所示,得到長寬均為原圖像一半,維度擴張為原來4倍的特征圖。通過這種無信息損失的2倍鄰近下采樣,將輸入特征圖的通道數(shù)加以擴張,使得輸入特征能更好的被后續(xù)神經(jīng)網(wǎng)絡(luò)提取。
圖3 Focus模塊切片示意圖
Backbone模塊采用CSPDarkNet結(jié)構(gòu),該結(jié)構(gòu)在Yolo v3的DarkNet基礎(chǔ)上結(jié)合CSPNet得到。CSPNet將輸入基礎(chǔ)特征層分為兩部分:第一部分為輸入特征層的副本;另一部分與DarkNet中的Res Block連接,如圖4所示。輸出經(jīng)過Partial Transition Layer后再與第一部分中輸入特征層的副本合并,將輸入特征層的副本隨神經(jīng)網(wǎng)絡(luò)傳播到下個階段。通過這種跨階段合并特征層的方式,有效降低網(wǎng)絡(luò)反演過程中重復(fù)的梯度信息。CSPNet結(jié)構(gòu)能提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,并在保證網(wǎng)絡(luò)精度的同時降低計算瓶頸,提高計算速度。
圖4 CSP結(jié)構(gòu)與Res Block結(jié)合示意圖
(2)Neck模塊
Neck模塊主要作用是將一系列混合和組合圖像特征的網(wǎng)絡(luò)層,并將圖像特征傳遞到預(yù)測層。Neck模塊的主要組成部分是路徑聚合網(wǎng)絡(luò)PANet(Path Aggregation Network)[16],如圖5所示。該結(jié)構(gòu)自頂而下與自底向上兩種特征金字塔橫向連接構(gòu)成。而PANet結(jié)合了自頂而下與自底向上兩種特征金字塔結(jié)構(gòu),使得特征空間分辨率保持不變,并顯著提高了推演速度,簡化了網(wǎng)絡(luò)結(jié)構(gòu)。
圖5 路徑聚合網(wǎng)絡(luò)PANET結(jié)構(gòu)
(3)Output模塊
Output模塊主要作用是對圖像特征進(jìn)行預(yù)測,生成邊界框并預(yù)測類別。其主要包括了損失函數(shù)和加權(quán)非極大值抑制算法。
1)損失函數(shù)。目標(biāo)檢測任務(wù)的損失函數(shù)一般由分類損失函數(shù)Classification Loss和回歸損失函數(shù)Bounding Box Regression Loss兩部分構(gòu)成。Yolo v5采用GIoU(Loss Generalized Intersection over Union)代替?zhèn)鹘y(tǒng)的IoU_Loss做Bounding box的損失函數(shù),如式(3)所示。
(3)
如式(3)所示,其中IoU是兩個區(qū)域重疊的部分除以兩個區(qū)域的集合部分得出的結(jié)果。首先計算兩個框的最小閉包區(qū)域面積AC(同時包含了預(yù)測框和真實框的最小框的面積)及IoU,再計算閉包區(qū)域AC中不屬于兩個框的區(qū)域占閉包區(qū)域的比重,最后用IoU減去該比重得到GIoU。最終的損失函數(shù)如式(4)所示:
LGIoU=1-GIoU
(4)
2)加權(quán)非極大值抑制算法(NMS);物體檢測中應(yīng)用NMS算法的主要目的是當(dāng)有多個預(yù)測框出現(xiàn)交叉重疊(兩預(yù)測框的IoU大于設(shè)定閾值)時,取預(yù)測效果最好的預(yù)測框留下,抑制其余重疊的預(yù)測框,從而找到最佳物體檢測位置。
本文實驗的環(huán)境具體設(shè)置為Intel(R)Core(TM)i5-9300H,Windows10,顯卡為NVIDIA-TITAN-XP,使用的深度學(xué)習(xí)框架為Pytorch1.8.1,Python版本為3.8。
圖6為經(jīng)過增強后的圖像與原始圖像的細(xì)節(jié)對比,不難看出經(jīng)過導(dǎo)向濾波及細(xì)節(jié)增強處理后,圖像中缺陷的特征更加突出。在不損傷圖像輪廓的前提下,圖像的細(xì)節(jié)與紋理得以增強,霧化現(xiàn)象明顯削弱,缺陷的可識別性進(jìn)一步提高。
圖6 圖像增強結(jié)果對比圖
本文實驗數(shù)據(jù)來自車間實際生產(chǎn)的搖枕與側(cè)架鐵路鑄件的射線DR圖像。數(shù)據(jù)集的制作流程包括圖像裁剪、圖像增強和圖像標(biāo)注。首先是圖像裁剪,將原始圖像一分為二,這樣能夠使有用特征(缺陷)的占比得到提高,進(jìn)而提高識別的準(zhǔn)確度;其次是圖像增強,采用導(dǎo)向濾波能在不損傷圖像輪廓的前提下使圖像的細(xì)節(jié)與紋理得以增強;最后由工廠質(zhì)控人員采用Labelme軟件對缺陷類型與位置進(jìn)行標(biāo)注,形成數(shù)據(jù)集。對于圖像標(biāo)注,其數(shù)據(jù)格式參考VOC數(shù)據(jù)集的形式。參照美國ASTM國際標(biāo)準(zhǔn),并結(jié)合本課題實際情況,將需要標(biāo)注的缺陷分為:氣孔類與疏松類。這兩種缺陷在鑄造缺陷中最為常見,對其進(jìn)行缺陷檢測尤為重要。其中,氣孔類缺陷(用a表示)又細(xì)分為兩個等級:a1和a2;疏松類缺陷(用c表示)細(xì)分為3個等級:c1,c2和c3;缺陷類別和等級示意如圖7所示,缺陷的等級主要根據(jù)缺陷的面積與深度來進(jìn)行劃分。
圖7 缺陷類別和等級示意圖
使用Labelme軟件對這5種缺陷進(jìn)行標(biāo)注,生成json格式的標(biāo)簽文件,標(biāo)注界面如圖8。本文鐵路鑄件X射線DR圖像均通過同一臺掃描儀得到,掃描儀的相關(guān)參數(shù)無區(qū)別,本次實驗收集了2017年至2019年的中車公司某下屬子公司的鐵路鑄件X射線DR圖像共600張,將經(jīng)過預(yù)處理的鐵路鑄件X射線DR圖像截成左右相等的兩部分得到1200張圖片,其中搖枕400張,側(cè)架800張。對其進(jìn)行標(biāo)注,得到1169個標(biāo)簽文件與8783個標(biāo)簽示。設(shè)定訓(xùn)練集與測試集的比例為7∶3,其中訓(xùn)練集中又劃分30%作為驗證集。
圖8 標(biāo)注界面示意圖
Yolo v5模型檢測精度指標(biāo)主要包括常用的性能指標(biāo)精確率(P),召回率(R),IoU閾值為0.5時的平均AP大小(mAP@0.5),以及定義預(yù)測的平均置信度(AC)等作為網(wǎng)絡(luò)性能的評價指標(biāo)。
精確率P定義如式(5)所示:
(5)
式中,TP是預(yù)測框與真實框IoU>0.5的個數(shù),F(xiàn)P是預(yù)測框與真實框IoU<0.5的個數(shù)。精確率P的大小即為所有預(yù)測框中屬于正確檢測的比例,P可以反映模型的正檢率。
召回率R定義如式(6)所示:
(6)
式中,F(xiàn)N是指被遺漏的真實框的個數(shù),召回率R表示在所有正樣本中被正確預(yù)測的比例。
平均精確度AP:表示在每次目標(biāo)檢測所對應(yīng)的P-R曲線和橫縱坐標(biāo)所圍起來的面積,它表示網(wǎng)絡(luò)對數(shù)據(jù)集在不同閾值下對某一類別的目標(biāo)檢測的效果。一般而言,AP越高表示目標(biāo)檢測效果越好。平均精確度AP定義見式(7):
(7)
式中,p(r)表示精確率P與召回率R所表示的曲線。
平均精確度均值mAP:表示網(wǎng)絡(luò)對數(shù)據(jù)集中所有類別的AP值的均值,它是衡量網(wǎng)絡(luò)對所有類別目標(biāo)的檢測效果,也是本文針對多目標(biāo)分類的檢測重要指標(biāo)之一。平均精確度均值mAP定義見式(8):
(8)
預(yù)測平均置信度AC定義見式(9):
(9)
式中,TB表示所有與真實框IoU>0.5檢測框的總個數(shù),TC表示IoU>0.5檢測框的置信度之和。
這4項指標(biāo)從不同方面反應(yīng)了目標(biāo)檢測模型對數(shù)據(jù)集中目標(biāo)的檢測能力,通過對目標(biāo)檢測模型之間的性能指標(biāo)分析,可以得到適合用于鐵路鑄件射線DR圖像缺陷檢測的目標(biāo)檢測模型。
本文實驗結(jié)果分析主要根據(jù)模型檢測精度指標(biāo)以及實驗結(jié)果圖和局部結(jié)果放大圖來進(jìn)行分析和對比,模型檢測精度指標(biāo)主要包括精確率(P),召回率(R),IoU閾值為0.5時的平均AP大小(mAP@0.5)、定義預(yù)測的平均置信度(AC)以及檢測時間這五個指標(biāo)。表1反映了本文算法檢測后的各項缺陷的平均檢測精度(mAP)以及模型的整體檢測精度。
表1 缺陷mAP值
由表1可以看出,除氣泡a1與疏松c1類兩類缺陷,其余3類缺陷的mAP@0.5均在95%以上,達(dá)到了較高的檢測精度。可見Yolo v5對這三類缺陷的特征識別能力較強,檢測效果較好。對于相對識別精度較低的a1類與c1類缺陷,由于數(shù)據(jù)集中兩類缺陷相對較少,標(biāo)簽數(shù)量有限,導(dǎo)致泛化能力不高;且缺陷本身較淺,尺寸較小,與周圍區(qū)域灰度差異不大,不易被特征提取網(wǎng)絡(luò)提取特征并識別,因此Yolo v5對其的識別精度相比較差。
表2包含了5類缺陷各自的正檢率、誤檢率、漏檢率與平均置信度,反映出每類缺陷中被正確識別(正檢)、被識別為其他類缺陷(誤檢)、被識別為背景(漏檢)的比例,以及正確識別時的平均置信度(可靠程度)的大小,從而更直觀的展示本文算法對各級缺陷的識別情況。
表2 各類缺陷識別結(jié)果
由表2可以看出,本文算法對a1類缺陷的正檢率最低,有22%的a1類缺陷沒有被檢測出來。對于c1類缺陷的正檢率也相對較低,其中有14%的c1沒有被檢測出來。但本文算法對5類缺陷的誤檢率都較低,說明a1類與c1類缺陷是由于其本身特征不明顯且標(biāo)簽數(shù)目太少,從而不易于被Yolo v5網(wǎng)絡(luò)識別,這一點從平均置信度大小也可以看出來。整體而言基于Yolo v5的鐵路鑄件缺陷檢測的檢測精度較高,整體漏檢率與誤檢率均在較低范圍之內(nèi),且有較大的改進(jìn)空間與發(fā)展?jié)摿Α?/p>
將本文的檢測結(jié)果與基于Yolo v3的檢測結(jié)果進(jìn)行對比驗證。圖9展示了不同檢測算法在軌道鑄件DR圖片數(shù)據(jù)集上的缺陷檢測效果,其中第一行至第四行分別表示圖9(a)~圖9(d)。圖9(a)對應(yīng)2張軌道鑄件DR圖片經(jīng)過預(yù)處理之后的原圖;圖9(b)表示一線工人標(biāo)注的數(shù)據(jù)集圖片;圖9(c)表示采用Yolo v3的檢測結(jié)果;圖9(d)表示采用本文算法的檢測結(jié)果。而圖10則展示了與圖9所對應(yīng)的圖片和算法的局部對比缺陷檢測效果。
對于Yolo v3缺陷檢測算法,從圖9(c)和圖10(c)能夠看出該算法能夠較好地識別出缺陷所在大體位置以及缺陷的類型,但是對于缺陷的等級識別以及識別的精確度方面表現(xiàn)較差,且存在較多的漏檢情況和部分的缺陷等級識別有誤差的誤檢情況。對于本文算法,從圖9(d)和圖10(d)能夠看出該算法能夠基本識別出缺陷所在大體位置以及缺陷的類型,通過和圖9(b)一線工人標(biāo)注的數(shù)據(jù)集圖片比較來看,分別出現(xiàn)錯檢1個特征和多檢1個特征。證明此算法對于缺陷的等級識別以及識別的精確度方面表現(xiàn)較好,對于a1類特征存在較多的漏檢情況,其他類型和等級缺陷的漏檢率不是很高。
圖9 實驗對比結(jié)果
圖10 局部對比結(jié)果
表3給出了不同算法在測試集檢測后的mAP值與平均置信度??梢钥吹結(jié)olo v3的mAP值僅為56.1%,本文算法則達(dá)到了87.4%。對于平均置信度而言,本文算法達(dá)到了78.0%,有較高的可信度,說明了其能夠基本識別出缺陷所在大體位置以及缺陷的類型,對于缺陷的等級識別以及識別的精確度方面表現(xiàn)較好。
表3 兩種網(wǎng)絡(luò)結(jié)構(gòu)識別性能對比
表4給出了兩種算法的時間消耗情況。在模型檢測速度方面,采用 FPS(Frame Per Second)即每秒鐘處理的圖片數(shù)量作為評價指標(biāo)??梢钥吹?,本文算法的檢測速度較Yolo v3高13 frame/s,檢測速度有較大提升。
表4 兩種網(wǎng)絡(luò)結(jié)構(gòu)識別圖像消耗時間對比
本文基于Yolo v5深度學(xué)習(xí)相關(guān)理論,結(jié)合傳統(tǒng)圖像處理方法,開展鐵路鑄件X射線DR圖像缺陷檢測算法的研究,旨在探索快速、高準(zhǔn)確度、輕量化的缺陷檢測模型。利用Yolo v5深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行缺陷識別,將生成Region Proposals與目標(biāo)分類合二為一,降低了DR圖像缺陷檢測的誤檢和漏檢,達(dá)到較高的識別精度,避免了傳統(tǒng)方法分級分類精度較差的問題。實驗數(shù)據(jù)表明,本文算法可以對鑄件射線DR圖像的氣孔、疏松缺陷進(jìn)行檢測且初步分類分級,且具有較高的精度。在后續(xù)研究中,將會繼續(xù)擴大數(shù)據(jù)集的樣本數(shù)據(jù)量,改進(jìn)深度模型算法,進(jìn)一步提高檢測精度和速度,嘗試對其他缺陷類型進(jìn)行檢測。并嘗試以本文的方法為基礎(chǔ),推廣到其他鑄件射線DR圖像的缺陷檢測,為工業(yè)缺陷檢測智能化提出解決方法。