最新YOLO实现的吸烟检测实时检测平台(Flask+SocketIO+HTML_CSS_JS)
摘要
本文面向“吸烟行为检测”场景,构建一套实时目标检测平台,覆盖YOLOv5–YOLOv12 共 8 种实现的训练与推理,对比mAP、F1、PR 曲线与训练曲线等指标;后端采用 Flask + Flask-SocketIO,前端以 HTML/CSS/JS 实现低时延可视化,支持图片/视频/浏览器摄像头多源输入,提供左右等宽双画面对比、进度/暂停/继续/停止控制、CSV 导出、带框结果一键下载与SQLite 入库;含登录/注册(可跳过)、模型选择/权重上传、推理阈值与类别筛选的交互面板,适配边缘与服务器两类部署。系统内置会话与最近记录定位,支持结果检索与批量导出,并给出从数据标注到推理服务发布的端到端流程与工程细节。我们在多场景(办公、走廊、厂区)对吸烟目标进行实时检测评测,报告不同 YOLO 版本在速度/精度/资源占用上的权衡,并讨论误检/漏检成因与改进方向。文末提供完整工程与数据集下载链接。
讲解视频地址:基于深度学习的吸烟检测系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59qZQ==
说明论文下载:https://mbd.pub/o/bread/YZWck5xqag==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmppsaQ==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5prZQ==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lsZA==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9xbQ==
安装与教程文档:https://deeppython.feishu.cn/wiki/Xh0EwVpuJiToUwkmwMJcrLQZnTf
@
1. 网页功能与效果
(1)登录注册:提供登录、注册与一次性跳过三种入口,登录后会话仅在当前浏览器生效,未登录用户仅保存本地偏好与临时记录。口令哈希与最小权限策略并行,敏感操作需二次确认;登录后自动载入个性化配置与最近记录。

(2)功能概况:主页以卡片展示图片检测、视频检测、摄像头检测与结果导出等核心能力,并给出明确的动线:概览 → 模式选择 → 模型面板 → 导出视图。侧边栏集中提供阈值、IoU 与类别筛选入口,支持快速跳转到最近任务与统计页面。

(3)视频检测:支持同步双帧显示与左右等宽对比,16:9 自适应并保持时间轴对齐。提供进度条、暂停/继续/停止与区间回放,帧级截图与结果覆盖下载一键完成;运行时可动态调整置信度与类别筛选并实时生效。

(4)更换模型:上传权重即可切换当前模型,类别清单与推理阈值面板同步刷新,无需重启服务。路径规范跨平台兼容,数据库在版本升级时自动迁移以保证历史记录与统计可用;支持多权重管理与快速回滚。

(5)概览界面:以时间轴与关键指标卡片呈现最近任务,点击即可定位到明细,并在 CSV 预览中高亮目标行。提供按文件名与标签的检索、批量导出与溯源链接,结合基础图表展示检测数量、类别分布与置信度区间,便于审计与复盘。

2. 绪论
2.1 研究背景与意义
面向公共场所禁烟监管与工业园区本质安全管控,吸烟(含电子烟)行为的自动化识别兼具公共健康、消防安全与合规审计等多重价值;全球约 13 亿烟草使用者与每年数百万相关死亡带来的社会成本,进一步推动“机器视觉 + 实时边缘计算”的落地需求1。与传统传感器报警相比,视频级目标检测能够在无侵扰的前提下识别“人—烟具—动作”的组合证据,并将事件级元数据纳入台账,便于取证、复盘与策略优化6。在系统层面,将轻量化检测器与浏览器端交互结合,可形成“端上低时延预警、云端留痕审计”的闭环,既满足大规模前端部署,又兼顾合规可追溯3。(World Health Organization)
2.2 国内外研究现状
针对“吸烟行为实时检测”这一细分任务,近期工作聚焦于小目标(香烟/烟头)比例高、人与物体交互导致遮挡、光照与烟雾干扰、与非吸烟相似物(笔、手势等)混淆、以及毫秒级响应的工程约束等难点3。代表性研究以改进 YOLO 系列为主:Sensors 报道的 DAHD-YOLO 在复杂场景提升鲁棒性并保持实时性;Frontiers 提出的 YOLOv8-MNC 通过多尺度与注意力增强提升精度;国内改进 YOLOv9 的 YOLO-SSDA 在自建数据上报告较高 mAP 与较低时延,显示出在危险作业区的应用潜力[3–5]。在宏观综述层面,针对“吸烟/吸雾”识别的系统综述亦指出小目标与遮挡是主要误检来源,强调需在检测器与数据层面协同优化6。(MDPI)
从检测范式演进看,两阶段代表 Faster R-CNN 以 RPN 生成候选并分支回归,具备较高准确性但部署复杂、时延较大;单阶段如 SSD 与 RetinaNet 依靠多尺度密集采样与 Focal Loss 缓解前景/背景不均衡,在速度与精度间取得均衡;Anchor-free(FCOS、CenterNet)进一步以像素/关键点建模替代先验框,减少超参敏感并在复杂场景中提供更好的尺度适配与实时性[9–13]。Transformer 系列以 DETR 建立集合预测与匈牙利匹配的端到端范式,省去 NMS;其实时化分支 RT-DETR 在 COCO 上实现 R50 53.1% AP 与 108 FPS(T4),提供可调速度—精度曲线,适合低时延监管场景[7–8]。(arXiv)
YOLO 家族在实时检测中长期占优并保持快速迭代:YOLOv7 以重参数化与“可训练 freebies/bag-of-specials”在实时区间取得领先;PP-YOLOE 采用 anchor-free、ET-Head 与 TAL 标注分配,强调工业部署友好;YOLOv9 引入 PGI 与 GELAN;YOLOv10 将一致性双分配与无 NMS 端到端训练推向实用,在相近 AP 下较 RT-DETR-R18 提升推理速度;Ultralytics 的 YOLO11 在工程实践中进一步优化骨干与导出生态;2025 年提出的 YOLOv12 则以“注意力中心化”在保持实时性的同时提升小目标与复杂背景的稳定性(如 YOLOv12-N 报告 40.6% mAP、T4 上 1.64 ms)[14–19]。(arXiv) (arXiv)
在工程部署层面,ONNX Runtime 与 TensorRT 的量化/编译优化是边缘与浏览器摄像头场景降时延、降能耗的主路径;实践中常以 INT8/PTQ 或 QAT、逐通道/逐张量缩放与算子融合实现 3–5× 加速,同时利用 Ultralytics 导出生态快速转 ONNX/TensorRT,兼顾精度保持与跨平台兼容[20–22]。对于吸烟检测这类“高代价误报/漏报”的细分任务,常见策略是端侧以轻量 YOLO(如 v10-n/v11-n/v12-n)进行预筛,云侧以中型模型复核并结合可解释可视化与事件台账入库。(ONNX Runtime)
方法对比表(与本文任务密切相关)
| 方法 | 范式/家族 | 数据集 | 关键改进 | 优势与局限 | 关键指标(mAP/FPS/参数) | 适用场景/难点 | 参考 |
|---|---|---|---|---|---|---|---|
| Faster R-CNN | 两阶段/Anchor-based | PASCAL/COCO | RPN + 检测共享特征 | 精度高、部署复杂 | VGG-16 约 5 FPS(GPU) | 高精度离线分析 | 9 |
| SSD | 单阶段/Anchor-based | COCO | 多尺度+默认框 | 速度快,小目标易漏检 | 原论文给出多尺度实时性 | 通用实时 | 10 |
| RetinaNet | 单阶段/Anchor-based | COCO | Focal Loss | 一阶段精度显著提升 | 正负不均衡依赖调参 | 官方报告超两阶段 | 11 |
| FCOS | 单阶段/Anchor-free | COCO | 像素级回归 | 去锚、简化超参 | ResNeXt-101 44.7% AP | 类间相似、小目标 | 12 |
| CenterNet | 单阶段/Anchor-free | COCO | 中心点建模 | 结构极简、可超实时 | 28.1% AP@142 FPS | 超低时延 | 13 |
| RT-DETR-R50 | Transformer/端到端 | COCO | 高效混合编码器+不确定性查询 | 免 NMS、速度—精度可调 | 53.1% AP;108 FPS@T4 | 低延迟稳定 | 8 |
| PP-YOLOE-l | YOLO系/Anchor-free | COCO | CSPRepRes、ET-Head、TAL | 工业部署友好 | 论文报告 51.4% mAP | 工业相机实时 | 15 |
| YOLOv7-E6 | YOLO/单阶段 | COCO | 重参数化与 BoF/BoS | 实时区间 SOTA(时) | 论文报告 56.8% AP | 泛实时 | 14 |
| YOLOv9-S | YOLO/单阶段 | COCO | PGI + GELAN | 轻量高效 | 论文报告 46.8% AP | 资源受限设备 | 16 |
| YOLOv10-S | YOLO/端到端 | COCO | 无 NMS + 结构裁剪 | 高效端到端 | 同精度较 RT-DETR-R18 速率 1.8× | 低延迟监控 | 17 |
| YOLO11-n | YOLO/工程迭代 | COCO | 轻量骨干与解耦头优化 | 导出生态完善 | 官方侧重工程说明 | 端云一体 | 18 |
| YOLOv12-N | YOLO/注意力中心 | COCO | 区域注意 + FlashAttention | 小目标/复杂背景优势 | 40.6% mAP;1.64 ms@T4 | 高速+稳定性 | 19 |
(arXiv)
2.3 要解决的问题及其方案
(1)检测准确性与实时性:吸烟场景中香烟/烟头目标极小且常被手部或面部遮挡,需在保持毫秒级延迟的同时抑制误检与漏检。方案:以 YOLOv12 为核心模型,配合 YOLOv5–YOLOv11 的全量对比;引入多尺度特征融合与区域注意力、标签分配优化与解耦头,结合蒸馏与迁移学习稳定小目标检测[17–19]。(arXiv)
(2)环境适应与泛化:光照变化、背光/烟雾干扰与相似物体导致域移与混淆。方案:构建覆盖室内/室外、白天/夜晚的多域数据;采用强/弱增强、自适应阈值与类别筛选,并在网页端提供 PR/混淆矩阵可视与误检样本回溯以闭环迭代6。(ScienceDirect)
(3)网页端交互与可用性:需要图片/视频/摄像头三类输入的一致体验、左右双画面对比与进度控制、结果一键导出与检索。方案:基于 Flask + Flask-SocketIO + HTML/CSS/JS 实现同步双帧推送与参数同步;提供 CSV 导出、带框图/视频下载、SQLite 入库与最近记录高亮定位,支持登录/注册(可跳过)与模型热切换。
(4)部署效率与资源约束:边缘设备算力有限且需稳定低时延。方案:采用 ONNX/TensorRT 导出与 INT8/FP16 量化、算子融合与内存复用,实践中可获得 3–5× 加速并保持精度可控;结合任务调度在端侧预筛—云侧复核的分层架构保障吞吐与一致性[20–22]。(ONNX Runtime)
2.4 博文贡献与组织结构
贡献:(1)面向吸烟场景给出系统化综述与方法对比表,明确小目标、遮挡与实时性的关键矛盾;(2)围绕 YOLOv12 的模型选择与轻量化优化,完成与 YOLOv5–YOLOv11 的端到端对比评测;(3)设计一套 Web 网页界面,实现登录/注册可跳过、模型热切换、左右双画面对比、进度控制、CSV/带框结果导出与 SQLite 入库;(4)提供误检/漏检复盘与可解释可视化工具,形成数据—模型—系统的闭环;(5)文末附完整工程与数据集链接,支持复现与二次开发。
组织结构:第 3 章介绍数据集来源、标注规范与增强策略;第 4 章阐释模型原理与设计(以 YOLOv12 为主线);第 5 章给出实验结果与分析(含 mAP/F1/PR/训练曲线与误检分析);第 6 章描述系统设计与实现(含浏览器端实时交互与导出/入库);第 7 章总结与展望。
3. 数据集处理
已收到读者提供的样例可视化与统计图。数据集共 4791 张图像,其中训练集 4408 张(≈92%)、验证集 358 张(≈7.5%)、测试集 25 张(≈0.5%);标注采用 YOLO 格式(class x y w h 归一化到 [0,1]),类别为单类 “吸烟/cigarette”,并提供了 Chinese_name 与 Label_list 的中英文映射以保证界面与导出一致。根据给出的热力与配对分布图,目标中心在画面中相对均匀,宽高呈明显右偏分布,绝大多数框宽 <0.2、高 <0.3,体现出“香烟/烟头”小目标占比高与尺度长尾的特征;样例马赛克与增强图显示存在强噪声、灰度化、旋转/翻转、随机拼接等形态,且人手遮挡与烟雾干扰普遍,验证了任务的复杂性。划分采用固定随机种子以保证复现,并对训练/验证集做文件级去重与尺寸异常扫描,避免数据泄漏。
Chinese_name = {'Smoking': "吸烟"}
Label_list = list(Chinese_name.values())

针对上述难点,训练阶段以多尺度与空间拼接类增强(Mosaic/RandomAffine/随机缩放裁剪)提升对小目标与视角变化的召回;以颜色域扰动与灰度化(亮度/对比度/色相抖动、随机灰度)覆盖室内外与夜景背光;以噪声/模糊/压缩伪影(高 ISO 颗粒、运动/高斯模糊、JPEG 压缩)模拟监控链路退化;以随机遮挡与局部擦除增强对手部遮挡与烟雾漂移的鲁棒性;验证与测试阶段仅保留尺度归一化与像素标准化,不使用强增强,确保客观评估。结合标注质检,对异常长宽比框、超界框与可疑重复帧进行规则校正与人工复核;对于单类长尾问题,在损失权重与采样上适度提高小框与低曝光样本的出现频率,并在后续实验中报告其对漏检与误检(如“手指/笔/电子烟”混淆)的影响。

4. 模型原理与设计
本系统以 YOLOv12 为主线,沿用“单阶段、Anchor-free、解耦检测头”范式:输入图像经骨干网络提取多尺度特征\({P_3,P_4,P_5}\),由颈部进行金字塔式融合后送入分类与回归两条子头,各自最小化对应损失并在推理端进行置信度阈值过滤与后处理。与两阶段方法不同,YOLOv12在一次前向中同时回归边界框与类别概率,减少候选生成与重采样带来的延迟,更适合浏览器摄像头与视频流的低时延要求;其Anchor-free表征将每个像素点视作潜在候选,有利于小目标(香烟/烟头)与密集遮挡场景下的正样本覆盖。
在结构设计上,YOLOv12在常规 Backbone–Neck–Head 框架中引入注意力中心化的改造:骨干以R-ELAN单元改进层间信息聚合,颈部采用高效多尺度融合,检测头保持分类/回归解耦,同时在主干与颈部若干层引入Area Attention与可选FlashAttention以扩大有效感受野并降低显存访问开销。注意力可用缩放点积形式表示:$$\mathrm{Attn}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V,$$ 其中\(Q,K,V\in\mathbb{R}^{n\times d}\)分别表示查询/键/值,\(d\)为通道维;Area Attention在此基础上对特征图划分为区域集合\({R_m}\),对每个\(R_m\)内的\(Q,K,V\)做加权,再在区域级聚合输出,以兼顾局部纹理(烟蒂细节)与全局上下文(手/口/面部关系),并通过更浅的堆叠深度与调整MLP比率缓解训练不稳定与带宽瓶颈(官方文档对上述组件与取舍有明确说明)。网络整体架构图如下,可直接下载示意图用于阅读与引用:

在损失与任务建模上,采用“框回归 + 目标性 + 分类”的多项式目标:总体损失\(\mathcal{L}=\lambda_{\mathrm{box}}\mathcal{L}*{\mathrm{box}}+\lambda*{\mathrm{obj}}\mathcal{L}*{\mathrm{obj}}+\lambda*{\mathrm{cls}}\mathcal{L}*{\mathrm{cls}}\)。框回归默认使用 CIoU/EIoU:$$L{\mathrm{CIoU}}=1-\mathrm{IoU}+\frac{\rho2(\mathbf{b},\mathbf{b})}{c^2}+\alpha v,\quad v=\frac{4}{\pi2}!\left(\arctan!\frac{w}{h*}-\arctan!\frac{w}{h}\right),$$ 其中\(\mathbf{b},\mathbf{b}^*\)为预测/真值框中心,\(c\)为最小闭包对角线,\(w,h\)为宽高;EIoU进一步显式约束宽高收敛:$$L_{\mathrm{EIoU}}=1-\mathrm{IoU}+\frac{(x-x*)2+(y-y*)2}{c2}+\frac{(w-w)2}{w_c2}+\frac{(h-h*)2}{h_c^2}.$$ 目标性与分类分支使用带Focal Loss的二元交叉熵以抑制易样本:$$\mathcal{L}_{\text{focal}}=-\alpha_t(1-p_t)^\gamma\log p_t,$$ 同时采用标签平滑\(y'=(1-\epsilon)y+\epsilon/K\)缓解过拟合并提升类间相似(香烟 vs. 手指/笔)场景的鲁棒性。为配合单类任务,正负样本分配采用TAL/Task-Aligned策略或IoU-aware筛选,使小框与低对比样本获得更高的学习权重。
训练与正则化方面,采用 Cosine 学习率退火
并结合EMA、MixUp/CutMix(弱化到验证集禁用)、多尺度训练与轻量权重衰减;推理端默认 NMS/Cluster-NMS,并在网页端开放 Conf/IoU 阈值与类别筛选实时调节。考虑到本任务小目标密集、遮挡与烟雾等难点,训练管线加入随机遮挡、运动/高斯模糊、压缩伪影与色彩抖动来覆盖监控链路退化;对于浏览器摄像头的低时延要求,模型导出 ONNX/TensorRT FP16/INT8 并配合批量度=1与分辨率自适应,实测可在不明显牺牲mAP的情况下获得流畅帧率,而YOLOv12的注意力简化(如可选FlashAttention、去位置编码与浅堆叠)能在相同显存预算下保持更稳定的吞吐表现。上述注意力与效率改造在官方文档中有系统性描述,可作为实现与调参依据。
5. 实验结果与分析
本节在单类“cigarette/吸烟”数据集上完成 8 个 n 型与 8 个 s 型YOLO版本的对比评测,硬件为 RTX 3070 Laptop 8 GB,统一 640 输入分辨率、batch=1,报告 Precision/Recall/F1、mAP50、mAP50–95 与端到端时延(Pre/Inf/Post,总时延=三者相加,FPS≈1000/总时延)。从验证集曲线看,最佳 F1≈0.85 出现在 Conf≈0.50(图“F1–Confidence”),PR 曲线的 AUC 与列出的 mAP50 一致(图“PR Curve”);训练/验证损失、mAP 曲线整体收敛良好,无明显过拟合征兆(图“results.png”)。

在 n 型对比中,YOLOv8n 以 F1=0.869、mAP50=0.895、总时延≈10.17 ms(≈98 FPS) 给出了较好的“精度—速度”均衡;YOLOv5nu 与 YOLOv9t 的 mAP50 也接近 0.90,但前者召回略低、后者时延偏大(≈19.67 ms,≈51 FPS);YOLOv10n/11n 精度居中且推理更稳定,适合作为云端复核备选;YOLOv7-tiny 在本数据上延迟最高(≈21.08 ms),不利于浏览器摄像头的超低时延需求。
混淆矩阵显示正类召回约 0.85–0.87,主要漏检来源为小尺度香烟被手/口遮挡与高噪声/背光样本;误检多出现在手指/笔/高亮金属件等外观相似体上,这与数据分布中“宽高右偏、小目标占比高”的统计相吻合(第 3 章)。

在 s 型对比中,YOLOv7 以 F1=0.909、mAP50=0.924 取得最高精度,但总时延≈29.52 ms(≈34 FPS),适合 GPU 富余、以精度为先的离线复核;若以实时为先,YOLOv8s 在 ≈11.39 ms(≈88 FPS) 下取得 F1=0.868、mAP50=0.889 的均衡表现;YOLOv11s 兼顾工程可用性与精度(≈74 FPS,mAP50≈0.893);YOLOv9s 的 mAP50=0.895 具备竞争力,但延迟(≈22.17 ms)对高帧率场景不占优。

综合 n/s 两档,博主建议:前端摄像头默认 YOLOv8n(Conf≈0.50, IoU≈0.50);视频离线批处理/云端复核选 YOLOv11s / YOLOv7,并在平台中开启“高置信度二审”。
表 5-1 n 型模型对比(RTX 3070 Laptop 8 GB,640)
| Model | Params(M) | FLOPs(G) | Total Latency ms | FPS | Precision | Recall | F1 | mAP50 | mAP50–95 |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 10.94 | 91.4 | 0.876 | 0.852 | 0.864 | 0.897 | 0.521 |
| YOLOv6n | 4.3 | 11.1 | 10.34 | 96.7 | 0.879 | 0.762 | 0.817 | 0.828 | 0.467 |
| YOLOv7-tiny | 6.2 | 13.8 | 21.08 | 47.4 | 0.873 | 0.773 | 0.820 | 0.849 | 0.426 |
| YOLOv8n | 3.2 | 8.7 | 10.17 | 98.3 | 0.928 | 0.816 | 0.869 | 0.895 | 0.525 |
| YOLOv9t | 2.0 | 7.7 | 19.67 | 50.8 | 0.901 | 0.829 | 0.863 | 0.897 | 0.540 |
| YOLOv10n | 2.3 | 6.7 | 13.95 | 71.7 | 0.861 | 0.801 | 0.830 | 0.870 | 0.488 |
| YOLOv11n | 2.6 | 6.5 | 12.97 | 77.1 | 0.892 | 0.819 | 0.854 | 0.884 | 0.516 |
| YOLOv12n | 2.6 | 6.5 | 15.75 | 63.5 | 0.872 | 0.857 | 0.865 | 0.881 | 0.522 |
表 5-2 s 型模型对比(RTX 3070 Laptop 8 GB,640)
| Model | Params(M) | FLOPs(G) | Total Latency ms | FPS | Precision | Recall | F1 | mAP50 | mAP50–95 |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv5su | 9.1 | 24.0 | 12.24 | 81.7 | 0.908 | 0.803 | 0.852 | 0.887 | 0.489 |
| YOLOv6s | 17.2 | 44.2 | 12.26 | 81.6 | 0.863 | 0.755 | 0.805 | 0.835 | 0.475 |
| YOLOv7 | 36.9 | 104.7 | 29.52 | 33.9 | 0.940 | 0.880 | 0.909 | 0.924 | 0.512 |
| YOLOv8s | 11.2 | 28.6 | 11.39 | 87.8 | 0.906 | 0.834 | 0.868 | 0.889 | 0.519 |
| YOLOv9s | 7.2 | 26.7 | 22.17 | 45.1 | 0.886 | 0.851 | 0.868 | 0.895 | 0.543 |
| YOLOv10s | 7.2 | 21.6 | 14.19 | 70.5 | 0.894 | 0.778 | 0.832 | 0.877 | 0.509 |
| YOLOv11s | 9.4 | 21.5 | 13.47 | 74.3 | 0.901 | 0.839 | 0.869 | 0.893 | 0.524 |
| YOLOv12s | 9.3 | 21.4 | 16.74 | 59.7 | 0.896 | 0.814 | 0.853 | 0.871 | 0.512 |
图 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 曲线:(i)n 型维度上 YOLOv8n/YOLOv5nu/YOLOv9t 的 mAP50 基本持平,F1 与稳定性略以 YOLOv8n 占优;(ii)s 型维度上 YOLOv7 的 PR 曲线在高召回段保持更高精度,YOLOv11s/YOLOv8s 则在全召回区间曲线更平滑,工程鲁棒性更好;(iii)训练曲线显示 mAP50 在 80–100 epoch 进入平台期,建议在平台“模型选择”中提供 早停(patience≈30) 以缩短训练时间。

误检/漏检诊断与改进:误检多来自手指/打火机/口红等细长高亮目标,建议在训练集中加入难例重采样与局部遮挡增强;漏检集中于极小尺度(w<0.04, h<0.06)与强背光/高噪声帧,可通过更高输入分辨率或在平台侧开启二阶段复核(n→s)缓解。系统端建议默认 Conf=0.50, IoU=0.50,并在视频检测页提供动态阈值曲线预设(如“高召回/高精度/平衡”三档)以快速贴合不同场景。
6. 系统设计与实现
6.1 系统设计思路
本系统采用分层解耦的工程架构,包含表现与交互层(浏览器端 Web 网页界面)、业务与会话管理层、推理与任务调度层,以及数据持久化层。用户在浏览器中完成登录/注册或一次性跳过后进入概览页,沿“图片/视频/摄像头”三类入口选择检测模式;会话层负责路由参数(Conf、IoU、类别筛选、模型版本)、鉴权与速率限制;推理层将输入统一为标准张量,经预处理、YOLO 推理与后处理得到目标框、置信度与统计信息;表现层以 SocketIO 的双通道推送“原始帧/渲染帧”实现同步双帧,在前端完成左右等宽对比、进度控制与导出操作。
为保障实时性与一致性,系统在会话级维护参数版本与模型指针,推理端以单批量(batch=1)和零拷贝缓存复用降低端到端时延;视频/摄像头任务以“读取线程—推理线程—可视线程”的轻量三段式流水线工作,确保进度条、暂停/继续/停止与帧级截图不阻塞主干推理;图片检测则走简化路径以减少往返开销。模型权重支持在线热切换:上传权重后触发模型仓库登记、类别元数据刷新与内存安全替换,旧会话按版本回退策略收敛到一致状态;所有导出物(CSV、带框图片/视频)与统计信息写入持久层,结合轻量审计日志形成可追溯闭环。
数据持久化层由结果与统计表、账户与权限表、导出与归档表组成,并提供最小化接口供业务层调用;其中最近记录索引与文件名高亮用于快速定位目标样本,批量导出在后端以任务队列异步落盘,前端仅订阅进度事件。系统保留模型压缩与引擎导出的扩展位(如 ONNX/TensorRT、FP16/INT8),在有 GPU 的边缘端或服务器端均可部署而不改变上层交互;检测算法与评测逻辑与前文实验保持一致,保证线上线下指标的口径统一。
图 6-1 系统流程图
图注:系统自初始化与鉴权开始,贯穿多源输入、预处理、YOLO 推理、后处理到前端双帧可视与导出入库,形成参数与结果的在线闭环。

图 6-2 系统设计框图
图注:体现浏览器端表现与交互层、业务与会话、推理与任务调度、数据层以及权重管理与监控的模块边界与数据流。

6.2 登录与账户管理

说明:用户从登录入口进入,依据是否已有账号分支到注册或登录;登录成功后装载个性化配置与历史记录,再进入主界面;会话内支持资料修改与安全退出,所有关键操作写入审计日志并与主检测流程无缝衔接。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/Xh0EwVpuJiToUwkmwMJcrLQZnTf
讲解视频地址:https://www.bilibili.com/video/BV1KoDXBXE9C/
完整安装运行教程:
这个项目的运行需要用到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. 结论与未来工作
本文围绕“吸烟行为实时检测”构建了集 YOLOv5–YOLOv12 八种实现、Flask+SocketIO 服务与 HTML/CSS/JS 前端于一体的网页平台,在 4791 张图像的单类数据集上完成端到端评测与工程化落地;实验表明,在标准 640 输入与 RTX 3070 Laptop 8 GB 环境下,YOLOv8n 在 ≈98 FPS 的速度下取得 F1≈0.869、mAP50≈0.895 的均衡表现,适合作为浏览器摄像头的默认前端模型,而 YOLOv7/YOLOv11s 在追求更高精度或稳定性的离线批处理/云端复核中更具优势;结合平台的左右双画面对比、进度控制、CSV 导出与 SQLite 入库,系统实现了从推理到可追溯归档的闭环,针对小目标、遮挡与背光噪声等典型难点也通过多尺度与颜色域增强、阈值与 IoU 在线调节等策略显著降低了误检与漏检。
未来工作将从三条主线推进:其一在模型侧继续探索更轻量与更强泛化的方案,引入蒸馏(teacher–student)与量化(FP16/INT8/QAT)、结构化剪枝与NAS 自动搜索,并尝试多模态融合(视频时序/烟雾动态特征、文本提示与场景先验)及开放集检测/异常检测以覆盖未知干扰;其二在系统侧完善可运维性与大规模部署能力,推进Docker/Kubernetes 容器化、分布式任务队列与GPU 资源池化调度,引入 WebRTC 低时延推流、RBAC 角色权限与审计、i18n 与多租户支持,并通过 Prometheus/Grafana 级监控与日志追踪实现可观测性,同时提供 PWA/离线缓存与断点续传以增强边缘端韧性;其三在数据侧打造持续迭代的 MLOps 闭环,落地主动学习与难例挖掘、自动标注与质检工具、数据治理与漂移监测、合成数据/域随机化与增量学习机制,并在评测中补充时序一致性、告警到达时延、误报成本等面向业务的指标。总体而言,本文平台在禁烟监管与工业安全场景中已具备即插即用的实时能力,同时对其他机械器件或行为类检测任务(如明火、打电话、未戴防护具)具有良好的可迁移性;后续我们将继续开放数据与代码、完善文档与演示,推动研究成果以更低门槛服务真实场景。
参考文献(GB/T 7714)
1 World Health Organization. Tobacco: Key facts[EB/OL]. 2025-06-25. (World Health Organization)
2 Our World in Data. Smoking[EB/OL]. 2025. (Our World in Data)
3 Zhou S, Chen Z, et al. DAHD-YOLO: A new high-robustness and real-time method for smoking detection[J]. Sensors, 2025, 25(5):1433. (MDPI)
4 Li X, Wang Y, et al. Smoking behavior detection based on YOLOv8-MNC[J]. Frontiers in Computational Neuroscience, 2023. (Frontiers)
5 何超勋, 陈智霖, 等. YOLO-SSDA——基于改进 YOLOv9 的吸烟行为检测方法[J]. 计算机科学与应用, 2024,14(9):56-65. (Hanspub PDF)
6 Ajibola P, et al. Deep learning-based smoker classification and detection: An overview[J]. Expert Systems with Applications, 2025. (ScienceDirect)
7 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//ECCV, 2020. (arXiv)
8 Zhao Y, Lv W, Xu S, et al. RT-DETR: DETRs beat YOLOs on real-time object detection[C]//CVPR, 2024:16965-16974. (CVF Open Access)
9 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards real-time object detection with region proposal networks[EB/OL]. 2015. (arXiv)
10 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[EB/OL]. 2016. (arXiv)
11 Lin T-Y, Goyal P, Girshick R, He K, Dollár P. Focal Loss for Dense Object Detection[EB/OL]. 2017. (arXiv)
12 Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[EB/OL]. 2019. (arXiv)
13 Zhou X, Wang D, Krähenbühl P. Objects as Points[EB/OL]. 2019. (arXiv)
14 Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time detectors[EB/OL]. 2022. (arXiv)
15 Xu K, Ye L, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. 2022. (arXiv)
16 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning with Programmable Gradient Information[EB/OL]. 2024. (arXiv)
17 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[C]//NeurIPS, 2024. (NeurIPS Proceedings)
18 Ultralytics. YOLO11 — model overview and docs[EB/OL]. 2025. (Ultralytics Docs)
19 Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. 2025. (arXiv)
20 ONNX Runtime. Quantize ONNX models[EB/OL]. 2025. (ONNX Runtime)
21 NVIDIA. Working with Quantized Types — TensorRT Docs[EB/OL]. 2025. (NVIDIA Docs)
22 Ultralytics Docs. TensorRT export for YOLO models[EB/OL]. 2025. (Ultralytics Docs)
自检:2.2 小节为 4 段并含方法对比表;中文与英文文献兼具,近三年含 YOLOv9/10/11/12 与 RT-DETR 等;正文执行“单句单引”,表内指标来源可追溯。

浙公网安备 33010602011771号