基于 YOLOv8 的口罩检测 Web 系统
一、项目简介
本项目基于 YOLOv8 实现口罩佩戴状态检测,并在原有 Python / PyQt 程序基础上提供本机 Web 使用方式。项目包含 Web 入口、图片视频摄像头检测、模型训练、训练结果可视化、模型文件管理和本地检测记录等能力,适用于校园、公共场所等口罩佩戴识别场景的课程设计与演示。
项目实际包含web_main.pyWeb 服务入口、main.py检测程序、train.py训练脚本、visualize.py训练结果可视化,以及login_window.py、main_window.py等桌面端界面文件;模型目录中提供 YOLOv8、YOLOv11、YOLO26 的基础权重和项目训练结果目录。
二、系统功能
1.1 用户端功能
本地登录与使用入口
系统保留本地账号登录能力,用户登录后进入识别管理页面。Web 端在本机浏览器访问,桌面端可通过 PyQt 窗口启动和使用,满足不同演示方式需求。
图片识别
用户可上传常见格式图片进行口罩佩戴检测。模型推理后在结果图中绘制目标框、类别名称和置信度,并统计检测目标数量、平均置信度、最高置信度和类别分布;结果图和 CSV 明细可用于保存或导出。
视频识别
用户可上传本地视频,系统按设定的抽帧步长执行逐帧检测。处理任务在后台完成,前端可查看任务进度;完成后查看结果视频、检测统计摘要和类别分布。
摄像头实时识别
浏览器可调用本机摄像头进行实时检测,页面动态叠加识别框和统计信息。用户可开始、暂停识别并截图,摄像头会话可作为检测记录归档。
1.2 管理功能
检测历史管理
系统记录图片、视频和摄像头三类检测任务的时间、类型和统计信息。用户可按关键词查询历史、查看详情、导出 CSV 明细或清空历史;历史记录侧重保存检测数据而非重复保存原始媒体文件。
模型加载与参数调整
系统可加载项目内已有权重,或上传兼容模型文件后切换当前检测模型。用户可调整置信度阈值conf、交并比阈值iou和最大检测数量max_det,图片、视频和摄像头识别共用当前模型配置。
模型训练与结果查看
train.py用于基于数据集训练检测模型,visualize.py用于查看训练结果。系统可读取训练过程中的 Precision、Recall、mAP 等指标及结果图表,便于对不同训练结果进行比较。
三、技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 检测模型 | YOLOv8、Ultralytics | 口罩佩戴状态目标检测 |
| 后端与服务 | Python、FastAPI、Uvicorn | 本机 Web 检测服务 |
| 桌面端 | PyQt6 | 本地登录与窗口界面 |
| 图像处理 | OpenCV、NumPy | 图片、视频帧处理 |
| 数据处理 | Pandas、Matplotlib | 统计明细与训练结果可视化 |
| 深度学习 | PyTorch、Torchvision | 模型加载与训练 |
四、项目结构
c213/ ├── web_main.py# Web 服务与页面入口├── main.py# 检测程序入口├── login_window.py# PyQt 登录窗口├── main_window.py# PyQt 主界面├── train.py# YOLO 模型训练脚本├── visualize.py# 训练结果可视化脚本├── requirements.txt# Python 依赖├── data/# 数据集与配置├── train/# 训练相关目录├── web_models/# Web 端模型文件管理目录├── yolov8n.pt、yolo11n.pt、yolo26n.pt# 基础模型权重└── 数据集说明.md五、环境要求
- Python 3.9+
- PyTorch、Ultralytics、OpenCV
- FastAPI、Uvicorn、python-multipart
- 可选:本机摄像头
六、模型与数据准备
项目数据集和配置位于data目录,训练脚本使用相应的数据配置训练模型。可将训练得到的最佳权重放入项目模型目录或通过 Web 模型管理功能加载;基础权重文件可用于初始化训练或检测。
七、系统启动
pipinstall-rrequirements.txt python web_main.py启动后在浏览器访问服务页面即可进行图片、视频或摄像头识别。
八、模型训练
python train.py训练后可运行:
python visualize.py查看训练指标与图表。
九、默认账号
项目使用本地账号数据,未提供可确认的默认账号。
十、业务流程说明
9.1 图片、视频与摄像头识别流程
用户选择图片、视频或摄像头输入,并选定当前模型和检测阈值。系统读取媒体数据,调用 YOLO 模型推理,生成目标框、类别和置信度结果;图片立即返回结果,视频任务按帧处理并反馈进度,摄像头持续展示实时结果。
检测完成后,系统保存任务类型和统计数据,用户可查看历史记录或导出识别明细。
9.2 模型训练与部署流程
用户准备数据集后运行训练脚本,训练过程产生模型权重和指标文件。通过可视化脚本或 Web 训练结果页面查看 Precision、Recall、mAP 等指标,选择合适权重加载到模型管理模块,供后续各类识别任务使用。
十一、交付内容
- Web、PyQt 桌面端、训练与可视化完整源码。
- 数据集说明、训练配置和模型权重文件。
- 项目说明文档,包含检测功能、环境和启动步骤。
本项目为个人原创,结构清晰,功能完整,适合计算机视觉方向课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。
个人网址:https://michael-jay.pages.dev/