news 2026/10/23 7:56:19

基于 YOLOv8 的钢材表面缺陷检测系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于 YOLOv8 的钢材表面缺陷检测系统

本项目是一套基于YOLOv8的钢材表面缺陷检测系统,以NEU-DET 钢材表面缺陷数据集为数据基础,面向龟裂、夹杂、斑块、点蚀表面、压入氧化皮和划痕六类缺陷完成模型训练、评估与系统应用。系统提供Web 端和 PyQt6 桌面端,支持图片、视频和摄像头输入,并集成结果查看、历史查询、模型管理与训练指标展示,适用于项目设计、课程实践和答辩展示。

一、项目简介

面向钢材表面的纹理缺陷检测,定位龟裂、夹杂、斑块、点蚀、氧化皮和划痕。系统以缺陷图像和 YOLO 标注为数据基础,提供检测结果对照、类别统计、模型参数配置、历史查询与实验图表。

组成项目内容
数据集NEU-DET 钢材表面缺陷数据集
模型YOLOv8n
识别任务龟裂、夹杂、斑块、点蚀表面、压入氧化皮和划痕六类缺陷
实验资料训练参数、日志、权重与已有图表
应用端桌面界面与浏览器操作界面

二、系统功能设计

2.1 登录与导航

系统提供登录与注册,侧栏组织图片、视频、摄像头、历史、模型和指标入口。不同账号分别保存检测记录。

2.2 图片检测与缺陷复核

上传钢材表面图像后,显示缺陷边界框、中文类别、置信度及类别统计。结合原图与检测明细,可以检查纹理中相近的异常区域,并查看页面提供的缺陷处置参考说明。

2.3 视频与摄像头检测

视频模块后台处理采样画面,展示进度,支持取消并导出标注视频。本文视频使用图片序列演示流程;摄像头界面用于连接浏览器设备与采样检测。

2.4 历史查询与文件导出

检测历史按账号保存,支持文件名搜索、类型筛选与结果回看。标注图片、检测明细 CSV 和历史 CSV 可以分别下载,便于整理不同输入的结果。

2.5 模型与参数管理

管理项目既有权重,设置置信度与 IoU 阈值等推理参数。检测结果与当前权重、参数关联,便于比较不同设置下的输出。

2.6 训练指标

页面读取真实日志,展示 Precision、Recall、mAP 及训练、验证损失。指标峰值与末轮数据分别标注,避免将不同轮次拼成一组结果。

三、技术栈

类别技术及用途
编程语言Python、JavaScript
深度学习框架PyTorch
模型训练与推理Ultralytics YOLOv8
桌面界面PyQt6
Web 服务FastAPI
Web 前端HTML、CSS、JavaScript
图像与视频处理OpenCV、NumPy
训练日志与离线绘图Matplotlib;CSV 训练记录
结果保存Web 独立目录中的账号、任务、历史与结果文件

四、项目结构

项目将训练代码、界面、模型产物和 Web 服务分别组织,主要目录如下:

c29/ ├─ assets/ ├─ core/ ├─ neu_det_data.yaml ├─ plot_train_results.py ├─ README.md ├─ requirements.txt ├─ run_ui.py ├─ screenshots/ ├─ tools/ ├─ train.py ├─ train_result/ ├─ ui/ └─ web/ ├─ backend/ # 服务接口与推理任务 ├─ frontend/ # 页面与交互 └─ data/ # Web 独立运行数据

本文对应的训练日志位于train_result/exp/results.csv。 数据集按实际配置定位;浏览器端的运行结果独立保存在 Web 数据目录。

五、数据集说明

5.1 数据集与识别任务

项目使用NEU-DET 钢材表面缺陷数据集,面向龟裂、夹杂、斑块、点蚀表面、压入氧化皮和划痕六类缺陷。每个目标由类别与边界框共同描述,模型输出位置及对应预测分数。

5.2 数据规模与划分

以下数量按当前本机配套数据目录统计;所列划分对应本项目的数据组织。

数据划分图像数量
训练集1,770
验证集30
合计1,800

5.3 类别与标注格式

类别编号类别名称中文含义
0crazing龟裂
1inclusion夹杂
2patches斑块
3pitted_surface点蚀表面
4rolled-in_scale压入氧化皮
5scratches划痕

YOLO 标注按每行一个目标组织:

class_id center_x center_y width height

中心点坐标与宽高采用相对图像尺寸的归一化值,图像与 TXT 标注按文件名对应。

六、模型训练过程

6.1 训练流程

训练代码由train.py组织,先读取图像、类别与划分,再加载预训练模型进行训练,并保留逐轮日志与已有权重。

  1. 按当前数据目录读取图像及对应标签。
  2. 将输入调整为实验配置的尺寸,并应用训练预处理。
  3. 加载基础模型,在对应类别上进行训练。
  4. 在验证阶段计算指标并保存日志及权重。
  5. 使用已有训练图表分析结果,并在系统中加载权重开展推理。

6.2 模型与训练参数

参数本次记录
基础模型YOLOv8n
配置轮数100
日志实际轮数100
输入尺寸640 × 640
Batch Size16
优化器配置auto
预热轮数3.0
DataLoader Workers4

日志最后一行累计耗时为1,431.83 秒,约 23.9 分钟。 数据增强与学习率调度以本次参数记录和逐轮 CSV 为准;配置值与实际日志中的学习率分别读取。

6.3 训练产物

  • args.yaml:本次实验参数。
  • results.csv:每一轮损失、检测指标和学习率。
  • weights/:已保存的模型权重。
  • 训练图表:原始产物中的曲线、分布或评估图,见第八节。

七、训练结果与核心指标

7.1 最后一轮结果

以下为当前实验 CSV 的第100 轮验证结果:

指标日志数值百分比
Precision0.7489774.897%
Recall0.8863188.631%
mAP@0.50.8493584.935%
mAP@0.5:0.950.4791447.914%

7.2 各指标最高值

指标最高值对应轮次
Precision0.79961第 45 轮
Recall0.88869第 75 轮
mAP@0.50.85979第 86 轮
mAP@0.5:0.950.50149第 31 轮

单项峰值可能出现在不同轮次;末轮表用于查看同一轮完整结果,峰值表用于查看各指标在本次训练中的最高记录。

7.3 结果分析

末轮 Recall 高于 Precision,说明检出范围与误检控制需要结合场景权衡;细小纹理缺陷的定位仍可结合更严格的 mAP 和原图区域进行检查。

八、可视化图表说明

以下图片直接采用源码目录已有的训练产物,保留原始图表内容与数值。

8.1 训练与验证损失

展示图中对应的损失项随训练轮次的变化,结合训练与验证结果观察拟合情况。

8.2 训练与验证损失

展示图中对应的损失项随训练轮次的变化,结合训练与验证结果观察拟合情况。

8.3 训练与验证损失

展示图中对应的损失项随训练轮次的变化,结合训练与验证结果观察拟合情况。

8.4 学习率调度

展示实际日志中的学习率变化,辅助查看预热与衰减过程。

本项目为个人原创项目,配套源码、模型权重、训练资料和项目说明,可用于毕业设计、课程实践、简历展示及个人学习。有项目成品或定制需求,可以通过主页联系作者。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 7:52:40

小白程序员必看:拆解AI Agent工程师JD,揭秘大模型“全栈”能力地图

本文通过分析一份真实的AI Agent岗位JD和一个Agent项目方案,将“看起来很散”的技术名词拆解成一套能真正落到项目里的能力地图。文章重点介绍了AI Agent岗位的核心技术栈,包括Python/TypeScript后端开发、LLM应用开发、RAG、Agent、Memory、数据与存储、…

作者头像 李华
网站建设 2026/10/23 7:51:35

状态更新与 reducer:用 Annotated 做累加

个人主页&#xff1a;> for_ever_love__ <&#xff08;欢迎各位大佬莅临&#x1f60a;&#xff09; 其他栏目: > 大模型开发从0到1 < 其他栏目: > iOS项目总结大全 < 其他栏目: > 我想学python了 < 其他栏目: > iOS UI < 文章目录状态更新与 red…

作者头像 李华
网站建设 2026/10/23 7:49:32

两天20道算法题:双指针、动态规划与回溯的刷题复盘笔记

2026年刚开年那阵子&#xff0c;我给自己定了个小目标&#xff1a;把算法题的手感重新捡起来。说实话&#xff0c;工作之后写业务代码的时间多了&#xff0c;很多基础的数据结构和经典题型反而生疏了&#xff0c;碰到稍微绕一点的题就总想去看题解&#xff0c;这让我有点慌。尤…

作者头像 李华
网站建设 2026/10/23 7:28:20

Spark-X2.5-1.7B-Base 推理效率实测:TTFT 与 TOPT 指标全解析指南

【免费下载链接】Spark-X2.5-1.7B-Base 项目地址&#xff1a; https://ai.gitcode.com/SparkLLM/Spark-X2.5-1.7B-Base 点击查看 免费下载 &#x1f4cc; 本文带你快速搞懂 Spark-X2.5-1.7B-Base 的推理效率&#xff1a;这是 SparkLLM 团队推出的 1.7B 级紧凑通用大模型&#…

作者头像 李华
网站建设 2026/10/23 7:24:50

Luckysheet离线表格完整版:本地化部署与Excel导入导出避坑

简介&#xff1a;这份 Luckysheet 完整版资源包面向需要在前端项目中搭建在线表格、并兼顾离线运行能力的开发者&#xff0c;重点解决本地引入时断网报错、字体图标缺失&#xff0c;以及表格数据导入导出等常见问题。压缩包共 82 个文件&#xff0c;约 4.37MB&#xff0c;其中 …

作者头像 李华