基于深度學習的鋼鐵缺陷檢測系統(含UI界面,Python代碼,數據集、yolov8)

請添加圖片描述在這里插入圖片描述

項目介紹

項目中所用到的算法模型和數據集等信息如下:

算法模型:
? ? yolov8

? ? yolov8主要包含以下幾種創新:
? ? ? ? 1. 添加注意力機制(SECBAM等)
? ? ? ? 2. 修改可變形卷積(DySnake-主干c3替換、DySnake-所有c3替換)

數據集:
? ? 東北大學(NEU)表面缺陷數據集

以上是本套代碼的整體算法架構和對目標檢測模型的修改說明,這些模型修改可以為您的 畢設、作業等提供創新點和增強模型性能的功能

如果要是需要更換其他的檢測模型,請私信。

注:本項目提供所用到的所有資源,包含 環境安裝包、訓練代碼、測試代碼、數據集、視頻文件、 界面UI文件等。

如果需要yolov5版本的系統,見此鏈接:https://blog.csdn.net/qq_28949847/article/details/134492438


項目簡介

本文將詳細介紹如何使用深度學習中的YOLOv8算法實現對鋼材表面缺陷的檢測,并利用PyQt5設計了簡約的系統UI界面。在界面中,您可以選擇自己的視頻文件、圖片文件進行檢測。此外,您還可以更換自己訓練的yolov8模型,進行自己數據的檢測。

該系統界面優美,檢測精度高,功能強大。它具備多目標實時檢測,同時可以自由選擇感興趣的檢測目標。

本博文提供了完整的Python程序代碼和使用教程,適合新入門的朋友參考。您可以在文末的下載鏈接中獲取完整的代碼資源文件。以下是本博文的目錄:

目錄

  • 項目介紹
  • 項目簡介
  • 效果展示:
  • 🌟一、環境安裝
  • 🌟二、數據集介紹
  • 🌟三、 目標檢測介紹
    • yolov8相關介紹
  • 四、 yolov8訓練步驟
    • 五、 yolov8評估步驟
    • 六、 訓練結果
  • 🌟下載鏈接

效果展示:

功能:
1. 支持單張圖片識別
2. 支持遍歷文件夾識別
3. 支持識別視頻文件
4. 支持結果導出(xls、csv兩種格式)
5. 支持切換檢測到的目標

鋼鐵表面缺陷檢測系統


🌟一、環境安裝

本項目提供所有需要的環境安裝包(python、pycharm、cuda、torch等),可以直接按照視頻講解進行安裝。具體的安裝流程見此視頻:視頻鏈接
環境安裝視頻是以車牌項目為例進行講解的,但是可以適用于任何項目。

視頻快進到 3:18 - 21:17,這段時間講解的是環境安裝,可直接快進到此處觀看。
在這里插入圖片描述

環境安裝包可通過百度網盤下載:
鏈接:https://pan.baidu.com/s/17SZHeVZrpXsi513D-6KmQw?pwd=a0gi
提取碼:a0gi
–來自百度網盤超級會員V6的分享


🌟二、數據集介紹

東北大學(NEU)表面缺陷數據集,收集了熱軋帶鋼6種典型的表面缺陷,即軋內垢(RS)、斑塊(Pa)、裂紋(Cr)、點蝕面(PS)、夾雜物(In)和劃痕(Sc)。該數據庫包括1800張灰度圖像:6種不同類型的典型表面缺陷各300個樣本。

下圖為6種典型表面缺陷的樣本圖像,每張圖像的原始分辨率為200×200像素。從圖中,我們可以清楚地觀察到類內缺陷在外觀上存在較大差異,例如劃痕(最后一列)可能是水平劃痕、垂直劃痕和傾斜劃痕等。與此同時,類間缺陷也具有相似的特征,如滾積垢、裂紋和坑狀表面。此外,由于光照和材料變化的影響,類內缺陷圖像的灰度會發生變化。總之,NEU表面缺陷數據庫包含兩個難題,即類內缺陷存在較大外觀差異,類間缺陷具有相似方面,缺陷圖像受到光照和材料變化的影響。
在這里插入圖片描述


🌟三、 目標檢測介紹

yolov8相關介紹

YOLOv8 是一個 SOTA 模型,它建立在以前 YOLO 版本的成功基礎上,并引入了新的功能和改進,以進一步提升性能和靈活性。具體創新包括一個新的骨干網絡、一個新的 Ancher-Free 檢測頭和一個新的損失函數,可以在從 CPU 到 GPU 的各種硬件平臺上運行。

不過 ultralytics 并沒有直接將開源庫命名為 YOLOv8,而是直接使用 ultralytics 這個詞,原因是 ultralytics 將這個庫定位為算法框架,而非某一個特定算法,一個主要特點是可擴展性。其希望這個庫不僅僅能夠用于 YOLO 系列模型,而是能夠支持非 YOLO 模型以及分類分割姿態估計等各類任務。
總而言之,ultralytics 開源庫的兩個主要優點是:

  • 融合眾多當前 SOTA 技術于一體

  • 未來將支持其他 YOLO 系列以及 YOLO 之外的更多算法

在這里插入圖片描述

網絡結構如下:
在這里插入圖片描述


四、 yolov8訓練步驟

此代碼的訓練步驟極其簡單,不需要修改代碼,直接通過cmd就可以命令運行,命令都已寫好,直接復制即可,命令如下圖:
在這里插入圖片描述
下面這條命令是 訓練 添加 CBAM 注意力機制的命令,復制下來,直接就可以運行,看到訓練效果。

python ./train.py --epochs 500 --cfg models/yolov5s-CBAM-2.yaml --hyp data/hyps/hyp.scratch-low.yaml --data data/coco_NEU-DET.yaml --weight weights/yolov5s.pt --workers 4 --batch 16

執行完上述命令后,即可完成訓練,訓練過程如下:
在這里插入圖片描述

下面是對命令中各個參數的詳細解釋說明:

  • python: 這是Python解釋器的命令行執行器,用于執行后續的Python腳本。

  • ./train.py: 這是要執行的Python腳本文件的路徑和名稱,它是用于訓練目標檢測模型的腳本。

  • --epochs 500: 這是訓練的總輪數(epochs),指定為500,表示訓練將運行500個輪次。

  • --cfg models/yolov5s-CBAM-2.yaml: 這是YOLOv5模型的配置文件的路徑和名稱,它指定了模型的結構和參數設置。

  • --hyp data/hyps/hyp.scratch-low.yaml: 這是超參數文件的路徑和名稱,它包含了訓練過程中的各種超參數設置,如學習率、權重衰減等。

  • --data data/coco_NEU-DET.yaml: 這是數據集的配置文件的路徑和名稱,它指定了訓練數據集的相關信息,如類別標簽、圖像路徑等。

  • --weight weights/yolov5s.pt: 這是預訓練權重文件的路徑和名稱,用于加載已經訓練好的模型權重以便繼續訓練或進行遷移學習。

  • --workers 4: 這是用于數據加載的工作進程數,指定為4,表示使用4個工作進程來加速數據加載。

  • --batch 16: 這是每個批次的樣本數,指定為16,表示每個訓練批次將包含16個樣本。

通過運行上面這個命令,您將使用YOLOv5模型對目標檢測任務進行訓練,訓練500個輪次,使用指定的配置文件、超參數文件、數據集配置文件和預訓練權重。同時,使用4個工作進程來加速數據加載,并且每個訓練批次包含16個樣本。


五、 yolov8評估步驟

評估步驟同訓練步驟一樣,執行1行語句即可,注意--weights需要變為自己想要測試的模型路徑。

python ./val.py --data  data/coco_NEU-DET.yaml --weights ../weights/yolov5s.yaml/weights/best.pt

評估結果如下:
在這里插入圖片描述


六、 訓練結果

我們每次訓練后,會在 run/train 文件夾下出現一系列的文件,如下圖所示:
在這里插入圖片描述


🌟下載鏈接

? ?該代碼采用Pycharm+Python3.8開發,經過測試能成功運行,運行界面的主程序為main.py,提供用到的所有程序。為確保程序順利運行,請按照requirements.txt配置Python依賴包的版本。Python版本:3.8,為避免出現運行報錯,請勿使用其他版本,詳見requirements.txt文件;

? ? 若您想獲得博文中涉及的實現完整全部程序文件(包括訓練代碼、測試代碼、訓練數據、測試數據、視頻,py、 UI文件等,如下圖),這里已打包上傳至博主的面包多平臺,可通過下方項目講解鏈接中的視頻簡介部分下載,完整文件截圖如下:
在這里插入圖片描述

項目演示講解鏈接:B站

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207758.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【改進YOLOv8】融合可變形大核注意力D-LKA-Attention的油氣管道設備泄露檢測系統

1.研究背景與意義 項目參考AAAI Association for the Advancement of Artificial Intelligence 研究背景與意義 隨著油氣管道設備的廣泛應用,油氣泄露問題已經成為一個嚴重的環境和安全隱患。油氣泄露不僅會造成環境污染,還可能引發火災、爆炸等嚴重事…

掌握vue中國際化使用及配置

文章目錄 🍁i18n組件安裝🍁項目中配置 vue-i18n🍁編寫語言包🍁國際化的使用 隨著互聯網的普及和全球化的發展,開發國際化的應用程序已經成為一種趨勢。因此,將 VUE 應用程序國際化是非常有必要的。 以下是…

新時代商業旨意:傳統商家如何變革?

隨著新時代的到來,商業環境也在不斷變化。在這個信息爆炸、消費者需求日益復雜化的時代,商業旨意已經不再僅僅是追求利潤,而是轉向了以客戶為中心,追求價值共創、社會責任等多元化的目標。傳統商家面臨著諸多挑戰,如何…

2023四川大學“騰訊杯”新生賽(同步賽)糖果(鴿巢原理)

這個數據范圍, n 是 1 e 6 , a i 也是 1 e 6 n是1e6,a_i也是1e6 n是1e6,ai?也是1e6,任意 a i a j ∈ [ 0 , 2 e 6 ] a_ia_j \in [0, 2e6] ai?aj?∈[0,2e6],所以如果有答案我們最多枚舉 2 e 6 2e6 2e6個數就可以找到…

視頻剪輯高手揭秘:如何批量減少時長并調整播放速度,提升視頻效果

隨著社交媒體的興起,視頻制作的需求越來越大。然而往往視頻文件存在一些問題,例如時長過長,或者要調整播放速度以更好地傳達信息。這些問題不僅影響了視頻的觀看體驗,也可能導致視頻難以在社交媒體上獲得廣泛的傳播。那么&#xf…

Android Canvas 改變背景顏色

我有一個有兩個 View 的應用 <com.myexample.ui.view.BackgroundView android:id"id/id_draw_canvas_classroom" android:layout_width"fill_parent" android:layout_height"fill_parent" android:layout_marginBottom"3dp" andro…

[EFI]Atermiter X99 Turbo D4 E5-2630v3電腦 Hackintosh 黑蘋果efi引導文件

硬件型號驅動情況主板 Atermiter X99 Turbo D4 處理器 Intel Xeon E5-2630v3 已驅動內存Desktop DDR4 2666 MHz已驅動硬盤Netac NV7000已驅動顯卡AMD Radeon RX 5700xt已驅動聲卡瑞昱 英特爾 High Definition Audio 控制器ALC897已驅動網卡LucyRTL8125已驅動無線網卡藍牙Broad…

基于Java個人作品管理系統

基于Java個人作品管理系統 功能需求 1、作品上傳&#xff1a;系統允許用戶上傳各種類型的作品&#xff0c;如文字、圖片、音頻、視頻等。上傳過程應簡單明了&#xff0c;支持批量上傳。 2、作品分類&#xff1a;系統需要提供作品分類功能&#xff0c;用戶可以根據自己的需求…

CNN,DNN,RNN,GAN,RL+圖像處理常規算法(未完待續)

好的&#xff0c;讓我們先介紹一些常見的神經網絡模型&#xff0c;然后再討論圖像處理的常規算法。 神經網絡模型&#xff1a; 1. CNN&#xff08;卷積神經網絡&#xff09; 原理&#xff1a; CNN主要用于處理圖像數據。它包含卷積層、池化層和全連接層。卷積層通過卷積操作…

文件夾重命名:提升工作效率,使用關鍵詞替換法重命名文件夾

在日常生活和工作中&#xff0c;經常要處理大量的文件夾和文件。有時候&#xff0c;為了更好地管理和查找文件&#xff0c;要給文件夾重新命名。但是&#xff0c;重命名文件夾并不是一件容易的事情&#xff0c;尤其是當文件夾數量眾多時。一個一個修改耗費極大的時間和精力&…

《C++新經典設計模式》之第19章 職責鏈模式

《C新經典設計模式》之第19章 職責鏈模式 職責鏈模式.cpp 職責鏈模式.cpp #include <iostream> #include <memory> #include <string> using namespace std;// 請求傳遞給鏈中的若干對象&#xff0c;哪個對象適合處理就自行處理 // 使多個對象都有機會處理請…

后端返回base64文件前端如何下載

1.后端返回base64格式文件 2.前端代碼 <style lang"less" scoped> import "./style/common.less";.table-div-a {color: #409EFF;text-decoration: underline;cursor: pointer; } </style><template><div class"template-con…

一文搞懂什么是Hadoop

Hadoop概念 什么是Hadoop Hadoop是一個由Apache基金會所開發的用于解決海量數據的存儲及分析計算問題的分布式系統基礎架構。 廣義上來說&#xff0c;Hadoop通常指一個跟廣泛的概念——Hadoop生態圈。 以下是hadoop生態圈中的技術&#xff1a; Hadoop優勢 hadoop組成 HDFS…

一個不錯的文章偽原創系統程序源碼

一款文章偽原創系統程序源碼免費分享&#xff0c;程序是站長原創的。 一共花了站長幾天時間寫的這個文章偽原創平臺&#xff0c;程序無需數據庫。 程序前端采用BootStrap框架搭建&#xff0c;后端采用PHP原生書寫。 前端偽原創采用Ajax無刷新提交&#xff0c;Ajax轉換到詞庫…

TCPUDP使用場景討論

將鏈路從TCP改為UDP會對通信鏈路產生以下影響和注意事項&#xff1a; 可靠性&#xff1a;UDP是無連接的協議&#xff0c;與TCP相比&#xff0c;它不提供可靠性保證和重傳機制。因此&#xff0c;當將鏈路從TCP改為UDP時&#xff0c;通信的可靠性會降低。如果在通信過程中丟失了U…

【爬取二手車并將數據保存在數據庫中】

爬取二手車并將數據保存在數據庫中 查看網頁結構分析爬取步驟解密加密信息將密文解密代碼&#xff1a; 進行爬取&#xff1a;爬取函數寫入解密文件函數和獲取城市函數解密文件&#xff0c;返回正確字符串函數保存到數據庫 運行結果 查看網頁結構分析爬取步驟 可以看出網頁使用…

C 語言 變量

變量初始值 全局變量&#xff1a;初始值是 0 局部變量&#xff1a;初始值是 隨機的 類型限定符 通常不需要顯式使用 register 關鍵字來優化變量的存儲和訪問。 關鍵字 _Complex和_Imaginary分別用于表示復數和虛數&#xff08;二者皆是數學概念&#xff09; 變量的聲明和定義 c…

蘋果 macOS 14.1.2 正式發布 更新了哪些內容?

蘋果今日向 Mac 電腦用戶推送了 macOS 14.1.2 更新&#xff08;內部版本號&#xff1a;23B92 | 23B2091&#xff09;&#xff0c;本次更新距離上次發布隔了 28 天。 需要注意的是&#xff0c;因蘋果各區域節點服務器配置緩存問題&#xff0c;可能有些地方探測到升級更新的時間略…

webWorker解決單線程中的一些小問題和性能優化

背景 js是單線程這是大家都知道&#xff0c;為了防止多個線程同時操作DOM&#xff0c;這個導致一個復雜的同步問題。比如&#xff0c;假定JavaScript同時有兩個線程&#xff0c;一個線程在某個DOM節點上添加內容&#xff0c;另一個線程刪除了這個節點&#xff0c;這時瀏覽器應…

全局平均池化的示例

1.對一個3通道&#xff0c;5*5的矩陣&#xff0c;進行全局平均池化 每個矩陣的大小都是 5x5&#xff0c;假設這些矩陣代表一幅圖像的三個不同通道。為簡單起見&#xff0c;我們將這三個矩陣分別稱為 A、B 和 C。合成圖像將是一個三通道圖像&#xff0c;每個通道由其中一個矩陣…