黃如兵,趙漣漪
(1.安徽職業(yè)技術(shù)學(xué)院信息工程學(xué)院 安徽 合肥 230011;2.安徽水利水電職業(yè)技術(shù)學(xué)院機械工程學(xué)院 安徽 合肥 231603)
鋼材在生產(chǎn)與運輸過程中,由于生產(chǎn)工藝、生產(chǎn)環(huán)境、運輸條件等影響,容易出現(xiàn)劃痕、斑塊、點蝕表面和內(nèi)含物等缺陷。這些缺陷嚴重影響了鋼材品質(zhì)和使用安全,因此,對鋼材缺陷進行智能檢測、識別、篩選將有助于進一步提高鋼材產(chǎn)品質(zhì)量[1]。鋼材缺陷目標檢測技術(shù)的發(fā)展,分別經(jīng)歷了人工識別檢測、光電技術(shù)檢測、人工智能機器視覺檢測3個主要發(fā)展階段[2-4]。目前,隨著人工智能技術(shù)的發(fā)展,國內(nèi)外大力推進智能制造產(chǎn)業(yè)發(fā)展,人工智能技術(shù)的應(yīng)用越來越廣泛,采用機器視覺檢測實現(xiàn)鋼材缺陷的精準定位和識別的檢測技術(shù)已逐漸成熟。
伴隨著卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用與發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)特征提取方法的目標檢測主要分為兩種類別,第一類是以區(qū)域卷積神經(jīng)網(wǎng)絡(luò)Faster R-CNN系列為代表的二階段目標檢測器,即先選擇候選區(qū)域再進行識別;第二類是以YOLO系列網(wǎng)絡(luò)模型為代表的基于回歸的單階段目標檢測器,即同時識別和定位[5-7]。本文基于卷積神經(jīng)網(wǎng)絡(luò)的YOLOv4模型算法能夠有效實現(xiàn)鋼材缺陷的檢測和定位。鋼材缺陷檢測系統(tǒng)由電機控制模塊、工業(yè)相機、工控機服務(wù)器、網(wǎng)絡(luò)通信搭建而成,使用工業(yè)相機采集缺陷圖像數(shù)據(jù)構(gòu)建數(shù)據(jù)集,基于YOLOv4完成圖像預(yù)處理、圖像標注、網(wǎng)絡(luò)模型訓(xùn)練及模型應(yīng)用分析。
鋼材缺陷檢測系統(tǒng)的硬件結(jié)構(gòu)主要包括工控機服務(wù)器、電動控制模塊、工業(yè)相機和網(wǎng)絡(luò)通信模塊。電動控制模塊傳送鋼材至檢測系統(tǒng)工業(yè)相機視野,工業(yè)相機和電動控制模塊相互協(xié)作,能完成鋼材圖像的實時采集與在線檢測,檢測系統(tǒng)硬件結(jié)構(gòu)如圖1所示。根據(jù)鋼材產(chǎn)品的特點及圖像采集要求,使用工業(yè)相機需搭載LED光源,圖像數(shù)據(jù)通過工業(yè)相機專用數(shù)據(jù)線實時采集并傳輸至工控機服務(wù)器進行運算處理。
圖1 檢測系統(tǒng)硬件結(jié)構(gòu)
鋼材表面缺陷按缺陷類別進行分類,按照劃痕、斑塊、點蝕表面、內(nèi)含物等4種缺陷情況分為4類,按照分類制作標注標簽:劃痕(Sc)、斑塊(Pa)、點蝕表面(PS)、內(nèi)含物(In)。使用工業(yè)相機對缺陷鋼材的缺陷部位采集照片,結(jié)合NEU-CLS數(shù)據(jù)集,構(gòu)建鋼材缺陷圖像數(shù)據(jù)集。綜合考慮生產(chǎn)環(huán)境光線變化等因素,分別在早、中、晚等時間段,使用檢測系統(tǒng)工業(yè)相機對缺陷鋼材表面缺陷位置進行圖像采集,采集和收集得到缺陷圖片1104張,篩選掉鏡頭遮擋、曝光嚴重、過暗、反光情況、無相關(guān)目標等情況圖片,最后保留1000張用于制作數(shù)據(jù)集。打亂數(shù)據(jù)集順序,選擇800張作為訓(xùn)練集,剩下200張為驗證集。
基于YOLOv4深度學(xué)習(xí)模型需要提供大量的缺陷標注數(shù)據(jù),才能防止因訓(xùn)練集樣本過少,避免模型過擬合,充足的數(shù)據(jù)能有效提高模型的泛化能力和魯棒性。在圖片數(shù)據(jù)預(yù)處理中,使用了圖像翻轉(zhuǎn)變換、噪聲擾動、圖片縮放、圖像亮度調(diào)整、隨機擦除以及Mosaic數(shù)據(jù)增強函數(shù)進行數(shù)據(jù)擴展,將原采集的圖像數(shù)據(jù)擴充至3倍,訓(xùn)練集數(shù)據(jù)達到2400張。訓(xùn)練集數(shù)據(jù)的增強,能豐富檢測目標的形態(tài),有效避免模型訓(xùn)練過擬合。通過編程實現(xiàn)圖像的批處理,將訓(xùn)練集圖像尺寸統(tǒng)一改為416*416分辨率大小,再使用LableImg標注工具[8],在每張圖片上按照斑塊(Pa)、點蝕表面(PS)、內(nèi)含物(In)、劃痕(Sc)分類標簽進行標注,將圖像標簽信息、坐標信息保存到XML文件中。
YOLO卷積神經(jīng)網(wǎng)絡(luò)模型是單階段目標檢測器,將任務(wù)劃歸為單步實現(xiàn)的定位與分類的回歸問題。YOLOv4網(wǎng)絡(luò)模型引用了YOLOv2、YOLOv3中的各種優(yōu)化策略,在主干網(wǎng)絡(luò)、網(wǎng)絡(luò)正則化、特征集成、激活函數(shù)、數(shù)據(jù)增強、模型感受野、損失函數(shù)等方面都有著不同程度的優(yōu)化,YOLOv4網(wǎng)絡(luò)模型如圖2所示。
圖2 YOLOv4網(wǎng)絡(luò)模型結(jié)構(gòu)
YOLOv4網(wǎng)絡(luò)模型的主干網(wǎng)絡(luò)是CSPDarkNet53,是在Darknet53主干網(wǎng)絡(luò)的基礎(chǔ)上,引用CSPNet網(wǎng)絡(luò)結(jié)構(gòu)所構(gòu)成的Backbone結(jié)構(gòu)。CSPDarknet53包含DarkNet卷積塊、激活函數(shù)Mish、5個CSP大殘差模塊,其中DarkNet是一款輕量級深度學(xué)習(xí)框架,由C語言和CUDA編寫的開源框架,執(zhí)行效率高。為了提高YOLOv4檢測的準確度和泛化性,主干中運用了平滑的激活函數(shù)Mish函數(shù),激活函數(shù)Mish的表達式見表達式(1),mish激活函數(shù)沒有邊界,在每一點連續(xù)平滑且非單調(diào)性,梯度下降計算效果更好。CSP(Cross Stage Partial)能有效提升CNN學(xué)習(xí)能力,每個CSP模塊都包含3×3的卷積核。輸入圖像大小為416×416,經(jīng)過5次下采樣,416× 416的輸入尺寸每經(jīng)過一個Resblock_body的CSP殘差塊,尺寸就遞減一倍,直至13×13,通道數(shù)增至1024。
f(x)=xtanh(ln(1+ex))
(1)
經(jīng)過主干網(wǎng)絡(luò)的特征提取可得到13×13尺寸的特征圖,經(jīng)過3×3的卷積核后進入SPP最大池化層,經(jīng)堆疊和卷積后,將結(jié)果13×13卷積結(jié)果及52×52,26×26特征圖輸入PANet。CSPDarkNet53的13、26、52尺寸輸出經(jīng)過空間金字塔池化得到特征層,通過卷積、上采樣、特征融合堆疊,向高尺寸特征遞進,再通過卷積、下采樣、特征融合堆疊,向低尺寸特征遞進,得到不同尺度下的特征信息。最后再通過YOLO Head(13、26、52共3種尺寸)整合通道,計算損失,根據(jù)先驗框3個特征層進行預(yù)測,再由非極大值抑制方法進行處理,對先驗框調(diào)整得到最終的預(yù)測框。
YOLOv4在YOLOv3損失函數(shù)基礎(chǔ)上使用CIoU(Complete Intersection over Union)損失替代MSE (Mean Square Error)損失作為回歸框預(yù)測損失。相較于傳統(tǒng)目標檢測中使用的MSE損失,CIoU解決了預(yù)測框與實際框的位置關(guān)系,避免了損失函數(shù)的發(fā)散問題。YOLOv4的損失函數(shù)LOSS由位置損失LCIoU、置信度損失LCon、分類損失Lcls構(gòu)成,見表達式(2),損失函數(shù)計算表達式見式(2)至(7)。
LOSS=LCIoU+LConf+Lcls
(2)
(3)
(4)
(5)
(6)
(7)
工作站服務(wù)器采用TensorFlow 2.1.0深度學(xué)習(xí)框架,Keras深度學(xué)習(xí)框架,CPU為 Intel i7-4790,顯卡為 NVIDIA RTX2080Ti 11 G,內(nèi)存8 G,CUDA版本10.2,CUDNN版本7.6.5,OpenCV 4.3,Python3.7.8。實驗數(shù)據(jù)集包含2400張圖像,每類缺陷各600張,隨機選取80%的缺陷圖像訓(xùn)練,20%缺陷圖像驗證。輸入經(jīng)圖像變換后的416×416尺寸圖片,使用labelImg軟件對訓(xùn)練集圖像數(shù)據(jù)進行人工標注,標注后生成對應(yīng)的xml格式文件,如圖3所示。xml格式文件包含了目標在原圖中的坐標及位置信息,xml格式的標注文件不能被YOLO模型直接使用,需要編寫代碼實現(xiàn)xml格式到txt格式文件轉(zhuǎn)換,代碼如圖4所示,將圖3中的坐標及位置信息轉(zhuǎn)換成YOLOv4所需要的格式,數(shù)據(jù)包括:標注類別、中心點X坐標、中心點Y坐標、標注框?qū)挶壤?、標注框高比例等信息,通過代碼可實現(xiàn)數(shù)據(jù)的批量轉(zhuǎn)換處理。實驗過程中要檢查圖片、標注信息是否正確。
圖3 labelImg標注的xml文件格式
構(gòu)建基于YOLOv4的網(wǎng)絡(luò)模型,設(shè)置參收,即可啟動訓(xùn)練。實驗中訓(xùn)練批次大小設(shè)置為16,權(quán)重衰減率設(shè)為0.0005,訓(xùn)練輪數(shù)設(shè)為100次,學(xué)習(xí)率設(shè)為0.001,使用隨機梯度下降算法優(yōu)化。評估模型重要指標是損失值,使用可視化工具繪制訓(xùn)練過程的損失值變化曲線如圖5。圖中,current avg loss為損失值,一般越小模型效果越好,iteration為訓(xùn)練次數(shù),系統(tǒng)每隔1000次自動保存一次weight后綴的權(quán)重文件。approx time left為預(yù)計訓(xùn)練時間,一般趨于穩(wěn)定或在某個數(shù)值上下波動時,表示模型訓(xùn)練已經(jīng)趨于穩(wěn)定,再增加時間訓(xùn)練意義不大。由圖5可知,損失值在0 ~4000次迭代時波動和振蕩幅度較大,曲線呈明顯下降趨勢。4000 ~ 50000次迭代區(qū)間,由曲線可見其損失值下降較為緩慢,模型訓(xùn)練趨于穩(wěn)定。50000次迭代之后,模型損失值穩(wěn)定在0.1附近小幅波動,迭代54000次時停止訓(xùn)練,其損失值為0.1045。
圖4 xml格式到y(tǒng)olo格式轉(zhuǎn)換代碼
圖5 模型訓(xùn)練損失函數(shù)變化曲線
將模型集成于檢測系統(tǒng),電動控制模塊將缺陷鋼材或缺陷鋼材圖片傳送置于工業(yè)相機下實現(xiàn)在線檢測,計算平均識別正確率來衡量模型性能,TP表示正確分類的正例,F(xiàn)P表示原本負例錯分正例,F(xiàn)N原本正例錯分負例,由公示(8)和(9)可計算得到精確率P和召回率R。
(8)
(9)
表1 鋼材缺陷圖像測試結(jié)果
模型訓(xùn)練結(jié)束后,利用迭代54000次導(dǎo)出的模型權(quán)重文件導(dǎo)入檢測系統(tǒng),進行鋼材缺陷目標檢測驗證,將缺陷鋼材及缺陷鋼材圖片置于工業(yè)相機下實現(xiàn)在線檢測,結(jié)果如表1所示,平均每張圖像檢測耗時0.0358 s,檢測的速率達到23.8 fps,能夠適用于企業(yè)生產(chǎn)環(huán)境下的實時檢測。Y0L0v4算法對于缺陷斑塊patches(Pa)識別率為96% 、點蝕表面pitted_surface(PS)識別率為95.7% 、內(nèi)含物inclusion(In)識別率為93.8% 、劃痕scratches(Sc)識別率為97.9% ,對內(nèi)含物斑塊patches(Pa)、劃痕scratches(Sc)均得到較高的正確識別率,對4種缺陷目標的檢測準確率都比較高、識別定位效果良好,具有高可靠性。針對部分圖片識別、定位不精準的原因,與訓(xùn)練集標注精確度有一定關(guān)系,檢測環(huán)境光線以及缺陷本身是否明顯都有一定關(guān)系。
為準確評估YOLOv4檢測算法的性能,另外選用了YOLOv3、Faster R-CNN、SSD模型檢測,3種經(jīng)典目標檢測算法的平均正確識別率分別為:YOLOv3平均正確識別率81.25%,F(xiàn)aster R-CNN平均正確識別率90.13%, SSD平均正確識別率70.57%,橫向?qū)Ρ葞追N算法可見,基于YOLOv4卷積神經(jīng)網(wǎng)絡(luò)的鋼材缺陷檢測識別平均識別正確率95.8%具有較為明顯的優(yōu)勢,基于YOLOv4網(wǎng)絡(luò)模型的鋼材缺陷檢測識別效果如圖6所示。
圖6 基于YOLOv4網(wǎng)絡(luò)模型的鋼材缺陷檢測識別
本文設(shè)計了基于 YOLOv4卷積神經(jīng)網(wǎng)絡(luò)的鋼材缺陷檢測系統(tǒng),根據(jù)鋼材產(chǎn)品中易出現(xiàn)的斑塊、點蝕、內(nèi)含物和劃痕等缺陷特征情況,選用工業(yè)相機、工控機服務(wù)器、電動控制模塊等構(gòu)成檢測系統(tǒng)硬件結(jié)構(gòu), 采用 YOLOv4卷積神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)了鋼材缺陷的識別、定位。相比較于其他幾個算法模型,YOLOv4 檢測算法達到了 95.8%的檢測準確度和23.8 幀/s的檢測速度,具有較明顯優(yōu)勢。實驗表明基于 YOLOv4 算法對缺陷的識別精度高,定位準確,可達到實時在線檢測的目標要求。目前對鋼材缺陷數(shù)據(jù)局限在斑塊、點蝕表面、內(nèi)含物、劃痕等4類缺陷,在以后研究中將通過實時采集、收集等方式擴充鋼材缺陷數(shù)據(jù)集,進一步優(yōu)化網(wǎng)絡(luò)模型,實現(xiàn)對更多缺陷的精確檢測和缺陷定位,促進鋼材缺陷檢測向智能化方向發(fā)展。