1. 项目背景与核心价值抽烟行为检测是计算机视觉领域一个具有实际应用价值的课题。在工业生产、公共场所管理和健康监护等场景中自动识别抽烟行为能够有效提升安全管理水平。传统基于规则的方法往往难以应对复杂环境下的检测需求而深度学习技术为这个问题提供了新的解决思路。这个毕业设计项目实现了一个基于深度学习的抽烟行为检测系统主要解决以下几个实际问题实时监控场景下的抽烟动作识别复杂背景下的吸烟特征提取多尺度目标检测与分类我在实现过程中发现一个鲁棒的抽烟检测系统需要同时考虑时空特征和外观特征。单纯依赖静态图像容易产生误检如手持类似香烟的物体而结合时序信息可以显著提升识别准确率。2. 技术方案选型与对比2.1 主流目标检测算法评估在算法选型阶段我对比了几种主流的目标检测框架算法准确率速度(FPS)模型大小适用场景Faster R-CNN高5-7大高精度场景YOLOv5中高45-50中实时检测SSD中25-30中平衡场景最终选择YOLOv5作为基础框架主要基于以下考虑毕业设计通常需要展示实时检测效果校园计算资源有限需要轻量级模型YOLO系列在目标检测竞赛中表现优异2.2 抽烟行为特征分析抽烟行为具有几个关键视觉特征手持香烟的特定姿势手部到嘴部的往复运动香烟的细长形状特征可能伴随的烟雾视觉特征在数据标注时我们不仅标注了香烟本身还标注了手部位置和面部区域这种多目标关联标注有助于后续的行为分析。3. 系统实现细节3.1 数据集构建与增强由于公开的抽烟行为数据集较少我采用以下方法构建训练集从公开数据集中筛选含抽烟行为的片段自制拍摄部分校园场景下的模拟数据使用数据增强技术扩展样本量具体的数据增强策略包括随机旋转-15°~15°亮度调整0.8-1.2倍添加模拟烟雾效果背景混合增强注意数据增强时要保持香烟形态特征的合理性过度变形会导致模型学习到错误特征3.2 模型架构改进基于YOLOv5s的改进包括注意力机制引入class CBAM(nn.Module): def __init__(self, channels): super(CBAM, self).__init__() self.channel_attention ChannelAttention(channels) self.spatial_attention SpatialAttention() def forward(self, x): x self.channel_attention(x) x self.spatial_attention(x) return x多尺度特征融合改进增加P2特征层更适应小目标检测改进特征金字塔结构损失函数优化使用Focal Loss解决类别不平衡调整CIoU损失权重3.3 训练策略采用分阶段训练策略第一阶段冻结骨干网络只训练检测头学习率0.001批次大小16周期50第二阶段解冻全部网络微调学习率0.0001批次大小8周期100使用余弦退火学习率调度配合早停策略防止过拟合。4. 系统部署与优化4.1 轻量化部署方案为实现在边缘设备上的部署进行了以下优化模型量化训练后动态量化PTDQ量化感知训练QAT模型剪枝基于通道重要性的结构化剪枝剪枝率控制在30%以内推理引擎优化使用TensorRT加速半精度(FP16)推理4.2 性能指标优化后的模型性能指标原始模型优化后模型大小14.6MB4.2MB推理速度45FPS68FPSmAP0.50.8430.8315. 常见问题与解决方案5.1 误检问题排查常见误检情况及解决方法手持细长物体误检增加时序一致性校验引入手部姿态估计辅助判断远处小目标漏检改进小目标检测层增加高分辨率输入分支光线变化影响在数据增强中加入更多光照变化使用自适应光照归一化5.2 模型训练技巧学习率设置经验初始学习率通过LR Finder确定批量大小与学习率线性缩放数据不平衡处理采用过采样欠采样组合策略设计样本加权采样器训练过程监控使用WandB记录训练曲线定期在验证集上测试6. 系统扩展与改进方向在实际测试中我发现系统还可以从以下几个方向进行改进多模态融合结合红外传感器检测热点加入声音特征辅助判断行为上下文理解结合场景语义信息识别人群聚集情况边缘计算优化开发专用NPU加速版本研究知识蒸馏方案这个项目的完整源码已经开源包含训练好的模型权重和详细的部署说明。在实现过程中最大的体会是实际场景中的行为检测远比实验室环境复杂需要充分考虑各种边缘情况和环境干扰。建议后续研究者可以从时序建模和多模态融合两个方向深入探索。