😷 基于 YOLO 的佩戴口罩检测系统 (Mask Wearing Detection System)

本项目是一个功能完整的佩戴口罩智能检测系统。基于最新的 Ultralytics YOLO 系列模型构建,能够识别是否佩戴口罩。本项目提供了美观、易用的 Streamlit Web 交互界面,非常适合作为本科毕业设计的参考与展示。

⚠️ 关于本项目 (About This Project)

本仓库开源了系统的前端交互应用(App)源码及训练数据可视化模块

🔗 开源地址

🛒 核心模型与训练源码资源包 (Core Models & Training Codes) 包含:

  1. 核心训练代码:包含 train.py (单模型)train_batch.py (批量实验),支持断点续训和自动批量大小(autobatch),训练完成后自动生成 GPU 耗时、成本估算和 mAP 评估报告。
  2. 全系列模型权重与训练日志:包含 YOLOv8 / YOLO11 / YOLO26 三个系列的 best.pt 模型文件,以及完整的训练日志、Loss 曲线图、mAP 指标图和混淆矩阵等评估图表,直接用于论文插图。
  3. (赠品)数据集:本项目使用 Roboflow Mask Wearing Dataset 的开源数据集。
    • 说明:数据集本身是免费开源的。但由于国内网络环境下载困难,我在资源包中免费提供了已整理好的数据集压缩包,方便大家直接使用。

✨ 核心功能亮点 (Features)

  • 🚀 多模型兼容: 系统无缝支持 YOLOv8YOLO11 以及最新的 YOLO26 模型,用户可在侧边栏一键切换,实时对比不同模型的检测效果。
  • 📷 多模态检测: 支持上传单张图片进行快速检测,也支持导入 MP4/MKV/AVI 等格式的视频文件(内置转码功能,确保在浏览器中流畅播放)。
  • 📦 批量处理引擎: 针对大量数据,提供批量检测功能。系统会自动统计各类别数量,并生成包含详细信息的 CSV 表格。
  • 📑 自动报告生成: 一键生成专业的 PDF 检测报告,包含检测综述、类别统计和样张展示,可直接用于作业或汇报。
  • 📊 训练可视化: 独家内置模型性能对比面板。无需手动绘制,系统自动解析训练日志,生成专业的 mAP 和 Loss 对比图,助你轻松完成毕设论文的实验分析章节。
  • 🇨🇳 全中文支持: 从界面菜单到检测框标签(如"佩戴口罩"、"未佩戴口罩"等状态),全部采用中文显示,符合国内用户习惯。

📺 系统演示 (Demo)

🎥 视频演示 (Video Demo)

点击下方图标,跳转至各大视频平台查看系统的详细运行演示:

哔哩哔哩 (Bilibili) 抖音 (Douyin) 小红书 (Xiaohongshu) 快手 (Kuaishou)
bilibili douyin xiaohongshu kuaishou

🛠️ 快速开始 (Quick Start)

第一阶段:部署开源版(运行系统界面)

此步骤将教你如何运行本仓库的开源代码,体验系统的 UI 交互功能。

  1. 环境准备 (Environment Setup)

    • 安装 Anaconda: 如果你还没有安装 Anaconda,请参考此教程进行安装。

    • 打开终端 (Important):

      • 方法 A (推荐): 进入本项目文件夹,在地址栏输入 cmd 并回车,即可直接在当前目录下打开终端。
      • 方法 B: 打开终端后,使用 cd 命令跳转到项目目录(例如:cd D:\毕设\YOLO_farms_multi-species_detection)。
    • 配置国内镜像源 (推荐):
      如果你在国内网络环境下,建议配置清华源以加速下载:

      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
      
    • 创建并激活环境:

      conda create -n task1 python=3.11.15 -y
      conda activate task1
      
    • 安装 PyTorch (关键步骤):
      本项目基于 PyTorch 2.5.1 开发。推荐访问 PyTorch 官网 获取最适合你机器的安装命令。

      或者,你可以直接使用以下常用命令(请根据你的显卡驱动版本选择):

      • 方案 A (推荐新显卡/CUDA 12.1):
        conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y
        
      • 方案 B (兼容旧显卡/CUDA 11.8):
        conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y
        
      • 方案 C (无显卡/仅使用 CPU):
        conda install pytorch torchvision torchaudio cpuonly -c pytorch -y
        
  2. 安装依赖
    下载本仓库代码,并安装必要的第三方库:

    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
    
  3. 运行系统
    在终端中执行以下命令:

    streamlit run app/app.py
    

    成功后,浏览器会自动打开系统界面。
    注意:此时由于没有加载模型文件,点击检测可能会提示"未找到模型"。

后续每次运行系统

以后每次使用本项目时,只需按以下步骤操作:

  1. 进入项目目录: 使用文件管理器进入本项目文件夹
  2. 打开终端: 在地址栏输入 cmd 并回车,即可直接在当前目录下打开终端
  3. 激活环境:
    conda activate task1
    
  4. 启动系统:
    streamlit run app/app.py
    

第二阶段:加载模型(开启检测功能)

为了让系统能够识别佩戴口罩状态,你需要加载训练好的 YOLO 模型文件(.pt)。

🅰️ 如果你购买了资源包 (推荐)

资源包中已包含 YOLOv8 / YOLO11 / YOLO26 全系列训练好的高精度模型。

  1. 解压资源包:找到 models 文件夹。
  2. 复制文件:将整个 models 文件夹直接复制到本项目的根目录下。
  3. 完成:刷新网页,侧边栏会自动加载所有模型。
🅱️ 如果你自己训练模型

如果你自行训练了模型:

  1. 新建文件夹:在项目根目录下创建一个名为 models 的文件夹。
  2. 放置模型:将你训练得到的 best.pt 文件复制到 models/ 文件夹中(建议重命名为清晰的名称,如 yolo11m_mask_wearing.pt)。
  3. 完成:刷新网页,即可在侧边栏选择你的模型进行检测。

📖 详细训练教程: 如果你想自己训练模型,请查看 训练指南


📂 项目结构 (Project Structure)

YOLO_Mask_Wearing_detection/
├── app/
│   ├── app.py          # Streamlit 系统主入口
│   ├── analysis.py     # 训练日志分析与绘图模块
│   └── report_gen.py   # PDF 报告生成模块
├── data/               # 训练数据集 (Images/Labels)
│   └── Mask_Wearing/   # 佩戴口罩数据集 (2类)
├── models/              # 训练好的模型文件 (.pt)
├── training/            # 模型训练代码
│   ├── train.py         # 单模型训练脚本
│   └── train_batch.py   # 批量训练脚本
├── runs/                # 训练输出目录
├── docs/                # 演示图片与文档
├── requirements.txt     # 项目依赖库列表
└── README.md            # 项目说明文档

(注:data/ (数据集)、training/*.py (训练脚本) 和 models/*.pt (模型文件) 为资源包专有内容,未包含在开源仓库中。)

📊 数据集信息 (Dataset Information)

本项目使用 Roboflow Mask Wearing Dataset 开源数据集,主要用于检测佩戴口罩状态

😷 类别信息

英文名 中文名
mask 佩戴口罩
no-mask 未佩戴口罩

📷 图片数量

数据集 图片数量
训练集 1366 张
验证集 368 张
测试集 200 张

💡 说明:数据集本身是免费开源的。但由于国内网络环境下载困难,资源包中免费提供了已整理好的数据集压缩包,方便大家直接使用。


💰 训练成本核算 (Training Cost Analysis)

📊 实际训练数据: 查看 训练总结报告,包含15个模型的真实训练耗时、成本

以下是基于国内主流 GPU 云服务商(如 AutoDL)的成本估算逻辑:

  1. 硬件配置: NVIDIA A800 80GB PCIe
  2. 训练规模:
    • 模型数量: 15 个模型 (YOLOv8/11/26 系列 x n/s/m/l/x 五种规格)
    • 训练轮数: 100 Epochs / 模型
  3. 实际耗时与成本:
    • 总耗时: 6 小时 7 分 (约 6.13 小时)
    • 云服务器费率: ¥9.35 / 小时
    • 总算力成本: 6.13 小时 x ¥9.35 ≈ ¥57.31

💡 省钱建议: 自己租用服务器复现所有实验不仅耗时耗力,且算力成本往往高于直接获取成品。

🛒 核心模型与训练源码资源包 (Core Models & Training Codes) 包含:

  1. 核心训练代码:包含 train.py (单模型)train_batch.py (批量实验),支持断点续训和自动批量大小(autobatch),训练完成后自动生成 GPU 耗时,成本估算和 mAP 评估报告。
  2. 全系列模型权重与训练日志:包含 YOLOv8 / YOLO11 / YOLO26 三个系列的 best.pt 模型文件,以及完整的训练日志、Loss 曲线图、mAP 指标图和混淆矩阵等评估图表,直接用于论文插图。
  3. (赠品)数据集:整理好的 Ultralytics 开源数据集压缩包。
Logo

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

更多推荐