微小异物检测与识别系统

YOLOv8 工业表面六类微小缺陷(龟裂、夹杂、点蚀等)检测平台,基于 NEU-DET 钢材数据集,支持单张/批量检测、在线训练与 PDF 报告导出,适合计算机视觉质检类毕业设计。

评分:4.8/5.0
销量:8
发布:7/6/2026
难度:L3 高级

获取完整源码

演示视频仅作效果参考。完整源码、项目说明与运行答疑,请私聊沟通(适合毕业设计 / 课程设计 / 课设参考)。

获取完整源码观看演示视频
含项目说明文档,便于对照学习
可本地运行,适合课设演示
沟通获取后可咨询运行问题

项目封面

截图 1

项目概览

本系统面向钢材等工业产品表面质量检测场景,采用 Flask + YOLOv8 + SQLite + ECharts 技术栈,基于 NEU-DET(东北大学钢材表面缺陷)公开数据集训练。可对龟裂、夹杂异物、斑块、点蚀、氧化铁皮、划痕六类微小缺陷进行自动定位、分类与置信度评估,提供单张/批量检测(最多 20 张)、检测历史与 CSV/PDF 报告导出、类别分布与月度趋势统计,管理员可在线配置参数发起 YOLOv8 重新训练,适合作为毕业设计中目标检测、工业视觉质检与 YOLOv8 Web 部署方向。

项目说明

微小异物检测与识别系统

项目简介

本系统是一个基于 Flask Web 框架与 YOLOv8 深度学习模型的工业表面微小异物/缺陷智能检测平台。系统面向钢材等工业产品表面质量检测场景,能够对上传图片中的龟裂、夹杂异物、斑块、点蚀、氧化铁皮、划痕等六类微小缺陷进行自动定位、分类与置信度评估,并提供批量检测、历史记录、统计分析、模型在线训练与报告导出等完整功能。

系统采用 NEU-DET(东北大学钢材表面缺陷)公开数据集进行模型训练,内置已训练好的 YOLOv8n 权重,开箱即用;同时支持管理员在线发起模型重新训练。


功能模块

模块功能说明
用户认证用户注册、登录、退出;基于 Flask-Login 的会话管理;管理员与普通用户两级角色权限控制
控制台展示总检测次数、发现异物数、今日检测、系统用户数等核心指标,近 7 天检测趋势折线图,快捷操作入口与最近检测记录列表
单张检测支持拖拽或点击上传单张图片,实时执行 YOLOv8 推理,返回标注结果图、异物数量、各类别置信度与边界框坐标,并自动保存检测记录
批量检测一次上传多张图片(最多 20 张)批量处理,展示每张图片的检测结果缩略图与异物数量,支持失败重试提示
检测历史检测记录分页浏览与关键词搜索,查看检测详情(原图、结果图、检测框列表),删除记录,导出 CSV 与 PDF 报告
统计分析异物类别分布饼图、月度检测趋势柱状图、总检测/异物/正常/异物率/平均耗时/平均置信度等汇总指标,所有数据按当前用户权限范围统计
数据集管理展示 NEU-DET 数据集信息(总图片数、训练/验证/测试集划分、类别说明、数据集路径与更新时间),实时统计文件系统中的数据集规模
模型训练管理员可配置训练轮次、批次大小、图片尺寸并启动 YOLOv8 在线训练,实时查看训练状态与完成后的 mAP50、精确率、召回率等指标,查看训练历史记录
系统设置管理员可调整检测置信度阈值、NMS IOU 阈值、最大上传大小、自动保存开关、模型路径等系统参数
用户管理管理员查看所有用户列表,启用/禁用用户账户
操作日志管理员查看登录、检测、训练、设置变更等操作日志,支持分页
报告导出一键导出检测记录为 PDF 报告或 CSV 表格

缺陷类别

系统支持检测以下六类工业表面微小异物/缺陷(基于 NEU-DET 数据集):

类别 ID英文名称中文名称说明
0crazing龟裂表面不规则龟壳状裂纹
1inclusion夹杂异物非金属或氧化物夹杂压入表面
2patches斑块缺陷表面局部色差斑块
3pitted_surface点蚀表面密集点状凹坑
4rolled-in_scale氧化铁皮氧化铁皮压入钢材表面
5scratches划痕表面线性划伤痕迹

标准版目录结构

python-weixiaoyiwu-jiance-shibie/
├── app.py                         # Flask 应用主入口,页面路由与 API 接口定义
├── config.py                      # 系统配置(密钥、数据库路径、模型路径、类别映射、分页参数)
├── requirements.txt               # Python 依赖包清单
├── mac_run.sh                     # macOS/Linux 一键启动脚本
├── window_run.bat                 # Windows 一键启动脚本
├── 项目说明.md                    # 项目功能与目录结构说明
├── 训练手册.md                    # 模型训练与数据集使用手册
├── README.md                      # 项目简介
├── database/
│   └── models.py                  # SQLite 数据库表结构定义、初始化与操作日志记录
├── ml/
│   ├── detect.py                  # YOLOv8 检测引擎封装(模型加载、单张/批量检测、结果绘制)
│   ├── train.py                   # YOLOv8 模型训练脚本(训练、指标读取、任务状态更新)
│   ├── download_dataset.py        # 数据集准备脚本(本地检测、格式转换、data.yaml 生成)
│   ├── data/
│   │   ├── NEU-DET_Yolo-master/   # NEU-DET 数据集(YOLO 格式)
│   │   │   ├── ImageSets/
│   │   │   │   ├── train/         # 训练集(images + labels)
│   │   │   │   ├── val/           # 验证集(images + labels)
│   │   │   │   └── test/          # 测试集(images + labels)
│   │   │   ├── labels/            # 全量 YOLO 标签文件
│   │   │   └── data.yaml          # 数据集配置文件
│   │   └── neu_yolo.zip           # 数据集压缩包备份
│   └── runs/
│       └── detect/
│           └── train/
│               ├── weights/       # 训练输出的模型权重(best.pt / last.pt)
│               ├── results.csv    # 训练指标记录
│               └── args.yaml      # 训练参数配置
├── templates/                     # Jinja2 HTML 模板
│   ├── base.html                  # 基础模板(导航栏、CDN 引用)
│   ├── index.html                 # 首页
│   ├── login.html                 # 登录页
│   ├── register.html              # 注册页
│   ├── dashboard.html             # 控制台
│   ├── detect.html                # 单张检测页
│   ├── batch_detect.html          # 批量检测页
│   ├── history.html               # 检测历史页
│   ├── statistics.html            # 统计分析页
│   ├── dataset.html               # 数据集管理页
│   ├── training.html              # 模型训练页
│   ├── settings.html              # 系统设置页
│   ├── users.html                 # 用户管理页
│   ├── logs.html                  # 操作日志页
│   └── error.html                 # 错误页
├── static/
│   ├── css/
│   │   └── style.css              # 自定义样式
│   ├── js/
│   │   └── common.js              # 公共工具函数
│   ├── uploads/                   # 上传图片存储目录
│   └── results/                   # 检测结果图存储目录
├── instance/
│   └── foreign_object.db          # SQLite 数据库文件(自动生成)
├── 运行步骤必看/
│   └── window.md                  # Windows 运行步骤说明
├── 演示材料/
│   └── 演示视频.mp4               # 系统演示视频
└── yolov8n.pt                     # YOLOv8n 预训练权重(训练基线模型)

技术栈

类别技术
后端框架Python 3.12 + Flask 3.0
用户认证Flask-Login 0.6 + Werkzeug pbkdf2:sha256 密码哈希
数据库SQLite 3
深度学习Ultralytics YOLOv8 8.4(目标检测)
图像处理OpenCV(opencv-python-headless)+ Pillow
数据处理NumPy + Pandas
前端HTML5 + Bootstrap 5.3 + Bootstrap Icons + ECharts 5.5
报告生成ReportLab(PDF 导出)

环境要求

项目要求
Python3.12
操作系统Windows / macOS / Linux
内存建议 4GB 以上(模型推理与训练时使用)
磁盘约 1GB(含依赖、数据集与模型权重)
GPU可选,无 GPU 时自动使用 CPU 推理与训练
浏览器Chrome / Firefox / Safari / Edge 现代版本

账号信息

系统初始化时自动创建以下默认账户:

角色用户名密码权限
管理员adminadmin123全部功能,含模型训练、系统设置、用户管理、操作日志
普通用户useruser123检测、历史、统计、数据集查看

新注册用户默认为普通用户角色,仅能访问自身检测数据;管理员可查看全部用户数据。

获取完整源码

技术分类

包含内容

完整源码
项目说明文档
演示材料
训练手册

适合方向

适合人工智能、自动化、软件工程专业毕业设计中 YOLO 目标检测、工业表面缺陷识别与 Flask 推理服务方向。

关于 AI源码

AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。

QQ: 861077046
邮箱: 861077046@qq.com
已帮助 8+ 位同学完成选题参考
问能不能做我的题目

相关推荐

查看全部 →
基于用户画像的食谱推荐系统
高级

基于用户画像的食谱推荐系统

Flask+SQLite 食谱推荐 Web:问卷与活动数据构建用户向量,KMeans 聚类画像 + 规则过滤 + RandomForest 融合排序,输出可解释推荐,含 Hit@K/NDCG 离线评估,适合推荐系统毕业设计。

PythonHTMLSQLite
4.885
基于协同过滤的电影推荐系统设计与实现
高级·新上架

基于协同过滤的电影推荐系统设计与实现

Flask+SQLite 豆瓣电影推荐平台:scikit-surprise 实现 UserCF/ItemCF,三级冷启动降级、星级评分收藏、Pyecharts 后台图表与一键重训,含算法讲解页,适合推荐算法毕业设计。

PythonHTMLSQLite
4.881
基于机器学习的古籍文字识别与断句校正系统
高级

基于机器学习的古籍文字识别与断句校正系统

Vue3+Flask 古籍 OCR 流水线:PaddleOCR 识文、文本整理勘校、BERT 句读标注与多格式导出,JWT 任务隔离,支持离线微调数据闭环,适合 OCR+NLP 毕业设计。

PythonVue3SQLite
4.827
基于深度学习的音乐风格分类系统
高级·新上架

基于深度学习的音乐风格分类系统

Django+Vue2 音乐平台:Mel 频谱 CNN+Bi-LSTM 八类风格分类,含在线 MP3 播放、协同过滤推荐、热榜与 SimpleUI 管理后台,MySQL 预置 12 首歌曲,适合深度学习+Web 毕业设计。

PythonVue2MySQL
4.833
基于深度学习的日常服饰分类与推荐系统设计
高级·新上架

基于深度学习的日常服饰分类与推荐系统设计

PyTorch CNN 对 Fashion-MNIST 服饰图像 Top-5 分类,融合协同过滤与 Embedding 相似度的混合推荐引擎,含 120 件商品目录与评分收藏,适合深度学习推荐系统类毕业设计。

PythonHTMLSQLite
4.877
微小金属碎屑识别系统设计与实现
高级·新上架

微小金属碎屑识别系统设计与实现

MobileNetV2 对 NEU-CLS 六类金属表面缺陷图像分类识别平台,输出置信度与 Top 概率分布,含在线训练与多维度统计图表,适合轻量级深度学习质检类毕业设计。

PythonHTMLSQLite
4.88