博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,选择我们,就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅

点击查看作者主页,了解更多项目!

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅

2、最全计算机专业毕业设计选题大全(建议收藏)✅

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数据库管理用户信息,确保系统使用的安全性与个性化(如保存个人训练记录、偏好设置等)。

三、系统亮点与扩展性

  1. 通用性强:虽以“垃圾分类”为应用场景,但核心是通用图像识别框架,用户可通过更换数据集,将其改造为任意识别系统(如植物识别、车型识别、瑕疵检测等)。
  2. 技术全面:涵盖从经典到前沿的多种CNN模型,适合学习、研究与实际应用,既可为初学者提供入门案例,也能满足进阶用户的复杂需求。
  3. 操作便捷:通过PyQt6构建的可视化界面,降低了深度学习的使用门槛,无需代码基础即可完成模型训练与推理。
  4. 可扩展性高:支持自定义模型接入、数据集格式扩展,用户可根据需求二次开发,增强系统功能。

总之,该系统是一个集“学习、开发、应用”于一体的深度学习平台,兼顾实用性与技术深度,无论是用于垃圾分类的实际场景,还是作为图像识别的学习工具,都具有较高的价值。

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、源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅

点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐