最新YOLO实现的吸烟行为实时检测平台(Flask+SocketIO+HTML_CSS_JS)

摘要

本篇面向“吸烟行为实时检测”应用场景,构建并开源一套基于 Flask + Flask-SocketIO/HTML/CSS/JSWeb 网页界面与后端推理服务,支持 图片/视频/浏览器摄像头 多源输入与实时可视化;前端提供 左右等宽双画面对比(原图 vs. 检测结果)、视频 进度控制/暂停/继续/停止,并内置 CSV 导出带框结果一键下载SQLite 入库登录/注册(可跳过) 的轻量会话管理。算法侧覆盖 YOLOv5–YOLOv12(共 8 种),通过统一评测协议比较 mAP、F1、PR 曲线、训练曲线 等,支持 模型选择/权重上传 与在线切换,满足不同算力与延迟约束下的部署需求。系统同时提供危险动作置信度阈值、目标类别筛选与结果溯源视图,便于在工厂、园区、校园与室内禁烟场所落地部署。整体工程强调可复现与可扩展:一键启动、前后端解耦、Socket 事件流驱动、批量任务与导出面板、最小权限账户策略。文末提供完整工程与数据集下载链接

讲解视频地址基于深度学习的吸烟行为检测系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59qZA==
说明论文下载:https://mbd.pub/o/bread/YZWck5xqaQ==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmppsaA==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5prZA==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lrbQ==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9xaw==
安装与教程文档:https://deeppython.feishu.cn/wiki/K5OlwD496iO7HAkmrRtcKHXYnMd

@

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


1. 网页功能与效果

(1)登录注册:提供登录、注册与一次性跳过三种入口;登录后会话仅在当前浏览器标签生效,支持自动续期与手动注销。口令采用哈希存储,跳过仅本次有效以兼顾便捷与安全;进入系统后可直接跳转至图片/视频/摄像头检测或模型选择。
在这里插入图片描述

(2)功能概况:首页以卡片式概览呈现“图片检测 / 视频检测 / 摄像头检测 / 模型管理 / 导出中心”等入口,并显示最近任务、设备占用与推理延迟。支持一键定位近期记录与错误告警,CSV 列表高亮关键字段并可检索与筛选。
在这里插入图片描述

(3)视频检测:支持左右等宽的同步双帧对比(原始帧与检测结果),自适应16:9显示;提供进度条、暂停/继续/停止与倍速控制。实时调节Conf/IoU与类别筛选,缓冲内容可导出为MP4,检测结果支持CSV导出与带框视频一键下载。

在这里插入图片描述

(4)更换模型:上传权重即可切换当前YOLO(v5–v12)模型,类别与阈值面板自动刷新并保存到当前会话;支持模型热切换与推理队列平滑过渡。页面标题与品牌元素可编辑并本地保存;路径规范跨平台兼容,数据库自动迁移保证持续可用。
在这里插入图片描述

(5)概览界面:提供任务统计、近期样本缩略图与混淆趋势小组件,支持按文件名高亮与溯源查看。导出结果集中管理,支持批量下载与失败重试;跨页共享“检测记录”,便于在不同功能页快速回到目标数据。
在这里插入图片描述


2. 绪论

2.1 研究背景与意义

公共场所、园区与校园的禁烟治理正在从“人工巡查+事后取证”走向“机器视觉+实时预警”,而“吸烟行为”属于细粒度目标与动作共存的复合场景,具有香烟体积极小、手口遮挡频繁、光照与视角变化剧烈等难点,直接影响在线检测的召回率与稳定性,这使得低时延、可解释、可溯源的端到端视觉系统具有显著现实价值[1]。监管侧需要在多路视频流中持续发现高风险事件并形成证据链,运维侧则需要统一评测协议与可复现实验支撑模型回归与版本迭代,因此,一个集“训练—推理—评测—可视化—导出—追溯”于一体的Web平台成为将最新YOLO系列方法落地“吸烟行为实时检测”的关键承载形态。


2.2 国内外研究现状

在吸烟检测这一小目标密集与遮挡显著的场景中,近期研究多以改进YOLO为主线,强调小目标鲁棒性与实时性平衡,例如在YOLOv8基础上引入NWD Loss、MHSA与CARAFE的YOLOv8-MNC在自建数据集上实现mAP@0.5≈85.887%并较基线提升约5.7%[2]。端到端检测方向方面,RT-DETR以集合匹配范式消除NMS依赖并在多尺度编码与查询选择上优化,使“高精度+实时”的Transformer检测成为可行工程路径[3]。更早的DETR以固定对象查询实现端到端集预测,奠定了当前NMS-free检测器的理论与工程基础[4]。

YOLO家族在实时检测上的技术演进快速:YOLOv7系统性整合可训练的bag-of-freebies并在较宽FPS区间刷新速度–精度边界,提高了工业可用性[5]。YOLOv10提出一致的双分配策略实现NMS-free训练,并在COCO上报告在相近AP下v10-S较RT-DETR-R18推理更快约1.8×[6]。Ultralytics后续的YOLO11完善训练/预测/导出等工程链条[7],YOLO12以注意力为中心的结构探索在精度上继续前推并面向小目标/拥挤场景[8]。

除YOLO外,二阶段与单阶段非YOLO方法仍提供重要基线:Faster R-CNN以RPN统一候选与检测,精度稳定但端到端延迟相对较高[9];SSD通过多尺度密集预测取得更好的速度–易部署平衡[10];RetinaNet的Focal Loss显著缓解前景稀疏下的一阶段正负不均衡[11]。Anchor-free范式中,FCOS以像素级回归减少先验依赖[12],CenterNet以中心点建模简化检测头设计[13];产业化分支PP-YOLOE在高效骨干与解耦头上持续优化[14],而YOLOX以Anchor-free与解耦头提升分配与收敛效率[15]。

工程侧的部署趋势是打通“多源取流—加速推理—轻量前端”的闭环:ONNX Runtime Web 的WebGPU执行器支持在浏览器端运行小型模型以实现低时延与隐私友好[16];服务器侧结合TensorRT执行提供者可在同硬件上获得更高吞吐[17]。定位回归方面,DIoU通过显式建模中心距与重叠提升收敛与稳健性[18],EIoU进一步分解宽高差异以改善回归质量[19]。

针对吸烟细分任务,国内文献在改进YOLOv9的YOLO-SSDA上报告mAP50≈94.4%、单帧≈39 ms,并展示在复杂背景下的误检抑制能力[20];在改进YOLOv5(如BiFPN替换)上报告AP0.5≈91.7%的实时检测结果,表明小目标/遮挡优化已具可复用经验[21]。

表1 代表性方法与指标对比(节选)

方法 范式/家族 数据集 关键改进 优势与局限 关键指标 适用难点 来源
YOLOv8-MNC 单阶段/YOLO 自建吸烟 NWD、MHSA、CARAFE 小目标鲁棒性提升;公开延迟有限 mAP@0.5=85.887% 小目标、遮挡 [2]
YOLO-SSDA(基于v9) 单阶段/YOLO 自建吸烟 SimAM、Soft-NMS、距离关联 误检抑制;≈39 ms/帧 mAP50≈94.4% 复杂背景 [20]
改进YOLOv5-BiFPN 单阶段/YOLO 自建吸烟 BiFPN替换 精度提升、速度近似不变 AP0.5≈91.7% 低算力实时 [21]
RT-DETR-R50 端到端/Transformer COCO 混合编码、查询选择 免NMS、速率可调 R50≈108 FPS(T4) 拥挤/低时延 [3]
YOLOv10-S 端到端/YOLO COCO 一致双分配、NMS-free 延迟低、吞吐高 同精度下较R18快≈1.8× 低时延边缘 [6]
FCOS Anchor-free COCO 像素级回归 无先验、实现简洁 mAP≈44.7%(R101) 小目标 [12]
RetinaNet 单阶段 COCO Focal Loss 缓解类别不均衡 原文SOTA 前景稀疏 [11]

注:表中性能数据均据对应论文或官方材料;FPS与mAP受硬件与实现差异影响,仅作方法比较参考。


2.3 要解决的问题及其方案

要解决的问题:(1)在强反光、遮挡与小尺寸目标密集场景下保持稳定的mAP与F1,降低误检与漏检;(2)多路视频并发与模型热切换条件下维持端到端时延可控、前后端结果一致与可追溯;(3)网页端实现“即时双画面对比、进度/暂停/继续/停止、阈值与类别筛选、CSV导出与带框一键下载”等一体化交互;(4)形成可复现的训练与评测流程,完成YOLOv5–YOLOv12多模型统一对比以支撑上线回归。
解决方案:(1)以YOLOv12为主线并保留v5–v11备选,结合小目标友好损失(CIoU/EIoU)与多尺度增强、混合标签分配以提升召回与定位稳健性;(2)后端采用PyTorch训练与ONNX/TensorRT加速推理,优先端到端或低后处理路径以降低抖动,并以Flask-SocketIO保证“同步双帧”可视;(3)前端以HTML/CSS/JS实现多源输入与参数联动,提供进度控制、阈值与类别筛选、结果溯源与集中导出,SQLite持久化支撑跨页共享;(4)构建统一评测协议与可复现实验脚本,输出mAP、F1、PR与训练曲线,对比yolov5n/yolov6n/yolov7-tiny/yolov8n/yolov9t/yolov10n/yolo11n/yolo12n并建立回归基线。


2.4 博文贡献与组织结构

贡献:(1)给出“吸烟行为实时检测”任务难点与方法机制一一对应的系统化综述;(2)实现YOLOv5–YOLOv12的端到端训练、推理与统一评测,并开放Web平台与可复现实验工艺;(3)设计美观、低时延、可追溯的Web界面,支持双画面对比、进度控制、结果导出与SQLite入库;(4)输出覆盖mAP/F1/PR/训练曲线的对比分析与部署建议,配套完整数据与代码资源。
组织结构:绪论之后依次给出数据集处理、模型原理与设计、实验结果与分析、系统设计与实现、结论与未来工作;系统章聚焦“Web网页界面+Flask-SocketIO”架构与会话/导出/权重管理,实验章统一比较YOLOv5–YOLOv12并结合场景误差做可解释分析。


3. 数据集处理

本文构建了一个涵盖 8520 张图片的吸烟行为检测数据集,采用单类别标注:Smoking(中文显示由 Chinese_name = {'Smoking': '吸烟'}Label_list = ['吸烟'] 映射得到),标注格式为 YOLO 归一化的 \((x_c,y_c,w,h)\in[0,1]\)。从你提供的分布/相关性可视化可见:目标中心在画面四个象限附近形成明显热区,反映出“手—口—烟”多出现在面部两侧及胸前区域;width/height 呈显著长尾,小尺寸框占主导(常见 \(w,h<0.2\)),少量样本延展至中等尺度,提示训练需重视小目标与遮挡场景。样例拼图覆盖了室内/室外、强背光、灰度与彩色、多人拥挤和运动模糊等复杂条件,与真实部署摄像头的观感一致。

Chinese_name = {'Smoking': "吸烟"}
Label_list = list(Chinese_name.values())

        
在这里插入图片描述

数据集按 5950/1720/850 划分为训练/验证/测试集(约 69.9%/20.2%/10.0%),使用固定随机种子(如 42)并尽量按素材来源分组,降低同源泄漏对评测的干扰。预处理采用等比缩放与 letterbox 对齐至网络输入尺寸,统一色彩空间;增强策略针对数据分布与任务难点设计:启用 Mosaic/MixUp 与随机裁剪、仿射变换以缓解尺度与构图偏置,配合 HSV 抖动、曝光/对比度扰动与少量运动模糊/高斯噪声,模拟背光、画质劣化与压缩伪影;对小目标提高采样与损失权重,控制裁剪阈值避免过度截断。数据清洗阶段剔除异常极小框、明显越界与高 IoU 重复标注,并对疑似“半烟/伪目标”(如笔、口红等相似外观)样本加注难例标记,便于后续挖掘与有针对性的再训练。整体流程在保证评测客观性的同时,直接对齐“尺寸小、遮挡多、光照剧烈”的场景难点,为后续 YOLOv5–YOLOv12 的统一训练与对比奠定了稳健的数据基础。
在这里插入图片描述


4. 模型原理与设计

本文以最新 YOLO 系列为主线(默认以 YOLOv12 实作),遵循单阶段、解耦头与多尺度特征融合的实时检测范式:骨干网络采用轻量化残差堆叠与跨阶段部分连接以提升梯度流通,颈部使用自顶向下与自底向上的双向金字塔融合缓解小目标信息衰减,检测头解耦分类与回归分支以减小梯度冲突,并在低分辨率层插入轻量 Transformer 编码器获取长程依赖以应对“手—口—烟”遮挡和背景干扰。标签分配采用动态策略兼容一对多样本选取,从而在吸烟这一小尺寸长尾分布场景中提升召回并保持稳定收敛。网络整体架构图如下图所示(YOLO 系列结构示意,与本文实现一致):
在这里插入图片描述

在特征建模与融合层面,注意力模块使用缩放点积多头自注意力刻画跨区域依赖,核心计算为

\[\mathrm{Attn}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^{\top}}{\sqrt{d_k}}+B\right)V,\quad Q=XW_Q,;K=XW_K,;V=XW_V \]

其中\(X\)为输入特征,\(W_*\)为可学习投影,\(B\)为可选相对位置偏置,\(d_k\)为键的维度;通过在低频金字塔层使用小头数注意力获得全局上下文,在高频层保持卷积以保障延迟。多尺度融合以加权特征对齐表示

\[\tilde{P}*l=\sum*{i\in\mathcal{N}(l)}\alpha_{li}\cdot\mathrm{Align}!\left(F_i\right),\quad \sum_i\alpha_{li}=1 \]

其中\(F_i\)为不同层特征,\(\mathrm{Align}(\cdot)\)表示尺度/通道对齐操作,\(\alpha_{li}\)为可学习融合权;该设计在强背光与大尺度变化下稳住小目标纹理与轮廓。解耦检测头以独立的分类与回归分支输出\(\hat{p}\)\(\hat{b}\),同时在训练期启用惩罚项抑制不一致的高置信负样本,减少复杂背景下的误检。

在损失与任务建模方面,分类分支采用 Focal Loss 抑制易样本主导梯度,定义为

\[\mathcal{L}*{\mathrm{cls}} = -\alpha*{t}(1-p_{t})^{\gamma}\log!\left(p_{t}\right), \qquad p_{t}= \begin{cases} p, & y=1\ 1-p, & y=0 \end{cases} \]

其中,\(p\) 为正类置信度,\(y\in{0,1}\) 为标签,\(\alpha_t\) 为类别权重,\(\gamma\) 为难例聚焦因子。

其中\(\alpha\)为类不平衡权重,\(\gamma\)控制难样本聚焦;回归分支使用 IoU 系列损失以对齐定位与几何关系,CIoU 表达式为

\[\mathcal{L}*{\text{CIoU}}=1-\mathrm{IoU}+\frac{\rho^2(b,b^{gt})}{c^2}+\alpha_{!v},v,\quad v=\frac{4}{\pi^2}\left(\arctan\frac{w^{gt}}{h^{gt}}-\arctan\frac{w}{h}\right)^{!2} \]

其中\(\rho\)为预测框中心与真值中心的欧氏距离,\(c\)为外接框对角线,\(v\)为长宽比一致性项;为进一步分解宽高回归误差,引入 EIoU

\[\mathcal{L}_{\text{EIoU}}=1-\mathrm{IoU}+\frac{\rho^2(b,b^{gt})}{c^2}+\frac{(w-w^{gt})^2}{w_c^2}+\frac{(h-h^{gt})^2}{h_c^2} \]

其中\(w_c,h_c\)为外接框宽高。针对吸烟目标“细、短、被遮挡”的特点,训练中对小框样本提升采样权并在解耦头处使用更平滑的标签分布(Label Smoothing)以增强泛化,推理阶段默认采用 NMS 或端到端 NMS-free 路径(二者在平台内可切换)以兼顾延迟与稳定性。

在训练与部署细节上,学习率采用预热+余弦退火策略并配合 EMA 权重滑动平均,常规正则包含 BN 统计冻结与轻量 Dropout,以稳定多路视频输入引起的分布漂移;数据层启用 Mosaic/MixUp、随机裁剪与颜色扰动以覆盖强反光、阴影与压缩噪声。推理侧通过 ONNX/TensorRT 导出与半精度/整数量化获得 1.5–3× 的吞吐提升,Web 端以 Flask-SocketIO 推送“原始帧/检测帧”同步双画面,前端实时调节置信度与 IoU 阈值并回传到后端更新解码与 NMS,使参数改变后的第一帧即可得到一致的可视与日志;针对浏览器摄像头的抖动与压缩伪影,系统在后处理加入时间稳定项与轻量轨迹关联,以减少间歇性漏检与框抖动,从而满足禁烟场所对低延迟、可追溯与稳定性的工程要求。


5. 实验结果与分析

本节在 RTX 3070 Laptop(8 GB)上统一评测 YOLOv5–YOLOv12 的轻量(n/nu/-tiny)与小型(s/标准)配置,指标覆盖 Precision、Recall、F1、mAP@0.5、mAP@0.5:0.95 与端到端时延(含 Pre/Inf/Post)。
在这里插入图片描述

从训练曲线与验证曲线可见损失稳定下降、mAP 持续上升;F1-Confidence 曲线在 conf≈0.43 处达到峰值(F1≈0.95),据此平台默认置信度阈值设为 0.43 更稳妥。单类检测的混淆矩阵显示对“吸烟”召回约 0.96,负类主要由未标注背景汇总而来,因此需结合负样本挖掘与时间平滑降低偶发误报。
在这里插入图片描述

下表汇总两档模型的核心结果(总时延=Pre+Inf+Post,FPS≈1000/总时延)。

组别 模型 Params(M) FLOPs(G) 总时延(ms) 估算FPS F1 mAP50 mAP50-95
n YOLOv5nu 2.6 7.7 10.94 91.5 0.938 0.961 0.770
n YOLOv6n 4.3 11.1 10.34 96.6 0.930 0.949 0.770
n YOLOv7-tiny 6.2 13.8 21.08 47.5 0.945 0.956 0.742
n YOLOv8n 3.2 8.7 10.17 98.3 0.943 0.963 0.783
n YOLOv9t 2.0 7.7 19.67 50.8 0.942 0.964 0.789
n YOLOv10n 2.3 6.7 13.95 71.7 0.925 0.957 0.779
n YOLOv11n 2.6 6.5 12.97 77.1 0.941 0.961 0.772
s YOLOv5su 9.1 24.0 12.24 81.7 0.944 0.965 0.794
s YOLOv6s 17.2 44.2 12.26 81.6 0.942 0.963 0.821
s YOLOv7 36.9 104.7 29.52 33.9 0.963 0.976 0.828
s YOLOv8s 11.2 28.6 11.39 87.8 0.949 0.970 0.814
s YOLOv9s 7.2 26.7 22.17 45.1 0.951 0.973 0.820
s YOLOv10s 7.2 21.6 14.19 70.5 0.944 0.969 0.819
s YOLOv11s 9.4 21.5 13.47 74.3 0.954 0.973 0.826
s YOLOv12s 9.3 21.4 16.74 59.8 0.953 0.973 0.828

图 5-1 双条形图(n 系):F1 与 mAP50 对比
图注:八种 n 体量模型的 F1 与 mAP50。配色为学术蓝(F1)与琥珀色(mAP50),便于与表 5-1 对照。
在这里插入图片描述

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

总体结论(与图表对应)
(1)轻量组(n/nu/tiny):mAP50-95 以 YOLOv9t(0.789) 最高,但时延较大(≈19.7 ms,≈51 FPS);若优先低时延与部署弹性,YOLOv8nYOLOv6n 在 0.98/0.97 的百帧级 FPS 与 0.78/0.77 的 mAP50-95 取得更均衡表现,适合作为浏览器摄像头与多路取流的默认选型(见给出的双条形图与平均 PR 曲线)。
在这里插入图片描述

(2)小型组(s/标准):综合精度以 YOLOv12s(mAP50-95≈0.828)≈YOLOv7(0.828),但 YOLOv7 延迟最高(≈29.5 ms);YOLOv11s 在 F1≈0.954、mAP50≈0.973 与 ≈74 FPS 之间最均衡,而 YOLOv8s 则以 ≈88 FPS 成为最高速方案。对于 1080p 单路或 720p 多路,建议 YOLOv11s/YOLOv8s 作为主推。
在这里插入图片描述

(3)置信度与后处理:F1-Confidence 曲线给出 conf=0.43 的经验最优点;PR 曲线整体高耸,说明假阳性受控、召回可进一步挖潜。端到端或轻 NMS 路径能减少高密度场景的抖动,平台中可按视频拥挤度切换。
在这里插入图片描述

(4)误差与改进:典型误检来自“笔/棍状物”“电子烟配件”“强反光”,典型漏检发生于“手遮挡口部、烟头极小、强背光”。建议在数据侧加入难例负样本与夜间/逆光样本;模型侧采用小目标增益(更低的随机裁剪阈值、上采样分支保留)、轻量时序平滑(指数平均或 3-帧投票),并在网页端将 类别阈值/IoU 开放为会话级可调参数以适配不同摄像头与场景。


6. 系统设计与实现

6.1 系统设计思路

系统采用“四层协同”的分层架构:表现与交互层(浏览器端 HTML/CSS/JS)通过 REST 与 SocketIO 双通道与业务与会话管理层建立连接;业务层负责账号登录、参数同步(Conf/IoU、类别筛选、进度控制)、任务编排与权限校验;推理与任务调度层承载取流与批处理(图片/视频/摄像头)、预处理(等比缩放与 letterbox)、YOLO 推理(PyTorch/ONNX/TensorRT)与后处理(NMS 或 NMS-free 解码、时序平滑、统计汇总);数据持久化层以 SQLite 存储检测结果、会话与导出记录,提供轻量审计与溯源。四层通过事件流驱动与幂等接口保证“读—算—显”的一致性与失败重试。

为保证实时性,浏览器端维持“同步双帧”通道:原始帧与渲染帧并行推送,避免由于后处理或渲染阻塞导致的视觉卡顿;参数变更通过会话级广播在一个 RTT 内生效,确保用户调节阈值后第一帧即可体现。多源输入的跨任务调度采用轻量队列与令牌桶节流,视频任务以批大小与帧采样率自适应,摄像头任务优先低延迟路径;导出与统计在独立协程中异步写入,以免阻塞渲染链路。

扩展性方面,系统支持权重热切换与类别信息自动刷新;统一的模型抽象隐藏设备与后端差异,使 YOLOv5–YOLOv12 能在不中断会话的前提下切换。结果侧提供集中导出(CSV/带框图片或视频/日志),并以文件名高亮与批量下载增强运维体验;数据层内置迁移脚本以保障版本演进期间的兼容与可恢复性,配合审计日志实现“谁在何时以何参数得到何结果”的可追溯闭环。

** 图 6-1 系统流程图**

在这里插入图片描述

图注:展示从系统初始化到多源输入、预处理、YOLO 推理与前端联动的全链路;原始帧与检测帧以同步双通道推送到浏览器端,统计与导出在异步通路完成。

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

在这里插入图片描述

图注:以模块边界呈现四层结构与关键接口;双向箭头表示事件与数据的双向同步,单向箭头表示流水线的数据流向。

6.2 登录与账户管理

在这里插入图片描述

说明:登录流程自登录页发起,若用户无账号则经由注册写入数据库后完成登录;服务端对口令进行哈希校验,校验通过后建立会话并载入个性化配置与历史记录,随后进入主界面开展图片/视频/摄像头检测与模型管理;用户可在任意时刻修改资料或注销,访客模式为一次性会话,仅在当前标签页生效,从而保证便捷体验与最小权限安全边界。


代码下载链接

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

在这里插入图片描述

在这里插入图片描述

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

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

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

完整安装运行教程:

        这个项目的运行需要用到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 为核心进行统一训练与评测,在自建 8520 张样本的数据基础上实现了稳定的高精度与低时延;轻量组中 YOLOv8n/YOLOv6n 在百帧级吞吐与 0.77–0.78 的 mAP50-95 取得较好平衡,小型组中 YOLOv11s/YOLOv12s 以 F1≈0.95、mAP50≈0.973、mAP50-95≈0.828 的表现兼顾精度与部署;F1–Confidence 曲线给出 conf≈0.43 的经验最优阈值,结合时序平滑策略,有效抑制了“笔/棒状物”“强背光”等易混目标带来的偶发误报。系统侧通过 Flask + SocketIO 实现“原始帧/检测帧”同步双画面、视频进度控制、Conf/IoU 在线调节、CSV 与带框结果一键导出、SQLite 持久化与权重热切换,形成从数据、模型到网页交互的闭环工程。总体上,平台在禁烟场景的人群密集、目标细小与遮挡频繁条件下具备可复现、可扩展、可溯源的落地能力。

面向未来,模型侧将继续探索更强的轻量化与时空建模:在 YOLO 主干上引入蒸馏、剪枝与 INT8/QAT 量化以降低算力门槛,结合端到端检测与轻量跟踪(例如短时关联/轨迹一致约束)以提升稳定性,并尝试将单类检测扩展为细粒度多类别(烟头/手-口/烟雾/电子烟)与多模态融合(可见光+热成像/音频线索)。系统侧计划引入 Docker 镜像化与 CI/CD、分布式任务队列与多路流调度、WebRTC 实时推流与 WebGPU/WebAssembly 前端推理,加固角色权限与审计、i18n 与多租户能力,并打通 Prometheus/Grafana 的指标监控与告警。数据侧将建设主动学习与持续标注管线、难例负样本库与数据治理策略,部署漂移监测与在线评估回灌,形成“采集—训练—评测—发布—反馈”的闭环,以在更复杂的园区/校园/室内禁烟场景中持续保持高精度、低延迟与工程可维护性。


参考文献(GB/T 7714)

[1] 何嘉彬, 李雷孝, 林浩, 徐国新. 面向计算机视觉的吸烟检测方法研究综述[J]. 计算机工程与应用, 2024, 60(1):40-56.
[2] Wang Z, Lei L, Shi P. Smoking behavior detection algorithm based on YOLOv8-MNC[J]. Frontiers in Computational Neuroscience, 2023, 17:1243779.
[3] Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection: RT-DETR[J/OL]. arXiv:2304.08069, 2023.
[4] Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//ECCV. 2020:213–229.
[5] Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time detectors[J/OL]. arXiv:2207.02696, 2022.
[6] Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[J/OL]. arXiv:2405.14458, 2024.
[7] Ultralytics. YOLO11 Overview[EB/OL]. 2024–2025.
[8] Ultralytics Docs. YOLO12: Attention-Centric Object Detection[EB/OL]. 2025.
[9] Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J/OL]. arXiv:1506.01497, 2015.
[10] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[J/OL]. arXiv:1512.02325, 2016.
[11] Lin T-Y, Goyal P, Girshick R, He K, Dollár P. Focal Loss for Dense Object Detection[C]//ICCV. 2017:2980–2988.
[12] Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[C]//ICCV. 2019:9627–9636.
[13] Zhou X, Wang D, Krähenbühl P. Objects as Points[J/OL]. arXiv:1904.07850, 2019.
[14] Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[J/OL]. arXiv:2203.16250, 2022.
[15] Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[J/OL]. arXiv:2107.08430, 2021.
[16] ONNX Runtime. Using WebGPU in ONNX Runtime Web[EB/OL]. 2024.
[17] ONNX Runtime. TensorRT Execution Provider[EB/OL]. 2025.
[18] Zheng Z, Wang P, Liu W, et al. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[C]//AAAI. 2020:12993–13000.
[19] Zhang Y-F, Ren W, Zhang Z, et al. Focal and Efficient IoU Loss for Accurate Bounding Box Regression[J/OL]. arXiv:2101.08158, 2021.
[20] 何超勋, 陈智霖, 黄声勇, 彭道福. YOLO-SSDA——基于改进YOLOv9的吸烟行为检测方法[J]. 计算机科学与应用, 2024, 14(9):1-12.
[21] 周翔宇, 曲喜悦, 许杰, 倪文瀚. 改进YOLOv5目标检测模型的实时抽烟检测方法[J]. 计算技术与自动化, 2023, (4):81-84.

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