博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅点击查看作者主页,了解更多项目!
🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅
1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅
2、大数据毕业设计:2026年选题大全 深度学习 python语言 JAVA语言 hadoop和spark(建议收藏)✅
🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅
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.pyimportloggingimportjsonimporttimeimporttorchimporttorchvision.transformsastransformsfromPILimportImagefrompredict.model_chooseimportModelChoose,TrainingConfigclassPrediction: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=['其他垃圾/塑料袋','其他垃圾/烟蒂','其他垃圾/碎瓷片','厨余垃圾/剩菜','厨余垃圾/水果','厨余垃圾/蔬菜','厨余垃圾/鸡蛋壳','可回收垃圾/塑料瓶','可回收垃圾/易拉罐','可回收垃圾/纸箱','有害垃圾/电池','有害垃圾/药膏','有害垃圾/过期药品']ifself.modelisNone:raiseValueError("模型未初始化,请提供有效的模型实例。")defpreprocess_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])])returntransform(image).unsqueeze(0)# 增加批次维度exceptExceptionase:self.logger.error(f"图像处理失败:{e}")raiseValueError(f"图像处理失败:{e}")defpredict(self,image_tensor):""" 使用模型对图像进行预测 :param image_tensor: 图像张量 :return: 预测类别及置信度 """try:self.model.eval()withtorch.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()returnself.classes[predicted_idx.item()],confidenceexceptExceptionase:self.logger.error(f"预测失败:{e}")raiseValueError(f"预测失败:{e}")defrun(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}")returnjson.dumps(result,ensure_ascii=False)exceptExceptionase:error_response={"status":400,"message":f"出错:{str(e)}"}self.logger.error(f"预测失败:{error_response}")returnjson.dumps(error_response,ensure_ascii=False)defmain():""" 主程序入口 """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)exceptExceptionase:print(f"主程序运行失败:{e}")if__name__=='__main__':main()5、源码获取方式
🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看【用户名】、【专栏名称】就可以找到我啦🍅
感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看👇🏻获取联系方式👇🏻