最新YOLO实现的铁轨缺陷实时检测平台(Flask+SocketIO+HTML_CSS_JS)
摘要
本文面向轨道交通场景,构建并开源一套铁轨缺陷实时检测平台:后端基于 Flask + Flask-SocketIO,前端以 HTML/CSS/JS 实现网页端一体化工作流,覆盖图片/视频/浏览器摄像头三类输入;提供即时双画面对比(原图/检测结果等宽 16:9 自适应)、视频同步双帧与进度/暂停/继续/停止控制,支持Conf/IoU 调节、类别筛选、CSV 导出与带框结果一键下载。平台内置 YOLOv5–YOLOv12(共 8 种)检测算法,支持模型选择/权重上传与在线切换,自动刷新类别映射;训练与评测侧给出mAP、F1、PR 曲线、训练曲线与混淆矩阵等关键指标对比,定位裂纹、掉块、异物侵限、扣件松动等多类缺陷。系统包含登录/注册(可跳过)、会话与权限控制、SQLite 结果入库与追溯,提供批量导出、按文件名/时间高亮定位与溯源筛选;支持长时段视频缓冲转码为 MP4与断点续传。整体强调低延迟推理(可接入 ONNX/TensorRT 加速)、弱光/雨雪/眩光鲁棒增强与可视化可解释分析,帮助运维人员在浏览器端完成“采集—检测—比对—导出—归档”闭环。文末提供完整工程与数据集下载链接。
讲解视频地址:基于深度学习的铁轨缺陷检测系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59pZw==
说明论文下载:https://mbd.pub/o/bread/YZWck5xpbQ==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmppraQ==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5pqaA==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lrZw==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9xZA==
安装与教程文档:https://deeppython.feishu.cn/wiki/L8xCw9CQpivKYRkNHjicJOHNnLc
@
1. 网页功能与效果
(1)登录注册提供账号登录、快速注册与一次性跳过三种入口;未登录进入受限模式,仅保存临时会话,登录后在当前浏览器会话内生效个性化配置与历史记录。口令采用哈希存储并结合基础会话校验,确保常规安全与良好体验。

(2)功能概况聚合图片检测、视频检测与摄像头检测三种入口,统一的模型选择面板与参数区支持 Conf/IoU 调节与类别筛选。结果可在导出视图集中管理,支持 CSV 导出与带框图片/视频一键下载,满足质检留痕与复盘需求。

(3)视频检测采用同步双帧展示原始与推理结果,左右等宽且自适应 16:9,提供进度、暂停、继续与停止控制以保障逐帧一致性。长时段流可在浏览器端缓冲并导出为 MP4,同时保留关键帧与统计信息以便回溯。

(4)更换模型支持上传权重即时切换 YOLOv5–YOLOv12,并在加载完成后自动刷新类别与配色映射。页面品牌元素与标题可编辑并本地保存;路径与命名遵循跨平台规范,数据库自动迁移保障升级平滑与持续可用。

(5)概览界面提供近期任务、模型性能与数据量的可视摘要,支持按时间、文件名与类别快速定位记录。检测记录与导出清单在此处一站式浏览与下载,并可高亮异常项,便于运维与质检人员快速决策。

2. 绪论
2.1 研究背景与意义
轨道缺陷(如裂纹、掉块、压溃与扣件松动)直接关联行车安全与维修经济性,传统人工巡检与离线无损检测在长距离、高频次巡查中易受环境与人因影响而漏检、误检,促使行业向机器视觉与深度学习的在线实时检测演进 1。北美等铁路运营方已将高通量视觉检测与在线告警纳入检修流程,验证了“边采集、边识别、边告警”的价值闭环与工程可行性 2。在浏览器与轻端推理日益成熟的背景下,WebGPU/ONNX Runtime Web 使得在Web 端进行低延迟推理成为现实,为“端—边—云”一体化部署提供了新的落地路径 3。
2.2 国内外研究现状
面向“行车场景下的轨面与扣件缺陷实时检测”,数据与算法需同时应对:细小裂纹与油污反光导致的低对比度与小尺度目标、扣件与异物的类间相似性、枕木阴影/雨雪尘土引起的光照与遮挡、以及列车速度波动带来的时序稳定性挑战 4。针对轨面缺陷,多尺度感受野与注意力是主线改进:以 YOLOv8n 为基线的 RSDNet 通过级联空洞卷积与 BiFPN 融合,在 RSDDs 集合上取得 mAP 95.4%,显著缓解小缺陷漏检 4。针对扣件缺陷,融合注意力与多尺度特征的改进 YOLOv5s 在自建数据上达 mAP 97.4%、27.3 FPS,并给出在雨天与弱光条件下的稳健性验证 5。面向在线应用的“采样—检测—识别—告警”闭环,改进 YOLOv5 的系统在 GTX1080Ti 上报告 12 ms/帧与 94.6% mAP,体现出工程侧的实时可用性 6。
就检测范式而言,Anchor-based 的 SSD/YOLO 系统依赖预设锚框,便于与工程经验结合但对小目标与密集场景需额外设计 7;Anchor-free 的 FCOS 与 CenterNet 通过像素级/中心点建模,减少超参数并在拥挤与尺度分布复杂时展现出更好的鲁棒性 8。训练与推理层面,回归损失由 IoU 演进到 GIoU/DIoU/CIoU/EIoU,以改善无重叠与长宽比失配下的收敛与定位精度 1012;正负样本分配从启发式走向最优化与任务对齐,典型如 OTA 与 TOOD,提升密集与长尾场景的收敛效率与检测质量 13。Transformer 检测器方面,DETR 以集合预测与一对一匹配消除了 NMS,RT-DETR 则在 T4 上实现 108 FPS/53.1 AP 的实时端到端检测,为“低延迟+无 NMS”部署提供可能 15。
YOLO 家族在近三年持续演进:YOLOv7 强化训练策略与可扩展解耦头以刷新实时精度上限 17;YOLOv9 以可编程梯度信息(PGI)与 GELAN 骨干提升轻量模型的特征保真度 18;YOLOv10 通过一致双分配实现NMS-free训练并系统性压缩冗余计算,显著降低延迟 20;Ultralytics YOLOv11 作为生产优选在稳定性与生态上更成熟,而 YOLOv12 引入注意力中心化设计,在同等延迟下提升 mAP,但被官方定位为“社区/研究优先”的版本,部署需关注显存与 CPU 吞吐 21。在工程侧,加速与部署路径涵盖 TensorRT/FP16-INT8 量化、剪枝蒸馏与 ONNX/TensorRT/NCNN/ORT Web 端推理,其中 WebGPU EP 支持图捕获与 I/O 绑定,降低端侧内存拷贝与调度开销 3。
为便于核查,下表汇总与本文任务密切相关的代表性方法、关键技术与指标(节选):
| 方法 | 范式/家族 | 数据集 | 关键技术 | 指标/延迟 | 适用难点与局限 |
|---|---|---|---|---|---|
| 改进 YOLOv5(轨面缺陷) | YOLOv5/单阶段 | 自建轨面 | 空洞卷积+注意力 | mAP 96.9%,29.2 ms/图 | 小缺陷与低对比增强有效,泛化依赖数据 23 |
| 改进 YOLOv5s(扣件) | YOLOv5s/单阶段 | 自建扣件 | CBAM+BiFPN+重聚类 | mAP 97.4%,27.3 FPS | 雨天弱光稳健,轻量化仍可优化 5 |
| 在线扣件检测 YOLOv5 | YOLOv5/单阶段 | 工程部署 | FEL 少样本增强 | 94.6% mAP,12 ms/帧 | 数据量偏小,侧重工程闭环 6 |
| RSDNet(轨面) | YOLOv8n/单阶段 | RSDDs | CDConv+BiFPN+EMA | mAP 95.4% | 小目标/多尺度显著提升 4 |
| RT-DETR-R50 | Transformer/E2E | COCO | 混合编码器+不确定性选取 | 53.1 AP,108 FPS(T4) | 端到端、免 NMS,轻量部署需调参 16 |
| YOLOv10-S | YOLOv10/单阶段 | COCO | 一致双分配+架构整形 | 同精度下快于 RT-DETR-R18 1.8× | NMS-free 训练,工程兼容性好 20 |
2.3 要解决的问题及其方案
(1)准确性与实时性:轨面细裂纹、掉块边缘与扣件微位移是主要误检/漏检来源,同时需在移动平台上保持低延迟与稳定帧率;方案采用 YOLOv12/YOLOv11/YOLOv10/YOLOv8 系列多模型对比,结合多尺度注意力与改进 IoU 损失,并启用 TensorRT/FP16-INT8、CUDA 流水并行与批-流融合以优化端到端时延 20。(2)环境适应与泛化:弱光、雨雪、油污与强反光导致域偏移;方案引入曝光/伽玛自适应与合成增强,结合半监督/蒸馏与任务对齐分配以缓解长尾与小样本问题 14。(3)Web 端交互与可用性:需要“图片/视频/摄像头”一站式检测、双画面对比、进度与一键导出;方案以 Flask+Flask-SocketIO 实现推送,浏览器侧利用 Canvas/WebGL/WebGPU 渲染,ONNX Runtime WebGPU EP 降低端侧拷贝并实现低延迟可视 3。(4)数据治理与可追溯:需要在线统计、CSV 导出、SQLite 入库与模型/权重可溯源;方案以统一结果 Schema 与任务 ID 关联素材、参数与模型版本,并提供会话层权限与批量归档。
2.4 博文贡献与组织结构
(1)综合文献综述:围绕轨面与扣件缺陷实时检测,系统梳理 YOLOv5–YOLOv12、RT-DETR 与 Anchor-free 范式在“小目标/强反光/遮挡/长尾/实时性”维度的适配性证据,并以表格给出可追溯指标与来源 462022。(2)模型选择与优化:在保证工程可落地的前提下,优先选取稳定生态(YOLOv11/YOLOv10),对比 YOLOv12 的注意力收益与代价,并结合 G/DIoU/CIoU/EIoU、OTA/TOOD 与 TensorRT/量化的部署策略 10121421。(3)美观友好的 Web 设计:提供登录/注册(可跳过)、概览—图片/视频/摄像头—模型选择—导出的一体化导航,双画面对比、同步双帧与进度控制、CSV/带框结果一键下载与 SQLite 入库,提升可用性与可追溯。(4)算法效果对比:统一给出 mAP、F1、PR 曲线与训练曲线,覆盖 yolov5n/yolov6n/yolov7-tiny/yolov8n/yolov9t/yolov10n/yolo11n/yolo12n 的对比,分析结构性差异与任务耦合。(5)完整资源:文末提供工程与数据集下载地址,便于复现与二次开发。全文后续章节依次展开:第 3 章介绍数据集处理与增强;第 4 章阐述模型原理与设计;第 5 章报告实验与分析;第 6 章描述系统设计与实现;第 7 章给出结论与展望。
3. 数据集处理
本研究使用自建铁轨缺陷数据集,共 2234 张高分辨率图像,按训练/验证/测试 = 1888/173/173 划分,比例约为 84.52%/7.74%/7.74%,采用固定随机种子(seed=42)以保证复现实验。标注采用 YOLO 格式(中心点 \((x,y)\) 与宽高 \((w,h)\) 归一化到 \([0,1]\)),类别共 6 类:fastener(紧固件)、fastener-2(紧固件-2)、fastener2_broken(紧固件2_损坏)、fastener_broken(紧固件_损坏)、missing(缺失)、trackbed_stuff(轨床杂物)。训练阶段使用矩形采样与 letterbox 保持纵横比,将高分图按目标分布自适应缩放到推理分辨率(默认 1280 边或 640 方形)并统一转为 RGB 色域,确保标注几何与像素统计的一致性。
Chinese_name = {"fastener": "紧固件", "fastener-2": "紧固件-2", "fastener2_broken": "紧固件2_损坏",
"fastener_broken": "紧固件_损坏", "missing": "缺失", "trackbed_stuff": "轨床杂物"}

从提供的散点矩阵与直方图可见,目标中心 \(x\) 呈双峰分布(对应两侧扣件),\(y\) 在轨面邻域更为集中,\(w/h\) 高度集中于小尺度区间,显示出“小目标、窄长比、背景碎石高纹理”的典型特征;样例拼图显示雨痕、眩光与阴影造成的对比度下降,以及遮挡与类间相似(“紧固件 vs. 紧固件-2/损坏/缺失”)带来的判别难度。基于此,数据治理首先完成重复图去重、空框/异常框清洗与边界越界修复;其次在划分上按线路区段或时间段隔离,避免同一场景跨集合泄漏;最后在标注层面对“缺失/杂物”这类尾部类别进行复核与补标,以减轻长尾导致的学习偏置。

增强与预处理策略围绕“提升小目标可见性、抑制域移、贴合真实运动模糊”设计:训练时启用 Mosaic/随机仿射/随机尺度抖动与随机裁剪,结合 HSV 抖动、CLAHE/自适应伽玛以对抗弱光与反光;混合 MotionBlur/雨雪与噪声合成覆盖动态模糊与恶劣天气;对尾部类别采用温和的重复采样或类别重加权,保证召回不被主类淹没;增强后的框按 YOLO 规则实时重映射并过滤极小框,验证/测试集仅保留几何一致性增强(如 letterbox 和归一化),以保证评测客观。上述处理与分布分析将直接服务于后续锚框/特征层配置与小目标优化,并与网页端的“类别筛选、双画面对比、误检回放”形成数据—算法—可视化的闭环。
4. 模型原理与设计
本文以 YOLOv12 为主线实现铁轨缺陷检测。总体范式延续单阶段、Anchor-free、解耦检测头与三尺度金字塔特征融合(P3/P4/P5),在 6 类目标上进行端到端训练与实时推理。选用 YOLOv12 的原因在于其在保持 YOLOv11 训练稳定性与推理生态的同时,进一步强调注意力与轻量化卷积的协同,对“扣件体积小、纹理碎、反光强”的铁路场景更友好;结合 Anchor-free 的点集回归和解耦头,可减轻锚框匹配在密集/小目标下的歧义。平台将该检测器与 Flask-SocketIO 的同步双帧通道耦合,使特征到框、框到渲染的路径最短,便于在浏览器端以 16:9 自适应地进行“原图/结果”对比。网络整体架构可参考下述示意图(Backbone-Neck-Head 三段式、Anchor-free 解耦头):

结构方面,Backbone 采用带残差分支与跨阶段连接的轻量化块(CSP/C2f 一类),通过 \(3\times3\) 与 \(1\times1\) 卷积交替堆叠以控制通道与感受野;单层卷积写作 \(\mathbf{Y}=\sigma(\mathrm{BN}(\mathbf{W} * \mathbf{X}+\mathbf{b}))\),其中 \(\mathbf{X}\)、\(\mathbf{Y}\) 为输入/输出特征,\(\mathbf{W}\) 为卷积核,\(\sigma\) 为激活函数。Neck 采用改进的 PAN/FPN 融合,上采样与跨层连接后用可学习权重进行多尺度加权,形式化为 \(\mathbf{F}^{\mathrm{out}}=\sum_{s} \alpha_s \cdot \mathbf{F}^{(s)}\),权重 \(\alpha_s=\frac{\exp(w_s)}{\sum_j \exp(w_j)}\) 保证跨尺度自适应归一。为抑制碎石背景与强高光,Head 前引入轻量注意力(如 ECA/EMA 类通道注意力)对通道响应进行重标定,写作 \(\hat{\mathbf{F}}=\mathbf{F}\odot \phi(\mathrm{GAP}(\mathbf{F}))\);检测头解耦分类与回归分支,分类分支给出每类置信度,回归分支预测 \((l,t,r,b)\) 或 \((x,y,w,h)\) 以及边界分布参数,便于小目标边界的细粒度刻画。为了贴合“轨面呈线性结构、扣件位于轨肩两侧”的先验,在数据增强与特征层分配上将长边对齐到网络输入的主轴,并在 P3 层提高小目标采样密度,从而稳定提升召回。
损失与任务建模采用“分类+边界回归+置信度”组合。分类端使用 Focal Loss 抑制易样本主导:$$ \mathcal{L}{\mathrm{cls}}=-\alpha (1-p_t)^\gamma \log(p_t),\quad p_t=\begin{cases}p & y=1\ 1-p & y=0\end{cases} $$ 其中 \(\alpha\) 为类别平衡系数、\(\gamma\) 控制难例增益。边界端采用 CIoU/EIoU 以兼顾重叠、中心距与宽高比,CIoU 写作 $$ \mathcal{L}{\mathrm{bbox}}=1-\mathrm{IoU}+\frac{\rho2(\mathbf{b},\mathbf{b}{})}{c^2}+\lambda v,\quad v=\frac{4}{\pi2}\left(\arctan\frac{w{}}{h{*}}-\arctan\frac{w}{h}\right)2 $$ 其中 \(\rho\) 为预测框与真值框中心距离,\(c\) 为最小外接框对角线,\(v\) 为宽高比一致性项,\(\lambda\) 为自适应权重。若启用分布式边界回归,则使用 Distribution Focal Loss(DFL)对离散边界分布进行分段回归,令边界更平滑、对小目标更友好。置信度端以 BCE 或 IoU-aware 置信度约束候选质心质量,整体损失为 $$ \mathcal{L}=\beta_{\mathrm{cls}}\mathcal{L}{\mathrm{cls}}+\beta{\mathrm{box}}\mathcal{L}{\mathrm{bbox}}+\beta{\mathrm{obj}}\mathcal{L}_{\mathrm{obj}} $$。推理阶段默认 NMS/Soft-NMS 抑制重叠框;在需要端到端时,可切换到与 YOLOv10 同源的一致分配与无 NMS 训练,前端以“top-k score + IoU 去重”实现轻量级合并,以适配极低时延场景。
训练与正则化采用“稳定收敛+小目标优化”的组合策略。学习率使用余弦退火:$$ \eta_t=\eta_{\min}+\tfrac12(\eta_{\max}-\eta_{\min})\left(1+\cos\frac{\pi t}{T}\right) $$ 并配合动量与权重衰减抑制过拟合;BatchNorm 与 EMA(权重指数滑动平均)用于提升泛化稳定性;标签采用 \(\epsilon\) 级别的 Label Smoothing 减少过置信,正负样本分配结合 Task-Aligned 或 OTA 全局匹配缓解分类/定位不一致。针对本任务的小目标、强反光与遮挡,训练时开启 Mosaic/随机尺度/仿射 与伽玛/对比度自适应,叠加轻度 MotionBlur/天气合成,同时对尾部类启用重复采样与损失重权;推理以较低的置信阈值(如 0.2–0.3)与中等 IoU 阈值(如 0.5–0.6)配合,在浏览器端通过可视化滑杆做在线微调。为便于部署,权重导出为 ONNX 并在 GPU 侧通过 TensorRT FP16/INT8 加速,CPU/浏览器端可选 ORT-WebGPU;所有阈值与类别映射与前端保持会话级同步,从而保证“训练—推理—可视化”的一致性与可解释性。
5. 实验结果与分析
本节在同一数据划分与训练配置下,对 yolov5nu、yolov6n、yolov7-tiny、yolov8n、yolov9t、yolov10n、yolo11n、yolo12n 八个轻量模型进行对比;测试环境为 RTX 3070 Laptop 8GB,单张推理,输入按网页端 16:9 自适应(主干 1280×736、评测对比统一 640 侧输),关闭 TTA。网页端阈值以 conf=0.25、IoU=0.55 起始,可滑杆联动。

表 5-1 n组统一评测结果(3070 Laptop,batch=1)
| 模型 | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | E2E(ms) | 理论FPS | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 10.94 | 91.5 | 0.963 | 0.979 | 0.971 | 0.991 | 0.753 |
| YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 10.34 | 96.6 | 0.944 | 0.952 | 0.948 | 0.967 | 0.716 |
| YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 21.08 | 47.5 | 0.997 | 0.876 | 0.932 | 0.962 | 0.663 |
| YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 10.17 | 98.3 | 0.987 | 0.981 | 0.984 | 0.990 | 0.750 |
| YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 19.67 | 50.9 | 0.977 | 0.991 | 0.984 | 0.994 | 0.766 |
| YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 13.95 | 71.7 | 0.959 | 0.966 | 0.962 | 0.990 | 0.755 |
| YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 12.97 | 77.1 | 0.971 | 0.955 | 0.963 | 0.990 | 0.753 |
| YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 15.75 | 63.5 | 0.958 | 0.975 | 0.967 | 0.990 | 0.751 |
下面是 S 组(small 系)完整对比表,已补充端到端时延 E2E=Pre+Inf+Post 与 FPS=1000/E2E(环境:RTX 3070 Laptop 8GB,batch=1)。
表 5-2 s组统一评测结果(3070 Laptop,batch=1)
| Model | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | E2E(ms) | FPS | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 12.24 | 81.70 | 0.9907 | 0.9739 | 0.9822 | 0.9906 | 0.7509 |
| YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 12.26 | 81.59 | 0.9608 | 0.9467 | 0.9537 | 0.9799 | 0.7379 |
| YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 29.52 | 33.88 | 0.9814 | 0.9950 | 0.9882 | 0.9962 | 0.7333 |
| YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 11.39 | 87.79 | 0.9942 | 0.9816 | 0.9879 | 0.9937 | 0.7558 |
| YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 22.17 | 45.10 | 0.9948 | 0.9784 | 0.9865 | 0.9939 | 0.7592 |
| YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 14.19 | 70.48 | 0.9708 | 0.9972 | 0.9838 | 0.9950 | 0.7605 |
| YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 13.47 | 74.27 | 0.9800 | 0.9561 | 0.9679 | 0.9888 | 0.7593 |
| YOLOv12s | 9.3 | 21.4 | 2.09 | 13.23 | 1.42 | 16.74 | 59.75 | 0.9774 | 0.9853 | 0.9814 | 0.9938 | 0.7697 |
图 5-1 双条形图(n 系):F1 与 mAP50 对比
图注:八种 n 体量模型的 F1 与 mAP50。配色为学术蓝(F1)与琥珀色(mAP50),便于与表 5-1 对照。

图 5-2 双条形图(s 系):F1 与 mAP50 对比
图注:八种 s 体量模型的 F1 与 mAP50。可以看到 v8s 的 F1 优势与 v12s 的 mAP 优势并存,提示“召回—精度”取舍的不同偏好。

从整体趋势看,如双条形图与平均 PR 曲线所示,八个模型的 mAP50 均接近 0.99,定位难度在高 IoU 阈值下被放大,因而 mAP50-95 更能区分性能:YOLOv9t 以 0.766 居首,但推理延迟最高;YOLOv8n 以 0.984 的 F1 得分领先,且 E2E=10.17 ms 为全组最快之一,是“精度—时延”均衡的首选;YOLOv6n在速度上略胜一筹(10.34 ms)但精度明显落后,适合作为极限低算力备选;YOLOv10n的 Post=0.63 ms 明显优于其他模型,验证了其更高效的后处理路径(NMS 负担更低),在保证 0.755 的 mAP50-95 前提下提供较好的端到端时延。YOLOv7-tiny虽具极高 Precision,但 Recall 偏低导致 F1 与 mAP50-95 垫底,且 E2E 最慢,不建议作为主力方案。

误检漏检分析与阈值建议方面,混淆矩阵显示 fastener、missing 与 trackbed_stuff 仍有一定比例落入 background(示例中分别约 0.42、0.25、0.17),与场景中阴影、碎石遮挡及“杂物-损坏”外观相似有关;

F1-Confidence 曲线给出了全类最优阈值约 0.65,据此建议网页端默认 conf≈0.65、IoU≈0.55,在需要提高召回的班次可下调至 0.5 并开启类别过滤,仅对 missing/fastener_broken 保留告警输出,以抑制“杂物”误警。

给出的 训练曲线显示 mAP 与 Precision/Recall 在 20–30 epoch 已进入平台区间,随后缓慢收敛,说明当前增强与正负样本分配较为稳定;若将输入从 640 提升到 960/1280 或增加 P3 层权重,预计对 missing 与小面积裂纹仍有 0.5–1.2 个百分点的 mAP50-95 提升空间。

工程侧建议聚焦三点:其一是小目标与强反光——增加 missing、trackbed_stuff 的难例采样权重与光照/反光增强(伽玛、CLAHE、随机高光遮挡),并在训练时将 P3 的采样密度与损失权重适度上调;其二是后处理与吞吐——在 YOLOv8n/10n 上测试 class-agnostic NMS + 置信度排序 top-k 的轻量策略,配合 TensorRT FP16/INT8 与批-流融合,可将 E2E 再降 10–20% 且不显著影响 F1;其三是线上阈值与告警策略——结合 F1-Confidence 曲线,将 conf 动态绑定帧内目标密度:密集时上调以控误警,稀疏时下调以保召回,同时对 missing 类设置更高的告警优先级与二次确认(时间窗口内至少连续 N 帧命中)。
综上,若以“网页端实时 + 高可用”为目标,YOLOv8n是最稳健的主模型;需要更高定位鲁棒性且容忍更高延迟时,YOLOv9t可作为精检/离线复核;在极端低显存或多路并发场景,YOLOv10n/11n凭借较低 FLOPs 与更轻的后处理值得优先部署。结合你提供的图 5-1~5-N(双条形图、PR/F1 曲线、混淆矩阵与训练曲线),上述结论与网页端体验保持一致:在 60–100 FPS 的可感知帧率下,对 fastener_broken/fastener2_broken 的识别已趋近饱和,而 missing/trackbed_stuff 仍是后续迭代与数据治理的主攻方向。
6. 系统设计与实现
6.1 系统设计思路
本系统采用四层协同架构:表现与交互层(浏览器端)—业务与会话管理层—推理与任务调度层—数据持久化层。表现层以 HTML/CSS/JS 实现图片、视频与浏览器摄像头输入,并内置“原图/结果”双画面对比与进度/暂停/继续/停止控件;所有指令经 Flask-SocketIO 建立的低延迟通道传递给业务层,前后端以事件名、会话与任务 ID 统一约束。业务与会话层负责登录/注册/跳过的状态管理、模型与阈值参数的会话同步、任务生命周期(创建、运行、完成、取消)与速率限制;其向下调度推理层时,始终携带模型版本、Conf/IoU、类别过滤与导出选项,保证“算法—可视—导出”的一致性。检测算法与评测逻辑保持与第 4–5 章一致(YOLOv5–YOLOv12 对比、mAP/F1/PR 等)。
推理与任务调度层以异步任务器承载三源输入(图片/视频/摄像头)。视频与摄像头路径采用“解码→预处理→推理→后处理/统计→编码”的流水化拓扑,同步双帧(原始帧与绘制帧)在同一时间戳下打包,经 SocketIO 推送,确保网页端对比一致;当用户调整阈值或切换类别过滤时,业务层以参数热更新方式写入调度上下文,不中断推理。模型热切换通过“权重上传→校验→加载→warmup→原子替换”的过程完成,类别映射与配色在切换完成后同步刷新;若启用 ONNX/TensorRT/ORT-WebGPU,加速引擎以统一的抽象接口挂接到推理层。数据持久化层以 SQLite 存储任务元数据、检测结果、导出记录与账户信息,支持 CSV/带框图片/MP4 的归档与溯源;日志与监控以轻量指标(FPS、E2E 时延、缓存深度、告警计数)形成最小可观测闭环。
实时性与一致性保障体现在三个方面:其一是同步双帧与参数镜像,任何会话内的阈值、IoU、类别筛选都会立即反映到后处理与渲染;其二是端到端时延治理,前端避免多余的像素拷贝(Canvas 层统一渲染),服务端合并绘制与编码批次,SocketIO 使用二进制帧并按会话限流;其三是可扩展性,包括模型仓库化管理(按标签/版本检索)、跨平台路径规范、数据库自动迁移与导出资源的集中管理(批量下载、按文件名高亮与溯源),为后续接入 Docker、分布式任务队列与审计留出接口。
图 6-1 系统流程图
图注:系统从初始化到多源输入,经预处理、推理与后处理后,通过 SocketIO 同步双帧推送至浏览器端;指令通路支持进度控制与参数热更新。

图 6-2 系统设计框图
图注:分层展示浏览器端、业务与会话层、推理与任务调度层、数据层及周边能力(模型权重管理、日志/监控);箭头表示数据与控制方向。

6.2 登录与账户管理
图 6-3 登录与账户管理流程
图注:流程自登录页开始,根据“已有账号/注册/跳过”分支进入;登录成功后载入个性化配置与历史记录并进入主界面;支持资料修改与安全退出。

说明:登录与账户管理以最小化摩擦为原则实现“登录、注册与一次性跳过”三种入口。注册路径在前端完成格式校验并在后端进行口令哈希与加盐后写入 SQLite;登录路径验证凭据并签发会话令牌,随后加载用户最近任务、模型与阈值偏好、导出记录等个性化配置,以在主界面直接复现上次工作状态。未登录时系统进入受限模式,仅保留本地短会话与必要的推理功能;登录后会话与权限在浏览器范围内生效以保障数据一致性。资料修改(头像/密码)通过二次校验与会话刷新实现,注销行为释放服务器端会话、清空本地缓存并回到登录页。该流程与检测主通道松耦合:账户状态仅影响权限与导出/追溯能力,不改变核心推理与评测逻辑。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/L8xCw9CQpivKYRkNHjicJOHNnLc
讲解视频地址:https://www.bilibili.com/video/BV1rKD9B1Ekk/
完整安装运行教程:
这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:
- Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;
软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):
- Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;
7. 结论与未来工作
本文围绕铁路场景构建了基于 Flask + Flask-SocketIO 的铁轨缺陷实时检测平台,在 2234 张高分辨率样本、6 类目标上完成从训练、推理到 Web 可视与导出的端到端实现;平台内置 YOLOv5–YOLOv12 共 8 种模型并支持权重热切换,浏览器侧实现原图/结果同步双帧、进度控制、阈值与类别筛选、CSV 与带框结果一键下载、SQLite 入库与溯源。在统一评测协议下,n 组与 s 组实验表明:YOLOv8n/YOLOv8s在 F1 与端到端时延(E2E)上取得最佳平衡,适合网页端实时主部署;YOLOv9t/YOLOv12s在 mAP50–95 上更具优势,适于离线精检与二次复核;YOLOv10系列后处理负担更低,利于多路并发与低显存设备。混淆矩阵与 F1-Confidence 曲线指出 missing 与 trackbed_stuff 是主要误警/漏检来源,采用小目标偏置训练、光照与反光增强、以及类目权重调整后可稳定提升召回。整体看,本系统在机械器件(如扣件、轨面部件)检测任务上实现了高可用、可解释、可追溯的在线闭环,并具备向工务巡检、工厂轨道构件质检等相近场景迁移的可行性。
面向未来,博主将从三条主线推进:其一是模型侧,在保持 YOLO 家族主干的同时引入更系统的压缩与迁移策略,包括蒸馏(DKD/特征对齐)、QAT/INT8 量化与结构化剪枝,结合域自适应与风格迁移缓解季节与线路差异;探索多模态与多任务融合(可见光+IR/深度/轨迹、检测+分割+关键点)以及端到端 NMS-free 训练,以进一步降低后处理开销并增强小缺陷定位鲁棒性。其二是系统侧,完善 Docker 化与 CI/CD,接入分布式任务队列与显卡资源调度,支持 WebRTC 实时推流与断点续传,扩展角色权限、审计与操作留痕,补充 i18n 与多租户能力,并开放 Prometheus/Grafana 指标以统一观测“FPS、E2E、缓存深度、告警率”。其三是数据侧,建设主动学习与持续标注流水线,针对 missing/trackbed_stuff 设计难例挖掘与半监督采样;引入数据治理与漂移监测,对光照、反光、模糊与遮挡等关键因子做分布跟踪与阈值自适应;完善数据与模型版本的闭环追溯,实现“采集—训练—评估—上线—反馈”的滚动升级。随着这些工作推进,平台将更轻、更快、更稳,并在真实线路的长周期运行中持续积累经验数据,向“分钟级部署、秒级告警、可视可审计”的行业级解决方案演进。
参考文献(GB/T 7714)
1 Li Z, et al. A Review of Vision-Based Rail Surface Defect Detection[J]. Applied Sciences, 2023, 13(17): 10045. (sciencedirect.com)
2 Georgia Tech. High-Throughput Machine Vision for Safer Rail Transit[EB/OL]. 2024. (Georgia Institute of Technology)
3 ONNX Runtime. Using the WebGPU Execution Provider[EB/OL]. 2025. (ONNX Runtime)
4 Ren G, et al. RSDNet: A New Multiscale Rail Surface Defect Detection Model[J]. Sensors, 2024, 24(11):3579. (MDPI)
5 Li X, et al. Track Fastener Defect Detection Model Based on Improved YOLOv5s[J]. Sensors, 2023, 23(14):6457. (MDPI)
6 Zhang L, et al. Online Rail Fastener Detection Based on YOLO Network[J]. Computers, Materials & Continua, 2022. (cdn.techscience.press)
7 Liu W, et al. SSD: Single Shot MultiBox Detector[C]//ECCV. 2016. (arXiv)
8 Tian Z, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//ICCV. 2019. (CVF Open Access)
9 Zhou X, et al. Objects as Points[J/OL]. 2019. (arXiv)
10 Rezatofighi H, et al. Generalized IoU: A Metric and a Loss for Bounding Box Regression[C]//CVPR. 2019. (CVF Open Access)
11 Zheng Z, et al. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[C]//AAAI. 2020. (AAAI)
12 Zhang Y, et al. Focal and Efficient IoU Loss for Accurate BBox Regression[J]. Neurocomputing, 2022. (sciencedirect.com)
13 Ge Z, et al. OTA: Optimal Transport Assignment for Object Detection[C]//CVPR. 2021. (arXiv)
14 Feng C, et al. TOOD: Task-Oriented One-Stage Object Detection[C]//ICCV. 2021. (CVF Open Access)
15 Carion N, et al. End-to-End Object Detection with Transformers[C]//ECCV. 2020. (ECVA)
16 Zhao Y, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[C]//CVPR. 2024. (CVF Open Access)
17 Wang C-Y, et al. YOLOv7: Trainable Bag-of-Freebies Sets New SOTA for Real-Time Detectors[EB/OL]. 2022. (arXiv)
18 Wang C-Y, et al. YOLOv9: Programmable Gradient Information[EB/OL]. 2024. (arXiv)
19 Wang C-Y, et al. YOLOv9[C]//ECCV. 2024. (ECVA)
20 Wang A, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. 2024. (arXiv)
21 Ultralytics. YOLO11—Model Overview[EB/OL]. 2025. (Ultralytics Docs)
22 Ultralytics. YOLO12—Attention-Centric Real-Time Object Detectors[EB/OL]. 2025. (Ultralytics Docs)
23 Zhang M, et al. A New and Improved Nondestructive Detection Network for Rail Surface Defect Based on YOLOv5[J]. Journal of Beijing Jiaotong University, 2024(Chinese). (jdxb.bjtu.edu.cn)

浙公网安备 33010602011771号