基于 YOLOv8 的垃圾分类识别系统(全套源码+数据集)
基于 YOLOv8 目标检测模型 PyQt6 桌面端应用的垃圾分类识别系统覆盖数据集构建、模型训练调优、系统集成开发的完整深度学习工程流程。开发日期2026年目录项目概述数据集说明深度学习开发流程训练参数训练指标与结果可视化图表说明系统功能技术栈项目结构启动教程项目概述本项目针对城市生活垃圾分类场景构建了一套端到端的 AI 识别系统目标检测模型基于 YOLOv8n 预训练权重进行迁移学习识别 44 种常见垃圾细类分类规则引擎将 44 个细类自动映射到「可回收物 / 厨余垃圾 / 有害垃圾 / 其他垃圾」四大类桌面端应用PyQt6 多功能检测界面支持图片、视频、摄像头三种输入源实时检测数据集说明基本信息项目内容标注格式YOLO TXT由 Pascal VOC XML 转换图像总数14,761张有效图像原始 14,964 张去除无图样本大类数量4类可回收物、厨余垃圾、有害垃圾、其他垃圾细类数量44类图像格式JPEG.jpg数据集划分train / val / test 7 : 1 : 2子集分布子集图片数量用途train10,319 张模型训练val1,478 张训练过程中的验证评估test2,964 张最终性能测试垃圾分类体系大类细类数代表细类可回收物26 类饮料瓶、易拉罐、纸盒纸箱、玻璃器皿、旧衣服、充电宝…厨余垃圾7 类剩饭剩菜、果皮果肉、菜帮菜叶、鱼骨、蛋壳…有害垃圾3 类干电池、过期药物、软膏其他垃圾8 类一次性快餐盒、烟蒂、陶瓷器皿、污损塑料…标注格式示例每张图片对应一个同名.txt文件每行一个目标框坐标均归一化到[0, 1]class_id x_center y_center width height 6 0.4106 0.4219 0.5962 0.3379深度学习开发流程第一阶段数据集构建与处理原始数据收集整合公开垃圾分类数据集原始标注格式为 Pascal VOC XML格式转换将 XML 标注批量转换为 YOLO TXT 格式class_id x_center y_center w h归一化坐标数据清洗剔除无有效标注框的样本14,964 → 14,761 张数据集划分按 7:1:2 比例随机划分训练/验证/测试集确保类别分布均衡分类规则构建编写classify_rule.json建立细类 → 大类的映射规则支持推理后的大类归并第二阶段模型训练与调优模型选型选择 YOLOv8nNano 版本作为基础架构参数量小、推理速度快适合桌面端部署迁移学习加载 COCO 预训练权重yolov8n.pt在垃圾数据集上进行微调加速收敛数据增强启用 Mosaic 拼接mosaic1.0、随机水平翻转fliplr0.5、HSV 色彩扰动、随机缩放等多种增强策略训练策略前 3 个 epoch 进行学习率 Warmup逐步从warmup_bias_lr0.1过渡到lr00.01后期采用余弦退火式线性衰减lrf0.01避免学习率过高导致振荡最后 10 个 epoch 关闭 Mosaic 增强close_mosaic10提升模型对真实样本的拟合能力混合精度训练启用 AMPampTrue降低显存占用提升训练吞吐结果保存自动保存最优权重best.pt和最终权重last.pt并记录完整训练日志results.csv第三阶段系统集成与功能开发检测器封装将 Ultralytics YOLO 推理接口封装为Detector类统一管理模型加载、参数配置和推理调用多线程架构视频和摄像头检测采用QThread异步处理检测线程与 UI 线程分离保证界面流畅历史记录持久化使用 SQLite 存储每次检测的结果支持按类型筛选和关键词搜索训练结果可视化读取results.csv使用 Matplotlib 绘制多维度分析图表嵌入 PyQt6 界面训练参数参数值说明基础模型yolov8n.ptCOCO 预训练 Nano 版本训练轮次100 epochs—批次大小16—输入尺寸640×640—初始学习率0.01lr0最终学习率0.01 × lrf 0.0001线性衰减至 lr0×lrfWarmup 轮次3.0—优化器autoSGD—动量0.937—权重衰减0.0005—Box Loss 权重7.5—Cls Loss 权重0.5—DFL Loss 权重1.5—IoU 阈值NMS0.7—混合精度AMP 开启—Mosaic 增强1.0后 10 epoch 关闭—水平翻转0.5—HSV 色调扰动0.015—HSV 饱和度扰动0.7—随机缩放0.5—自动增强randaugment—随机擦除0.4—总训练时长≈ 2.54 小时9,161 秒训练指标与结果核心指标基于验证集指标最优值Best Epoch最终值Epoch 100mAP0.50.6991Epoch 810.6971mAP0.5:0.950.5954Epoch 890.5981Precision0.7997Epoch 530.7564Recall0.6455Epoch 660.6270F1 Score≈ 0.714≈ 0.681损失曲线趋势损失项初始值Epoch 1最终值Epoch 100说明train/box_loss0.7600.419边界框回归损失下降 ≈ 45%train/cls_loss3.8710.562分类损失下降 ≈ 85.5%train/dfl_loss1.2941.032分布焦点损失val/box_loss0.8930.599验证集边界框损失val/cls_loss2.7171.090验证集分类损失训练集与验证集损失同步下降无明显过拟合现象模型具备良好的泛化能力。可视化图表说明系统内置两套可视化工具指标展示页内置图表图表名称含义训练/验证 Box Loss模型预测边界框与真实框之间的位置偏差值越低说明定位越准确训练/验证 Cls Loss类别分类的交叉熵损失值越低说明分类越准确训练/验证 DFL Loss分布焦点损失辅助边界框精细化回归mAP0.5** 曲线**IoU 阈值为 0.5 时的平均精度均值衡量整体检测性能mAP0.5:0.95 曲线在多个 IoU 阈值0.5~0.95下的综合性能要求更严格Precision 曲线精确率 正确检测数 / 总预测数反映误报率Recall 曲线召回率 正确检测数 / 真实目标数反映漏报率F1 分数曲线Precision 与 Recall 的调和平均综合衡量两者均衡性学习率衰减曲线展示 Warmup → 线性衰减的学习率变化过程综合性能雷达图将 mAP、Precision、Recall、F1、损失收敛度等多维指标以雷达形式可视化各指标对比柱状图汇总最优 epoch 的四项核心指标便于横向比较独立可视化脚本plot_results.py运行python plot_results.py后自动为每个训练指标生成独立 PNG 图片保存至runs/detect/train/charts/包含最优值标注。系统功能 登录注册用户名 密码登录支持注册新账号账号信息持久化存储于users.json️ 图片识别支持点击打开或拖拽导入图片JPG / PNG / BMP / WebP一键开始检测实时展示标注结果图统计摘要总检测数、类别数、平均 / 最高置信度类别分布表、详细检测数据表坐标 置信度置信度直方图分布支持导出标注图片、导出 CSV 结果文件 视频识别打开本地视频文件按帧间隔检测实时展示带标注的视频帧当前帧 / 累计检测统计可随时停止检测 摄像头识别支持多路摄像头切换索引 0~10检测开关分离可仅预览不检测实时统计目标数量、类别、置信度一键截图保存会话结果写入历史 检测历史图片 / 视频 / 摄像头检测记录自动入库SQLite支持按检测类型筛选、关键词搜索点击记录查看完整详情支持导出历史 CSV、一键清空⚙️ 模型管理自动加载默认权重runs/detect/train/weights/best.pt支持手动浏览指定任意.pt / .onnx模型文件可视化调节置信度阈值、IoU 阈值、最大检测数展示模型信息与 44 类别说明 指标展示训练曲线损失、mAP、Precision、Recall 全程变化指标汇总核心指标大字展示 柱状对比图综合分析7 维雷达图 学习率曲线 P/R/F1 三线对比技术栈类别技术 / 库深度学习框架PyTorch目标检测Ultralytics YOLOv8图像处理OpenCVcv2数值计算NumPy可视化MatplotlibQtAgg 后端桌面 UIPyQt6数据库SQLite3Python 内置开发语言Python 3.9项目结构垃圾分类检测/ ├── main.py # 程序入口 ├── plot_results.py # 独立指标可视化脚本 ├── requirements.txt # 依赖清单 ├── users.json # 用户账号自动生成 ├── detection_history.db # 检测历史数据库自动生成 │ ├── datasets/ # 数据集 │ ├── images/ │ │ ├── train/ # 训练图片10,319 张 │ │ ├── val/ # 验证图片1,478 张 │ │ └── test/ # 测试图片2,964 张 │ ├── labels/ │ │ ├── train/ # 训练标注YOLO TXT │ │ ├── val/ │ │ └── test/ │ ├── garbage.yaml # YOLO 训练配置 │ ├── classify_rule.json # 细类 → 大类映射规则 │ ├── train_classes.txt # 44 类名称列表 │ └── README.md # 数据集说明 │ ├── runs/ │ └── detect/ │ └── train/ │ ├── weights/ │ │ ├── best.pt # 最优模型权重系统默认加载 │ │ └── last.pt # 最终轮次权重 │ ├── results.csv # 训练指标日志100 轮 │ ├── args.yaml # 训练参数记录 │ └── charts/ # plot_results.py 输出图表 │ ├── utils/ # 工具层 │ ├── styles.py # 全局 QSS 样式 │ ├── db.py # SQLite 历史数据库操作 │ └── detector.py # YOLO 检测器封装 │ └── ui/ # 界面层 ├── widgets.py # 共享组件卡片、统计块、标题 ├── login_window.py # 登录 / 注册窗口 ├── main_window.py # 主窗口顶部导航栏 └── pages/ ├── image_page.py # 图片识别页 ├── video_page.py # 视频识别页 ├── camera_page.py # 摄像头识别页 ├── history_page.py # 检测历史页 ├── model_page.py # 模型管理页 └── metrics_page.py # 指标展示页启动教程环境准备Python 版本要求Python 3.9安装所有依赖pipinstall-rrequirements.txt如需 GPU 加速推理请提前安装与 CUDA 版本匹配的 PyTorch详见 pytorch.org准备模型权重将训练好的模型权重放置于runs/detect/train/weights/best.pt系统启动时将自动加载该路径的权重。也可以在运行后于「模型管理」页面手动指定其他权重文件。启动系统在项目根目录执行python main.py登录界面默认账号账号密码adminadmin123重新训练模型可选如需在自有数据集上重新训练在项目根目录执行yolo traindatadatasets/garbage.yamlmodelyolov8n.ptepochs100imgsz640batch16训练完成后将新权重路径在「模型管理」页面重新加载即可。生成独立指标图表python plot_results.py图表将保存至runs/detect/train/charts/每个指标对应一张 PNG 文件。本项目为个人原创结构清晰功能完整适合计算机视觉方向课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。作者原创项目地址michael-jay.pages.dev/projects.html

相关新闻

饱受电磁干扰困扰?Versatile Link光纤组件提供新思路

饱受电磁干扰困扰?Versatile Link光纤组件提供新思路

一、为什么选择 Versatile Link 光纤链路? 随着工业 4.0、智能制造、5G 光通信的快速发展,传统铜缆在高速、长距离、强干扰环境下的短板愈发明显——信号衰减、EMI/RFI 干扰、接地环路、电压击穿等问题屡见不鲜。 Versatile Link 系列 应运而生。作为一款…

2026/8/4 8:11:22 阅读更多 →
2026年合肥漏水维修指南:专业评测哪家强

2026年合肥漏水维修指南:专业评测哪家强

在合肥,房屋漏水问题一直是许多业主头疼的难题。无论是卫生间、阳台、屋顶还是外墙,一旦出现渗水漏水,不仅影响居住环境,还可能造成更大的经济损失。面对众多防水堵漏公司,如何选择一家靠谱的服务商?本文将…

2026/8/4 8:11:22 阅读更多 →
深入解析C++ STL栈与队列:原理与应用实践

深入解析C++ STL栈与队列:原理与应用实践

1. 为什么需要深入理解STL栈与队列? 在C开发中,栈(stack)和队列(queue)是最基础也最常用的两种数据结构。STL(Standard Template Library)作为C标准库的核心组成部分,提供了现成的容器实现。但很多开发者仅仅停留在"会用"的层面&am…

2026/8/4 8:11:22 阅读更多 →

最新新闻

Blender MMD Tools插件深度解析:从格式鸿沟到创作自由的完整技术路径

Blender MMD Tools插件深度解析:从格式鸿沟到创作自由的完整技术路径

Blender MMD Tools插件深度解析:从格式鸿沟到创作自由的完整技术路径 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mm…

2026/8/4 9:35:36 阅读更多 →
Claude中转站用于私域运营:话术生成、用户分层与活动跟进

Claude中转站用于私域运营:话术生成、用户分层与活动跟进

在真实业务里,私域运营并不是一个孤立动作,而是一组连续任务。很多团队刚开始只想通过模型完成某个小功能,例如生成一段内容、整理一份资料、分类一批数据,或者辅助某个成员提高效率。但当任务进入日常运行后,大家会发…

2026/8/4 9:35:36 阅读更多 →
智能客控厂家怎么选7个硬指标筛选靠谱供应商

智能客控厂家怎么选7个硬指标筛选靠谱供应商

酒店业主选客控厂家,常被功能清单晃花眼。真正要盯的是研发、案例、服务、定制、安全、认证、响应七个硬指标。本文给出一套可打分的筛选清单,奥莱维作为多项全覆盖厂商可作范例参考。一、7个硬指标评分卡研发能力:自研比例、专利与软著数量。…

2026/8/4 9:35:36 阅读更多 →
PHP CURL POST请求实战:从基础配置到企业级应用

PHP CURL POST请求实战:从基础配置到企业级应用

1. 为什么PHP开发者需要掌握CURL发送POST请求? 在API对接和网络通信领域,CURL堪称PHP开发者的瑞士军刀。我经历过无数次API对接项目,发现90%的接口调用问题都源于对CURL配置理解不透彻。POST请求作为最常用的HTTP方法之一,在用户注…

2026/8/4 9:35:36 阅读更多 →
【单片机毕业设计推荐】基于 STM32 的人体生理参数监测装置设计与实现 基于 STM32 的心率血氧体温采集与蓝牙监测系统设计(013205)

【单片机毕业设计推荐】基于 STM32 的人体生理参数监测装置设计与实现 基于 STM32 的心率血氧体温采集与蓝牙监测系统设计(013205)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能技术路线项目演示关于我们项目案例源码获取温馨提示:本人主页置顶文章(点我)有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)有 CSDN 平台官…

2026/8/4 9:34:36 阅读更多 →
A-Lin南昌站和歌迷双向整活 「歌迹」现场接梗名场面频出

A-Lin南昌站和歌迷双向整活 「歌迹」现场接梗名场面频出

7月31日、8月2日,天生歌姬A-Lin黄丽玲携「歌迹 Journey」巡回演唱会在南昌国际体育中心体育馆,为豫章歌迷奉上诚意满满的视听盛宴。两晚演出不仅安排南昌限定歌单彩蛋、全新舞台造型,舞台之上趣味互动更是不间断:超近距离与歌迷互…

2026/8/4 9:34:36 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →