微小金属碎屑识别系统设计与实现
基于 Flask 与 PyTorch MobileNetV2 的金属表面缺陷/微小碎屑智能识别平台,面向工业质检场景,对上传图像进行开裂、夹杂、斑块、点蚀、氧化铁皮压入、划痕六类缺陷自动分类,输出置信度与推理耗时,含数据概览、识别记录、NEU-CLS 数据集管理与在线模型训练。
项目封面

项目说明
微小金属碎屑识别系统设计与实现
项目简介
本系统是一个基于 Flask Web 框架与 PyTorch 深度学习模型的金属表面缺陷/微小碎屑智能识别平台。系统面向工业质检场景,能够对上传的金属表面图像进行六类典型缺陷(开裂、夹杂、斑块、点蚀、氧化铁皮压入、划痕)自动分类,并输出置信度与推理耗时,提供识别记录、数据统计、数据集管理与在线模型训练等完整功能。
系统使用东北大学公开发布的 NEU-CLS 金属表面缺陷数据集进行模型训练,管理员可在线发起模型重新训练,训练完成后自动加载新权重。
功能模块
| 模块 | 功能说明 |
|---|---|
| 用户认证 | 用户注册、登录、退出;基于 Session 的会话管理;管理员与普通用户两级角色权限控制 |
| 数据概览 | 展示累计识别次数、今日识别、平均置信度、高置信度占比、平均推理耗时;含缺陷类别分布、识别趋势、置信度分析、推理耗时分析、时段分布、训练曲线、用户活跃度等多维度图表 |
| 碎屑识别 | 支持上传单张金属表面/碎屑图像,执行 MobileNetV2 分类推理,返回缺陷类别、置信度、各类别概率分布,并自动保存识别记录 |
| 识别记录 | 检测历史分页浏览,支持 CSV 导出(中文表头),管理员可查看全部用户记录 |
| 数据集 | 展示 NEU-CLS 数据集信息(类别说明、样本数量、存储路径) |
| 模型训练 | 可配置训练轮次、批次大小、学习率并启动在线训练,查看训练历史与验证准确率 |
| 用户管理 | 管理员查看系统用户列表 |
缺陷类别
系统支持识别以下六类金属表面缺陷/碎屑形态:
| 代码 | 英文标识 | 中文名称 | 说明 |
|---|---|---|---|
| Cr | Crazing | 开裂 | 表面细微裂纹 |
| In | Inclusion | 夹杂 | 异物压入形成的夹杂缺陷 |
| Pa | Patches | 斑块 | 局部色差斑块 |
| PS | Pitted Surface | 点蚀 | 点状腐蚀坑 |
| RS | Rolled-in Scale | 氧化铁皮压入 | 轧制过程中氧化皮压入 |
| Sc | Scratches | 划痕 | 机械划伤痕迹 |
标准版目录结构
python-weixiao-jinshu-shibie/
├── app.py # Flask 应用主入口,页面路由与 API 接口定义
├── config.py # 系统配置(端口、数据库路径、类别映射、训练默认参数)
├── run.py # Python 一键启动脚本
├── requirements.txt # Python 依赖包清单
├── mac_run.sh # macOS/Linux 一键启动脚本
├── mac_clear_all.sh # 交付前数据清理脚本
├── mac_clear_all.md # 数据清理说明
├── window_run.bat # Windows 一键启动脚本
├── 项目说明.md # 项目功能与目录结构说明(本文件)
├── 训练手册.md # 模型训练与数据集使用手册
├── database/
│ └── db.py # SQLite 数据库表结构与数据访问
├── models/
│ ├── classifier.py # MobileNetV2 分类模型定义
│ └── predict.py # 推理服务(加载权重、预测、热加载)
├── training/
│ ├── download_dataset.py # NEU-CLS 数据集下载与整理
│ └── train_model.py # 模型训练脚本
├── templates/ # Jinja2 HTML 模板
│ ├── base.html # 基础模板
│ ├── layout.html # 顶部导航布局
│ ├── login.html # 登录页
│ ├── register.html # 注册页
│ ├── dashboard.html # 数据概览
│ ├── detect.html # 碎屑识别页
│ ├── history.html # 识别记录页
│ ├── dataset.html # 数据集管理页
│ ├── training.html # 模型训练页
│ └── users.html # 用户管理页
├── static/
│ ├── css/style.css # 工业风自定义样式
│ └── vendor/ # 本地前端资源(无需 CDN)
│ ├── bootstrap/ # Bootstrap 5.3
│ └── echarts/ # ECharts 5.5
├── data/
│ └── neu_cls/ # NEU-CLS 数据集(自动下载)
│ ├── Cr/ In/ Pa/ PS/ RS/ Sc/
├── weights/
│ ├── best_model.pth # 训练输出的模型权重
│ └── model_meta.json # 模型元信息(类别、准确率等)
├── uploads/ # 用户上传图像
├── logs/ # 训练日志
├── docs/
│ └── dataset.md # 数据集下载地址追溯文档
├── 运行步骤必看/
│ ├── mac.md # macOS 运行步骤
│ └── window.md # Windows 运行步骤
└── 用户上传检测文件/ # 测试用示例图像(每类一张)
技术栈
| 类别 | 技术 |
|---|---|
| 后端框架 | Python 3.12 + Flask 3.0 |
| 用户认证 | Werkzeug pbkdf2 密码哈希 + Flask Session |
| 数据库 | SQLite 3 |
| 深度学习 | PyTorch 2.2 + torchvision MobileNetV2(图像分类) |
| 图像处理 | Pillow |
| 前端 | HTML5 + Bootstrap 5.3 + ECharts 5.5 |
| 数据集来源 | NEU-CLS 东北大学金属表面缺陷公开数据集 |
环境要求
| 项目 | 要求 |
|---|---|
| Python | 3.12(mac 使用 python3.12,Windows 使用 python) |
| 操作系统 | Windows / macOS / Linux |
| 内存 | 建议 4GB 以上 |
| 磁盘 | 约 1GB(含依赖、数据集与模型权重) |
| GPU | 可选,支持 CUDA / CPU |
| 浏览器 | Chrome / Firefox / Safari / Edge 现代版本 |
账号信息
系统初始化时自动创建以下默认账户:
| 角色 | 用户名 | 密码 | 权限 |
|---|---|---|---|
| 管理员 | admin | admin123 | 全部功能,含数据集下载、模型训练、用户管理 |
新注册用户默认为普通用户角色,仅能访问自身识别数据;管理员可查看全部用户数据。
端口说明
服务端口在 6000–9000 范围内首次随机生成,并持久化到 config/port.json,后续启动沿用同一端口。启动后请在控制台查看实际访问地址。
技术分类
包含内容
适用人群
学习参考与二次开发
关于 AI源码
AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。
相关推荐
查看全部 →
城市交通流量预测与拥堵成因分析系统
是一个面向城市交通拥堵分析的 monorepo,覆盖计算机设计课题中的主要能力链路:

电商用户行为漏斗与CRO转化率优化分析
电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。

多组学癌症预后预测分析系统
基于 Flask 的 Web 应用,用于上传 TCGA 风格合并表、做特征与标签概览、Cox 预后风险评分与生存相关可视化。模型在本地训练后以 形式加载,不提供旧版演示数据或假模型兜底。

基于 Apriori 算法的中药配伍审查系统
本系统是一个基于经典 Apriori 关联规则挖掘算法的中药配伍审查平台,使用真实中医药处方数据集(PTM-TKDE2018),实现药材频繁项集挖掘、关联规则生成与配伍禁忌审查。

基于 Python 的城市共享单车骑行需求时空分析系统
本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。

基于 Python 的短视频用户行为分析系统
基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。