







摘 要:【目的】傳統的人工目測方法已無法滿足對金屬表面劃痕進行快速、準確和自動化檢測的需求。因此,基于數據集的構建和卷積神經網絡模型的搭建,提出了復雜形狀表面劃痕識別的方法。【方法】首先,創建金屬表面劃痕的數據集。其次,設計并訓練一個基于Yolov8n的卷積神經網絡模型。該模型包括主干網絡、頭部網絡和頸部網絡,可應對不同劃痕的識別需求。【結果】在模型訓練完成后,F1曲線在0.3~0.5達到最優,表明該模型在處理各種劃痕時具有良好的泛化能力。通過PR曲線分析,當精確率為0.65、召回率為0.8時,該模型的預測效果最佳。【結論】模型優化為金屬表面劃痕的自動檢測和識別提供了有效的技術支持,具有實際應用價值。
關鍵詞:金屬表面劃痕;目標檢測;YOLO算法;數據集
中圖分類號:TP391.41" " "文獻標志碼: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 引言
隨著工業進步,對產品質量要求也不斷提高,傳統的人工目測方法已無法滿足對金屬表面劃痕進行快速、準確和自動化檢測的需求。因此,需要聚焦基于深度神經網絡的表面缺陷檢測算法優化,以實現魯棒、精確和實時的識別[1]。在計算機視覺領域,特別是目標檢測技術,經歷了從傳統算法到基于CNN的深度學習模型的發展過程[2-5]。國內的一些研究,如華為的ATSS、中科大的RepPoint、清華大學的CornerNet等均在不同數據集上取得了優異性能,并在實際應用中得到廣泛應用。國外的研究同樣在深度學習在目標檢測領域表現出強大的潛力,如Faster R-CNN、YOLO和SSD等算法的成功應用[6]。然而,上述算法在實際應用中仍面臨著諸多問題,如信息損失、運動、遮擋和光照變化及對實時識別的高要求等,依然需要科研人員不斷探索和優化[7-10]。因此,本研究期望探索出一種對金屬表面缺陷檢測高效、準確且實時的識別方法,推動相關技術在工業生產中的應用[11]。首先,對金屬表面劃痕數據集的預處理,利用標注來滿足訓練需求;其次,建立適合的卷積神經網絡模型,利用標注數據進行模型訓練,通過迭代優化,以滿足實際應用對金屬表面劃痕識別的高精度要求。
1 劃痕數據集制作
1.1 金屬表面劃痕分析
金屬表面劃痕是金屬加工工藝中常見的缺陷,這是金屬表面與硬質突起、粗糙表面或顆粒材質的接觸部位而產生的壓痕或刻痕。這些痕跡是由金屬與不平整表面間的摩擦造成的,摩擦程度的不同,導致痕跡的大小各異,可歸納為以下9種典型情況,如圖1所示。
1.2 目標檢測數據集規范
數據集注釋是機器學習模型理解和學習數據內容的關鍵工具。以下是這些注釋格式的特點概述。
①XML格式:采用標簽結構,適用于描述復雜數據結構,可自定義標簽,但可能需要額外的解析器處理。其適用于大型項目,如大規模圖像或文本數據集,能全面展示上下文和內容。
②JSON:鍵值對結構簡潔明了,易于閱讀和編寫,常用于小型數據集的交換和Web服務。其靈活性允許動態添加或修改,但不適用于描述復雜結構化數據。
③YOLO:專為目標檢測模型設計,包含對象坐標、類別和置信度等信息,并與圖像一一對應。其適用于實時檢測任務,但不適用于描述整個數據集的全貌。
④SSD:與YOLO類似,提供邊界框坐標、類別和得分等信息,適用于訓練SSD模型,但不能直接作為數據集本身。
綜上所述,這些注釋格式主要用于標注數據集,側重于數據結構、內容和模型訓練所需的細節。在實際應用中,應用哪種注釋格式則取決于數據集的規模、復雜性和具體應用場景的需求。
1.3 金屬表面劃痕數據集的樣本獲取
數據集的獲取方法包括拍攝、網絡爬蟲、網上下載開源數據集。首先,利用數碼設備從多角度拍攝目標樣本,確保樣本的多樣性和數量。其次,從網絡上下載圖片,并存儲在自定義目錄中。再次,需要人工進行篩選這些可能包含不準確或無關內容的圖片,去除冗余圖片,這需要投入大量時間和精力。最后,利用已有的開源數據集(格式統一,適合直接用于圖像分類任務)尋找樣本,如在Kaggle等平臺中尋找合適樣本。如果原始數據集數量或質量不滿足需求,可利用數據增強技術生成額外樣本,如用簡單的幾何變換(平移、旋轉、對稱、縮放和裁剪)來擴充數據集。
1.4 金屬表面劃痕數據集標注
計算機的目標檢測過程需要對收集到的數據進行二次預處理,即對每個圖像進行標注,并明確其特征。這需要對所有數據樣本進行詳細的標記,目標檢測數據集的構建由此得以完成。常用的標注工具有LabelImg和LabelMe。LabelImg的用戶界面如圖2所示,可提供直觀的操作界面,以方便用戶進行標注。
如果在View選項中啟用了“Auto save mode”,系統會自動保存數據,并創建兩個文件夾,分別為Annotations和Imagesets,且所有樣本數據都將被保存在Imagesets中。首先,打開圖片文件夾,對金屬表面劃痕圖片進行樣本標注(見圖2)。其次,在標注過程中,將圖片以XML格式進行轉換,所有標注后的XML文件會被統一保存在Annotations文件夾中。每個金屬表面劃痕圖片樣本都會對應一個XML標注文件。最后,當所有數據樣本通過LabelImg完成標注后,就構建好了目標檢測所需的數據集。
2 金屬表面劃痕卷積神經網絡模型搭建
搭建的Yolov8n模型結構總共有22層,按照最左側列的配置排列。這個模型由三個關鍵部分組成,即主干網絡(Backbone)、頭部網絡(Head)和頸部網絡(Neck)。Backbone部分被劃分為四個功能區塊,分別為Conv + Conv + C2f、Conv + C2f、Conv + C2f、Conv + C2f + SPPF,主干網絡用于提取圖像的低級特征,通常輸出的是具有較高空間分辨率的特征圖,主干網絡通常會通過下采樣或金字塔結構來生成不同尺寸的特征層;頭部網絡是YOLO的核心部分,包含多個預測區域,用于預測不同類別的對象,通過計算來確定預測目標的類別和位置;頸部網絡(Neck)用于整合來自主干網絡的不同尺度的特征,通過ROI Pooling或Fusion layers來提高檢測的準確性。
3 金屬表面劃痕卷積神經網絡模型訓練
訓練集和驗證集各640個,模型的訓練次數為100次。模型訓練中的目標檢測有3種loss,即有3個不同類型的損失函數,分別為box_loss(邊框損失)、cls_loss(分類損失)、dfl_loss(自由形變損失)。每次模型訓練時都會有額外的四個值,分別為box(P、R、mAP50、mAP50-95)。其中,P代表精確度(Precision),即正確樣本在模型訓練中預測的正的值;R代表召回率(Recall),即正確樣本在模型訓練中真正的正的值。公式(1)所示的mAP代表著平均精確度(Mean Average Precision)、mAP50表示在50%的loU閾值下的平均精確度、mAP50-95表示在50%~95%的loU閾值下的平均精確度。
式中:AP為精確度;n為標簽類別號。
訓練完成后,在設定的訓練結果路徑中產生結果。該文件夾中包含訓練結果和模型數據,包含weights、args.yaml、混淆矩陣、F1曲線、result.png、單一類準確率、單一類找回率、準確率和召回率的關系、損失函數、標簽坐標關系和驗證機對標簽的驗證圖。
損失函數包括box_loss、cls_loss、dfl_loss、precision、recall和mAP等,模型經過多次訓練后的數值變化(真實值和預測值的差異變化)如圖3所示。在訓練100次后,在“Anaconda prompt”命令中訓練的所有損失從0到100的數據變化為坐標圖。
4 結果分析
F1曲線是在計算機視覺中的目標檢測召回率與精確率的調和的平均函數。此外,F1曲線坐標是從0到1之間選取。其中,數字越接近“1”,代表模型的訓練效果越好越佳;數字越接近“0”,代表模型訓練效果越差效率越低。可通過調整置信度區間來改變F1的值。F1值的計算見式(2)。
式中:TP為被模型預測為正類的正樣本;FN為被模型預測為負類的正樣本;FP為被模型預測為正類的負樣本。
訓練完成后,F1曲線如圖4所示。在模型訓練完成后,F1曲線的置信度區間為0.3~0.5時,每一種金屬表面劃痕的曲線圖皆為最高處附近,模型效率最高。
精確置信度曲線被稱為P_curve圖,如圖5所示;召回置信度曲線被稱為R_curve圖,如圖6所示。模型訓練完后,在目標文件夾中產生了三個相關文件,分別為P_curve.png、R_curve.png和PR_curve.png,PR_curve.png便是精確置信度和召回置信度的關系。
在精確和召回置信度關系圖中,X軸坐標為召回率,Y軸坐標為精確率,精確率和召回率通常為反比。在PR_curve圖中所示,越靠近右上角,說明計算機視覺目標檢測的模型預測結果越準確。例如,在“punching_hole”這一種金屬表面劃痕時,當精確率為0.65左右、召回率為0.8左右時,模型訓練預測最為精準;在“inclusion”這一種金屬表面劃痕時,當精確率為0.2左右、召回率為0.2左右時,模型訓練預測最為精準。
5 結語
本研究圍繞金屬表面劃痕檢測的數據集和模型構建進行深入探討,旨在優化模型性能,提高檢測準確性。主要工作如下。
①劃痕數據集制作,包括劃痕分析、數據集規范總結、樣本獲取和標注介紹。
②構建基于卷積神經網絡的金屬表面劃痕識別模型,包括22層的Yolov8n模型結構(由Backbone、Head和Neck 3個部分組成)。
③通過訓練金屬表面劃痕卷積神經網絡模型時,當精確率為0.65左右、召回率為0.8左右時,模型訓練預測最為精準。
參考文獻:
[1]張松蘭.基于卷積神經網絡的圖像識別綜述[J].西安航空學院學報,2023,41(1):74-81.
[2]韓毅,郭圓輝,王旭彬.基于卷積神經網絡的智能抓取系統研究[J].河南科技,2021,40(35):17-20.
[3]于秋玉.基于改進YOLOv4的蝦苗智能識別算法研究[J].河南科技,2021,40(6):25-28.
[4]田錦,袁家政,劉宏哲.基于實例分割的車道線檢測及自適應擬合算法[J]. 計算機應用,2020,40(7):1932-1937.
[5]董伊明.基于分布式卷積神經網絡的車型識別算法研究[J].河南科技,2019(20):28-31.
[6]封雨鑫,鄧宏貴,程鈺.基于卷積神經網絡的焊縫表面缺陷檢測方法[J].計算機測量與控制,2021,29(7):56-60,66.
[7]劉孟軻,吳洋,王遜.基于卷積神經網絡的軌道表面缺陷檢測技術實現[J].現代計算機(專業版),2017(29):65-69,77.
[8]孟祥澤.基于深度卷積神經網絡的圖像目標檢測算法現狀研究綜述[J].數字技術與應用,2021,39(1):112-116.
[9]蘇志威,黃子涵,邱發生,等.基于改進YOLOv8的航空鋁合金焊縫缺陷檢測方法[J].航空動力學報,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.