項目介紹
項目中所用到的算法模型和數據集等信息如下:
算法模型:
? ? yolov8
? ? yolov8主要包含以下幾種創新:
? ? ? ? 1. 添加注意力機制(SE
、CBAM
等)
? ? ? ? 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站