前言

随着公共场所禁烟政策的推进,智能香烟检测系统已成为维护健康环境的重要工具。今天我们将分享一个完整的AI香烟检测项目,使用最新的YOLO11模型训练出一个能够准确检测香烟的对象检测系统。

📊 项目概览

数据集规模

  • 1个检测类别:专注于’smoke’(香烟)检测
  • 训练集:大量标注图片用于模型学习
  • 验证集:用于训练过程中的模型评估
  • 测试集:最终模型性能验证

技术栈

  • 深度学习框架:YOLO11检测模型
  • 编程语言:Python
  • 主要库:ultralytics, torch, opencv

🚀 模型训练配置

核心参数设置

# 训练关键参数
results = model.train(
    data='smoke_data.yaml',         # 数据集配置文件
    epochs=100,                     # 训练100轮
    imgsz=640,                      # 图像尺寸640x640
    batch=16,                       # 批次大小16
    device='0',                     # 使用GPU加速
    
    # 学习率策略
    lr0=0.01,                       # 初始学习率
    lrf=0.01,                       # 最终学习率比例
    momentum=0.937,                 # SGD动量
    weight_decay=0.0005,            # 权重衰减
    
    # 数据增强
    hsv_h=0.015,                    # 色调增强
    hsv_s=0.7,                      # 饱和度增强
    degrees=0.0,                    # 旋转角度
    translate=0.1,                  # 平移
    scale=0.5,                      # 缩放
    fliplr=0.5,                     # 左右翻转
    mosaic=1.0,                     # 马赛克增强
)

📈 训练结果分析

最终性能指标

经过83轮训练,我们的模型达到了令人满意的性能:

  • Precision: 0.92
  • Recall: 0.95
  • mAP@50: 0.95
  • mAP@50-95: 0.90
  • 训练损失:box_loss从2.20降至0.85,cls_loss从3.63降至0.45

训练过程亮点

第1-20轮:模型快速学习基础特征

  • mAP@50从0.15提升至0.70
  • 损失快速下降,学习效果显著

第21-60轮:性能稳步提升

  • mAP@50持续上升至0.85
  • 模型开始学习更复杂的香烟特征

第61-83轮:精细调优阶段

  • mAP@50最终稳定在0.95
  • 模型收敛,性能达到最优

🔧 技术实现要点

1. 数据预处理

def create_data_yaml():
    """创建YOLO数据集配置文件"""
    data_yaml_content = {
        'path': 'smoke',
        'train': 'images/train',
        'val': 'images/val', 
        'test': 'images/test',
        'nc': 1,  # 1个类别
        'names': ['smoke'],  # 类别名称
    }
    return yaml_path

2. 模型训练流程

# 加载预训练模型
model = YOLO('yolo11n.pt')

# 开始训练
results = model.train(
    data='smoke_data.yaml',
    epochs=100,
    patience=20,  # 早停机制
    save=True,    # 保存最佳模型
    plots=True,   # 生成可视化图表
)

3. 数据增强策略

为了提高模型的泛化能力,我们采用了多种数据增强技术:

  • 几何变换:平移、缩放、翻转
  • 颜色空间:HSV调整增强色彩多样性
  • 马赛克增强:提升检测鲁棒性

📊 可视化结果

训练完成后,系统自动生成了丰富的可视化结果:

训练曲线图 (results.png)

在这里插入图片描述

  • 展示训练和验证损失的变化趋势
  • mAP提升过程一目了然
  • 帮助分析模型收敛情况

训练样本展示 (train_batch0.jpg)

在这里插入图片描述

  • 展示训练过程中的数据增强效果

验证集预测结果对比

真实标签 (val_batch0_labels.jpg)

在这里插入图片描述

模型预测结果 (val_batch0_pred.jpg)

在这里插入图片描述

  • 验证集上的实际预测结果对比
  • 直观展示模型的检测能力

🎯 项目亮点

1. 高精度检测

mAP@50达到0.95,在香烟检测任务中表现优秀,能够准确识别大部分场景。

2. 实用性强

Precision和Recall均衡,适用于实时监控系统。

3. 训练稳定

83轮训练过程平稳,没有出现过拟合现象,模型泛化能力良好。

4. 完整工程化

  • 自动化训练流程
  • 完善的结果可视化
  • 便于部署的模型格式

🔮 应用前景

这个AI香烟检测模型可以应用于:

  1. 公共场所监控:自动检测吸烟行为
  2. 健康教育:帮助推广禁烟知识
  3. 智能安防:集成到视频监控系统
  4. 移动应用:开发吸烟检测APP

💡 总结

通过这次实战,我们成功训练出了一个高性能的香烟检测AI模型。项目展示了从数据准备、模型训练到结果分析的完整流程,为AI在公共健康领域的应用提供了有价值的参考。


项目文件结构

smoke_results/yolo11n_det_20250714_165749/
├── weights/
│   ├── best.pt          # 最佳模型权重
│   └── last.pt          # 最新模型权重
├── results.csv          # 详细训练数据
├── results.png          # 训练曲线图
├── confusion_matrix.png # 混淆矩阵
└── args.yaml           # 训练参数配置
Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐