最新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_nameLabel_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 学习率退火

\[\eta_t=\eta_{\min}+\tfrac{1}{2}(\eta_{\max}-\eta_{\min})!\left[1+\cos!\left(\frac{\pi t}{T}\right)\right], \]

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

s 型对比中,YOLOv7F1=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两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:

  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. 结论与未来工作

本文围绕“吸烟行为实时检测”构建了集 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 等;正文执行“单句单引”,表内指标来源可追溯。

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