Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YOLOv5 Garbage Classification

YOLOv5 Garbage Classification banner

基于 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/                   # 视频检测结果输出

数据集说明

仓库中包含两套垃圾分类数据配置:

1. 6 类垃圾分类

配置文件:data/Garbage_Classification.yaml

类别如下:

  • glass
  • metal
  • paper
  • plastic
  • trash
  • cardboard

2. 12 类垃圾分类

配置文件: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

如何运行

1. 启动图形界面

python main.py

2. 训练模型

12 类垃圾分类训练示例:

python train.py --data data/Garbage_Classification_12.yaml --weights yolov5s.pt --img 640 --epochs 100

6 类垃圾分类训练示例:

python train.py --data data/Garbage_Classification.yaml --weights yolov5s.pt --img 640 --epochs 100

3. 命令行检测

python detect.py --weights runs/train/exp10/weights/best.pt --source path/to/image_or_video

图形界面说明

main.py 中的桌面界面主要包含以下能力:

  • 选择检测模式
  • 加载图片或视频文件
  • 输入实时流地址
  • 查看检测结果
  • 查看垃圾分类统计
  • 查看分类建议与环境影响说明
  • 导出文本结果

当前仓库状态

这个仓库基于 YOLOv5 项目进行二次开发,核心检测能力来自 YOLOv5,垃圾分类数据集、GUI 交互与结果分析逻辑是本项目的主要定制部分。

当前更适合被理解为:

一个以 YOLOv5 为检测引擎、以垃圾分类场景为目标、带有 PyQt6 可视化界面的应用项目。

后续可继续完善的方向

  • 增加训练结果截图和演示 GIF
  • 增加权重下载方式
  • 将模型路径改成界面内可配置
  • 支持导出结构化 JSON 结果
  • 支持更细粒度的垃圾类别

License

This project is built on top of YOLOv5 and follows the repository license already included in this project.

About

用于识别垃圾,进行分类

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages