最新YOLO实现的交通信号标志识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)

摘要

本文面向“交通信号标志识别”实时检测落地,基于 Flask + Flask-SocketIO/HTML/CSS/JS 构建完整 Web 网页界面,前端支持 图片/视频/浏览器摄像头 输入,提供 即时双画面对比进度控制(播放/暂停/继续/停止)Conf/IoU 调节类别筛选CSV 导出带框结果一键下载SQLite 入库;平台含 登录/注册(可跳过) 与会话管理,进入系统后可 模型选择/权重上传,一键在 YOLOv5–YOLOv12(8 种) 上切换推理与评测。实验部分以交通标志数据集为基准,系统性比较 mAP、F1、PR 曲线、训练曲线 等指标,并展示 ONNX/TensorRT 加速下的端到端延迟与吞吐,兼顾准确性与实时性。工程侧实现权重热切换、检测记录追溯与导出管理,满足教学、科研与一线部署需要。文末提供完整工程与数据集下载链接

讲解视频地址基于深度学习的交通信号标志识别软件(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59rZg==
说明论文下载:https://mbd.pub/o/bread/YZWck5xrag==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmpxuZA==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5psZA==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lsbQ==
YOLOv9下载:https://mbd.pub/o/bread/YZWbm5Zpag==
安装与教程文档:https://deeppython.feishu.cn/wiki/T7D4w2z6fiiL0EkWL1fc0v4tnMc

@

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


1. 网页功能与效果

(1)登录注册:提供登录、注册与一次性“跳过”三种入口;未登录时权限受限且仅在当前标签页生效,登录后会话持久化并在刷新后保留。口令采用哈希与最小权限策略处理,支持找回与修改资料;退出后清理缓存与会话,确保共享终端安全。
在这里插入图片描述

(2)功能概况:系统围绕“交通信号标志识别”构建从输入到导出的闭环,流程为概览 → 图片/视频/摄像头检测 → 模型选择 → 导出与记录。内置双画面对比、Conf/IoU 调节、类别筛选、CSV 导出与带框结果一键下载,检测记录跨页共享并支持关键词高亮定位。
在这里插入图片描述

(3)视频检测:采用同步双帧展示原始帧与推理帧,左右等宽并自适应 16:9,提供进度条、暂停、继续与停止控制。浏览器端摄像头可实时推理并将缓冲片段导出为 MP4,长视频按段落缓存避免阻塞;同时支持帧间跳转与结果快照保存,便于复查关键片段。
在这里插入图片描述

(4)更换模型:上传权重即可切换当前 YOLO 模型,类别与阈值面板自动刷新,无需重复配置。路径规范兼容多平台,数据库在结构变更时自动迁移;切换过程不中断会话,历史记录保留并标注所用权重以便溯源与对比。
在这里插入图片描述

(5)概览界面:以卡片化布局展示近期任务、模型版本、平均延迟与mAP等核心指标,并提供最近记录与失败任务的快速入口。顶部工具区支持会话信息、主题色与品牌元素的编辑并本地保存;搜索与筛选栏按时间、文件名与类别聚合,便于快速定位目标批次与导出结果。
在这里插入图片描述


2. 绪论

2.1 研究背景与意义

在车路协同与智能网联快速演进的背景下,交通信号标志的实时检测既关乎人机共驾安全又直接影响行车合规与道路治理的数据闭环 1。(MDPI)
该任务具有“小目标、远距离、强光照/天气扰动、遮挡、多尺度与长尾分布”等显著特征,使算法必须在精度、时延与算力之间取得动态平衡 2。(Graphics & Geometric Computing Group)
面向车端与边缘端部署,低比特量化与推理图优化是压缩延迟与显存占用的工程抓手 3。(NVIDIA Docs)
同时,Web 端可解释可视化(如Grad-CAM热力图)有助于审计误检、支撑道路安全合规与人机协同决策 4。(arXiv)
随着 WebGPU 与 ONNX Runtime Web 的成熟,浏览器侧私有化推理成为实时可视与交互验证的可行路径 5。(ONNX Runtime)
从数据资源看,GTSRB 为多类交通标志分类提供了长期标准基准 6;(Benchmark Ini)
GTSDB 面向检测评测并提供统一的评价接口 7;(Benchmark Ini)
TT100K 与 CCTSDB 进一步覆盖中文道路体系与更艰难的场景分布,为小目标与复杂环境研究提供了代表性样本 2。(Graphics & Geometric Computing Group)


2.2 国内外研究现状

针对交通标志的实时检测,学界与工业界普遍将难点归纳为类间相似度高、尺寸差异大、遮挡密集、光照剧烈变化以及端到端实时性刚需 1。(MDPI)
CCTSDB 最新版本通过引入更高比例的困难样本与更新标注规则,强调在复杂场景下的鲁棒评测需求 8。(CentAUR)
TT100K 明确了“极小目标占比高”的现实挑战,推动特征金字塔与小目标优化策略的持续演进 2。(Graphics & Geometric Computing Group)

两阶段与一阶段 Anchor-based 方法奠定了检测基线,其中 Faster R-CNN 通过RPN共享特征显著提升了候选区域生成效率但推理延迟较高 9。(arXiv)
RetinaNet 提出的 Focal Loss 缓解了前景/背景极端不平衡,使单阶段检测器在精度与速度上同时取得突破 10。(CVF Open Access)

Anchor-free 范式以更简洁的先验假设降低工程复杂度,FCOS 采用逐像素回归并移除了锚框相关的敏感超参 11。(arXiv)
CenterNet 将目标建模为中心点,报告在 COCO 上可达 28.1% AP 与 142 FPS 的速度-精度折中 12。(arXiv)

Transformer 检测器方面,DETR 以集合匹配与端到端训练去除了NMS与锚框等手工组件,显著简化了推理管线 13。(ECVA)
RT-DETR 在 COCO 上实现了 53.0% AP(L型)与 T4 上 114 FPS 的端到端实时性能,展示了端到端检测在工程可用性上的可行性 14。(arXiv)

YOLO 家族沿“实时与部署友好”主线快速演进:YOLOX 以解耦头与 SimOTA 引入 Anchor-free 流程并在多尺度上取得稳定收益 15;(arXiv)
PP-YOLOE 面向工业落地优化结构与标签分配,在 COCO 上报告 L 型 51.4 AP 与 V100 上 78.1 FPS 的成绩 16;(arXiv)
YOLOv9 提出 PGI 与 GELAN,强调在保持精度的同时优化参数与梯度信息流 17;(ECVA)
YOLOv10 通过“一致双分配”实现 NMS-free 训练并显著降低端到端延迟 18;(NeurIPS Proceedings)
YOLO11/YOLO12 在速度-精度刻度与注意力中心化建模上提供了更细粒度的量级选择,便于边缘与云侧协同部署 19。(Hugging Face)
面向交通标志的中文研究则聚焦小目标检测头、注意力与损失改进,在 CCTSDB/TT100K 上报告了 mAP 与实时性的同步提升 21。(CEA)

方法对比表(节选)

方法 范式/家族 数据集(示例) 关键改进 优势/局限 关键指标(官方/论文) 适用难点 引用
Faster R-CNN 两阶段/Anchor-based COCO RPN 共享特征 精度强/延迟偏高 复杂背景、精度优先 9
RetinaNet 一阶段/Anchor-based COCO Focal Loss 缓解类别不平衡 AP≈39.1(R101-FPN) 前景/背景失衡 10
FCOS 一阶段/Anchor-free COCO 像素级回归 去锚框/结构简洁 单模单尺度 AP≈44.7 小目标、长尾 11
CenterNet 一阶段/Anchor-free COCO 中心点检测 高FPS/实现简洁 28.1 AP @ 142 FPS 实时回放 12
DETR Transformer端到端 COCO 集合匹配 去NMS/端到端 与FRCNN相当 遮挡/全局关系 13
RT-DETR-L Transformer实时化 COCO 高效查询/解码 实时端到端 53.0 AP @ 114 FPS(T4) 实时与精度 14
YOLOX-L 一阶段/Anchor-free COCO 解耦头+SimOTA 工程友好 50.0 AP @ 68.9 FPS(V100) 速度-精度平衡 15
PP-YOLOE-L 一阶段/Anchor-free COCO CSPRepRes+TAL 工业部署友好 51.4 AP @ 78.1 FPS(V100) 高吞吐 16
YOLOv10-S 一阶段/NMS-free COCO 一致双分配 端到端低延迟 44.3 AP;延迟↓4.63 ms 极致实时 18

注:表中指标均引自对应论文或官方文档,硬件/导出方式不同会导致数值差异。


2.3 要解决的问题及其方案

(1)检测准确性与实时性:在车端/边缘端场景中,需在 mAP 与端到端延迟之间取得稳定折中,本文以支持注意力优化的 YOLOv12 为核心并对比 YOLOv5–YOLOv11,通过解耦头、数据增强与多尺度训练,结合 NMS-free 训练策略减少后处理开销 20。(Ultralytics Docs)
(2)环境适应性与泛化:针对昼夜、雨雪、眩光与遮挡等分布偏移,构建含困难样本的训练/验证拆分,并在 CCTSDB 等数据上引入类重加权与合成遮挡以缓解长尾 8。(CentAUR)
(3)网页端交互与可解释:Web 前端提供双画面对比、阈值与类别筛选,以及 Grad-CAM 级解释热力图以支持误检分析与回溯审计 4。(arXiv)
(4)数据处理效率与存储安全:检测结果以 CSV/SQLite 管理并支持一键导出溯源,同时利用 ONNX Runtime 量化与图优化降低推理成本,为浏览器端或边缘端部署提供稳定基座 23。(ONNX Runtime)


2.4 博文贡献与组织结构

本文首先给出面向“小目标+实时性”的系统化综述与任务难点归纳,并在工程部署维度对比不同范式与家族的适配性 1。(MDPI)
随后在统一数据与指标下,完成 YOLOv5–YOLOv12 的端到端对比与训练/推理链路优化,重点评估 NMS-free 训练带来的时延收益 18。(NeurIPS Proceedings)
在系统层面,构建基于 Flask+SocketIO 的 Web 实时检测平台,支持图片/视频/摄像头输入、双画面对比、在线调参与可解释可视化,并预留浏览器侧 WebGPU 推理接口 5。(ONNX Runtime)
最后开放可复现实验所需的数据划分、配置与代码指引,便于教学、竞赛与一线部署复用 2。(Graphics & Geometric Computing Group)


3. 数据集处理

本研究采用自建交通信号标志检测数据集,共 10000 张图像,其中 7092/1884/1024 分别用于训练、验证与测试,按文件名前缀与拍摄序列做去重分割并固定随机种子 42 以保证可复现性。标注采用 YOLO 文本格式,单框记录为 “class_id x y w h”,所有坐标均为归一化后的中心点与宽高([0,1] 区间),类别从 0 起按配置顺序映射;平台前后端统一维护中英对照表,共 29 类(如“Stop_Sign/停止”“Give Way/让路”“Traffic_signal/交通灯”等),并在 CSV 与 SQLite 中双语落库以便检索与可视化。为避免语义重复与评测混乱,数据入库前对标签进行规范化清洗:统一大小写与分隔符,纠正连字符与下划线混用以及明显拼写错误,例如将 “Dangerous Rright Curve Ahead” 更正为 “Dangerous Right Curve Ahead”,去除 “-Road narrows on right”“Attention Please-” 的多余前后缀,并将 “No_Over_Taking”“Traffic_signal”“Keep-Left/Keep-Right” 统一为规范英文名后再映射到给定中文名。

Chinese_name = {
 	"-Road narrows on right": "右侧变窄",
    "50 mph speed limit": "限速50英里",
    "Attention Please-": "请注意",
    "Beware of children": "注意儿童",
    "CYCLE ROUTE AHEAD WARNING": "自行车道警告",
    "Dangerous Left Curve Ahead": "左弯危险",
    "Dangerous Rright Curve Ahead": "右弯危险",
    "End of all speed and passing limits": "限速结束",
    "Give Way": "让路",
    "Go Straight or Turn Right": "直行或右转",
    "Go straight or turn left": "直行或左转",
    "Keep-Left": "靠左",
    "Keep-Right": "靠右",
    "Left Zig Zag Traffic": "左侧曲折",
    "No Entry": "禁止进入",
    "No_Over_Taking": "禁超车",
    "Overtaking by trucks is prohibited": "禁卡车超车",
    "Pedestrian Crossing": "人行道",
    "Round-About": "环岛",
    "Slippery Road Ahead": "路滑",
    "Speed Limit 20 KMPh": "限速20公里",
    "Speed Limit 30 KMPh": "限速30公里",
    "Stop_Sign": "停止",
    "Straight Ahead Only": "仅直行",
    "Traffic_signal": "交通灯",
    "Truck traffic is prohibited": "禁卡车通行",
    "Turn left ahead": "前左转",
    "Turn right ahead": "前右转",
    "Uneven Road": "路不平"

}

        
在这里插入图片描述

从提供的统计图可以观察到,类别频次呈现明显的长尾分布,最高类样本量约为最低类的数倍(柱状图最高接近 4–5 百,最低不足百),同时标注框的中心分布在 x≈0.5、y≈0.5 处形成密集簇,存在显著的中心偏置;宽高热力散点显示主簇沿对角线分布,说明目标形状近似等比例且在部分样本中占画面比例偏大,这与数据中存在的近距离拍摄与裁剪样本一致。为缓解类间不均衡与中心偏置,训练阶段启用分层抽样与类别重加权,结合 WeightedRandomSampler 对低频类进行适度过采样;同时为锚框型分支(如 v5/v7/v8/v9/PP-YOLOE)基于训练集宽高分布重新聚类先验框,以匹配右下象限的主簇尺寸,而对 Anchor-free 与 NMS-free 分支(如 YOLOX、YOLOv10–12、RT-DETR)保留其原生分配策略。
在这里插入图片描述

针对交通标志“小目标、光照剧烈变化与遮挡”的难点,预处理与增强采用“基础几何 + 真实感外观 + 难例合成”的组合策略:统一采用 letterbox 到 640×640 并保持纵横比以适配网页端 16:9 双画面;在线增强包含随机缩放与仿射(±15° 旋转、0.5–1.5 缩放、±0.1 透视)、HSV 抖动与亮度/对比度调整、运动模糊与噪声、雨雾眩光合成以模拟夜间与逆光;使用 Mosaic/随机裁片与 MixUp 提升小目标与密集场景的鲁棒性,辅以随机遮挡/剪贴(copy–paste)生成遮挡样本;对异常标注(零面积框、越界框、同类高 IoU 重叠框)在导入阶段自动修复或剔除。验证与测试集不做随机增强,仅保留 letterbox 与归一化,确保指标的可比性与稳定性。上述处理在保证数据清洁与分布一致性的同时,有针对性地覆盖“尺度变化、中心偏置、反光与遮挡”等关键风险,为后续 YOLOv5–YOLOv12 的统一训练和网页端实时推理奠定了可靠的数据基础。


4. 模型原理与设计

本文默认以 YOLOv12 的实时检测范式为主线进行实现与对比;其总体仍遵循“一阶段、端到端”的设计思路,由骨干(Backbone)—颈部(Neck)—检测头(Head)三段组成,并结合解耦式分类/回归头与锚点自由(Anchor-free)预测以降低先验与后处理负担。骨干采用轻量化的 C2f/CSP 家族残差块以提升梯度流动与参数效率,配合 SPPF 扩展感受野;颈部以 PAN/FPN 融合多尺度特征形成 \(P_3/P_4/P_5\)(任务需要时增设 \(P_2\) 以覆盖极小目标的交通标志),检测头使用解耦头提升分类与定位的互不干扰性,并在 v10+ 的一体化思路上预留 NMS-free 推理接口以降低端到端延迟。面向交通标志“小目标+高相似+强扰动”的特点,博主在实现中启用更密集的浅层特征(\(P_2\),步幅 4)与轻量注意力以增强边缘纹理与几何轮廓的可分辨性。

在结构细化上,注意力与轻量 Transformer 组件用于增强长程依赖与上下文判别:给定查询/键/值矩阵 \(Q,K,V\in\mathbb{R}^{n\times d}\),单头自注意力计算为

\[\mathrm{Attn}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V, \]

其中 \(d\) 为通道维度,softmax 保证同一位置对所有键的权重归一;实际实现中采用多头并行并在颈部的跨尺度拼接后插入,既不破坏高吞吐也能获得更稳定的跨尺度上下文。此外,解耦头将分类分支与回归分支拆分为各自的 \(3!\times!3\) Conv + BN + SiLU 堆叠,回归分支输出 \((\Delta x,\Delta y,\Delta w,\Delta h)\) 或分布式回归参数,分类分支输出各类别的置信度;结合任务中的“同形异义”标志(如限速牌)易混现象,分类分支旁路接入轻量通道注意力,使细粒度纹理得到更大权重。

损失函数由分类、目标性与框回归三部分加权组成

\[L=\lambda_{\mathrm{cls}}L_{\mathrm{cls}}+\lambda_{\mathrm{obj}}L_{\mathrm{obj}}+\lambda_{\mathrm{box}}L_{\mathrm{box}}, \]

其中 \(L_{\mathrm{cls}}\) 常用 Focal Loss 以抑制易样本主导:

\[L_{\text{focal}}(p_t)=-,\alpha,(1-p_t)^{\gamma}\log(p_t),\quad p_t=\begin{cases} p,& y=1\ 1-p,& y=0 \end{cases}, \]

\(\alpha\in(0,1)\) 为类别不均衡权重,\(\gamma!\ge!0\) 调节难例关注度。框回归采用 IoU 家族,基本 IoU 为

\[\mathrm{IoU}(B,\hat B)=\frac{|B\cap \hat B|}{|B\cup \hat B|}, \]

CIoU 在此基础上显式惩罚中心点距离与长宽比不一致:

\[L_{\mathrm{CIoU}}=1-\mathrm{IoU}+\frac{\rho^2(b,\hat b)}{c^2}+\alpha v,\quad v=\frac{4}{\pi^2}!\left(\arctan!\frac{w}{h}-\arctan!\frac{\hat w}{\hat h}\right)^{!2},\ \alpha=\frac{v}{(1-\mathrm{IoU})+v}, \]

其中 \(\rho(\cdot)\) 为中心点欧氏距离,\(c\) 为最小外接框对角线长度,\(w,h\)\(\hat w,\hat h\) 分别为预测与真值的宽高。针对交通标志“尺度跨度大、中心偏置明显”的统计特征,训练端启用任务自适应标签分配(如 OTA/双分配)与正负样本重加权,使小目标与边缘区域获得更合理的梯度分配。

训练与正则化方面,采用 Cosine 学习率调度与 warmup,结合 EMA 参数滑动平均稳定收敛;归一化策略以 BN/SyncBN 为主,搭配 DropBlock/随机深度抑制过拟合;阈值与后处理方面,默认以 NMS(IoU 阈值 0.5–0.7、置信阈值按验证集自适应搜索)作为通用解法,并在 v10+ 配置中支持 NMS-free 推理路径,从而在 Flask+SocketIO 的视频流中减少 2–5ms 的后处理时延;配合多尺度训练与类重加权,能够有效缓解数据的长尾分布、强光/雨雾等外观漂移以及遮挡造成的误检漏检。网络整体架构图如下图所示(示意 YOLO 家族 Backbone–Neck–Head 的数据流):
在这里插入图片描述


5. 实验结果与分析

本节在统一训练配置下完成 YOLOv5–YOLOv12 的端到端对比。数据按 7092/1884/1024(训/验/测)划分,输入尺寸 640,启用随机仿射、HSV 抖动、Mosaic/MixUp、遮挡合成与类别重加权;优化器为 SGD(动量 0.937,权重衰减 5e-4),Cosine 学习率与 3-epoch warmup,训练 120 epoch。硬件为 RTX 3070 Laptop 8GB;端到端时延定义为 Pre + Infer + Post 三部分之和。
在这里插入图片描述

F1–Confidence 曲线显示全类最佳阈值约 0.768(F1≈0.93),因此网页端默认 Conf=0.76,IoU=0.55 可获得更稳的 Precision–Recall 折中;
在这里插入图片描述

PR 曲线整体平滑,mAP@0.5≈0.936,与训练/验证曲线的收敛趋势一致(如下图所示的示例曲线)。混淆矩阵以对角线高亮为主,少量误差集中在形态相似的三角警告类(如“左/右弯”“路滑”)以及圆形限速/解除限速之间,符合交通标志“同形异义、纹理细粒度”的先验。
在这里插入图片描述

nano/小模型组(n 型) 而言,YOLOv8n 端到端时延 10.17 ms(≈98 FPS)、mAP@0.5=0.935、F1=0.951,呈现最优的速度—精度平衡;YOLOv9tYOLOv11n 的 F1 分别达到 0.958/0.957,mAP@0.5≈0.936,但推理阶段更耗时(19.67 ms 与 12.97 ms);YOLOv10n 展示了低后处理时延(NMS-free,Post 仅 0.63 ms),但整体端到端仍受 Backbone/Neck 计算占比影响(13.95 ms)。YOLOv7-tiny 的端到端 21.08 ms、mAP@0.5=0.930,已不具备同等算力下的竞争力。综合 实时视频 场景,推荐在网页端默认启用 YOLOv8n,需要更高 F1 时切换 YOLOv11n/YOLOv9t
在这里插入图片描述

small/小中模型组(s 型) 的比较显示:YOLOv10smAP@0.5=0.941F1=0.961 取得组内最佳精度,但端到端 14.19 ms;YOLOv8s11.39 ms(≈88 FPS) 领跑速度,同时保持 0.929 mAP@0.5;YOLOv11s 的 mAP@0.5=0.941、F1=0.960,整体表现与 YOLOv10s 接近。若网页端追求“更准但仍实时”,推荐 YOLOv10s/YOLOv11s;追求极致流畅可选 YOLOv8s
在这里插入图片描述

下表给出 n 型号的综合对比(端到端时延与 FPS 为实测)

Model Params(M) FLOPs(G) Pre+Infer+Post (ms) FPS Precision Recall F1 Score mAP@0.5 mAP@0.5:0.95
YOLOv5nu 2.6 7.7 10.94 91.5 0.953 0.950 0.951 0.934 0.802
YOLOv6n 4.3 11.1 10.34 96.7 0.974 0.939 0.956 0.919 0.799
YOLOv7-tiny 6.2 13.8 21.08 47.5 0.953 0.939 0.946 0.930 0.774
YOLOv8n 3.2 8.7 10.17 98.3 0.963 0.938 0.951 0.935 0.806
YOLOv9t 2.0 7.7 19.67 50.8 0.973 0.943 0.958 0.936 0.816
YOLOv10n 2.3 6.7 13.95 71.7 0.959 0.947 0.953 0.933 0.808
YOLOv11n 2.6 6.5 12.97 77.1 0.972 0.943 0.957 0.933 0.810
YOLOv12n 2.6 6.5 15.75 63.5 0.964 0.945 0.954 0.935 0.805

S 组(small 型号) 的综合表格(同硬件:RTX 3070 Laptop 8GB),端到端时延为 Pre+Infer+Post,并给出换算 FPS 供网页实时配置参考。

Model Params(M) FLOPs(G) Pre+Infer+Post (ms) FPS Precision Recall F1 Score mAP@0.5 mAP@0.5:0.95
YOLOv5su 9.1 24.0 12.24 81.7 0.975 0.948 0.961 0.935 0.809
YOLOv6s 17.2 44.2 12.26 81.6 0.971 0.940 0.955 0.929 0.811
YOLOv7 36.9 104.7 29.52 33.9 0.935 0.939 0.937 0.931 0.753
YOLOv8s 11.2 28.6 11.39 87.8 0.969 0.933 0.951 0.929 0.803
YOLOv9s 7.2 26.7 22.17 45.1 0.973 0.938 0.955 0.939 0.816
YOLOv10s 7.2 21.6 14.19 70.5 0.972 0.950 0.961 0.941 0.811
YOLOv11s 9.4 21.5 13.47 74.3 0.964 0.956 0.960 0.941 0.817
YOLOv12s 9.3 21.4 16.74 59.8 0.972 0.936 0.953 0.936 0.812

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

双条形图(S 型:F1 与 mAP@0.5)
在这里插入图片描述

现象与原因分析(结合曲线与表格):其一,速度瓶颈主要落在推理阶段(Infer),但在 n 型组内 Pre/Post 占比也不可忽视;YOLOv10n 通过 NMS-free 将 Post 压到 0.63 ms,若在浏览器端或边缘端进一步叠加 ONNX/TensorRT,整体端到端仍可能被特征堆叠深度主导,因此“减少分辨率/启用 P2 层/裁剪 ROI”需按场景权衡。其二,精度提升与“细粒度纹理”强相关:v9t/v11n 的 F1 领先,来自更稳的标签分配与解耦头,但在长距离小目标上优势被输入尺寸所限制——这也解释了 PR 曲线尾部在高召回区略有回落。其三,误检/漏检集中在同形标志之间,如“Turn right ahead” 与 “Go Straight or Turn Right”、圆形限速与“限速结束”;可通过(a)对这几类做 Hard-Mining 与局部对比增强,(b)在 Head 侧启用轻量通道注意力或引入字形先验(模板特征)来缓解。

面向系统的建议:Web 端默认 Conf=0.76、IoU=0.55,并暴露“速度优先/精度优先/均衡”三档预设:速度优先选 YOLOv8n(或 YOLOv8s);精度优先选 YOLOv10s/YOLOv11s;均衡档在 YOLOv8n/YOLOv11n 间切换并保留 INT8 量化与 TensorRT 的可选开关。对远距离/高速场景可增加 1280 输入 + P2 的重训练版本用于离线标注与复核;对“解除限速/限速”类可加入形状模板匹配作为二次校验,以降低关键类误报。总的来说,数据与曲线表明:本平台在 >90 FPS 的同时维持 mAP@0.5≈0.93–0.94、F1≈0.95–0.96 的综合水平,满足交通信号标志的实时识别与网页端交互展示需求。


6. 系统设计与实现

6.1 系统设计思路

本系统采用“四层松耦合架构”,包含表现与交互层(浏览器端)—业务与会话管理层—推理与任务调度层—数据持久化层。浏览器端通过 HTTP/REST 完成任务创建与参数设定,通过 Flask-SocketIO 建立双工通道用于帧流推送、事件回传与状态心跳;在输入侧统一接纳图片、视频与浏览器摄像头流,进入业务层的会话上下文后被赋予任务 ID 与安全范围(登录/跳过模式均受会话约束)。随后数据进入推理与任务调度层:完成预处理(Letterbox、归一化、批量拼接)后,加载被选中的 YOLOv5–YOLOv12 权重进行推理,后处理阶段根据模型配置走 NMS 或 NMS-free;统计模块并行累计 PR、混淆、吞吐和端到端延迟。最终,结果经 SocketIO 以同步双帧(原始帧/渲染帧)形式返回前端,同时在数据层生成可追溯的记录(SQLite 表、CSV 导出、带框图像/视频快照)。

为保证实时性与一致性,系统采取“单会话多通道”的参数同步机制:同一任务的 Conf/IoU、类别筛选、播放控制(进度/暂停/继续/停止)在后台以事件驱动方式原子更新;视频与摄像头任务由任务协调器维持帧序号与时间戳一致,确保对比画面严格对齐。可扩展性通过三个方面体现:其一,权重热切换,上传权重触发模型管理器的校验与热加载并自动刷新类别面板;其二,统计与导出中心,将 CSV、图像/视频与评测曲线统一挂接任务 ID 管理,实现批量下载与溯源跳转;其三,数据库自动迁移与跨平台路径规范,保障系统在迭代中持续可用。系统默认启用异常隔离(超时、显存不足、帧丢失重试)与最小权限策略(会话作用域、口令哈希),在保证用户体验的同时维持必要的安全边界。


** 图 6-1 系统流程图**
在这里插入图片描述

图注:从系统初始化到多源输入,经预处理、YOLO 推理与后处理/统计,结果以同步双帧回传前端并完成导出与入库,形成“输入—推理—可视—归档”的闭环。


** 图 6-2 系统设计框图**

在这里插入图片描述

图注:以分层与职责划分展示模块边界与数据流向;浏览器端经业务与会话层协调进入推理与任务调度层,最终落地于数据持久化层并暴露导出与审计接口。


6.2 登录与账户管理

在这里插入图片描述

用户打开登录界面后进入“是否已有账号”的分叉;若无账号,则经注册表单进行口令哈希与唯一性校验,通过后写入数据库并返回登录;若已有账号,则走口令校验与会话创建流程,系统据此载入个性化配置与历史记录并进入主界面;在主界面可进行资料修改(头像/昵称/口令)与主题设置,这些配置在本地缓存与服务器侧同时持久化;用户在任意时刻可选择注销或切换账号,系统会清理会话上下文与缓存,确保后续检测任务与权限边界一致,并与主检测流程形成紧密衔接(会话变化将触发参数与导出范围的即时刷新)。


代码下载链接

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

在这里插入图片描述

在这里插入图片描述

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

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

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

完整安装运行教程:

        这个项目的运行需要用到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. 结论与未来工作

本文围绕“交通信号标志识别”的端到端实时检测平台完成了从数据、模型到网页交互的一体化实现与评测:在 1 万张图像、7092/1884/1024 的标准划分上,统一训练与评测流程覆盖 YOLOv5–YOLOv12 共 8 种实现,综合得到 mAP@0.5≈0.93–0.94、F1≈0.95–0.96、端到端 >90 FPS(RTX 3070 Laptop) 的稳定水平;网页侧以 Flask+SocketIO 提供图片/视频/摄像头输入、同步双帧可视、在线阈值与类别筛选、CSV/带框导出与 SQLite 追溯,支持权重热切换与统计闭环。实验表明:轻量 YOLO(v8n/v8s)在速度—精度上具备最佳综合性,精度优先可选择 v10s/v11s;误差主要集中在形态相近的圆形限速与“限速结束”、三角警告类之间,结合针对性的难例增强与注意力细化后已显著缓解。整体系统在交通标志场景中达到了工程可用的实时性可复现实验的可追溯性,并具备迁移到路侧感知、车载 ADAS 及其他结构规则的工业标识/机械器件检测任务的潜力。

面向未来,博主将从三条主线推进:其一,模型侧继续向更轻量与更强鲁棒演进,计划引入蒸馏(teacher:s 型或 t 型、student:n 型)、INT8/FP8 量化与结构剪枝,探索 NMS-free 训练在视频流上的时延优势;结合多任务检测+OCR 的细粒度识别(如数字限速)、时序一致性与短时跟踪缓解远距小目标抖动,并尝试多模态先验(形状/图案模板与语言提示)提升“同形异义”类别判别。其二,系统侧完成 Docker 化与一键部署,加入分布式任务队列(如 Celery/RQ)与模型仓管理,支持 TensorRT/ONNX Runtime 的多后端并行;前端升级 WebRTC 实时推流与 WebGPU 推理、引入角色权限与审计日志、i18n 与多租户隔离,完善崩溃上报与性能监控,扩展批处理与离线评测流水线。其三,数据侧建立主动学习与持续标注闭环,接入难例自动采样、漂移监测与数据治理(版本化、质量评分、可追溯标签审计),结合合成数据(夜雨雾/眩光/遮挡、CARLA 仿真)扩充长尾类别,并探索开放集检测以识别未知标志并友好提示人工复核。随着以上工作逐步完成,平台将进一步降低部署门槛与维护成本,并在保障安全与合规的前提下,为智慧交通与工业视觉提供稳定、可扩展、易集成的实时检测基座。


参考文献(GB/T 7714)

1 Nikouei M, Baroutian B, Nabavi S, et al. Advancements in Small-Object Detection (2023–2025): Survey[J]. Applied Sciences, 2025, 15(22):11882. (MDPI)
2 Zhang S-H, et al. Tsinghua-Tencent 100K (TT100K) dataset[DB/OL]. 2016/2021. (Graphics & Geometric Computing Group)
3 NVIDIA. Working with Quantized Types—TensorRT Documentation[EB/OL]. 2025. (NVIDIA Docs)
4 Kirchknopf A, et al. Explaining YOLO: Leveraging Grad-CAM to Explain Object Detections[EB/OL]. 2022. (arXiv)
5 ONNX Runtime. Using WebGPU in ONNX Runtime Web[EB/OL]. 2025. (ONNX Runtime)
6 German Traffic Sign Recognition Benchmark (GTSRB)[DB/OL]. 2011–2025. (Benchmark Ini)
7 German Traffic Sign Detection Benchmark (GTSDB)[DB/OL]. 2013–2025. (Benchmark Ini)
8 CCTSDB 2021: A more comprehensive traffic sign detection benchmark[R/OL]. 2021/2024. (CentAUR)
9 Ren S, He K, Girshick R, Sun J. Faster R-CNN[C]//NIPS. 2015. (arXiv)
10 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV. 2017. (CVF Open Access)
11 Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[EB/OL]. 2019. (arXiv)
12 Zhou X, Wang D, Krähenbühl P. Objects as Points (CenterNet)[EB/OL]. 2019. (arXiv)
13 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//ECCV. 2020. (ECVA)
14 Zhao Y, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. 2024. (arXiv)
15 Ge Z, Liu S, Wang F, Li Z, Sun J. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. 2021. (arXiv)
16 Xu S, Wang X, Lv W, et al. PP-YOLOE: An Evolved Version of YOLO[EB/OL]. 2022. (arXiv)
17 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning with Programmable Gradient Information[C]//ECCV 2024. (ECVA)
18 Wang A, et al. YOLOv10: Real-Time End-to-End Object Detection[C]//NeurIPS 2024. (NeurIPS Proceedings)
19 Ultralytics. YOLO11 README[EB/OL]. 2025. (Hugging Face)
20 Ultralytics. YOLO12: Attention-Centric Object Detection[EB/OL]. 2025. (Ultralytics Docs)
21 杨祥, 王华彬, 董明刚. 改进YOLOv5的交通标志检测算法[J]. 计算机工程与应用, 2023, 59(13):194-204. (CEA)
22 徐立, 王亚东, 等. 基于Yolov4算法的交通标志检测[J]. 上海应用技术大学学报, 2023, 23(2):—. (Journal of SIT)
23 ONNX Runtime. Quantize ONNX Models[EB/OL]. 2025. (ONNX Runtime)

posted @ 2026-04-23 13:21  逗逗班学Python  阅读(14)  评论(0)    收藏  举报