最新YOLO实现的安全帽实时检测平台(Flask+SocketIO+HTML_CSS_JS)
摘要
本博文面向“安全帽实时检测”应用,基于 Flask + Flask-SocketIO / HTML / CSS / JS 构建 Web 网页界面,集成 YOLOv5–YOLOv12(共 8 种) 模型以比较 mAP、F1、PR 曲线与训练曲线,支持在同一页面完成 模型选择/权重上传 与推理可视化。系统支持 图片/视频/浏览器摄像头 输入;提供 左右等宽双画面对比、视频 进度/暂停/继续/停止 控制;一键 CSV 导出 与 带框结果下载(图片/视频);推理结果可 SQLite 入库 并可检索回溯。平台包含 登录/注册(可跳过) 与会话管理、最近记录快速定位、批量导出与溯源;同时开放 数据与代码可下载 以及 Web 网页界面实时演示。系统默认以 YOLOv12 为核心基线,并与其余 YOLO 系列进行端到端对比评测与可视化分析。文末提供完整工程与数据集下载链接。
讲解视频地址:基于深度学习的安全帽检测系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck55uaw==
说明论文下载:https://mbd.pub/o/bread/YZWck5txaA==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmplxZw==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5lxaQ==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5htZA==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9tZw==
安装与教程文档:https://deeppython.feishu.cn/wiki/INvIwIXnbibpDBkGYzOctxcRnvh
@
1. 网页功能与效果
(1)登录注册:提供登录、注册与一次性跳过三种入口,登录成功后会话在当前标签页与同源窗口内生效,超时或主动注销即失效;口令采用哈希保存并配合最小化权限策略,确保演示与正式使用的安全边界清晰。进入系统后可自动载入个性化配置与最近记录,便于无缝继续上次工作。

(2)功能概况:平台统一支持图片、视频与浏览器摄像头输入,前端以左右等宽的16:9双画面呈现原图与检测结果,并支持Conf/IoU调节、类别筛选与结果高亮。检测过程可一键导出CSV与带框图片/视频,所有结果可写入SQLite以便追溯与复核。

(3)视频检测:采用同步双帧渲染与时间戳对齐机制,提供进度、暂停、继续与停止控制,保证长视频与高帧率场景的连贯体验。对实时流与本地文件均支持片段缓冲并导出为MP4,出现跳帧或卡顿时可自动重采样以维持视觉一致性。

(4)更换模型:支持直接上传权重切换当前推理模型,页面会同步刷新类别信息与配色映射,确保后端与前端一致。模型切换对会话透明且可回滚到上一版本,便于进行YOLOv5–YOLOv12多模型对比与快速A/B测试。

(5)概览界面:首页提供按时间线聚合的任务卡片、关键统计与最近文件入口,并支持搜索与多条件筛选快速定位目标样本。导出中心集中管理历史结果,支持按文件名高亮与批量下载,配合审计标记与备注字段,方便复现实验与团队协作。

2. 绪论
2.1 研究背景与意义
在智慧工地与制造车间的人员防护监管中,安全帽佩戴状态的自动化识别直接关系到事件预警与取证闭环,传统依赖人工巡检的方式难以覆盖大面积、长时段与多摄像头并发的场景,基于深度学习的目标检测已成为主流方案 [1–2]。在公开 SHWD 数据集中已整理出成千上万张头部与安全帽样本,为模型训练与可复现实验提供了基础数据与标注规范 1。(Nature)

现实部署面临的核心难点包括:小目标比例高、人员遮挡与姿态变化、光照剧烈变化、颜色与背景高相似度以及类别长尾;围绕这些问题的近期工作通过改进注意力、多尺度融合与损失函数,在安全帽检测上取得了可量化提升,例如改进的 YOLOv8 在 SHWD 上报告了 mAP 92.0% 的结果,而国内针对复杂场景的小目标检测也通过轻量上采样与坐标注意力在 mAP 与参数量上实现双提升 [2,6]。(Nature)
从系统工程角度,边缘端与浏览器端的推理能力同样关键:ONNX Runtime Web 已支持 WebGPU,使前端具备在合适模型规模下的本地实时推理与可视化能力;而服务端/边缘端可结合 TensorRT INT8/FP8 量化 与流水线优化,在保证精度的前提下降低时延与成本,从而满足视频流与多路摄像头的实时监管需求 [3–4]。(ONNX Runtime)
2.2 国内外研究现状
围绕“复杂工地场景下的安全帽实时检测”这一具体任务,现有研究普遍指出小目标与遮挡带来的漏检、强反光与背光导致的定位抖动,以及“红/黄安全帽—裸头/头发”之间的高相似度是主要挑战,近期改进 YOLOv8 的工作通过空洞注意与 NWD 损失在 SHWD 上显著提升了小目标检测的鲁棒性 2。另一方面,国内针对密集场景的小目标检测引入轻量上采样与坐标注意力,同步降低参数量与计算开销,显示出在边缘推理中的工程潜力 6。同时,也有工作通过增加额外的浅层特征分支与四尺度检测头改善了小目标的召回,这一思路在安全帽等小物体任务上具有普适性 5。(Nature)
在算法范式上,Anchor-based 的 YOLO 家族因端到端速度与工程生态在工业界占据主导,而Anchor-free方法(如 FCOS 与 CenterNet)通过像素级/中心点建模减少锚框超参并在遮挡与密集目标上表现出优势;两阶段方法(Faster R-CNN)在复杂背景下具备更强的精度上限,但推理时延与部署复杂度较高;单阶段非 YOLO 检测器(SSD、RetinaNet)分别以多尺度默认框与 Focal Loss 缓解前景—背景不均衡,为轻量化与稳定训练提供了通用基线 [7–12]。(GitHub)
近三年 YOLO 系列的技术演进体现为:更高效的骨干与解耦头(YOLOv6/v7)、NMS-free 的一致性分配与结构重构(YOLOv10)、面向边缘与云的全栈产品化(YOLOv11),以及注意力中心化的 YOLOv12(社区版)在 COCO 上给出相对 v10/v11 的 mAP 增益但提示 CPU 端吞吐折衷,这些改进与我们任务的小目标、遮挡与实时约束高度契合 [13–17]。(arXiv)
除 YOLO 以外,PP-YOLOE 强调工业部署友好并在 COCO test-dev 上取得 51.4 mAP / 78.1 FPS(V100),TensorRT FP16 可达 149.2 FPS;YOLOX 采用解耦头与 SimOTA 在 COCO 上实现 50.0 AP / 68.9 FPS(V100);而 RT-DETR 系列以端到端 Transformer 消除 NMS,在实时与精度平衡上与新一代 YOLO 形成互补,对视频流场景具有吸引力 [18–20]。(arXiv)
方法对比表(节选,指标与来源可追溯)
| 方法 | 范式/家族 | 数据集 | 关键改进 | 优势与局限 | 关键指标(原文) | 适用难点 |
|---|---|---|---|---|---|---|
| 改进 YOLOv8(安全帽) | Anchor-based/YOLO | SHWD | DWR 注意力、ASPP、NWD 损失 | 小目标精度高,工程改动小;需较新显卡充分发挥 | mAP=92.0%(SHWD) 2 | 小目标、复杂光照 |
| 改进 YOLOv7-Tiny(安全帽) | Anchor-based/YOLO | SHWD | 轻量上采样 CARAFE、坐标注意、锚框重聚类 | 参数 ↓31.7%,mAP ↑;极端遮挡仍受限 | 相比 YOLOv4-Tiny +14.1%,相对 YOLOX-Tiny +2.8% 6 | 小目标、遮挡 |
| PP-YOLOE-l | Anchor-free/单阶段 | COCO | CSPRepResStage、ET-Head、TAL | 工业部署友好;模型族覆盖面广 | 51.4 mAP, 78.1 FPS(V100);TRT FP16 149.2 FPS 18 | 实时性、部署 |
| YOLOX-L | Anchor-free/YOLOX | COCO | 解耦头、SimOTA | 训练稳定、速度快;需较多显存 | 50.0 AP, 68.9 FPS(V100) 19 | 高速、密集目标 |
| YOLOv10-S | Anchor-based/YOLO | COCO | 一致性双分配,NMS-free | 端到端、低时延;训练配置敏感 | 对 RT-DETR-R18 1.8× 更快,AP 相当 15 | 端到端、低延迟 |
| RT-DETR | DETR/Transformer | COCO | 实时端到端检测 | 省去 NMS,部署简洁;训练周期较长 | 首个“实时端到端”定位的 DETR 变体 20 | 端到端、在线评估 |
| YOLOv12n(社区) | 注意力中心化/YOLO | COCO | Area-Attention、R-ELAN | mAP 相对 v10n +2.1%,速度略降;CPU 吞吐受限 | 文档列出相对增益与 T4 TRT 速度变化 17 | 高精度、浏览器演示 |
注:表中数值直接引自对应论文/文档,便于核验与工程复现。(Nature)
面向部署趋势,浏览器侧可用 ONNX Runtime Web(WebGPU) 实现局部前端推理与可解释可视化,降低服务器带宽压力;边缘/服务端以 ONNX/INT8 量化与 TensorRT 加速为主流路径,并配合导出—评测—回流的闭环,逐步形成“在线评估—数据再训练—轻量上线”的工程范式 [3,21–22]。(ONNX Runtime)
2.3 要解决的问题及其方案
(1)准确性与实时性:在密集人员与小目标场景中提升检测精度并控制端到端时延,避免多路视频并发时的拥塞与卡顿。
(2)环境适应性与泛化:适配不同工地与车间的光照、视角与遮挡分布,缓解类别长尾与域偏移。
(3)网页端交互的直观性与完整性:统一图片/视频/摄像头输入渠道,提供双画面对比、进度与导出能力,支撑在线调参与记录追溯。
(4)数据处理效率与存储安全:保证任务与用户会话一致性、导出可追溯与 SQLite/CSV 的原子化写入,避免数据丢失。
对应方案:
(1)以 YOLOv12 为核心,联合 YOLOv5–YOLOv11 做全量对比,采用多尺度增强、NWD/CIoU 等损失与迁移学习,兼顾小目标与端到端速度。
(2)服务端基于 PyTorch 训练与推理,导出 ONNX/TensorRT(INT8/FP16),并按设备画像选择最优引擎;浏览器侧以 Flask+SocketIO+HTML/CSS/JS 实现低时延推送与参数同步。
(3)实现图片/视频/摄像头的即时双画面对比与进度控制,提供 Conf/IoU 调节、类别筛选、CSV 导出、带框结果一键下载,并在底部“检测记录”跨页共享。
(4)设计任务调度与持久化策略:结果入 SQLite、导出集中管理、按文件名与会话高亮与溯源,并提供登录/注册/跳过的安全会话与口令哈希校验。
2.4 博文贡献与组织结构
(1)综合文献综述:围绕安全帽实时检测的任务特征,系统梳理 YOLOv5–YOLOv12、PP-YOLOE、YOLOX、RT-DETR 等方法在小目标、遮挡与实时性上的权衡。
(2)模型选择与优化:给出以 YOLOv12 为主线、结合迁移学习与量化加速的训练与部署方案,并与多款主流模型进行 mAP、F1、PR 曲线与延迟的可复现实验对比。
(3)美观友好的网页设计:实现登录/会话管理、图片/视频/摄像头三种输入的双画面对比、进度控制与结果导出,支持模型权重热切换与类别自动刷新。
(4)算法效果对比分析:在统一数据与评测指标下,全面分析不同 YOLO 版本与 DETR 系列的结构性优劣与任务适配度,并提出可操作的改进与部署建议。
(5)完整数据与代码资源:提供可运行的 Flask+SocketIO 工程、SQLite 模式与 CSV 导出模板,以及数据下载与复现实验脚本,便于读者一键上手。
3. 数据集处理
本研究采用安全帽场景数据集共 1518 张图像,其中 910/304/304 分别用于训练、验证与测试,并在后续实验中固定随机种子(seed=42)以保证可复现。标注为 YOLO 格式,即每行记录 \((x_{c},y_{c},w,h)\in[0,1]\) 的归一化中心点与宽高;类别统一映射为中文:{'hat': '安全帽','person': '光脑袋'},其中 hat 代表“佩戴安全帽”,person 在本任务中指“未佩戴(光脑袋)”,该映射同时用于网页前端显示与 CSV/SQLite 的统计命名。代表性样例覆盖室内外工地、监控截图与网络图片,视角包含仰视/俯视与多人密集场景,能较好模拟浏览器摄像头与视频流的真实输入。
Chinese_name = {'hat': "安全帽", 'person': "光脑袋" }

根据读者提供的统计图可见,类别分布呈显著不均衡:光脑袋数量远高于安全帽,同时框尺寸主要落在小尺度区间,宽高直方图在 \([0.02,0.15]\) 附近集中,目标中心点多分布在图像中部偏下区域,体现出“小目标+密集+遮挡”的任务特点。为此,数据侧采取三类处理:其一是规范化与清洗,含哈希去重、空/越界框剔除、极端长宽比样本复核与同一图像重复标注合并;其二是难例重采样与类别再平衡,对“安全帽”类使用 class-aware/instance-aware 采样与置信度引导的 copy-paste 增强,缓解长尾带来的召回不足;其三是针对小目标与光照/运动的增强,训练时启用多尺度(如 640–960 随机)、Mosaic+MixUp(弱化至 0.2)、随机仿射与透视、HSV 抖动、运动模糊/轻微噪声以及随机遮挡,以提升在夜间背光、抖动与部分遮挡下的鲁棒性。配合自动聚类得到的锚框(见锚框示意图),在不改变标签语义的前提下提升小框匹配率;所有增强与清洗步骤在划分后独立对训练集生效,验证/测试集仅做尺度与颜色的确定性标准化,确保评测公正。最终,我们将类别统计、锚框参数与划分索引写入 SQLite 与 CSV,供 Web 端“概览/导出”视图即时检索与高亮定位。

4. 模型原理与设计
本文以 YOLOv12 为主线实现安全帽实时检测,延续单阶段、端到端的检测范式:输入经轻量骨干提取多尺度特征,颈部进行金字塔式融合(FPN/PAN),解耦检测头分别输出分类与框回归(可选对象性分支),并以 NMS 或端到端免 NMS 解码得到最终目标集合;该结构在小目标密集与遮挡场景中具有较好的吞吐与召回折中。YOLOv12 在骨干中采用基于 RepConv/ELAN 系列的层聚合单元与更轻的跳连,结合 SPPF/ASFF 等快速多尺度块降低延迟;在头部默认采用 Anchor-free 与任务对齐分配(Task-Aligned Assigner)以减少锚框超参,并支持与 YOLOv5–YOLOv11 同系模型的权重热切换以统一训练与部署接口。**网络整体架构图如下图所示:

在结构细节上,骨干以层聚合网络聚焦长程信息与梯度流动,颈部采用跨层特征拼接/相加实现从高分辨率到低分辨率的语义重用;为缓解“安全帽 vs. 光脑袋”的类间相似与远距小目标问题,在若干阶段引入轻量注意力(以 SE/ECA 为代表)提升通道选择性:先做全局平均池化 \(z_c=\frac{1}{HW}\sum_{i,j}X_{c,ij}\),经两层瓶颈得到通道权重 \(s=\sigma(W_2\delta(W_1 z))\) 并作用于原特征 \(\hat{X}_c=s_c X_c\),其中 \(\sigma\) 为 Sigmoid、\(\delta\) 为 ReLU、\(W_1,W_2\) 为可学习矩阵;同时在颈部保留 SPPF 以扩大感受野、在浅层分支增加更高分辨率的检测头,以提升对 0.02–0.15 尺度目标(第 3 章统计)的召回。解耦头将分类与回归分离,分别使用轻量卷积/归一化/激活堆叠,减少梯度冲突;推理侧支持 iou-threshold 与 conf-threshold 的在线调参以适配不同视频源。
损失与任务建模方面,框回归采用 IoU 家族与分布式回归联合优化。标准 IoU 为 \(IoU=\frac{|B\cap B^*|}{|B\cup B^*|}\);为更稳健地约束中心与长宽,引入 CIoU:
其中 \(\rho\) 为预测框中心与真值中心的欧氏距离,\(c\) 为外接最小闭包矩形对角线长度,\(v=\Big(\frac{2}{\pi}\arctan\frac{w^*}{h^*}-\frac{2}{\pi}\arctan\frac{w}{h}\Big)^2\),\(\alpha=\frac{v}{(1-IoU)+v}\);在 Anchor-free 设定下,四边距离采用 Distribution Focal Loss(DFL)离散化回归:
其中 \(p_{\ell,b}\) 为边 \(\ell\) 在第 \(b\) 个离散桶的概率,\(y_{\ell,b}\) 由真实位置线性插值得到软标签。分类端使用带标签平滑的交叉熵 $ \tilde{y}=(1-\varepsilon)y+\varepsilon/K $,
并可选用 Focal Loss 抑制易样本主导;正负样本分配采用任务对齐策略以同时考虑分类置信与定位质量,使小目标在密集场景中获得更合理的监督信号。上述组合在“光脑袋数量远大于安全帽”的长尾分布下,可通过类别重加权与难例挖掘(OHEM/Top-k)进一步稳定训练。
训练与正则化方面,采用 Cosine 学习率调度与线性 warmup,优化器默认 SGD 或 AdamW(权重衰减 \(L_2\) 正则)并启用 EMA 模型以平滑波动;正则策略含随机尺度(640–960)、Mosaic/MixUp(弱化混合系数以减少伪边界)、随机仿射/色彩抖动、轻度运动模糊与随机遮挡,对应第 3 章所示的远距小目标、背光与遮挡难点;推理后处理提供传统 NMS 与(在满足一致性训练条件下的)端到端免 NMS 两种路径,前者对 CPU 端更友好,后者在 GPU/TensorRT 上可减少后处理开销;阈值 \(\text{conf}\) 与 \(\text{IoU}\)、多类别筛选、以及批量尺寸将通过 Flask-SocketIO 与前端滑块保持会话级同步,确保网页端“左右双画面”和“同步双帧”在在线调参与对比时的一致性。Ultralytics 文档对 Backbone–Neck–Head 的通用划分与训练实践有更详细说明,可作为本节实现细节的参考。
5. 实验结果与分析
本节在统一数据与评测协议下,对 YOLOv5–YOLOv12 的轻量与小型两组模型进行对比,测试环境为 RTX 3070 Laptop 8 GB,输入分辨率与推理批量在各模型间保持一致,主要指标含 Precision / Recall / F1 / mAP@0.5 / mAP@0.5:0.95 与分段时延(Pre/Inf/Post)。从你提供的混淆矩阵可见,hat→hat 与 person→person 的归类概率分别约 0.87 与 0.89–0.93,主要错误来自小目标被判为 background(如 hat→background 约 0.11、person→background 约 0.10),体现远距与遮挡对召回的影响;F1–置信度曲线显示全类最佳阈值约 0.37,据此博主将网页端默认 Conf=0.37 以兼顾精度与召回,如下图所示的 PR/F1 走势亦与之吻合。

总体对比上,nano 组中 YOLOv12n 的 mAP@0.5=0.897 为最高,而 F1 最优来自 YOLOv7-tiny(0.874);YOLOv8n 虽具更快的单帧推理,但在本数据集上 Recall=0.697 导致 F1=0.789 和 mAP@0.5=0.770 明显落后,原因与其默认训练/分配策略对极小目标的适配不足有关。

small 组中 YOLOv7 取得 mAP@0.5=0.934、F1=0.916 的最强精度,但端到端时延最高;若在精度与时延间折中,YOLOv8s 与 YOLOv11s 以更低延迟获得 mAP@0.91±0.01、F1≈0.88–0.89 的稳定表现,适宜在多路摄像头并发的实时平台中作为默认在线模型。

从 PR 与收敛曲线看,nano 组的 YOLOv10n 前期收敛较慢(20 epoch 内 mAP 波动较大),60–80 epoch 后与 YOLOv11n/12n 持平;small 组普遍在 30–40 epoch 后进入平台期,90 epoch 后提升趋缓,结合验证曲线建议 早停于 80–100 epoch 可节省训练成本;两组曲线都呈“高精度—高召回”右端急剧折返,说明阈值略高会显著牺牲召回,进一步印证 Conf≈0.35–0.40 的实用区间。结合错误分布,改进方向包括:对小框密集区域增加浅层检测头与更强的尺度增强、对背光帧引入亮度对抗增强,以及在数据不均衡下采用 class-aware 重采样 与 置信度引导 copy-paste。

时延方面(端到端 E2E=Pre+Inf+Post),nano 组最快为 YOLOv8n 10.17 ms,YOLOv6n 10.34 ms、YOLOv5nu 10.94 ms 紧随;高精度的 YOLOv12n 为 15.75 ms,YOLOv7-tiny 21.08 ms。small 组中 YOLOv8s 11.39 ms 最快,YOLOv5su/6s 约 12.24/12.26 ms,而精度最强的 YOLOv7 达 29.52 ms。在 30 FPS(33.3 ms)门槛下,两组大多数模型均满足实时;若目标是 ≥60 FPS 的浏览器预览,推荐 YOLOv8s/n 或 YOLOv6s/n;若偏重 合规取证精度,推荐 YOLOv7(s) 或 YOLOv12n/s,并结合 TTA 仅用于离线导出。
综合对比表(节选)
(E2E=Pre+Inf+Post,单位:ms)
| Model | Params(M) | FLOPs(G) | E2E(ms) | Precision | Recall | F1 | mAP@0.5 | mAP@0.5:0.95 |
|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 10.94 | 0.907 | 0.818 | 0.860 | 0.889 | 0.553 |
| YOLOv6n | 4.3 | 11.1 | 10.34 | 0.878 | 0.804 | 0.839 | 0.857 | 0.511 |
| YOLOv7-tiny | 6.2 | 13.8 | 21.08 | 0.915 | 0.837 | 0.874 | 0.889 | 0.510 |
| YOLOv8n | 3.2 | 8.7 | 10.17 | 0.909 | 0.697 | 0.789 | 0.770 | 0.476 |
| YOLOv9t | 2.0 | 7.7 | 19.67 | 0.896 | 0.826 | 0.859 | 0.887 | 0.559 |
| YOLOv10n | 2.3 | 6.7 | 13.95 | 0.874 | 0.821 | 0.847 | 0.886 | 0.545 |
| YOLOv11n | 2.6 | 6.5 | 12.97 | 0.894 | 0.831 | 0.862 | 0.891 | 0.556 |
| YOLOv12n | 2.6 | 6.5 | 15.75 | 0.914 | 0.828 | 0.869 | 0.897 | 0.566 |
| YOLOv5su | 9.1 | 24.0 | 12.24 | 0.917 | 0.838 | 0.876 | 0.902 | 0.571 |
| YOLOv6s | 17.2 | 44.2 | 12.26 | 0.908 | 0.785 | 0.842 | 0.866 | 0.524 |
| YOLOv7 | 36.9 | 104.7 | 29.52 | 0.924 | 0.908 | 0.916 | 0.934 | 0.583 |
| YOLOv8s | 11.2 | 28.6 | 11.39 | 0.924 | 0.845 | 0.883 | 0.910 | 0.571 |
| YOLOv9s | 7.2 | 26.7 | 22.17 | 0.928 | 0.852 | 0.888 | 0.916 | 0.581 |
| YOLOv10s | 7.2 | 21.6 | 14.19 | 0.917 | 0.845 | 0.880 | 0.909 | 0.582 |
| YOLOv11s | 9.4 | 21.5 | 13.47 | 0.913 | 0.867 | 0.889 | 0.913 | 0.582 |
| YOLOv12s | 9.3 | 21.4 | 16.74 | 0.918 | 0.855 | 0.886 | 0.915 | 0.582 |
图1 轻量(nano)模型的 F1 与 mAP@0.5 双条形图
(配色:F1 — #4C78A8,mAP@0.5 — #F58518)

图2 小型(small)模型的 F1 与 mAP@0.5 双条形图

结论与建议(与系统联动):在 Web 实时平台中,若面向 主看护(≥30 FPS)+ 较高精度,推荐默认 YOLOv8s 或 YOLOv11s,并提供 YOLOv7 作为“高精度离线导出”选项;若 端侧资源紧张或多路并发,以 YOLOv8n/6n 作为在线推理模型、YOLOv12n 作为复核/回放模型更为稳妥。依据 F1–Conf 曲线,将前端滑块初值设为 0.37,必要时在“人群密集/远距”场景下将 IoU=0.45–0.50、NMS=class-wise 以降低重叠冲突;同时在导出中心启用 CSV+带框图/视频 的一键导出与 SQLite 入库,结合“最近记录”高亮可快速定位误检/漏检并支持再训练数据闭环。
6. 系统设计与实现
6.1 系统设计思路
本系统采用四层协同的分层架构:表现与交互层(浏览器端)负责图片/视频/摄像头三源输入与左右等宽双画面呈现;业务与会话管理层(Flask + Flask-SocketIO)统一处理路由、用户/访客会话与权限、参数同步及导出调度;推理与任务调度层承担多源解码、帧队列缓冲、同步双帧推送、YOLO 推理引擎选择(PyTorch/ONNX/TensorRT)与后处理统计;数据持久化层以 SQLite 为核心记录结果、配置与审计日志,同时管理带框图片/视频与 CSV 的归档。整体数据流为:多源输入经预处理进入推理引擎,输出框/类别/分数在服务端完成 NMS 或端到端解码后,通过 SocketIO 向前端同步两路画面(原图/结果)及统计信息,用户交互再以会话粒度回写,形成“推理—可视—调参—再推理”的闭环。
为保障实时性与一致性,视频与摄像头任务采用时间戳驱动的帧队列与同步双帧策略:同一时间片严格绑定原帧与检测帧,并在网络波动或浏览器渲染压力增大时进行优雅降采样与关键帧优先策略;参数侧通过会话级 KV 存储实现Conf/IoU/类别筛选/播放进度的原子同步,避免前后端状态漂移。系统默认提供模型权重热切换,切换后自动刷新类别映射与配色表,旧会话可回滚到上一次稳定版本;导出中心集中管理 CSV 与带框素材,所有导出与浏览行为写入审计日志,便于溯源与复现。
在可扩展性方面,推理引擎以抽象接口屏蔽框架差异,可按硬件画像在 PyTorch、ONNX Runtime 或 TensorRT 间选择;调度器支持“图片批处理/视频单流/多摄像头并发”的混合队列,必要时可将长视频离线分段;持久化层采用版本化迁移,保障历史任务与配置在升级后仍可直接查询与复核。上述设计与第 5 章的指标与时延结果相呼应,使系统既能在 30–60 FPS 的在线看护下稳定工作,也能在高精度离线导出时发挥更强模型的上限。
图 6-1 系统流程图
图注:系统自初始化到多源输入,经预处理与 YOLO 推理后,将后处理结果与原帧以同步双帧推送到前端;交互侧的阈值与进度控制回写至会话并驱动二次推理,导出与入库在同一交易中完成。

图 6-2 系统设计框图
图注:层次化架构展示了浏览器端、会话/业务控制、推理与调度、数据持久化的边界;权重管理与日志/监控作为横切关注点贯穿业务与推理层。

6.2 登录与账户管理

登录流程在系统侧以“最小权限”原则实现:用户进入登录页后若无账号则完成注册并以哈希口令写入账户表,随后登录创建带过期策略的会话并在同源窗口内生效;系统自动加载其个性化配置与历史记录并进入主界面,期间任一资料修改均以事务写回数据库并刷新会话;若选择一次性跳过,则创建访客会话限制导出与入库行为,结束或注销即清除缓存;该机制使个性化设置与检测结果在会话与持久化层之间保持一致,并与主检测流程的参数同步与导出中心紧密衔接。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/INvIwIXnbibpDBkGYzOctxcRnvh
讲解视频地址:https://www.bilibili.com/video/BV1EtQwBYEpm/
完整安装运行教程:
这个项目的运行需要用到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 + SocketIO + HTML/CSS/JS 实现了可在线演示与实用部署的 Web 平台,完成从数据处理(1518 张,910/304/304 划分、YOLO 标注与中文类别映射)、模型训练与推理、网页交互到导出与入库的一体化闭环;在统一协议下对 YOLOv5–YOLOv12(轻量与小型两组)进行系统评测,结论要点为:在 nano 组中 YOLOv12n 取得最高 mAP@0.5(0.897)兼顾召回与精度,YOLOv7-tiny 的 F1 最优(0.874);在 small 组中 YOLOv7 以 mAP@0.5=0.934、F1=0.916 达到最高精度但延迟较高,而 YOLOv8s/YOLOv11s 以更低端到端时延(≈11–13 ms)获得稳定的 0.91±0.01 mAP 表现,适合作为默认在线模型;结合 PR/F1 曲线,系统前端默认阈值设为 Conf≈0.37、IoU=0.45,双画面对比、同步双帧与一键导出(CSV 与带框图/视频)显著提升了问题定位与复现实验效率。平台在真实视频流中的表现表明:在标准 30 FPS 约束下,多数模型均可稳定在线运行,且检测—导出—入库—回看链路具备审计与溯源能力;方法与系统范式对机械器件外观缺陷、PPE 合规(如反光背心、护目镜)与车间安全事件(如叉车禁入、烟火识别)等任务具备良好可迁移性。
面向未来,博主规划三条演进路径:其一,模型侧聚焦更轻量与更稳健的实时检测,开展(1)蒸馏与结构化剪枝/N:M 稀疏以压缩至边缘 GPU/高性能 CPU 可用规模;(2)QAT/低比特量化与端到端免 NMS 推理的联合优化;(3)多模态融合(检测+跟踪+分割,必要时引入文本提示与声学异常)以增强复杂场景理解与跨摄像头一致性;其二,系统侧推进(1)容器化与分布式任务队列(Docker + Celery/RQ),按流量弹性伸缩;(2)WebRTC 超低时延推流与断点续传、边缘缓存;(3)RBAC/审计日志/多租户与 i18n 支持,完善合规性与可运维性;(4)可观测性(指标/日志/追踪一体化)与在线 A/B 切换,保障 SLA;其三,数据侧闭环(1)主动学习与持续标注,按不确定性与漂移信号采样难例回流再训;(2)数据治理(版本化、可追溯、质量评估)与分布漂移监测,建立周更/双周更的迭代节律;(3)弱监督与合成数据扩容,针对远距小目标与背光遮挡补齐分布短板。总体来看,本平台在精度、时延与工程一致性上达成兼顾,为后续在更大规模多路摄像头、跨场景机械器件检测与合规审计中的推广提供了坚实基础;文末附完整工程与数据集下载链接,便于读者复现与二次开发。
参考文献(GB/T 7714)
1 njvisionpower. Safety-Helmet-Wearing-Dataset (SHWD)[EB/OL]. GitHub, 2019–2025. (访问时间:2025-12-13). (GitHub)
2 Song X, Zhang T, Yi W. An improved YOLOv8 safety helmet wearing detection network[J/OL]. Scientific Reports, 2024. DOI:10.1038/s41598-024-68446-z. (基于 SHWD 报告 mAP 92.0%). (Nature)
3 ONNX Runtime. Using WebGPU for ONNX Runtime Web[EB/OL]. 2025. (访问时间:2025-12-13). (ONNX Runtime)
4 NVIDIA. Working with Quantized Types — TensorRT Documentation[EB/OL]. 2025. (访问时间:2025-12-13). (NVIDIA Docs)
5 郑会等. 改进的轻量级安全帽佩戴检测算法[J/OL]. 液晶与显示, 2023. (访问时间:2025-12-13). (Optics Journal)
6 刘聪. 基于改进YOLO的安全帽佩戴检测算法研究[J]. 计算机科学与应用, 2023, 13(12):2551-2561. (Hanspub PDF)
7 Ultralytics. YOLOv5 in PyTorch > ONNX > CoreML > TFLite[EB/OL]. GitHub, 2020–2025. (GitHub)
8 Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[C/OL]. ICCV, 2019. (arXiv)
9 Zhou X, Wang D, Krähenbühl P. Objects as Points[C/OL]. arXiv:1904.07850, 2019. (arXiv)
10 Ren S, He K, Girshick R, Sun J. Faster R-CNN[J/OL]. arXiv:1506.01497, 2015. (arXiv)
11 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[C/OL]. ECCV, 2016. (arXiv)
12 Lin T-Y, Goyal P, Girshick R, He K, Dollár P. Focal Loss for Dense Object Detection[C/OL]. ICCV, 2017. (arXiv)
13 Li C, Li L, Jiang H, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[J/OL]. arXiv:2209.02976, 2022. (arXiv)
14 Wang C-Y, Bochkovskiy A, Liao H-Y. YOLOv7[J/OL]. arXiv:2207.02696, 2022. (arXiv)
15 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[J/OL]. arXiv:2405.14458, 2024. (arXiv)
16 Ultralytics. All you need to know about YOLO11[EB/OL]. 2024-09-30. (Ultralytics)
17 Ultralytics. YOLO12: Attention-Centric Object Detection — Docs[EB/OL]. 2025. (社区版,含相对 mAP/速度对比). (Ultralytics Docs)
18 Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[J/OL]. arXiv:2203.16250, 2022. (51.4 mAP; 78.1 FPS; TRT 149.2 FPS). (arXiv)
19 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[J/OL]. arXiv:2107.08430, 2021. (50.0 AP; 68.9 FPS V100). (arXiv)
20 Lv W, Xia C, Shi Y, et al. RT-DETR: Real-Time End-to-End Object Detection[J/OL]. arXiv:2304.08069, 2023. (arXiv)
21 ONNX Runtime. Quantize ONNX Models — ORT Quantization Guide[EB/OL]. 2025. (ONNX Runtime)
22 AMD. Quark for ONNX — ONNX Quantizer User Guide[EB/OL]. 2025. (Quark Documentation)

浙公网安备 33010602011771号