基于 YOLOv5 和 PyQt6 的垃圾分类检测系统
支持图片检测、视频检测和实时检测,面向 12 类垃圾识别与可视化结果展示。
这个项目基于 YOLOv5 构建了一个面向垃圾分类场景的检测系统,并在此基础上加入了桌面图形界面,方便直接进行图片、视频和实时流检测。
项目的重点不只是目标检测本身,还包括:
- 垃圾类别识别与统计
- 图形化交互界面
- 检测结果保存
- 基于类别的简单环保影响分析与处理建议生成
- 支持
图片检测 - 支持
视频检测 - 支持
实时检测 / 摄像头或 RTSP 流 - 支持
置信度阈值调整 - 支持
检测结果保存 - 支持
垃圾类别分析与中文建议展示
yolov5-garbage-classification/
├─ main.py # PyQt6 图形界面主程序
├─ train.py # YOLOv5 训练入口
├─ val.py # 验证入口
├─ detect.py # YOLOv5 推理入口
├─ requirements.txt # Python 依赖
├─ data/
│ ├─ Garbage_Classification.yaml
│ └─ Garbage_Classification_12.yaml
├─ mydatasets/
│ ├─ Garbage_classification_annotation/
│ └─ Garbage_Classification_12classes_annotation/
├─ models/ # YOLOv5 模型配置
├─ utils/ # YOLOv5 工具函数
├─ output/ # 检测输出目录
└─ output_videos/ # 视频检测结果输出
仓库中包含两套垃圾分类数据配置:
配置文件:data/Garbage_Classification.yaml
类别如下:
glassmetalpaperplastictrashcardboard
配置文件:data/Garbage_Classification_12.yaml
类别如下:
| English Class | 中文归类 |
|---|---|
battery |
电池 |
biological |
生物制品 |
brown-glass |
玻璃 |
cardboard |
纸板 |
clothes |
衣物 |
green-glass |
玻璃 |
metal |
金属 |
paper |
纸张 |
plastic |
塑料 |
shoes |
鞋子 |
trash |
其他垃圾 |
white-glass |
玻璃 |
建议使用 Python 3.9 到 3.11。
安装依赖:
pip install -r requirements.txt如果你只想运行桌面 GUI,也至少需要:
pip install torch torchvision opencv-python pillow PyQt6 requests图形界面默认会加载:
runs/train/exp10/weights/best.pt
如果你的权重文件不在这个位置,可以通过环境变量指定:
set GARBAGE_MODEL_PATH=runs/train/exp10/weights/best.pt
python main.py如果你已经有自己的训练结果,也可以把路径改成你的 best.pt。
python main.py12 类垃圾分类训练示例:
python train.py --data data/Garbage_Classification_12.yaml --weights yolov5s.pt --img 640 --epochs 1006 类垃圾分类训练示例:
python train.py --data data/Garbage_Classification.yaml --weights yolov5s.pt --img 640 --epochs 100python detect.py --weights runs/train/exp10/weights/best.pt --source path/to/image_or_videomain.py 中的桌面界面主要包含以下能力:
- 选择检测模式
- 加载图片或视频文件
- 输入实时流地址
- 查看检测结果
- 查看垃圾分类统计
- 查看分类建议与环境影响说明
- 导出文本结果
这个仓库基于 YOLOv5 项目进行二次开发,核心检测能力来自 YOLOv5,垃圾分类数据集、GUI 交互与结果分析逻辑是本项目的主要定制部分。
当前更适合被理解为:
一个以 YOLOv5 为检测引擎、以垃圾分类场景为目标、带有 PyQt6 可视化界面的应用项目。
- 增加训练结果截图和演示 GIF
- 增加权重下载方式
- 将模型路径改成界面内可配置
- 支持导出结构化 JSON 结果
- 支持更细粒度的垃圾类别
This project is built on top of YOLOv5 and follows the repository license already included in this project.