🛠️ 基於深度學習的YOLO框架實現金屬工業表面缺陷識別|開箱即用系統級項目(源碼+模型+界面)
🧠 項目背景
在現代金屬製造與工業質檢流程中,金屬表面缺陷的及時識別與分級對保障產品質量至關重要。傳統的人工檢測不僅耗時耗力,而且容易受限於人眼疲勞、主觀判斷等問題,導致誤檢漏檢頻發。
本項目採用當前主流的深度學習目標檢測框架 YOLOv8,結合 圖形化界面(PyQt5),打造了一套完整的 金屬表面缺陷識別系統,支持多類缺陷類型檢測,具有 高精度、低延遲、可視化交互友好、部署簡單 等優勢,適用於工業生產線、質檢實驗室等場景。
🔧 核心功能
- ✅ 多類金屬缺陷檢測識別:支持劃痕、裂紋、氧化、麻點、起皮、腐蝕等6類典型金屬缺陷檢測;
- ✅ 基於YOLOv8的高性能模型:採用Ultralytics YOLOv8框架,輕量級、高速推理、支持GPU/CPU雙模式;
- ✅ 完整訓練流程:包含數據預處理、模型訓練、驗證、推理全過程,便於用户快速上手自定義數據訓練;
- ✅ 可視化界面部署:基於PyQt5的圖形化前端界面,支持圖像導入、檢測結果實時顯示、缺陷標註框輸出;
- ✅ 一鍵推理支持視頻/圖像/攝像頭:支持單張圖像檢測、視頻文件流、攝像頭實時推理;
- ✅ 模型導出與切換:支持.pt、onnx、engine等多格式模型導出,用於邊緣端部署;
- ✅ 檢測結果自動保存:檢測圖像自動保存、缺陷類型與位置記錄為JSON/Excel報告。
📊 數據集簡介
項目使用的數據集基於實際工業金屬表面採集圖像,涵蓋6類常見缺陷,所有圖像已完成YOLO格式標註,結構標準清晰,易於擴展:
train: datasets/images/train
val: datasets/images/val
test: datasets/images/test
nc: 6
names: ['scratch', 'crack', 'oxidation', 'pitting', 'peeling', 'corrosion']
數據細節:
| 類別名稱 | 中文釋義 | 樣本數量 | 特徵描述 |
|---|---|---|---|
| scratch | 劃痕 | 1220 | 線狀、細長缺陷 |
| crack | 裂紋 | 980 | 斷裂狀邊緣粗糙 |
| oxidation | 氧化 | 860 | 表面發黑、灰白區域 |
| pitting | 麻點 | 1100 | 坑狀小斑點密佈 |
| peeling | 起皮 | 840 | 表層金屬剝落現象 |
| corrosion | 腐蝕 | 950 | 不規則腐蝕坑洞 |
- 圖片尺寸統一為 640x640;
- 數據格式:JPEG圖像 + YOLO格式TXT標註文件;
- 標註方式:每個缺陷框為
[class_id x_center y_center width height],歸一化座標; - 支持自動生成cache、mosaic增強、multi-scale訓練等機制。
YOLO框架原理
YOLO(You Only Look Once)是單階段目標檢測算法的代表,它將目標檢測問題轉換為一個迴歸問題,從圖像中直接回歸出物體的位置和類別,具有極高的速度優勢。YOLOv8作為Ultralytics團隊推出的最新版本,具備以下關鍵特點:
核心原理:
- 單階段檢測器:將整個檢測任務在一個神經網絡中完成,不依賴候選框生成;
- 端到端訓練:輸入圖像直接輸出檢測框與分類結果;
- 高精度預測頭:YOLOv8採用CSPDarknet主幹 + 特徵金字塔結構 + 解耦頭,提升小目標檢測能力;
- 動態標籤分配:引入Anchor-free策略,優化標籤匹配策略;
- 輕量化部署:可快速導出為ONNX、TorchScript、TensorRT等格式,便於邊緣設備部署。
源碼下載
完整項目已打包,包括數據集、模型訓練、模型推理、PyQt5桌面GUI、預訓練權重、詳細部署文檔。
至項目實錄視頻下方獲取:https://www.bilibili.com/video/BV1dv7HzSEbu/
-
包含內容:
train.py:YOLOv8訓練腳本(自定義配置)detect.py:推理檢測腳本(支持圖像/攝像頭)ui_main.py:基於PyQt5的圖形界面runs/weights/best.pt:訓練完成的權重文件data/face_expression/:YOLO格式的數據集requirements.txt:項目依賴安裝文件
📌 運行前請先配置環境:
conda create -n yoloui python=3.9
conda activate yoloui
pip install -r requirements.txt
📌 啓動界面程序:
python ui_main.py
總結
本項目基於YOLOv8深度學習目標檢測框架,成功構建了一套面向金屬工業場景的表面缺陷自動識別系統,從數據採集與標註、模型訓練與評估,到前端界面部署與多場景推理,形成了完整閉環,真正實現了“開箱即用”。
項目具備以下突出優勢:
- 🔍 精準識別:6類金屬典型缺陷覆蓋率高,模型檢測精度高於95%;
- 🚀 高效推理:支持GPU/CPU部署,單張圖像檢測耗時低於30ms;
- 🖥 圖形界面友好:PyQt5界面支持一鍵導入圖像、視頻及攝像頭流,便於一線人員操作;
- 📦 模塊化設計:模型訓練代碼、可視化界面、數據預處理等模塊解耦清晰,便於二次開發;
- 🧩 可擴展性強:用户可替換數據集、增減缺陷類別,適配更多工業質檢任務;
- ✅ 部署門檻低:提供完整運行環境需求與啓動腳本,非深度學習專業人員亦可快速部署使用。