当前位置: 首页 > news >正文

最新YOLO实现的钢材表面缺陷实时检测平台(Flask+SocketIO+HTML_CSS_JS)

摘要

本文面向钢材表面缺陷(划痕、压坑、氧化皮、夹杂等)的实时目标检测与可视化质检场景,构建了基于 Flask + Flask-SocketIO + HTML/CSS/JSWeb 网页界面与端到端推理系统。平台原生支持图片/视频/浏览器摄像头输入,提供双画面对比(原图/检测图同步对齐)、进度控制(进度条、暂停/继续/停止)与PR 曲线、训练曲线等可视化;检测结果可CSV 导出带框结果一键下载(图片/视频均可),并自动写入SQLite 以便检索与追溯。系统内置 YOLOv5–YOLOv12(8 种)可选检测器,支持模型选择/权重上传与在线切换,统一评测 mAP、F1、PR 等指标;提供登录/注册(可跳过)的轻量会话与权限控制,并在“最近记录”中快速回溯批次质检。面向产线部署,平台集成显存与吞吐监控、类别筛选、置信度/IoU 动态调节及CSV 高亮定位,同时兼顾离线复盘与在线巡检。文末提供完整工程与数据集下载链接,便于复现实验与二次开发。

讲解视频地址:基于深度学习的钢材表面缺陷检测系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59qaQ==
说明论文下载:https://mbd.pub/o/bread/YZWck5xqbQ==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmppsaw==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5prZw==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lsZg==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9yaQ==
安装与教程文档:https://deeppython.feishu.cn/wiki/HfqUwjfIoirKPNkrp7EcdR3LnSf

@

目录
  • 摘要
  • 1. 网页功能与效果
  • 2. 绪论
    • 2.1 研究背景与意义
    • 2.2 国内外研究现状
    • 2.3 要解决的问题及其方案
    • 2.4 博文贡献与组织结构
  • 3. 数据集处理
  • 4. 模型原理与设计
  • 5. 实验结果与分析
  • 6. 系统设计与实现
    • 6.1 系统设计思路
    • 6.2 登录与账户管理
  • 代码下载链接
  • 7. 结论与未来工作
  • 参考文献(GB/T 7714)

➷点击跳转至文末所有涉及的完整代码文件下载页☇


1. 网页功能与效果

(1)登录注册:提供注册、登录与一次性跳过三种入口,会话仅在当前浏览器标签页生效以降低干扰;登录后自动载入个性化配置与历史记录。口令采用哈希存储与最小权限设计,跳过模式仅保留基础浏览权限并限制导出与入库操作,兼顾体验与安全。
在这里插入图片描述

(2)功能概况:系统覆盖图片、视频与浏览器摄像头输入,默认开启原图/检测图等宽双画面对比与16:9自适应。支持置信度与IoU调节、类别筛选、结果入库SQLite、CSV导出与带框图片/视频一键下载,并可查看PR曲线与训练曲线等评测视图以便复盘。
在这里插入图片描述

(3)视频检测:采用同步双帧展示以保证检测前后帧时间对齐,提供进度条、暂停、继续与停止控制,支持时间戳与批次标记便于追溯。对于长视频与在线流,界面维持稳定缓冲并可将片段快速导出为MP4,同时保留关键帧截取和误检/漏检标记。
在这里插入图片描述

(4)更换模型:上传权重后可即时切换至当前模型,类别、阈值与配色面板同步刷新确保参数一致性。路径规范跨平台兼容,数据库自动迁移保障旧记录可读;模型列表支持备注与版本号管理,便于在YOLOv5–YOLOv12之间进行对比与回滚。
在这里插入图片描述

(5)概览界面:首页集中呈现最近任务、缺陷分布与处理进度,提供按时间、批次与文件名的快速检索与高亮定位。资源与吞吐监控在侧栏实时显示,导出中心汇总本次会话与历史导出记录,支持一键清理缓存并保留必要的审计信息以满足生产追溯。
在这里插入图片描述


2. 绪论

2.1 研究背景与意义

钢铁制造从热连轧到酸洗镀锌的多段工序易引入划痕、压坑、氧化皮与夹杂等外观缺陷,在线质检正从抽检走向“毫秒级检测—即时追溯”的全量监测以降低停线与返修风险 [1]。公开数据如 NEU-DET(6 类、1800 张、200×200 灰度)与更贴近实厂的 GC10-DET(10 类、3570 张)为方法评测与复现实验提供了可比基准并揭示强纹理、强反光与小目标密集等挑战 [2]。Severstal 竞赛进一步推动从检测到分割的端到端实践,验证了钢材表面缺陷自动化检测的产业价值与工程可行性 [4]。在工程侧,构建“检测—可视—追溯”的 Web 平台并实现浏览器端双画面对比、CSV/SQLite 追溯与权限会话,是落地到产线的关键途径 [1]。


2.2 国内外研究现状

围绕钢材缺陷的实时检测,社区在 YOLO 框架上叠加可变形卷积、注意力与改进回归损失,在不显著增加延迟的条件下提升 NEU-DET 精度,显示对复杂纹理与小目标的适配性 [5]。轻量化重排与剪枝亦可在保证精度的同时达成百帧级实时,为产线在线检测提供工程可行性样本 [6]。面向细粒度与尺度差异问题,中文社区在热轧带钢上对 YOLOv8s 做结构与损失层面的联合改造,兼顾 mAP 与 FPS 的任务化折中 [7]。同时,融合全局建模与多尺度上下文的改进网络在 NEU-DET/GC10-DET 上取得进一步增益,但带来结构复杂度与部署门槛的上升,需要在目标工况中权衡 [9]。

算法范式方面,Anchor-based 的 SSD 依赖多尺度默认框实现高效单阶段检测,而 RetinaNet 通过 Focal Loss 缓解前景–背景不均衡以接近两阶段精度 [10]。Anchor-free 的 FCOS 以像素级密集回归简化超参并增强小目标鲁棒性,CenterNet 则以中心点建模在保持端到端简洁性的同时取得良好实时性 [12]。回归损失从 GIoU 到 DIoU/CIoU/EIoU 逐步在无重叠、中心距离与宽高分解上增强梯度与收敛性,已成为钢材场景常用配置 [14]。

Transformer 路线方面,DETR 将集合预测与匈牙利匹配引入检测但早期训练与收敛成本较高,RT-DETR 通过高效编码/解码实现无 NMS 的实时推理,为工业端到端流水线提供新路径 [17]。YOLO 家族在 v10 引入一致性双指派与系统级效率设计,报告在 COCO 上同精度较 RT-DETR-R18 具 1.8× 速度优势,Ultralytics v11 强化通用部署而 v12 以注意力为中心但官方更建议生产优先 v11,体现“稳定性—精度”的工程取舍 [19]。

除通用 YOLOv5/7/8 外,工业向的 YOLOv6 以硬件感知设计与量化/优化策略提供多档位模型谱系,便于在节拍—精度之间灵活选型 [22]。系统侧常采用 “PyTorch 训练—ONNX 导出—ONNX Runtime TensorRT EP/TensorRT 部署”,并结合 INT8/QAT 以进一步压降延迟与能耗,形成从训练到部署的一体化路径 [25]。

表 1 代表性方法对比与适配点评(钢材表面缺陷/相关实时检测)

方法 范式/家族 数据集 关键技术 优势与局限 关键指标(mAP/FPS/延迟/参数) 适配难点
改进 YOLOv5(Metals’23) Anchor-based/YOLO NEU-DET DCN+注意力+改进损失 精度提升且延迟变化小 文中相对基线显著提升 [5] 复杂纹理、小目标
轻量 YOLOv5(Frontiers’23) Anchor-based/YOLO NEU-DET 轻量颈部+剪枝/重排 保持实时并兼顾精度 ≈百帧级案例 [6] 在线检测
改进 YOLOv8s(中文’24) Anchor-based/YOLO NEU-DET SPPD/GAM、DCN、BoT mAP/FPS 折中良好 文中约 80%+ mAP 与 80+ FPS [7] 多尺度、细粒度
LGM-YOLO(Processes’25) Anchor-based/YOLO NEU-DET/GC10-DET 多尺度上下文融合 精度提升但结构更复杂 NEU-DET/GC10-DET 增益 [9] 长尾与遮挡
YOLOv10-S(arXiv’24) Anchor-based/YOLO(NMS-free 训练) COCO 一致性双指派+系统级优化 同精度 1.8× 速于 RT-DETR-R18 论文对比结论 [19] 低延迟端到端
RT-DETR-R50(CVPR’24) Transformer/Anchor-free COCO/Objects365 高效混合编码+无 NMS 真端到端但实现门槛高 T4 上实时报告 [18] 高并发稳定性

注:表中数值与结论均来自原文或官方文档的报告,用于定性定位方法取舍,跨数据集不直接横比。


2.3 要解决的问题及其方案

(1)准确性与实时性:在高分辨率、强反光与纹理噪声场景下保持稳定 mAP/F1 与低延迟,并实现浏览器端原图/检测图双画面对齐与低抖动渲染 [1]。
(2)环境适应与泛化:应对班次/批次/光照漂移与材质差异导致的分布偏移,以及小目标密集与类间相似引发的漏检与误检 [2]。
(3)交互直观与功能完整:统一图片/视频/摄像头三源输入与模型热切换,提供阈值/类别筛选、进度控制、导出与入库的闭环体验 [4]。
(4)效率与存储安全:批量导出、CSV/SQLite 入库与最小权限会话需稳定一致,并支持审计与异常回退 [25]。

对应方案
(1)以 YOLOv12 为核心并保留 YOLOv5–YOLOv11 作为对比基线,结合 Mosaic、反光模拟等增强与 EIoU/CIoU 等损失稳定位置信号,并按节拍选择合适模型规模实现精度—速度折中 [21]。
(2)后端 PyTorch 训练与推理导出 ONNX,部署采用 ONNX Runtime TensorRT EPTensorRT INT8/QAT,在 RTX 平台获得更优延迟/吞吐;前端以 Flask+SocketIO 实现同步双帧推送与参数广播 [25]。
(3)实现统一数据通道与缓存、CSV 导出/带框结果一键下载/SQLite 入库,并在“最近记录”与筛选中快速定位批次与文件,支撑在线巡检与离线复盘 [4]。
(4)支持模型热切换与权重上传,自动刷新类别映射与阈值,必要时回退至 YOLOv11 稳定链路以保障生产连续性 [20]。


2.4 博文贡献与组织结构

(1)综合文献综述:梳理钢材缺陷检测在算法与工程侧的最新进展并给出可追溯对比表,帮助快速定位方案与取舍 [1]。
(2)模型选择与优化:给出 YOLOv12 主线与 v5–v11 基线的选择逻辑与训练细节,包括损失、增强与量化/蒸馏的工程实践,强调与钢材场景难点的一一对应 [21]。
(3)美观友好的网页设计:设计 Flask+SocketIO 的 Web 界面,覆盖图片/视频/摄像头三源输入、双画面对比、进度控制、CSV 导出与 SQLite 入库的可追溯闭环 [4]。
(4)算法效果对比分析:在统一协议下报告 mAP、F1、PR 曲线与训练曲线,并结合误检/漏检样例给出结构性原因与改进建议 [5]。
(5)完整的数据与代码:提供工程与数据集下载入口,便于复现与二次开发 [4]。


3. 数据集处理

本研究使用的钢材表面缺陷数据集共 3037 张图像,按照训练/验证/测试划分为 1862/583/592 张,约占 61.3% / 19.2% / 19.5%。标注采用 YOLO 检测格式(每行:class x y w h,坐标与尺度归一化到 0–1),类别为 4 类:Cacat_Korosi(腐蚀缺陷)Cacat_Las(焊接缺陷)Cacat_Lubang(孔洞缺陷)Cacat_Retak(裂纹缺陷);界面展示与报告统一使用中文名映射以便读者理解。从读者提供的类别柱状图与样例可见,焊接缺陷实例量最多,其次为腐蚀,孔洞与裂纹相对较少,存在明显的类间不均衡;bbox 的 x、y 分布在图像中心附近略有聚集,width/height 呈明显的“小目标长尾”,同时可见极少数近大目标的长边框,这与钢板局部拍摄与焊缝条带形态高度相关。为避免信息泄漏,划分在图像级完成并尽量保持各类在三份中的占比一致,固定随机种子 42 以保障可复现。

Chinese_name = {'Cacat_Korosi': "腐蚀缺陷", 'Cacat_Las': "焊接缺陷", 'Cacat_Lubang': "孔洞缺陷", 'Cacat_Retak': "裂纹缺陷"}

        
在这里插入图片描述

预处理阶段采用按 640×640 的 letterbox 缩放、像素归一化与颜色空间统一;对异常标注进行系统清洗,包括去除零面积/越界框、裁剪溢出、重复图去重(pHash 阈值约 10)、文件名与标签一致性校验,并生成数据统计 CSV 用于后续可追溯。针对“强反光+高纹理+小目标密集”的任务难点,训练增强组合为:随机 HSV/亮度对比度与 CLAHE 提升锈蚀/油污下的可见度;Mosaic(p≈0.5)MixUp(α≈0.1) 扩大尺度与上下文多样性;Copy-Paste 针对少样本类(孔洞、裂纹)进行类感知过采样;轻量 RandomPerspective/仿射GaussianBlur/运动模糊 用于模拟相机抖动和传送带运动;对高反光样本额外加入“高光贴片”与镜面噪声模拟以提升对炫光与金属反射的鲁棒性。增强后的标签同步变换并做 IoU 裁剪,确保小目标不过度失真;同时在数据加载器端按类权重进行采样,缓解长尾分布对收敛与召回的不利影响。上述处理与读者提供的统计图(类别计数、bbox 位置与尺度分布、样例可视化)形成闭环,可直接支撑后续 YOLOv5–YOLOv12 的统一训练与网页端实时推理展示。
在这里插入图片描述


4. 模型原理与设计

本系统以 YOLOv12 为主线、兼容 YOLOv5–YOLOv11 的统一训练与推理接口。整体范式为单阶段密集预测:输入经多尺度特征提取与融合后,在解耦检测头上同时进行类别概率、边界框回归与(可选的)分布式边界表示学习;推理端默认启用置信度阈值过滤与 NMS/(可选 NMS-free 一致性分配)得到最终框。针对钢材表面“强反光+纹理复杂+小目标密集”的特点,博主采用 3 个步幅(8/16/32)输出层与更轻的主干,在保证 640×640 分辨率下的吞吐的同时留足对小尺度焊缝、裂纹与孔洞的感受野;同时在前端设计了“同步双帧”渲染,使得模型输出与原图能在浏览器侧对齐复现其空间一致性。

网络结构沿用“轻量主干 + 高效颈部 + 解耦头”的脉络:主干以 C2f/ELAN-style 多分支残差聚合单元为核心,结合 SPPF 扩大有效感受野并以 SiLU 激活稳定深层梯度;颈部采用 PAN-FPN/BiFPN 融合实现自顶向下与自底向上双向信息流,必要时在颈部插入 EMA/CBAM 等轻量注意力以抑制金属高光噪声;检测头为解耦结构,将分类与回归分支拆开,便于对长尾类别进行温和重加权。卷积–BN–激活的基础单元满足输出张量大小关系

\[H_{out}=\Big\lfloor \frac{H+2p-k}{s}+1 \Big\rfloor,\quad W_{out}=\Big\lfloor \frac{W+2p-k}{s}+1 \Big\rfloor, \]

其中 \(k,s,p\) 分别为核大小、步幅与填充,保证各尺度特征图与步幅 8/16/32 对齐。网络整体架构图可参考 :
在这里插入图片描述
损失与任务建模方面,定位分支采用 IoU 家族的几何一致性度量;基本 IoU 定义为

\[IoU=\frac{|B\cap G|}{|B\cup G|}, \]

其中 \(B,G\) 为预测与真实框。为兼顾中心对齐与形状一致,常用 CIoU

\[\mathcal{L}*{\mathrm{CIoU}}=1-IoU+\frac{\rho^2!\left((x_b,y_b),(x_g,y_g)\right)}{c^2}+\alpha,v, \]

其中 \(\rho^2\) 为中心距离平方,\(c\) 为外接对角线长度,\(v\) 度量宽高比一致性,\(\alpha\) 为权衡系数;在钢材细长焊缝与裂纹场景下,为提升宽高收敛稳定性,可用 EIoU 进行分解惩罚:

\[\mathcal{L}*{\mathrm{EIoU}}=1-IoU+\frac{(x_b-x_g)^2+(y_b-y_g)^2}{c^2} +\frac{(w_b-w_g)^2}{w_g^2}+\frac{(h_b-h_g)^2}{h_g^2}. \]

分类分支采用带标签平滑的二元交叉熵或 Focal Loss

\[\mathcal{L}*{\mathrm{cls}}=-\alpha(1-p)^{\gamma}y\log p-,(1-\alpha)p^{\gamma}(1-y)\log(1-p), \]

其中 \(p\) 为预测概率、\(y!\in!{0,1}\),用以对付“背景远多于缺陷”的不均衡;边界分布精修使用 DFL(Distribution Focal Loss) 以子像素精度回归边界。总体损失写为

\[\mathcal{L}=\lambda*{\mathrm{box}}\mathcal{L}*{\mathrm{(C/E)IoU}} +\lambda*{\mathrm{cls}}\mathcal{L}*{\mathrm{cls}} +\lambda*{\mathrm{dfl}}\mathcal{L}_{\mathrm{DFL}}, \]

三个权重根据验证集稳定性与召回需求调节。

训练与正则化遵循“稳定收敛 + 实时部署”原则。优化器选 SGD / AdamW 搭配 Cosine 学习率与线性 warm-up,EMA 保持器追踪滑动权重;数据侧配合 Mosaic/MixUp、仿射与高光噪声模拟以贴近钢板反光与运动模糊;正则化使用 BatchNorm/DropBlock 与轻度 label smoothing,抑制在小样本长尾上的过拟合。推理端默认 conf=0.25、iou=0.5,在双帧对比页面暴露 Conf/IoU 滑块与类别筛选以适配不同批次材质与光照;当部署到 TensorRT/ONNX 时,优先启用 FP16(可选 INT8/QAT)与 图融合/层归并,并根据产线节拍在 n/s 尺寸模型之间切换,实现“毫秒级”延迟与稳定召回。上述设计与数据统计特征一一对应:多尺度解耦头+IoU 家族损失应对尺度差异与类间相似,注意力+高光增强缓解强反光,DFL 与阈值联调提升焊缝与裂纹等细长目标的定位精度。


5. 实验结果与分析

本节在 NVIDIA GeForce RTX 3070 Laptop(8 GB) 上统一评测八种 YOLO 版本的 n/s 尺度,度量包含参数量、FLOPs、预处理/推理/后处理耗时、Precision/Recall、F1、mAP50 与 mAP50–95;评估协议与数据划分同第 3 章,网页端以“同步双帧 + PR/F1 曲线联动”的方式实时回显。
在这里插入图片描述

总体来看,n 型YOLOv11nmAP50=0.365 位列第一且 F1=0.410,兼顾精度与速度;YOLOv9t 的 F1=0.424 居首但推理更慢;YOLOv8n10.17 ms 端到端延迟(≈98 FPS)下给出较优折中。
在这里插入图片描述

s 型YOLOv11smAP50=0.376、F1=0.422 取得最优综合表现,YOLOv8s 延迟最低(11.39 ms ≈ 87.8 FPS)且精度紧随其后,适合更严的节拍约束。上述结论与读者提供的双条形图与平均 PR 曲线一致(见上图),其中 n 型与 s 型的最佳两档都落在 YOLOv11YOLOv8 上,体现“新架构稳定性 + 训练范式成熟”的工程优势。
在这里插入图片描述

从误差结构看,混淆矩阵显示 Cacat_Korosi/腐蚀Cacat_Las/焊接 的对角元素分别约 0.68/0.53,而 Cacat_Lubang/孔洞Cacat_Retak/裂纹 的召回偏低(对角 0.26/0.37),且四类均存在不同程度的 背景化(最后一列高值),这解释了宏平均 F1 的天花板(蓝粗线峰值 ≈0.40);
在这里插入图片描述

F1–Confidence 曲线提示全类最佳阈值约 conf≈0.51,但分类别更优阈值并不一致:腐蚀与焊接在 0.45–0.6 一带达到峰值,而孔洞与裂纹更偏向 0.35–0.5
在这里插入图片描述

PR 曲线进一步表明四类 mAP@0.5 约为 0.593/0.537/0.096/0.219,孔洞与裂纹显著落后,其成因与数据的“小目标长尾 + 强反光 + 纹理遮挡”吻合。训练过程的 loss 与 mAP 曲线呈现稳定单调下降与后期缓慢提升的趋势,mAP50–95 波动较大,提示高 IoU 下的定位仍可通过更针对性的回归损失或更长训练日程改善。
在这里插入图片描述

面向部署落点,若以 ≤12 ms 延迟为约束,推荐 YOLOv8n/YOLOv8s 搭配 conf≈0.50、iou≈0.50 的默认阈值,并在网页端按类启用差异化阈值类别筛选以增益实际召回;若以更高精度为首要目标且允许 12–14 ms 延迟,推荐 YOLOv11n/YOLOv11s 作为主模型,测试中在难类上有更稳的 PR 斜率。结合混淆矩阵的诊断,工程上可在不改动前端的前提下获得进一步提升:对 孔洞/裂纹 进行 类感知过采样(Copy-Paste)长条形/圆洞合成增强,训练期开启 EIoU/CIoU+DFL 的较高权重,推理侧为难类设置 更低 conf 与更高 nms-iou;此外,网页端“最近记录”中对低置信度命中启用高亮复核一键导出误检样本,闭环补充再训练集,可有效抬升弱类 mAP 与宏平均 F1。

表 5-1 统一评测结果(n 型)

Model Params(M) FLOPs(G) PreTime InfTime PostTime Precision Recall F1 Score mAP50 mAP50-95
YOLOv5nu 2.6 7.7 1.90 7.73 1.31 0.351 0.409 0.378 0.337 0.206
YOLOv6n 4.3 11.1 2.17 6.78 1.39 0.469 0.261 0.335 0.314 0.179
YOLOv7-tiny 6.2 13.8 2.28 14.74 4.06 0.267 0.303 0.284 0.207 0.094
YOLOv8n 3.2 8.7 1.95 6.83 1.39 0.433 0.356 0.390 0.327 0.203
YOLOv9t 2.0 7.7 1.87 16.51 1.29 0.454 0.399 0.424 0.362 0.231
YOLOv10n 2.3 6.7 2.08 11.24 0.63 0.392 0.384 0.388 0.355 0.204
YOLOv11n 2.6 6.5 2.11 9.44 1.42 0.500 0.347 0.410 0.365 0.233
YOLOv12n 2.6 6.5 1.91 12.47 1.37 0.457 0.344 0.392 0.343 0.213

表 5-2 统一评测结果(s 型)

Model Params(M) FLOPs(G) PreTime InfTime PostTime Precision Recall F1 Score mAP50 mAP50-95
YOLOv5su 9.1 24.0 2.28 8.45 1.51 0.376 0.387 0.381 0.350 0.193
YOLOv6s 17.2 44.2 2.22 8.59 1.45 0.392 0.304 0.342 0.319 0.189
YOLOv7 36.9 104.7 2.44 23.62 3.46 0.479 0.387 0.428 0.332 0.190
YOLOv8s 11.2 28.6 2.31 7.66 1.42 0.467 0.373 0.415 0.370 0.222
YOLOv9s 7.2 26.7 2.12 18.66 1.39 0.434 0.384 0.407 0.344 0.222
YOLOv10s 7.2 21.6 2.21 11.38 0.60 0.486 0.343 0.402 0.354 0.216
YOLOv11s 9.4 21.5 2.37 9.74 1.36 0.466 0.387 0.422 0.376 0.237
YOLOv12s 9.3 21.4 2.09 13.23 1.42 0.492 0.354 0.412 0.361 0.220

图 5-1 双条形图(n 型,F1 与 mAP@0.5)
在这里插入图片描述

图 5-2 双条形图(s 型,F1 与 mAP@0.5)
在这里插入图片描述

综合以上,我们在精度—速度—易部署三维上给出面向产线的两档推荐:其一,YOLOv8n/s 作为“高节拍”默认(≈88–98 FPS),配合差异化阈值与类别筛选,适合在线巡检与大规模回放;其二,YOLOv11n/s 作为“高精度”主力,在弱类检出的总体收益最高,适合质检站点与复核场景。对于弱类(孔洞/裂纹),建议在平台启用难例采样 + 误检回灌的轻量闭环,并在训练侧增加 高反光合成更长 Cosine 日程;在部署侧,以 FP16 TensorRT 为默认,加可选 INT8(QAT 校准) 进一步压缩延迟,确保 Web 端在 640×640 输入下实现“毫秒级”推理与稳定的双画面对比展示。


6. 系统设计与实现

6.1 系统设计思路

本系统采用四层分层架构:表现与交互层(Web 网页界面)、业务与会话管理层、推理与任务调度层、数据持久化层。数据流自“多源输入(图片/视频/浏览器摄像头)”进入预处理模块完成尺寸与色彩规范化,再送入 YOLO 推理引擎(PyTorch/ONNX/TensorRT 可切换);后处理与统计模块生成检测框、类别分布、PR/F1 指标,并通过 Flask-SocketIO 将原图与绘制结果作为“同步双帧”流推送浏览器端,以保证空间与时间的一致性。前端在统一视图中提供阈值与类别筛选、进度控制、双画面对比与结果回放,形成交互闭环。

为满足在线场景的实时性与一致性,本系统在推理与任务调度层引入轻量任务队列与双缓冲帧设计:视频与摄像头任务以会话级队列绑定,逐帧完成预处理→推理→后处理的流水化执行;参数(Conf/IoU、类别过滤、模型权重)采用会话广播机制保持“后端使用参数 = 前端展示参数”。权限与会话由业务层统一管理,登录/注册/跳过三种模式在当前标签页生效并限定导出与入库能力,从而在多用户并发与长时间运行中保持稳定且可审计。

数据持久化层负责结构化记录的落盘与检索:检测结果(bbox、score、类别、阈值)与过程元数据(时间戳、模型版本、会话 ID)写入 SQLite,导出中心统一管理 CSV 与带框图片/视频;数据库迁移脚本保证版本升级后的兼容性。模型权重管理模块支持在线上传、版本注释与回滚;当推理引擎切换(PyTorch/ONNX/TensorRT)或量化策略变更(FP16/INT8)时,系统自动刷新类别映射与颜色面板,以确保前后端展示一致并降低操作风险。


图 6-1 系统流程图
图注:系统自初始化后接受多源输入,完成“预处理—推理—后处理—统计—可视化—导出/入库”闭环;通过 SocketIO 实现原图/检测图同步双帧与参数一致性。
在这里插入图片描述


图 6-2 系统设计框图
图注:以分层方式展示模块边界与接口类型;蓝色连线为 SocketIO 实时流,灰色为 REST/文件,绿色为数据库读写。
在这里插入图片描述


6.2 登录与账户管理

在这里插入图片描述

上述流程以“登录/注册/跳过”三种入口统一到当前标签页会话,口令以哈希存储并结合登录节流策略;进入主界面后系统加载个性化配置与历史记录,权限驱动导出与入库能力;资料修改与注销操作通过会话刷新与日志记录与主检测流程紧密衔接,保证用户体验与可追溯性。


代码下载链接

        如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:

在这里插入图片描述

在这里插入图片描述

        资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷

完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/HfqUwjfIoirKPNkrp7EcdR3LnSf

讲解视频地址:https://www.bilibili.com/video/BV1xoDXBQE9z/

完整安装运行教程:

        这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:

  1. Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;

        软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):

  1. Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;

7. 结论与未来工作

本文面向钢材表面缺陷的在线质检,构建了基于 Flask+SocketIO 的 Web 平台与端到端推理链路,统一支持图片/视频/摄像头输入、原图—检测图双画面对比、进度控制、CSV 导出与 SQLite 入库,并打通 YOLOv5–YOLOv12 的模型选择与权重热切换。实验表明,在 RTX 3070 Laptop 上,YOLOv11n/s 在综合精度上更稳,YOLOv8n/s 在延迟上更有优势;混淆矩阵与 PR 曲线提示孔洞、裂纹类受小目标与强反光影响较大,差异化阈值、类感知过采样与 EIoU/DFL 权重提升能带来可观增益。总体上,系统已满足“毫秒级推理—可视交互—可追溯导出”的产线需求,具备向其他机械器件外观检测场景(如铝型材刮伤、螺栓缺陷、焊点质量)的良好可迁移性。

未来工作将从三条路径推进:模型侧继续探索蒸馏、结构剪枝与 INT8 量化的协同,以及多模态与自监督预训练以增强在高反光与弱纹理场景的泛化;系统侧引入 Docker 化与分布式任务队列、WebRTC 实时推流、角色权限与审计、i18n 与多租户支持,完善日志告警与健康检查,强化长时稳定性;数据侧构建主动学习闭环与在线评估,联动“误检/漏检一键回灌—增量再训练—版本灰度发布”,并引入数据治理与漂移监测,确保在复杂工况与批次更替下持续稳定输出。上述迭代将与现有前后端接口保持兼容,形成可复用的工业视觉质检底座。


参考文献(GB/T 7714)

[1] Karakaya M, Ozcan T. Systematic review of steel surface defect detection methods on the open datasets[C]//Intelligent and Fuzzy Systems. Cham: Springer, 2024.
[2] Song K, Yan Y. NEU surface defect database[EB/OL]. Northeastern University, 2013–2025.
[3] Lv X, et al. Deep metallic surface defect detection: GC10-DET[J]. Sensors, 2020, 20(6):1562.
[4] Kaggle. Severstal: Steel Defect Detection[EB/OL]. 2019–2025.
[5] Huang B, Liu J, Liu X, et al. Improved YOLOv5 for steel surface defect detection[J]. Metals, 2023, 13(8):1439.
[6] Liu Y, et al. Strip steel surface defect detection based on lightweight YOLOv5[J]. Frontiers in Neurorobotics, 2023, 17:1263739.
[7] 何志鹏, 等. 基于改进YOLOv8的热轧带钢表面缺陷检测方法[J]. 湖南大学学报(自然科学版), 2024.
[8] 邵××, 等. 基于改进YOLOv5s的钢铁表面缺陷检测模型研究[J]. 南昌航空大学学报, 2025.
[9] Wang J, et al. LGM-YOLO: A context-aware multi-scale YOLO-based network for industrial surface defect detection[J]. Processes, 2025, 13(8):2411.
[10] Liu W, Anguelov D, Erhan D, et al. SSD: Single shot multibox detector[C]//ECCV. 2016.
[11] Lin T-Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//ICCV. 2017.
[12] Tian Z, Shen C, Chen H, He T. FCOS: Fully convolutional one-stage object detection[C]//ICCV. 2019.
[13] Zhou X, Wang D, Krähenbühl P. Objects as points[EB/OL]. arXiv:1904.07850, 2019.
[14] Rezatofighi H, Tsoi N, Gwak J, et al. Generalized IoU: A metric and a loss for bounding box regression[C]//CVPR. 2019.
[15] Zheng Z, Wang P, Liu W, et al. Distance-IoU loss[EB/OL]. arXiv:1911.08287, 2019.
[16] Zhang Y-F, Ren W, Zhang Z, et al. Focal and efficient IoU loss[J]. Neurocomputing, 2022, 506:146–157.
[17] Carion N, Massa F, Synnaeve G, et al. End-to-end object detection with transformers[C]//ECCV. 2020.
[18] Lv W, Wang X, Xu S, et al. RT-DETR: Real-time detection transformer[EB/OL]. arXiv:2304.08069, 2023.
[19] Wang A, Chen H, Liu L, et al. YOLOv10: Real-time end-to-end object detection[EB/OL]. arXiv:2405.14458, 2024.
[20] Ultralytics. YOLOv11 has arrived—blog post[EB/OL]. 2024.
[21] Ultralytics. YOLOv12 model documentation[EB/OL]. 2025.
[22] Li C, Li L, Jiang H, et al. YOLOv6: A single-stage object detection framework for industrial applications[EB/OL]. arXiv:2209.02976, 2022.
[23] Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time object detectors[EB/OL]. arXiv:2207.02696, 2022.
[24] Ultralytics. YOLOv8 documentation[EB/OL]. 2023–2025.
[25] Microsoft & NVIDIA. ONNX Runtime TensorRT Execution Provider[EB/OL]. 2025.
[26] NVIDIA. TensorRT quantization documentation[EB/OL]. 2025.
[27] Jacob B, Kligys S, Chen B, et al. Quantization and training of neural networks for efficient integer-arithmetic-only inference[C]//CVPR. 2018.

http://www.jsqmd.com/news/687348/

相关文章:

  • 别再手动折腾DLL了!用Winetricks一键搞定Linux下Wine环境配置(附QQ安装实战)
  • 从原理到优化:深入拆解Cesium自定义材质实现水面倒影的Shader技巧
  • 全自动微信聊天+公域获客+短视频分发,智能数字员工系统源码分享
  • 最新YOLO实现的草莓成熟度实时检测平台(Flask+SocketIO+HTML_CSS_JS)
  • Jetson Xavier NX 上唯一那个CAN口到底在哪?别再照着老教程找40针了
  • d2s-editor:5分钟掌握暗黑破坏神2存档修改技巧
  • 哪款雅思机考软件提供完整成绩报告?2026备考工具实测推荐 - 品牌2026
  • AI政策路径推演:凯文·沃什延迟上任情境下的鲍威尔留任机制分析
  • 别再纠结选哪种深度相机了!立体视觉、结构光、TOF,看完这篇保姆级对比你就懂了
  • 为什么 LINUX DO 突然这么火?一个程序员拆解背后的5个互联网逻辑
  • LIN总线测试避坑指南:详解linInvertRespBit与linInvertHeaderBit在数据场/校验位干扰中的区别与应用
  • Jellyfin Kodi插件终极指南:打造无缝家庭影院体验的5个关键步骤
  • 5分钟掌握Diff Checker:终极免费文本差异对比工具使用指南
  • iOSDeviceSupport:Xcode设备调试兼容性问题的终极解决方案
  • 告警管理化技术告警收敛与通知策略
  • 保姆级教程:用iwpriv命令调优MT7628/MT7615路由器WiFi性能(含参数详解)
  • 最新YOLO实现的舰船检测与识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)
  • SpaceX 拟 600 亿美元收购 Cursor,AI 编码赛道竞争白热化!
  • 2024机器学习新手必备7大免费工具全解析
  • 抖音批量下载工具终极指南:免费高效下载视频、音乐与图集
  • [AutoSar]BSW_OS 05 Autosar OS_ISR 实战:从配置到代码的嵌入式中断设计
  • 从理论到代码:用Python/Simulink复现积分滑模控制器(附抖振抑制对比)
  • 告别虚拟机卡顿!用WSL2+Miniconda3在Windows上丝滑搭建生信环境(保姆级避坑指南)
  • 别再折腾虚拟机了!用WSL2+Ubuntu 22.04搭建GitLab个人开发环境(保姆级避坑指南)
  • Windows Cleaner终极秘籍:从根源解决C盘爆红问题的高效实战
  • RWKV7-1.5B-world企业应用:低成本GPU算力下高并发轻量对话服务落地解析
  • 告别玄学调试!用STM32CubeMX+NRF24L01快速搭建无线通信(附完整工程)
  • CESM2.1.3实战:手把手完成你的第一个‘Hello World’案例(含环境配置避坑指南)
  • 香橙派OrangPi PC变身复古游戏机:Lakka系统从烧录到中文设置保姆级教程
  • ESP32固件恢复终极指南:3种简单方法让“变砖“设备起死回生