智慧AI-铁缺陷检测系统(采用NEU-DET数据集)
在这里插入图片描述

基于YOLO+AI的缺陷检测系统,支持图片检测、批量检测、视频检测、摄像头检测四种方式。
可以检测【Crazing(裂纹)、Inclusion(夹杂物)、Patches(斑块)、Pitted Surface(麻面)、Rolled-in Scale(轧入氧化皮)、Scratches(划痕)】类型。
在这里插入图片描述

技术栈使用YOLO、DeepSeek、Pytorch、SpringBoot、MyBatis-Plus、Vue3、Echarts、Ts、element-plus、Flask、Axios、MySQL等技术。系统还支持分用户管理。分为管理员和普通用户,管理员可查看所有记录,并管理用户。普通用户只可查看自己的记录。界面简洁、美观。支持主题色修改、布局样式修改、组件大小修改等。
在这里插入图片描述
1
在这里插入图片描述
1
在这里插入图片描述
1
在这里插入图片描述
1
在这里插入图片描述
1
在这里插入图片描述
这是一个基于 YOLO 深度学习模型与 NEU-DET 数据集的钢铁表面缺陷检测系统的完整技术解决方案。

该方案融合了前后端分离架构与工业AI检测技术,旨在提供一个从数据采集、模型推理到用户管理的全链路解决方案。


1. 项目概述

  • 项目名称:钢铁表面缺陷智能检测系统
  • 核心目标:利用计算机视觉技术自动识别钢铁表面的六种典型缺陷(裂纹、夹杂物、斑块、麻面、轧入氧化皮、划痕)。
  • 数据集:采用工业界标准的 NEU-DET 数据集,包含 1,800 张高分辨率图像,覆盖 6 类缺陷。
  • 业务逻辑
    • 普通用户:仅能查看和管理自己的检测记录。
    • 管理员:拥有最高权限,可查看全局数据、管理用户及系统配置。

2. 技术架构设计

系统采用 前后端分离 架构,后端提供 RESTful API,前端负责交互展示。

2.1 整体架构图

客户端 Web App

Flask / SpringBoot API 网关

YOLO 模型推理服务

MySQL 数据库

2.2 技术栈选型表
层级 技术栈 选型理由
前端框架 Vue 3 + TypeScript 组件化开发,类型安全,生态丰富。
UI 组件库 Element Plus 企业级 UI 库,提供完善的表格、对话框、表单组件。
数据可视化 ECharts 强大的图表库,用于展示缺陷分布、检测趋势等统计信息。
后端框架 Spring Boot / Flask Spring Boot 适合复杂业务逻辑;Flask 轻量级,适合快速集成 YOLO 推理。
深度学习 PyTorch + YOLO 工业检测主流模型,基于 PyTorch 实现高性能推理。
数据库 MySQL + MyBatis-Plus 关系型数据库存储用户信息和检测记录;MyBatis-Plus 提高开发效率。
通信协议 Axios 前端与后端进行 HTTP/HTTPS 通信。

3. 功能模块设计

3.1 AI 检测核心模块
  • 模型训练:基于 NEU-DET 数据集微调 YOLOv8 或 YOLOv5 模型,针对六类缺陷进行训练。
  • 推理服务
    • 图片检测:上传单张图片,返回带框图和缺陷列表。
    • 批量检测:上传文件夹/压缩包,批量处理并导出 Excel 报告。
    • 视频检测:逐帧分析视频流,实时标注缺陷。
    • 摄像头检测:连接工业相机或普通摄像头,进行实时在线检测。
3.2 用户与权限管理模块
  • 角色划分
    • 普通用户:注册登录,只能查询自己的 user_id 对应的检测历史。
    • 管理员:拥有 admin 角色,可查看所有用户数据,进行增删改查。
  • 数据隔离:在 SQL 查询中强制加入 WHERE user_id = ? 条件(普通用户)或不限制(管理员)。
3.3 系统配置模块
  • 主题定制:利用 Element Plus 的主题工具或 CSS 变量,支持用户切换主题色(如深色模式/浅色模式)。
  • 布局调整:支持响应式布局,适配不同屏幕尺寸;提供组件大小调节滑块。

4. 数据库设计 (关键表)

4.1 用户表 (user)
字段名 类型 说明
id INT 主键自增
username VARCHAR 用户名
password VARCHAR 密码 (MD5/BCrypt加密)
role ENUM 角色 (‘user’, ‘admin’)
create_time DATETIME 注册时间
4.2 检测记录表 (detection_record)
字段名 类型 说明
id INT 主键
user_id INT 外键,关联用户
image_path VARCHAR 图片存储路径
result_json TEXT 检测结果 (JSON格式,包含类别、置信度、坐标)
defect_count INT 缺陷总数
status TINYINT 状态 (0: 失败, 1: 成功)
detect_time DATETIME 检测时间

5. 代码实现示例 (后端 Flask + YOLO)

以下为后端核心推理逻辑的伪代码示例:

from flask import Flask, request, jsonify
import cv2
import torch
from PIL import Image
import io

# 加载预训练的 YOLO 模型 (基于NEU-DET训练)
model = torch.hub.load('ultralytics/yolov5', 'custom', path='neu_det_best.pt')

app = Flask(__name__)

@app.route('/api/detect', methods=['POST'])
def detect():
    if 'image' not in request.files:
        return jsonify({'error': 'No image provided'}), 400

    # 1. 获取图片
    file = request.files['image']
    img_bytes = file.read()
    img = Image.open(io.BytesIO(img_bytes))

    # 2. YOLO 推理
    results = model(img)
    
    # 3. 解析结果
    # classes: [0,1,2,3,4,5] -> ['Crazing', 'Inclusion', ...]
    defects = results.pandas().xyxy[0].to_dict(orient="records") 

    # 4. 数据库存储逻辑 (此处省略数据库连接代码)
    # save_to_db(user_id, defects, img_path)

    return jsonify({
        'success': True,
        'defects': defects,
        'total_count': len(defects)
    })

if __name__ == '__main__':
    app.run(debug=True)

6. 前端界面设计 (Vue 3 + Element Plus)

前端页面包含以下组件:

  1. 顶部导航栏:显示 Logo、用户信息、主题切换按钮。
  2. 左侧菜单栏:功能导航(图片检测、视频检测、历史记录、用户管理)。
  3. 主工作区
    • 上传区:拖拽上传图片/视频。
    • 展示区:Canvas 或 Image 标签展示原图和检测结果图。
    • 数据区:表格展示具体的缺陷位置和置信度。

7. 部署方案

  • 开发环境:Windows/Linux + Anaconda + VSCode。
  • 生产环境
    • 前端:打包为静态文件,部署在 Nginx 服务器。
    • 后端:使用 Gunicorn 或 Java Jar 包部署在 Linux 服务器。
    • 模型服务:可考虑使用 TensorRT 优化推理速度,或者使用 ONNX 格式部署。
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐