摘 要:【目的】傳統(tǒng)的人工目測方法已無法滿足對金屬表面劃痕進(jìn)行快速、準(zhǔn)確和自動(dòng)化檢測的需求。因此,基于數(shù)據(jù)集的構(gòu)建和卷積神經(jīng)網(wǎng)絡(luò)模型的搭建,提出了復(fù)雜形狀表面劃痕識別的方法?!痉椒ā渴紫?,創(chuàng)建金屬表面劃痕的數(shù)據(jù)集。其次,設(shè)計(jì)并訓(xùn)練一個(gè)基于Yolov8n的卷積神經(jīng)網(wǎng)絡(luò)模型。該模型包括主干網(wǎng)絡(luò)、頭部網(wǎng)絡(luò)和頸部網(wǎng)絡(luò),可應(yīng)對不同劃痕的識別需求?!窘Y(jié)果】在模型訓(xùn)練完成后,F(xiàn)1曲線在0.3~0.5達(dá)到最優(yōu),表明該模型在處理各種劃痕時(shí)具有良好的泛化能力。通過PR曲線分析,當(dāng)精確率為0.65、召回率為0.8時(shí),該模型的預(yù)測效果最佳?!窘Y(jié)論】模型優(yōu)化為金屬表面劃痕的自動(dòng)檢測和識別提供了有效的技術(shù)支持,具有實(shí)際應(yīng)用價(jià)值。
關(guān)鍵詞:金屬表面劃痕;目標(biāo)檢測;YOLO算法;數(shù)據(jù)集
中圖分類號:TP391.41" " "文獻(xiàn)標(biāo)志碼:A" " 文章編號:1003-5168(2024)22-0021-06
DOI:10.19968/j.cnki.hnkj.1003-5168.2024.22.005
Research on Recognition Method of Scratch on Surface Based on
Convolution Neural Network
Abstract: [Purposes] In view of the fact that the traditional manual visual inspection method cannot meet the needs of fast, accurate and automatic scratch detection on metal surfaces.Therefore, based on the construction of data sets and the convolutional neural network models, a method for scratch recognition of complex shape surfaces is proposed. [Methods] First, a data set of metal surface scratches was created; then, a convolutional neural network model based on Yolov8n is designed and trained. The model includes backbone network, head network and neck network, which can meet the recognition requirements of different scratches. [Findings] After the training of the model, the F 1 curve was optimal in the interval of 0.3~0.5, which indicated that the model had good generalization ability in dealing with various scratches. Through the analysis of PR curve, when the accuracy rate is 0.65, and the recall rate is 0.8, the prediction effect of the model is the best. [Conclusions] The model optimization provides effective technical support for the automatic detection and recognition of metal surface scratches, and has practical application value.
Keywords: metal surface scratch; target detection; YOLO algorithm; dataset
0 引言
隨著工業(yè)進(jìn)步,對產(chǎn)品質(zhì)量要求也不斷提高,傳統(tǒng)的人工目測方法已無法滿足對金屬表面劃痕進(jìn)行快速、準(zhǔn)確和自動(dòng)化檢測的需求。因此,需要聚焦基于深度神經(jīng)網(wǎng)絡(luò)的表面缺陷檢測算法優(yōu)化,以實(shí)現(xiàn)魯棒、精確和實(shí)時(shí)的識別[1]。在計(jì)算機(jī)視覺領(lǐng)域,特別是目標(biāo)檢測技術(shù),經(jīng)歷了從傳統(tǒng)算法到基于CNN的深度學(xué)習(xí)模型的發(fā)展過程[2-5]。國內(nèi)的一些研究,如華為的ATSS、中科大的RepPoint、清華大學(xué)的CornerNet等均在不同數(shù)據(jù)集上取得了優(yōu)異性能,并在實(shí)際應(yīng)用中得到廣泛應(yīng)用。國外的研究同樣在深度學(xué)習(xí)在目標(biāo)檢測領(lǐng)域表現(xiàn)出強(qiáng)大的潛力,如Faster R-CNN、YOLO和SSD等算法的成功應(yīng)用[6]。然而,上述算法在實(shí)際應(yīng)用中仍面臨著諸多問題,如信息損失、運(yùn)動(dòng)、遮擋和光照變化及對實(shí)時(shí)識別的高要求等,依然需要科研人員不斷探索和優(yōu)化[7-10]。因此,本研究期望探索出一種對金屬表面缺陷檢測高效、準(zhǔn)確且實(shí)時(shí)的識別方法,推動(dòng)相關(guān)技術(shù)在工業(yè)生產(chǎn)中的應(yīng)用[11]。首先,對金屬表面劃痕數(shù)據(jù)集的預(yù)處理,利用標(biāo)注來滿足訓(xùn)練需求;其次,建立適合的卷積神經(jīng)網(wǎng)絡(luò)模型,利用標(biāo)注數(shù)據(jù)進(jìn)行模型訓(xùn)練,通過迭代優(yōu)化,以滿足實(shí)際應(yīng)用對金屬表面劃痕識別的高精度要求。
1 劃痕數(shù)據(jù)集制作
1.1 金屬表面劃痕分析
金屬表面劃痕是金屬加工工藝中常見的缺陷,這是金屬表面與硬質(zhì)突起、粗糙表面或顆粒材質(zhì)的接觸部位而產(chǎn)生的壓痕或刻痕。這些痕跡是由金屬與不平整表面間的摩擦造成的,摩擦程度的不同,導(dǎo)致痕跡的大小各異,可歸納為以下9種典型情況,如圖1所示。
1.2 目標(biāo)檢測數(shù)據(jù)集規(guī)范
數(shù)據(jù)集注釋是機(jī)器學(xué)習(xí)模型理解和學(xué)習(xí)數(shù)據(jù)內(nèi)容的關(guān)鍵工具。以下是這些注釋格式的特點(diǎn)概述。
①XML格式:采用標(biāo)簽結(jié)構(gòu),適用于描述復(fù)雜數(shù)據(jù)結(jié)構(gòu),可自定義標(biāo)簽,但可能需要額外的解析器處理。其適用于大型項(xiàng)目,如大規(guī)模圖像或文本數(shù)據(jù)集,能全面展示上下文和內(nèi)容。
②JSON:鍵值對結(jié)構(gòu)簡潔明了,易于閱讀和編寫,常用于小型數(shù)據(jù)集的交換和Web服務(wù)。其靈活性允許動(dòng)態(tài)添加或修改,但不適用于描述復(fù)雜結(jié)構(gòu)化數(shù)據(jù)。
③YOLO:專為目標(biāo)檢測模型設(shè)計(jì),包含對象坐標(biāo)、類別和置信度等信息,并與圖像一一對應(yīng)。其適用于實(shí)時(shí)檢測任務(wù),但不適用于描述整個(gè)數(shù)據(jù)集的全貌。
④SSD:與YOLO類似,提供邊界框坐標(biāo)、類別和得分等信息,適用于訓(xùn)練SSD模型,但不能直接作為數(shù)據(jù)集本身。
綜上所述,這些注釋格式主要用于標(biāo)注數(shù)據(jù)集,側(cè)重于數(shù)據(jù)結(jié)構(gòu)、內(nèi)容和模型訓(xùn)練所需的細(xì)節(jié)。在實(shí)際應(yīng)用中,應(yīng)用哪種注釋格式則取決于數(shù)據(jù)集的規(guī)模、復(fù)雜性和具體應(yīng)用場景的需求。
1.3 金屬表面劃痕數(shù)據(jù)集的樣本獲取
數(shù)據(jù)集的獲取方法包括拍攝、網(wǎng)絡(luò)爬蟲、網(wǎng)上下載開源數(shù)據(jù)集。首先,利用數(shù)碼設(shè)備從多角度拍攝目標(biāo)樣本,確保樣本的多樣性和數(shù)量。其次,從網(wǎng)絡(luò)上下載圖片,并存儲在自定義目錄中。再次,需要人工進(jìn)行篩選這些可能包含不準(zhǔn)確或無關(guān)內(nèi)容的圖片,去除冗余圖片,這需要投入大量時(shí)間和精力。最后,利用已有的開源數(shù)據(jù)集(格式統(tǒng)一,適合直接用于圖像分類任務(wù))尋找樣本,如在Kaggle等平臺中尋找合適樣本。如果原始數(shù)據(jù)集數(shù)量或質(zhì)量不滿足需求,可利用數(shù)據(jù)增強(qiáng)技術(shù)生成額外樣本,如用簡單的幾何變換(平移、旋轉(zhuǎn)、對稱、縮放和裁剪)來擴(kuò)充數(shù)據(jù)集。
1.4 金屬表面劃痕數(shù)據(jù)集標(biāo)注
計(jì)算機(jī)的目標(biāo)檢測過程需要對收集到的數(shù)據(jù)進(jìn)行二次預(yù)處理,即對每個(gè)圖像進(jìn)行標(biāo)注,并明確其特征。這需要對所有數(shù)據(jù)樣本進(jìn)行詳細(xì)的標(biāo)記,目標(biāo)檢測數(shù)據(jù)集的構(gòu)建由此得以完成。常用的標(biāo)注工具有LabelImg和LabelMe。LabelImg的用戶界面如圖2所示,可提供直觀的操作界面,以方便用戶進(jìn)行標(biāo)注。
如果在View選項(xiàng)中啟用了“Auto save mode”,系統(tǒng)會自動(dòng)保存數(shù)據(jù),并創(chuàng)建兩個(gè)文件夾,分別為Annotations和Imagesets,且所有樣本數(shù)據(jù)都將被保存在Imagesets中。首先,打開圖片文件夾,對金屬表面劃痕圖片進(jìn)行樣本標(biāo)注(見圖2)。其次,在標(biāo)注過程中,將圖片以XML格式進(jìn)行轉(zhuǎn)換,所有標(biāo)注后的XML文件會被統(tǒng)一保存在Annotations文件夾中。每個(gè)金屬表面劃痕圖片樣本都會對應(yīng)一個(gè)XML標(biāo)注文件。最后,當(dāng)所有數(shù)據(jù)樣本通過LabelImg完成標(biāo)注后,就構(gòu)建好了目標(biāo)檢測所需的數(shù)據(jù)集。
2 金屬表面劃痕卷積神經(jīng)網(wǎng)絡(luò)模型搭建
搭建的Yolov8n模型結(jié)構(gòu)總共有22層,按照最左側(cè)列的配置排列。這個(gè)模型由三個(gè)關(guān)鍵部分組成,即主干網(wǎng)絡(luò)(Backbone)、頭部網(wǎng)絡(luò)(Head)和頸部網(wǎng)絡(luò)(Neck)。Backbone部分被劃分為四個(gè)功能區(qū)塊,分別為Conv + Conv + C2f、Conv + C2f、Conv + C2f、Conv + C2f + SPPF,主干網(wǎng)絡(luò)用于提取圖像的低級特征,通常輸出的是具有較高空間分辨率的特征圖,主干網(wǎng)絡(luò)通常會通過下采樣或金字塔結(jié)構(gòu)來生成不同尺寸的特征層;頭部網(wǎng)絡(luò)是YOLO的核心部分,包含多個(gè)預(yù)測區(qū)域,用于預(yù)測不同類別的對象,通過計(jì)算來確定預(yù)測目標(biāo)的類別和位置;頸部網(wǎng)絡(luò)(Neck)用于整合來自主干網(wǎng)絡(luò)的不同尺度的特征,通過ROI Pooling或Fusion layers來提高檢測的準(zhǔn)確性。
3 金屬表面劃痕卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練
訓(xùn)練集和驗(yàn)證集各640個(gè),模型的訓(xùn)練次數(shù)為100次。模型訓(xùn)練中的目標(biāo)檢測有3種loss,即有3個(gè)不同類型的損失函數(shù),分別為box_loss(邊框損失)、cls_loss(分類損失)、dfl_loss(自由形變損失)。每次模型訓(xùn)練時(shí)都會有額外的四個(gè)值,分別為box(P、R、mAP50、mAP50-95)。其中,P代表精確度(Precision),即正確樣本在模型訓(xùn)練中預(yù)測的正的值;R代表召回率(Recall),即正確樣本在模型訓(xùn)練中真正的正的值。公式(1)所示的mAP代表著平均精確度(Mean Average Precision)、mAP50表示在50%的loU閾值下的平均精確度、mAP50-95表示在50%~95%的loU閾值下的平均精確度。
式中:AP為精確度;n為標(biāo)簽類別號。
訓(xùn)練完成后,在設(shè)定的訓(xùn)練結(jié)果路徑中產(chǎn)生結(jié)果。該文件夾中包含訓(xùn)練結(jié)果和模型數(shù)據(jù),包含weights、args.yaml、混淆矩陣、F1曲線、result.png、單一類準(zhǔn)確率、單一類找回率、準(zhǔn)確率和召回率的關(guān)系、損失函數(shù)、標(biāo)簽坐標(biāo)關(guān)系和驗(yàn)證機(jī)對標(biāo)簽的驗(yàn)證圖。
損失函數(shù)包括box_loss、cls_loss、dfl_loss、precision、recall和mAP等,模型經(jīng)過多次訓(xùn)練后的數(shù)值變化(真實(shí)值和預(yù)測值的差異變化)如圖3所示。在訓(xùn)練100次后,在“Anaconda prompt”命令中訓(xùn)練的所有損失從0到100的數(shù)據(jù)變化為坐標(biāo)圖。
4 結(jié)果分析
F1曲線是在計(jì)算機(jī)視覺中的目標(biāo)檢測召回率與精確率的調(diào)和的平均函數(shù)。此外,F(xiàn)1曲線坐標(biāo)是從0到1之間選取。其中,數(shù)字越接近“1”,代表模型的訓(xùn)練效果越好越佳;數(shù)字越接近“0”,代表模型訓(xùn)練效果越差效率越低。可通過調(diào)整置信度區(qū)間來改變F1的值。F1值的計(jì)算見式(2)。
式中:TP為被模型預(yù)測為正類的正樣本;FN為被模型預(yù)測為負(fù)類的正樣本;FP為被模型預(yù)測為正類的負(fù)樣本。
訓(xùn)練完成后,F(xiàn)1曲線如圖4所示。在模型訓(xùn)練完成后,F(xiàn)1曲線的置信度區(qū)間為0.3~0.5時(shí),每一種金屬表面劃痕的曲線圖皆為最高處附近,模型效率最高。
精確置信度曲線被稱為P_curve圖,如圖5所示;召回置信度曲線被稱為R_curve圖,如圖6所示。模型訓(xùn)練完后,在目標(biāo)文件夾中產(chǎn)生了三個(gè)相關(guān)文件,分別為P_curve.png、R_curve.png和PR_curve.png,PR_curve.png便是精確置信度和召回置信度的關(guān)系。
在精確和召回置信度關(guān)系圖中,X軸坐標(biāo)為召回率,Y軸坐標(biāo)為精確率,精確率和召回率通常為反比。在PR_curve圖中所示,越靠近右上角,說明計(jì)算機(jī)視覺目標(biāo)檢測的模型預(yù)測結(jié)果越準(zhǔn)確。例如,在“punching_hole”這一種金屬表面劃痕時(shí),當(dāng)精確率為0.65左右、召回率為0.8左右時(shí),模型訓(xùn)練預(yù)測最為精準(zhǔn);在“inclusion”這一種金屬表面劃痕時(shí),當(dāng)精確率為0.2左右、召回率為0.2左右時(shí),模型訓(xùn)練預(yù)測最為精準(zhǔn)。
5 結(jié)語
本研究圍繞金屬表面劃痕檢測的數(shù)據(jù)集和模型構(gòu)建進(jìn)行深入探討,旨在優(yōu)化模型性能,提高檢測準(zhǔn)確性。主要工作如下。
①劃痕數(shù)據(jù)集制作,包括劃痕分析、數(shù)據(jù)集規(guī)范總結(jié)、樣本獲取和標(biāo)注介紹。
②構(gòu)建基于卷積神經(jīng)網(wǎng)絡(luò)的金屬表面劃痕識別模型,包括22層的Yolov8n模型結(jié)構(gòu)(由Backbone、Head和Neck 3個(gè)部分組成)。
③通過訓(xùn)練金屬表面劃痕卷積神經(jīng)網(wǎng)絡(luò)模型時(shí),當(dāng)精確率為0.65左右、召回率為0.8左右時(shí),模型訓(xùn)練預(yù)測最為精準(zhǔn)。
參考文獻(xiàn):
[1]張松蘭.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別綜述[J].西安航空學(xué)院學(xué)報(bào),2023,41(1):74-81.
[2]韓毅,郭圓輝,王旭彬.基于卷積神經(jīng)網(wǎng)絡(luò)的智能抓取系統(tǒng)研究[J].河南科技,2021,40(35):17-20.
[3]于秋玉.基于改進(jìn)YOLOv4的蝦苗智能識別算法研究[J].河南科技,2021,40(6):25-28.
[4]田錦,袁家政,劉宏哲.基于實(shí)例分割的車道線檢測及自適應(yīng)擬合算法[J]. 計(jì)算機(jī)應(yīng)用,2020,40(7):1932-1937.
[5]董伊明.基于分布式卷積神經(jīng)網(wǎng)絡(luò)的車型識別算法研究[J].河南科技,2019(20):28-31.
[6]封雨鑫,鄧宏貴,程鈺.基于卷積神經(jīng)網(wǎng)絡(luò)的焊縫表面缺陷檢測方法[J].計(jì)算機(jī)測量與控制,2021,29(7):56-60,66.
[7]劉孟軻,吳洋,王遜.基于卷積神經(jīng)網(wǎng)絡(luò)的軌道表面缺陷檢測技術(shù)實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2017(29):65-69,77.
[8]孟祥澤.基于深度卷積神經(jīng)網(wǎng)絡(luò)的圖像目標(biāo)檢測算法現(xiàn)狀研究綜述[J].數(shù)字技術(shù)與應(yīng)用,2021,39(1):112-116.
[9]蘇志威,黃子涵,邱發(fā)生,等.基于改進(jìn)YOLOv8的航空鋁合金焊縫缺陷檢測方法[J].航空動(dòng)力學(xué)報(bào),2024,39(6):121-129.
[10]Zhao W D,Chen F,Huang H C,et al.A new steel defect detection algorithm based on deep learning[J].Computational Intelligence and Neuroscience,2021,2021(10):1-13.
[11]Zhang Y P,Shen S J,Xu S.Strip steel surface defect detection based on lightweight YOLOv5[J].Front Neurorobot,2023,17:1263739.