深度学习的垃圾分类识别系统 pytorch框架 多模型LeNet、AlexNet、VGG、GoogLeNet、ResNet、MobileNet、MobileNet、RegNet模型 ✅
深度学习的垃圾分类识别系统 pytorch框架 多模型LeNet、AlexNet、VGG、GoogLeNet、ResNet、MobileNet、MobileNet、RegNet模型 毕业设计✅
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,选择我们,就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅
1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅
1、项目介绍
技术栈:
本系统是一个完整的基于深度学习+pytorch+PyQt6+MySQL的垃圾分类识别系统。
包括LeNet、AlexNet、VGG、GoogLeNet、ResNet、MobileNet V2、MobileNet V3、RegNet、ShuffleNet、DenseNet、EfficientNet等网络模型。
可以直接训练、测试、使用。也就是说,它不仅仅是一个垃圾分类识别系统。它可以是任意识别系统!!
2、项目界面
(1)塑料袋–其他垃圾

(2)剩菜—厨余垃圾
(3)纸箱-----可回收垃圾
(4)矿泉水瓶—可回收垃圾
(5)过期药物----有害垃圾

(6)模型训练
(7)模型测试

(8)权重列表

(9)模型列表
(10)注册登录
3、项目说明
这个基于深度学习的垃圾分类识别系统是一个功能完备、扩展性强的图像识别平台,结合了多种前沿技术与实用功能,以下从核心构成、功能特点、技术亮点等方面详细介绍:
一、核心技术栈与架构
系统以深度学习为核心驱动力,整合了多类主流技术工具,形成完整的“数据处理-模型训练-交互应用-数据存储”闭环:
- 深度学习框架:采用PyTorch实现模型的构建、训练与推理,支持动态计算图,便于调试和自定义网络结构。
- 前端交互:通过PyQt6搭建图形用户界面(GUI),提供直观、易用的操作入口,适配各类用户需求。
- 数据存储:使用MySQL数据库管理用户信息、模型权重、训练日志等数据,确保数据的结构化存储与高效访问。
- 模型支持:内置11种经典与前沿的卷积神经网络(CNN)模型,包括LeNet(基础入门模型)、AlexNet(深度学习里程碑)、VGG(简洁规整的多层结构)、GoogLeNet(引入Inception模块)、ResNet(残差连接解决梯度消失)、MobileNet系列(轻量化模型,适合移动端)、RegNet(结构化网络设计)、ShuffleNet(通道洗牌优化计算)、DenseNet(密集连接强化特征复用)、EfficientNet(复合缩放提升效率)等,覆盖不同复杂度与应用场景。
二、核心功能模块
系统围绕“垃圾分类识别”展开,同时具备通用图像识别的扩展性,主要功能包括:
1. 垃圾分类识别功能
- 实时识别:支持上传或拍摄垃圾图片(如塑料袋、剩菜、纸箱等),系统自动调用训练好的模型进行分类,输出垃圾类别(其他垃圾、厨余垃圾、可回收垃圾、有害垃圾等),识别结果直观显示在界面中。
- 多场景适配:覆盖常见生活垃圾类型,从日常用品(矿泉水瓶、纸箱)到特殊物品(过期药物),均能实现精准分类。
2. 模型训练与测试
- 自定义训练:用户可上传自有数据集(不限于垃圾图像),选择任意内置模型进行训练,支持设置超参数(如学习率、迭代次数、批次大小等),训练过程中实时显示损失值、准确率等指标,便于监控训练效果。
- 模型测试:训练完成后,可通过测试集评估模型性能,生成准确率、混淆矩阵等指标报告,帮助用户判断模型的泛化能力。
3. 模型与权重管理
- 模型列表:集中展示所有内置模型的基本信息(如网络结构、参数量、适用场景等),方便用户根据需求选择。
- 权重列表:存储训练过程中生成的模型权重文件,支持权重的加载、保存与删除,用户可随时调用历史权重进行推理或继续训练。
4. 用户管理
- 提供注册、登录功能,通过MySQL数据库管理用户信息,确保系统使用的安全性与个性化(如保存个人训练记录、偏好设置等)。
三、系统亮点与扩展性
- 通用性强:虽以“垃圾分类”为应用场景,但核心是通用图像识别框架,用户可通过更换数据集,将其改造为任意识别系统(如植物识别、车型识别、瑕疵检测等)。
- 技术全面:涵盖从经典到前沿的多种CNN模型,适合学习、研究与实际应用,既可为初学者提供入门案例,也能满足进阶用户的复杂需求。
- 操作便捷:通过PyQt6构建的可视化界面,降低了深度学习的使用门槛,无需代码基础即可完成模型训练与推理。
- 可扩展性高:支持自定义模型接入、数据集格式扩展,用户可根据需求二次开发,增强系统功能。
总之,该系统是一个集“学习、开发、应用”于一体的深度学习平台,兼顾实用性与技术深度,无论是用于垃圾分类的实际场景,还是作为图像识别的学习工具,都具有较高的价值。
4、核心代码
# -*- coding: utf-8 -*-
# @12-09 17:08
# @
# @File : prediction.py
import logging
import json
import time
import torch
import torchvision.transforms as transforms
from PIL import Image
from predict.model_choose import ModelChoose, TrainingConfig
class Prediction:
def __init__(self, config: TrainingConfig, logger=None, model=None):
"""
初始化预测类
:param config: 训练配置
:param logger: 日志记录器
:param model: 要测试的模型
"""
self.config = config
self.logger = logger
self.model = model
self.classes = [
'其他垃圾/塑料袋', '其他垃圾/烟蒂', '其他垃圾/碎瓷片',
'厨余垃圾/剩菜', '厨余垃圾/水果', '厨余垃圾/蔬菜', '厨余垃圾/鸡蛋壳',
'可回收垃圾/塑料瓶', '可回收垃圾/易拉罐', '可回收垃圾/纸箱',
'有害垃圾/电池', '有害垃圾/药膏', '有害垃圾/过期药品'
]
if self.model is None:
raise ValueError("模型未初始化,请提供有效的模型实例。")
def preprocess_image(self):
"""
图像预处理,适配模型输入
:return: 预处理后的图像张量
"""
try:
image = Image.open(self.config.image_path).convert('RGB')
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(
mean=[0.1847, 0.1716, 0.1502],
std=[0.0678, 0.0615, 0.0552]
)
])
return transform(image).unsqueeze(0) # 增加批次维度
except Exception as e:
self.logger.error(f"图像处理失败: {e}")
raise ValueError(f"图像处理失败: {e}")
def predict(self, image_tensor):
"""
使用模型对图像进行预测
:param image_tensor: 图像张量
:return: 预测类别及置信度
"""
try:
self.model.eval()
with torch.no_grad():
image_tensor = image_tensor.to(self.config.device)
output = self.model(image_tensor)
_, predicted_idx = torch.max(output, dim=1)
confidence = torch.softmax(output, dim=1)[0, predicted_idx].item()
return self.classes[predicted_idx.item()], confidence
except Exception as e:
self.logger.error(f"预测失败: {e}")
raise ValueError(f"预测失败: {e}")
def run(self):
"""
执行预测并返回结果
:return: JSON格式结果
"""
try:
start_time = time.time()
image_tensor = self.preprocess_image()
prediction, confidence = self.predict(image_tensor)
total_time = time.time() - start_time
result = {
"status": 200,
"message": "预测成功",
"prediction": prediction,
"confidence": f"{confidence*100:.2f}%",
"total_time": f"{total_time:.3f}秒"
}
self.logger.info(f"预测完成: {result}")
return json.dumps(result, ensure_ascii=False)
except Exception as e:
error_response = {
"status": 400,
"message": f"出错: {str(e)}"
}
self.logger.error(f"预测失败: {error_response}")
return json.dumps(error_response, ensure_ascii=False)
def main():
"""
主程序入口
"""
try:
config = TrainingConfig(
model_name='ResNet50',
num_classes=13,
image_path='../test.jpg',
pretrained_weights='../weights/ResNet/ResNet50_model_89.46%.pth'
)
model_choose = ModelChoose(config)
model = model_choose.initialize_model()
predictor = Prediction(config, model_choose.logger, model)
result = predictor.run()
print(result)
except Exception as e:
print(f"主程序运行失败: {e}")
if __name__ == '__main__':
main()
🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目编程以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌
5、源码获取方式
🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅
点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)