摘要:本文面向校园/园区/车间等禁烟场景,设计并实现一套基于深度学习的吸烟检测桌面系统,目标是在多源视频流中稳定识别“吸烟行为/香烟目标”,并将检测结果可追溯地沉淀为可复查数据。系统提供数据与代码的统一下载入口,前端采用 PySide6/Qt 构建交互界面,支持 图片/视频/本地摄像头 输入与实时叠加显示(类别名+置信度+检测框),并提供视频 处理进度条 与用时统计;结果侧支持 CSV 导出,以及带框结果一键导出(单帧 PNG / 多帧 AVI),同时将账户、历史记录与检测结果写入本地 SQLite 以便检索与审计。系统包含 登录/注册(可跳过) 的入口与会话管理,并支持 模型选择/权重加载(.pt 热切换):用户可在运行中更换权重并同步刷新类别与配色。算法层面覆盖 YOLOv5–YOLOv12 共 8 种模型,对比 mAP、F1、PR 以及训练曲线等指标,给出精度-速度权衡与部署建议。文末提供完整工程与数据集下载链接。

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


1. 系统功能与效果

(1)系统提供登录、注册与跳过入口,用户可在启动时完成身份确认或以临时会话进入主界面;登录状态仅在本地客户端会话内生效,退出或切换账号后自动失效。进入后按“功能概览—模型选择—图片检测—结果导出”的动线完成一次完整流程,并可在记录区快速回看最近任务。账户与历史信息以本地数据库管理,口令校验与基础权限隔离兼顾体验与安全。
在这里插入图片描述

(2)功能概况以桌面端一体化工作流为核心,围绕“导入数据、推理检测、交互复核、统计追溯、导出归档”形成闭环。主界面强调少跳转、强反馈:关键状态在同屏可见,推理耗时、进度与当前参数随操作即时刷新。检测记录与统计信息在不同功能页共享,便于对同一批次结果进行复查与定位。
在这里插入图片描述

(3)选择模型支持在界面中直接切换不同 YOLO 系列模型,并加载本地权重实现热更新;切换后类别名称、颜色映射与展示规则同步刷新,避免多模型对比时的认知负担。常用阈值、主题与展示偏好可本地持久化,保证多次打开软件时保持一致体验。该设计便于在精度与速度之间快速试验与选型,服务于吸烟检测的场景化部署。
在这里插入图片描述

(4)图片检测面向单张图片或批量图片输入,加载后可即时推理并在主显示区叠加检测框、类别名与置信度,支持对目标进行选择与高亮以便复核。用户可通过置信度与 IoU 参数调节控制误检与漏检的平衡,界面反馈随参数调整实时更新。检测结果同时生成结构化记录,便于后续统计与对照查看。
在这里插入图片描述

(5)文件保存以可追溯与批量管理为目标,导出结果统一采用时间戳命名并归档到固定目录结构,便于按任务批次回溯。系统支持一键导出结构化 CSV 统计,并可将带框结果保存为单帧图片格式;当存在连续帧输出时,可打包为视频文件用于复盘。保存完成后可在记录区按文件名快速定位对应任务,实现从检测到归档的闭环体验。
在这里插入图片描述


2. 绪论

2.1 研究背景及意义

吸烟及二手烟暴露长期以来都是公共健康治理的重要议题,尤其在医院、学校、商场、地铁站等“明确禁烟”的室内外公共空间中,如何做到低打扰、可追溯、可规模化的违规识别,一直是管理侧的现实痛点。1 传统依赖人工巡查或事后抽检的方式存在覆盖面有限、主观性强、证据链难统一等问题,使得“发现—处置—留痕—复盘”的闭环难以稳定运行。1

随着视频监控、边缘算力与深度学习的发展,基于视觉的吸烟检测逐渐具备落地条件:一方面,目标检测模型能够直接定位“烟支/吸烟相关目标”,给出清晰的空间证据;另一方面,可解释的可视化结果(框、类别、置信度、时间戳)更适合与现场管理流程对接,形成可核验的事件记录。3 对于企业园区、办公场所与工业园的安全管理而言,吸烟检测还常与防火风险控制、重点区域巡检等业务强关联,强调实时性、低误检与稳定部署,因而对算法性能与工程系统的一体化提出更高要求。[4]

从工程实现角度看,吸烟检测系统不仅是“训练一个模型”,还需要把模型推理嵌入到可用的交互产品中:支持图片、视频与摄像头多源输入;提供阈值调参、进度反馈、结果导出与本地留存;并在隐私与合规边界内完成本地化数据管理,避免把敏感视频上云带来的额外风险。3 因此,构建一个端到端的桌面端吸烟检测系统,既能验证算法在真实场景的有效性,也能为后续扩展到边缘设备或更复杂的行为监管任务提供统一的工程基座。[4] (Frontiers)

2.2 国内外研究现状

面向监控视角下的吸烟检测,研究与应用通常同时受到“小目标”“遮挡”“类间相似”和“时序模糊”等因素影响:烟支在画面中往往尺寸极小、对比度低,且经常与手部、口部区域重叠,导致漏检与误检并存。2 另外,喝水、吃东西、打电话等动作在局部外观上与吸烟动作相近,使得仅靠人体姿态或手势线索容易产生混淆,而只检测烟雾又会受到透明度与形态变化影响,进而降低稳定性。3

针对上述难点,近年来更主流的路线是以目标检测为核心,把“烟支/烟蒂”等作为关键证据目标进行定位,再结合场景规则完成行为判定与告警。3 国内研究中,魏袁慧等面向办公室场景提出 YOLOv5s+,通过引入 MHSA 增强特征提取并以 BiFPN 强化多尺度融合,在自建与公开数据整合的数据集上取得 mAP 81.8%、Precision 82.8%、Recall 83.9%,相对原模型有明确提升。3 国外研究中,Wang 等提出 YOLOv8-MNC,引入小目标专用层并结合 NWD Loss、MHSA 与 CARAFE,上述组合在定制数据集上带来 mAP@0.5 提升与总体精度提升。2 进一步地,Zhang 等提出基于 YOLOv8 的 DAHD-YOLO,通过卷积模块、注意力与损失函数的组合优化,并在边缘侧实现离线实时检测,体现了“精度—速度—可部署”一体化的研究趋势。[4] (rjdk.org.cn)

从更广义的目标检测发展脉络看,两阶段检测器以 Faster R-CNN 为代表,通过候选框机制获得较强的精度上限,但其推理链路更长且实时性压力更大。[5] 单阶段检测器则以 SSD、RetinaNet、EfficientDet、FCOS 等为代表,围绕密集预测、样本不均衡与多尺度特征融合持续演进,其中 SSD 在早期就展示了“速度—精度”折中可行性,而 RetinaNet 通过 Focal Loss 缓解前景/背景不均衡并在 COCO 上达到 39.1 AP。[6][7] FCOS 进一步以 anchor-free 思路简化训练与推理并在 COCO 上给出有竞争力的 AP,而 Transformer 路线以 DETR 为代表强调端到端集合预测,近年来 RT-DETR 则在保持 Transformer 表达能力的同时优化实时性指标。[9][10][11] 在吸烟检测这类“强实时约束 + 小目标 + 复杂背景”的任务中,单阶段与轻量化策略往往更易形成可部署系统,但在极端遮挡与长尾样本下仍可能需要结构增强与训练策略配合。[4][7]

方法 范式/家族 数据集 关键改进技术 优势与局限性 关键指标(示例) 适用场景/对应难点 引用
YOLOv5s+ 单阶段/YOLO 办公室吸烟数据集(公开+自建整合) MHSA + BiFPN 小目标检测更稳,但对极端遮挡仍敏感 mAP 81.8%,P 82.8%,R 83.9% 室内禁烟监管/小目标与复杂背景 3
YOLOv8-MNC 单阶段/YOLO 定制吸烟行为数据集 小目标层 + NWD Loss + MHSA + CARAFE 鲁棒性提升,但依赖数据集质量与标注一致性 Accuracy 85.887%,mAP@0.5 提升 5.7% 监控视角/遮挡与尺度偏移 2
DAHD-YOLO 单阶段/YOLO 吸烟检测数据集 模块替换 + 注意力 + Wise-PIoU 精度与速度兼顾,但工程复杂度更高 mAP50 85.5,mAP50:95 47.2,FPS 271.7 复杂场景/误检漏检与实时部署 [4]
RetinaNet 单阶段/非YOLO COCO Focal Loss 缓解类别不均衡,但密集预测仍有算力压力 AP 39.1(COCO) 长尾与易负样本场景 [7]
FCOS 单阶段/Anchor-free COCO 全卷积预测 + Center-ness 训练推理更简洁,但对尺度变化需特征金字塔配合 AP 44.7(COCO) 多尺度与遮挡下的密集目标 [9]
RT-DETR Transformer/实时检测 COCO 实时化端到端检测设计 精度高且可实时,但实现与部署链路更复杂 AP 53.1,108 FPS 高精度实时检测/端到端部署 [11]
YOLOv6 单阶段/YOLO COCO 工程化训练与部署优化 吞吐高,适合端侧加速,但需任务域适配 AP 43.5,495 FPS 边缘实时/吞吐与延迟约束 [13]
YOLOv9 单阶段/YOLO COCO PGI 等训练策略改进 精度表现强,但版本选择与复现需规范 AP 53.0(YOLOv9-C) 高精度实时/训练稳定性 [16]

以 YOLO 家族为例,其工程化迭代路线与吸烟检测的需求高度契合:从 YOLOv5 的成熟训练/部署生态出发,YOLOv6/YOLOv7 进一步强化速度与结构效率,Ultralytics YOLOv8 在解耦头、anchor-free 等设计上提升了通用性,YOLOv9/YOLOv10 则在训练策略与端到端链路上继续降低后处理与推理冗余。[12][13][15][16][17] 在更近期的演进中,YOLO11 与 YOLOv12(相关论文与实现)体现了对高效特征提取与部署体验的持续优化,使得“多版本模型对比 + 权重热切换 + 统一评测”成为系统级研究与工程实践的常见组织方式。[18][19] (ar5iv)

在部署与系统研究层面,吸烟检测往往需要在 CPU 或中低端 GPU/边缘芯片上稳定运行,因此 ONNX/TensorRT 加速、量化与剪枝、蒸馏等轻量化策略成为落地关键。[13] 与此同时,损失函数与标签分配策略也直接影响小目标的定位稳定性,例如 DIoU/CIoU 类损失通过引入中心距离与长宽比约束提升回归收敛质量,常被用于提升遮挡与尺度变化下的定位鲁棒性。[20] 进一步结合可视化解释、批量导出与本地可追溯存储机制,才能把“算法指标”转化为“可复用的业务能力”,这也是本文选择以桌面端系统形态承载模型评测、推理与数据闭环的重要原因。[4]

2.3 要解决的问题及其方案

本文面向“基于深度学习的吸烟检测系统”这一工程目标,既要解决视觉检测任务本身的准确性与实时性矛盾,也要处理桌面端产品化过程中多源输入、交互闭环与本地数据管理的系统问题。(1)检测/识别的准确性与实时性:监控视角下烟支目标小且易遮挡,系统需在保证 mAP、F1 等指标的同时满足视频流实时推理的延迟约束。(2)模型的环境适应性与泛化能力:室内外光照差异、背景复杂度与摄像头成像质量变化会引入明显域偏移,模型需要通过训练策略与多模型对比验证其稳定性。(3)桌面端交互界面的直观性与功能完整性:需要以可解释的框选结果、阈值可调与进度可见为核心体验,同时覆盖图片/视频/摄像头等典型输入链路。(4)数据处理效率与存储安全性:推理结果与导出文件应具备可追溯组织方式,并在本地安全保存,便于后续审计与复盘。

针对上述问题,本文给出一套与系统形态紧耦合的解决方案。(1)以 YOLOv12 为核心推理模型,并纳入 YOLOv5–YOLOv12 的多版本对比训练与评测,结合数据增强与迁移学习提升精度上限,同时以 FPS/延迟约束筛选可部署模型。(2)基于 PyTorch 完成训练、推理与指标统计,通过统一的预处理与后处理流程降低跨场景波动,并在桌面端提供 Conf/IoU 等关键阈值的在线调参能力。(3)前端采用 PySide6/Qt 构建桌面端交互,支持图片、视频与本地摄像头输入,并提供权重文件加载实现模型热切换,使模型选择与可视化结果保持一致。(4)围绕稳定性与可追溯性优化数据链路,采用序列缓冲与时间戳命名管理导出文件,并以本地数据库保存账户与历史记录,必要时结合硬件加速与系统测试保证长期运行可靠性。

2.4 博文贡献与组织结构

本文的主要贡献体现在以下几个方面:(1)面向吸烟检测这一“小目标 + 易遮挡 + 强实时”的任务场景,结合近期代表性工作梳理了从传统检测器到 YOLO/Transformer 路线的关键演进脉络,并给出面向工程落地的性能权衡视角。[4](2)以 YOLOv12 为核心组织模型训练与推理流程,同时对 YOLOv5–YOLOv12 进行统一评测,对比 mAP、F1、PR 与训练曲线,使模型选择从“经验判断”转为“证据驱动”。[19](3)围绕桌面端可用性实现多源输入、进度反馈、阈值调参、结果导出与本地留存,形成从检测到复核的闭环体验。(4)在系统化工程层面提供可复现的训练与部署路径,并沉淀数据与代码资源,便于读者迁移到相近的违规行为监管或安全生产视觉任务。

全文组织结构如下:第 2 章给出研究背景、相关进展与本文方案;第 3 章介绍数据集处理与标注规范;第 4 章阐述以 YOLOv12 为主线的模型原理与关键设计;第 5 章给出多模型对比实验与误差分析;第 6 章从分层架构角度描述 Qt 桌面端系统设计与核心流程;第 7 章总结全文并展望轻量化、多模态与持续学习等方向。[13]


3. 数据集处理

本系统的数据集面向“吸烟证据目标”这一落地需求进行组织与标注,当前共计 4791 张图像,其中训练集 4408 张、验证集 358 张、测试集 25 张,整体划分比例约为 92.0% / 7.5% / 0.5%。类别采用单类设置,以矩形框给出目标在图像中的位置与尺度;结合你提供的训练样例拼图可以看到,图像来源风格较为多样,既包含彩色与灰度画面,也包含暗光、强反差以及明显压缩噪声的监控质感场景,目标通常出现在手部、口鼻附近且经常被手指或面部遮挡,这决定了该任务更偏“小目标 + 强干扰”的检测范式,而不是依赖大范围人体动作的粗粒度识别。标签及其对应中文名如下:

Chinese_name = {'cigarette': "香烟"}

在这里插入图片描述

从标注框的统计分布图可以进一步验证这一点:目标中心点在归一化坐标系中更多集中在画面中部区域,但宽高分布呈现明显的“小尺度偏置与长尾”,说明大量样本框尺寸较小且尺度变化范围大,容易在训练中出现“正样本稀疏、定位收敛慢、背景纹理误触发”等问题。为对齐桌面端推理链路并提升泛化,数据预处理统一采用固定输入尺寸(例如 640×640 的等比例缩放与填充)以保持尺度一致性,并在训练阶段引入以小目标友好为导向的数据增强:通过多图拼接与随机仿射提升小目标出现频率与尺度覆盖,通过亮度/对比度/色彩扰动适配室内外光照漂移,通过噪声/模糊/压缩扰动贴近监控码流退化,从而缓解遮挡、反光与低照度带来的漏检与误检;同时在数据清洗环节重点检查异常框(越界、极端长宽比、疑似误标)与近重复帧,避免训练与评测集之间出现隐性泄漏,并通过固定随机种子保证划分与训练结果的可复现性。

在这里插入图片描述


4. 模型原理与设计

本文以 YOLOv12 作为吸烟检测的主干模型,整体遵循单阶段目标检测范式:输入图像经统一预处理后进入网络,网络在多尺度特征图上直接预测每个候选位置的类别与边界框,再通过后处理筛选得到最终“香烟”目标框。对吸烟检测而言,真正困难往往不在“有没有人”,而在“香烟是否被稳定定位”:它既是典型小目标,又高度依赖局部上下文(手部、口鼻区域与强噪声背景的相互干扰),因此模型既要具备足够的多尺度表达,也要能在强遮挡与低质量画面中保持判别力。YOLOv12 的设计动机正是将注意力机制从“可选插件”提升为“结构主线”,在不牺牲实时性的前提下增强对关键区域与上下文关系的建模能力。

在结构层面,YOLOv12 依旧可以抽象为 Backbone–Neck–Head 三段式:骨干负责逐级下采样提取语义特征,颈部负责多尺度融合(将高层语义与低层细节对齐),检测头在不同尺度上输出分类与回归结果;差异在于它引入了更“注意力中心”的组件组合,包括 Area Attention(A²)与 R-ELAN 等模块来兼顾建模能力与优化稳定性。标准自注意力通常写作
A t t n ( Q , K , V ) = s o f t m a x ! ( Q K ⊤ d ) V , \mathrm{Attn}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V, Attn(Q,K,V)=softmax!(d QK)V,
其中 ( Q , K , V Q,K,V Q,K,V) 分别是由输入特征线性映射得到的查询、键和值,(d) 为通道维度;其计算与显存访问开销往往随 token 数量呈二次增长。YOLOv12 的 A² 思路是把特征图划分为若干等大小区域,在区域内部计算注意力,从而将复杂度从 ( O ( n 2 d ) O(n^2d) O(n2d)) 近似降为 ( O ( n 2 d / l ) O(n^2d/l) O(n2d/l))((n) 为 token 数,(l) 为区域数),并配合 FlashAttention 缓解注意力计算的内存访问瓶颈,使其更贴近实时系统的吞吐要求;同时,R-ELAN 通过引入带缩放的残差聚合改进特征汇聚路径,缓解注意力堆叠后训练不稳定的问题,并辅以“位置感知”的卷积组件(如 7×7 可分离卷积)在不显式引入位置编码的情况下补充位置信息。

在任务建模与损失设计上,桌面端系统需要的是“框准、分稳、可解释”,因此训练目标通常由分类损失、目标性(objectness)损失与边界框回归损失组成,可写为
L = L c l s + λ o b j L o b j + λ b o x L b o x . L = L_{\mathrm{cls}}+\lambda_{\mathrm{obj}}L_{\mathrm{obj}}+\lambda_{\mathrm{box}}L_{\mathrm{box}}. L=Lcls+λobjLobj+λboxLbox.
其中 ( L c l s L_{\mathrm{cls}} Lcls) 约束类别预测(本任务为单类“香烟”),( L o b j L_{\mathrm{obj}} Lobj) 约束前景/背景置信度,( L b o x L_{\mathrm{box}} Lbox) 则约束边界框回归质量;在小目标场景中,回归项往往更敏感,常用 IoU 系列损失增强几何一致性,例如 CIoU 可表示为
L C I o U = 1 − I o U + ρ 2 ( b , b ∗ ) c 2 + α v , L_{\mathrm{CIoU}} = 1-\mathrm{IoU}+\frac{\rho^2(\mathbf{b},\mathbf{b}^*)}{c^2}+\alpha v, LCIoU=1IoU+c2ρ2(b,b)+αv,
其中 ( b , b ∗ \mathbf{b},\mathbf{b}^* b,b) 为预测框与真值框中心,( ρ ( ⋅ ) \rho(\cdot) ρ()) 为中心距离,( c c c) 为最小外接框对角线长度,( v v v) 描述宽高比差异,( α \alpha α) 为权重系数。对吸烟检测而言,这类损失的价值在于当香烟被遮挡或只露出一小段时,模型更容易在“尽量贴合可见部分”与“避免被背景细长纹理牵引”之间取得更稳定的回归收敛,从而减少“框漂移”带来的误检与漏检。

训练与推理阶段的工程要点,需要与桌面端的交互逻辑保持一致:训练侧通过多尺度输入、针对监控退化的增强(亮度/噪声/压缩/模糊)与合理的正负样本分配,让模型学到更稳的置信度排序;推理侧则以统一输入分辨率、阈值可调和后处理可控为原则,把模型输出 ( class , bbox ( x min ⁡ , y min ⁡ , x max ⁡ , y max ⁡ ) , score { \text{class}, \text{bbox}(x_{\min},y_{\min},x_{\max},y_{\max}), \text{score} } class,bbox(xmin,ymin,xmax,ymax),score) 稳定映射到界面叠加显示与记录表字段。实际部署时,置信度阈值用于控制“宁可漏检还是宁可误检”的偏好,NMS 的 IoU 阈值用于抑制同一目标的重复框,这两类参数在本系统中被设计为可在线调节,方便在不同摄像头、不同光照与不同监控码流质量下快速校准;同时,模型热切换后需要保持类别名与配色一致更新,才能保证“同一段视频在不同权重下的差异”被用户直观复核。网络整体架构图如下图所示
在这里插入图片描述


5. 实验结果与分析

本章实验目标是评估 YOLOv5–YOLOv12 在“香烟(cigarette)”单类检测任务上的精度与实时性权衡,并为 Qt 桌面端的默认模型选择、阈值推荐与导出策略提供依据。数据集共 4791 张图像(训练 4408、验证 358、测试 25),统一采用 640×640 预处理流程;评估指标包括 Precision、Recall、F1、mAP@0.5(记为 mAP50)与 mAP@0.5:0.95(记为 mAP50-95),推理耗时拆分为 PreTime/InfTime/PostTime 便于定位瓶颈。所有速度数据均在 NVIDIA GeForce RTX 3070 Laptop GPU(8GB 显存)环境下统计,因而可直接映射到本文桌面端“摄像头实时检测”的体验预期。

为覆盖“轻量实时”和“精度优先”两类部署诉求,本文分别对 n/tiny 级别与 s 级别模型进行对比,结果如表所示。整体上,所有模型在该单类任务上均能达到较高的 mAP50(约 0.83–0.92 区间),说明检测器对“香烟这一局部证据目标”具备可学习性;但在更严格的 mAP50-95 与端到端耗时上差异明显,这些差异往往对应小目标定位精细度、后处理复杂度以及网络结构带来的吞吐变化,也直接决定了系统在“低误报”和“实时帧率”之间的取舍。

模型 Params(M) FLOPs(G) 总耗时(ms) Precision Recall F1 mAP50 mAP50-95
YOLOv5nu 2.6 7.7 10.94 0.8757 0.8520 0.8637 0.8970 0.5207
YOLOv6n 4.3 11.1 10.34 0.8793 0.7623 0.8166 0.8282 0.4669
YOLOv7-tiny 6.2 13.8 21.08 0.8732 0.7729 0.8200 0.8491 0.4263
YOLOv8n 3.2 8.7 10.17 0.9279 0.8163 0.8686 0.8952 0.5247
YOLOv9t 2.0 7.7 19.67 0.9005 0.8291 0.8633 0.8974 0.5398
YOLOv10n 2.3 6.7 13.95 0.8605 0.8010 0.8297 0.8703 0.4878
YOLOv11n 2.6 6.5 12.97 0.8915 0.8189 0.8537 0.8838 0.5158
YOLOv12n 2.6 6.5 15.75 0.8721 0.8571 0.8646 0.8815 0.5222
YOLOv5su 9.1 24.0 12.24 0.9077 0.8030 0.8522 0.8870 0.4888
YOLOv6s 17.2 44.2 12.26 0.8631 0.7551 0.8055 0.8347 0.4755
YOLOv7 36.9 104.7 29.52 0.9400 0.8801 0.9091 0.9236 0.5125
YOLOv8s 11.2 28.6 11.39 0.9058 0.8341 0.8685 0.8892 0.5189
YOLOv9s 7.2 26.7 22.17 0.8859 0.8513 0.8682 0.8946 0.5426
YOLOv10s 7.2 21.6 14.19 0.8944 0.7776 0.8319 0.8770 0.5090
YOLOv11s 9.4 21.5 13.47 0.9012 0.8393 0.8691 0.8929 0.5236
YOLOv12s 9.3 21.4 16.74 0.8961 0.8137 0.8529 0.8715 0.5116

在这里插入图片描述

在 n/tiny 级别中,YOLOv8n 以最高 Precision(0.928)与最高 F1(0.869)表现出更“稳”的置信度排序能力,且总耗时约 10.17ms,是桌面端实时摄像头推理的优先候选;它在 mAP50(0.895)上也处于第一梯队,说明并未以牺牲定位为代价换取更高的精确率。YOLOv9t 在 mAP50(0.897)与 mAP50-95(0.540)上表现最强,更像是“定位更细、但吞吐更慢”的选择,总耗时 19.67ms 会显著压缩实时帧率预算,因此更适合离线图片/视频批处理与高精度复核场景。YOLOv5nu 的 mAP50 同样接近最优(0.897),总耗时 10.94ms,属于“成熟稳健型”的轻量备选;YOLOv12n 的 Recall 更高(0.857)且 F1 也较好(0.865),但耗时略大(15.75ms),在追求更高召回时可以作为系统侧可切换的另一档权重。
在这里插入图片描述

在 s 级别中,YOLOv7 在精度上明显“拔尖”:mAP50 达到 0.924、F1 达到 0.909,并且 Recall 最高(0.880),这对吸烟检测这种“小目标且易遮挡”的任务尤为重要,因为更高召回往往意味着更少的漏检事件;但它的计算量与耗时也最大(Params 36.9M、FLOPs 104.7G、总耗时 29.52ms),更适合离线复盘或对帧率不敏感的重点区域值守。YOLOv9s 在 mAP50-95 上取得全表最高(0.543),体现出更强的高 IoU 定位能力,但其推理时间较长(22.17ms),在桌面端实时流上需要更谨慎地匹配输入分辨率与帧率。综合“精度—速度—显存占用”的均衡性,YOLOv8s(11.39ms)与 YOLOv11s(13.47ms)更接近工程落地的甜点区:两者 F1 都在 0.868–0.869 左右、mAP50 在 0.889–0.893 区间,适合作为默认部署权重,并通过系统提供的阈值滑块在不同场景下快速校准。

在这里插入图片描述

从训练过程与曲线形态看,mAP50 在前 20 个 epoch 内快速上升并在 40–60 epoch 后进入平台期,说明该单类任务的可分性较强,训练早期即可获得较高的可用性;后期主要收益来自定位精细化与置信度校准,体现在 mAP50-95 与 PR 曲线高召回端的“下坠速度”差异。
在这里插入图片描述

结合平均 PR 曲线,模型在 Recall 接近 0.8 之后 Precision 开始明显下降,符合吸烟检测的典型误报来源:细长高亮纹理、手指边缘、反光物体、电子烟外观差异以及低码率噪声引入的伪纹理都会在高召回阈值下被“捞”出来。
在这里插入图片描述

以 F1–Confidence 曲线为参考,最佳 F1 往往出现在置信度约 0.5 附近(图中示例最优点约在 0.497),因此博主在桌面端更建议把默认 Conf 设在 0.45–0.55 作为通用起点:若场景更看重“宁可少报也不误报”,则可上调到 0.6–0.7;若更看重“尽量不漏报”,则可下调到 0.3–0.4 并配合人工复核或时间窗一致性策略来消化误报。

最后从误检漏检机理出发,当前模型的主要漏检往往发生在“烟支仅露出极短段、与肤色/背景对比度极低、或被手部严重遮挡”的样本上,而主要误检则集中在“细长且高亮的近似物体(笔、筷、反光边缘)”以及强噪声引起的纹理伪影。针对这些问题,数据侧可通过补充 hard negative(手持细长物但不吸烟)、增加强压缩与低照度样本、以及对极小框样本的标注一致性复核来提升上限;模型侧可在不改变系统接口的前提下尝试更适合小目标的训练配置(更合理的多尺度策略、更强的局部增强与更稳定的回归损失),并在视频流中加入轻量的时序一致性约束(例如短时间窗口内的目标跟踪或投票),以降低单帧噪声触发的误报。综合本文的精度与速度结果,若以“桌面端摄像头实时检测”为主,YOLOv8n/YOLOv8s 更适合作为默认权重;若以“离线批处理 + 高精度复核”为主,则 YOLOv7 或 YOLOv9s 更具优势,而系统的权重热切换能力可以把这种策略差异直接落到实际使用体验中。


6. 系统设计与实现

6.1 系统设计思路

本系统以“桌面端可交互检测闭环”为目标,采用分层架构组织各模块职责:表现与交互层由 Qt 客户端承担,负责多源输入选择、阈值滑块(Conf/IoU)、主画面叠加显示、目标详情与检测记录表格、以及导出与进度反馈等交互;业务与会话管理层负责账号会话状态、源互斥与任务编排、参数与统计的统一管理,从而保证“同一套阈值与模型配置”在图片/视频/摄像头三条链路中表现一致;推理与任务调度层负责媒体接入、帧分发、预处理、YOLO 推理与后处理(NMS/坐标还原),并以事件驱动方式将结果回传界面;数据持久化层则将账户、配置、历史记录写入本地 SQLite,并将 CSV/PNG/AVI 等导出产物按统一命名规则归档,形成可追溯的实验与使用记录。

跨层协同的关键在于“帧流一致性”与“参数同步”。当输入源为视频或摄像头时,系统以事件驱动的帧读取触发推理任务,并在调度层设置源互斥与队列节流,避免用户频繁切换源导致的帧乱序或资源争抢;Conf/IoU 等阈值由业务层统一维护,并在推理前后处理阶段即时生效,使得界面滑块的调整能够在下一帧结果中得到可见反馈。与此同时,进度条与用时统计由调度层汇总并推送至 Qt 前端,保证用户在批处理与实时推理场景下都能获得稳定的“过程感知”。

系统的可扩展性主要体现在两点:其一,模型权重管理与推理引擎解耦,用户可在界面侧选择本地权重文件实现热切换,并在业务层同步刷新类别信息与配色映射,便于在 YOLOv5–YOLOv12 多版本之间进行对比与快速选型;其二,导出与归档能力与检测流程解耦,推理层只产出标准化结构(类别、位置、置信度、用时),而业务层负责将其编排为表格记录、CSV 统计与带框媒体导出,从而保证在不同输入源与不同模型下,输出格式与追溯方式保持一致。异常恢复方面,系统以“源互斥 + 队列清空 + 状态复位”的策略处理切换与中止操作,使界面状态、缓存帧与导出任务始终保持一致,降低长时间运行的漂移风险。

在这里插入图片描述

图 系统流程图
图注:系统自启动加载配置与模型列表后,进入多源输入的事件驱动帧流;每帧依次完成预处理、YOLO 推理与后处理,并在 Qt 前端叠加显示与记录,最终按时间戳命名导出 CSV/PNG/AVI 并更新进度条。

在这里插入图片描述

图 系统设计框图
图注:系统按“Qt 表现层—业务会话层—推理调度层—数据层”分层组织,参数与记录在业务层统一编排,推理层以事件驱动方式处理多源帧流并输出标准化结果。

6.2 登录与账户管理 — 流程图

在这里插入图片描述

图 登录与账户管理流程图
图注:系统启动后进入登录界面,用户可选择注册或登录完成口令校验;成功后加载个性化配置与历史记录进入主界面,并支持注销/切换账号与资料修改。

登录与账户管理在系统中承担“个性化空间与可追溯记录”的入口职能:登录/注册完成后,业务层以本地数据库为中心建立会话,并将主题偏好、默认模型选择与最近检测记录与用户身份绑定,确保用户再次进入系统时能够快速恢复到上一次的工作状态;当口令校验失败时,系统仅回滚认证状态而不破坏现有配置文件与历史记录,避免反复输入造成的状态漂移。进入主界面后,注销与切换账号会触发会话清理与界面复位,使多源检测任务、阈值参数与导出记录的归属关系保持一致,从而在“便捷使用”和“本地安全”之间取得平衡。


7. 下载链接

    若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

在这里插入图片描述

本文涉及到的完整全部程序文件: 包括环境配置文档说明、python源码、数据集、训练代码、UI文件、测试图片视频等:

或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程
数据集标注教程(如需自行标注数据):数据标注合集


参考文献(GB/T 7714)

1 World Health Organization. WHO report on the global tobacco epidemic 2023[R]. Geneva: World Health Organization, 2023.
2 WANG Z, LEI L, SHI P. Smoking behavior detection algorithm based on YOLOv8-MNC[J]. Frontiers in Computational Neuroscience, 2023, 17: 1243779.
3 魏袁慧, 方睿, 石兴, 等. 基于YOLOv5改进模型的办公室吸烟行为检测[J]. 软件导刊, 2024, 23(9): 170-175.
[4] ZHANG J, JIANG C. DAHD-YOLO: A New High Robustness and Real-Time Method for Smoking Detection[C]//Sensors 2025, 25(5): 1433.
[5] REN S, HE K, GIRSHICK R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.
[6] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single Shot MultiBox Detector[C]//Proceedings of ECCV. Cham: Springer, 2016: 21-37.
[7] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal Loss for Dense Object Detection[C]//Proceedings of ICCV. 2017: 2980-2988.
[8] TAN M, PANG R, LE Q V. EfficientDet: Scalable and Efficient Object Detection[C]//Proceedings of CVPR. 2020: 10781-10790.
[9] TIAN Z, SHEN C, CHEN H, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//Proceedings of ICCV. 2019: 9627-9636.
[10] CARION N, MASSA F, SYNNAEVE G, et al. End-to-End Object Detection with Transformers[C]//Proceedings of ECCV. Cham: Springer, 2020: 213-229.
[11] XU J, YUAN Y, ZHANG L, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. arXiv:2304.08069, 2023.
[12] JOCHER G, CHUAN-CHIEH C, et al. Ultralytics YOLOv5[EB/OL]. 2020.
[13] LI C, LI L, JIANG H, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[EB/OL]. arXiv:2209.02976, 2022.
[14] WANG C Y, BOCHKOVSKIY A, LIAO H Y M. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[EB/OL]. arXiv:2207.02696, 2022.
[15] Ultralytics. Ultralytics YOLOv8[EB/OL]. 2023.
[16] WANG C Y, LIAO H Y M, YEH I H. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[EB/OL]. arXiv:2402.13616, 2024.
[17] WANG A, CHEN H, LI S, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024.
[18] Ultralytics. Ultralytics YOLO11[EB/OL]. Zenodo, 2025.
[19] WEN L, ZHANG X, LIU M, et al. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025.
[20] ZHENG Z, WANG P, LIU W, et al. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[C]//Proceedings of AAAI. 2020, 34(7): 12993-13000.
[21] 基于深度学习的办公室吸烟行为检测[J/OL]. 人工智能与机器人研究, 2023.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐