1. 项目简介本项目是一个基于 Django 和 PyTorch 的垃圾分类图像识别系统旨在通过深度学习技术解决日常生活中的垃圾分类难题。系统采用 B/S 架构用户只需在浏览器中上传垃圾图片并选择预训练模型即可快速获得准确的垃圾分类结果和识别置信度。1.1 项目背景与意义随着城市化进程加快和环保意识提升垃圾分类已成为现代城市管理的重要环节。然而普通居民在实际投放垃圾时常常面临分类困惑。本项目通过计算机视觉技术将复杂的垃圾分类问题转化为图像识别任务为用户提供便捷、准确的分类指导。1.2 核心功能特点多模型支持集成 AlexNet、ResNet、MobileNet、Vision Transformer 等主流深度学习模型实时识别上传图片后秒级返回分类结果概率展示显示每个类别的识别置信度增强结果可信度用户友好简洁的 Web 界面无需安装客户端软件可扩展性模块化设计便于添加新模型和数据集1.3 系统架构概览系统采用经典的三层架构前端展示层HTML/CSS/JavaScript 构建的用户界面业务逻辑层Django 框架处理请求分发和业务逻辑模型推理层PyTorch 深度学习模型完成图像分类配图垃圾分类识别系统启动首页截图2. 技术栈2.1 后端开发Python 3.8作为主要编程语言负责后端逻辑、模型训练、预测流程和文档生成Django 4.2成熟的 Web 框架负责路由分发、模板渲染、文件上传和会话管理Django REST Framework提供 RESTful API 支持便于后续扩展移动端应用2.2 深度学习框架PyTorch 2.0主流的深度学习框架负责模型构建、训练和推理torchvision提供预训练模型、数据集加载器和图像预处理工具NumPy Pandas数据处理和分析用于训练数据统计和结果分析2.3 前端技术HTML5/CSS3构建响应式用户界面适配不同设备屏幕Bootstrap 5提供现代化的 UI 组件和布局系统JavaScript (ES6)实现动态交互如表单验证和结果实时展示3. 数据集说明3.1 数据集结构与组织项目数据集位于djangoProject/data_set/garbage/目录下按照标准的图像分类数据集格式组织data_set/garbage/ ├── train/ # 训练集 │ ├── 0/ # 可回收物类别 │ │ ├── img_001.jpg │ │ ├── img_002.jpg │ │ └── ... │ ├── 1/ # 有害垃圾类别 │ ├── 2/ # 厨余垃圾类别 │ └── 3/ # 其他垃圾类别 ├── test/ # 测试集目录结构与训练集相同 └── class_indices.json # 类别索引映射文件3.2 类别定义与映射数据集包含四大垃圾分类类别符合中国垃圾分类标准类别编号类别名称典型物品示例图片数量训练集0可回收物塑料瓶、纸箱、玻璃瓶、金属罐约 3,670 张1有害垃圾电池、过期药品、荧光灯管、油漆桶约 3,670 张2厨余垃圾剩菜剩饭、果皮、茶叶渣、菜叶约 3,670 张3其他垃圾卫生纸、陶瓷碎片、烟蒂、一次性餐具约 3,670 张3.3 数据集统计信息总图片数量18,848 张训练集14,683 张每类约 3,670 张测试集4,165 张每类约 1,041 张图片格式JPG、PNG 等常见格式图片尺寸统一调整为 224×224 像素用于模型训练数据增强训练时应用随机裁剪、水平翻转、颜色抖动等增强策略3.4 数据集特点与挑战类别平衡四类垃圾图片数量基本均衡避免类别不平衡问题场景多样包含不同光照、角度、背景的垃圾图片标注准确每张图片都经过人工审核确保分类标签正确现实性图片来源于真实生活场景而非实验室环境3.5 数据集扩展建议如需提升模型性能可考虑增加每个类别的图片数量收集更多不同季节、天气条件下的图片添加细粒度分类如可回收物细分为塑料、纸张、金属等使用数据合成技术生成罕见场景图片配图garbage 数据集中的可回收物样本图4. 系统功能4.1 核心功能模块4.1.1 首页展示模块系统概览展示项目名称、简介、技术栈和核心价值数据统计实时显示数据集信息、模型数量和识别记录使用指引提供简洁的操作指南和注意事项响应式设计适配桌面、平板和手机等多种设备4.1.2 模型管理模块自动扫描系统启动时自动扫描models/目录下的预训练权重文件动态加载支持.pth、.pt等 PyTorch 模型权重格式模型信息显示每个模型的参数量、输入尺寸和训练时间性能对比提供不同模型在测试集上的准确率对比4.1.3 图像上传模块格式支持JPG、JPEG、PNG、BMP 等常见图片格式大小限制支持最大 10MB 的图片文件上传实时预览上传后立即显示缩略图确认图片内容批量上传支持一次选择多张图片进行批量识别4.1.4 智能识别模块多模型选择用户可从下拉列表中选择任意已加载的模型实时推理调用对应模型的predict.py完成前向传播置信度计算使用 softmax 函数计算每个类别的概率Top-K 结果显示前 3 个最可能的类别及其概率4.1.5 结果展示模块详细报告展示使用的模型名称、识别类别、置信度和处理时间可视化展示使用柱状图显示各类别概率分布历史记录保存最近的识别记录支持查看和对比结果导出支持将识别结果导出为 JSON 或 CSV 格式4.2 训练功能模块项目包含完整的模型训练脚本支持以下深度学习架构模型类别具体模型特点适用场景经典 CNNAlexNet、VGG、LeNet结构简单训练快速教学演示、快速原型残差网络ResNet-18/34/50解决梯度消失深度可达百层高精度识别任务轻量级模型MobileNet、ShuffleNet参数量少推理速度快移动端部署密集连接DenseNet特征重用参数高效数据量有限场景高效网络EfficientNet、RegNet平衡精度与效率生产环境部署注意力机制Swin Transformer、Vision Transformer全局上下文建模复杂场景识别4.3 管理功能模块用户管理支持多用户注册、登录和权限控制日志记录记录所有识别请求、结果和系统事件性能监控监控系统资源使用情况和响应时间数据统计生成每日/每周/每月识别报告和图表6. 运行流程本项目可以使用 conda 中的 env环境启动。实际验证时Django 检查命令可以正常通过conda run-nenvpython manage.py check启动项目时进入 djangoProject 目录执行conda run-nmamba python manage.py runserver127.0.0.1:8000启动后在浏览器访问 http://127.0.0.1:8000/ 即可进入垃圾分类识别系统首页。7.项目总结本项目完成了从数据集组织、模型训练、预测推理到 Web 页面展示的完整流程。相比单纯的训练脚本Django 系统让模型能力具备了更直观的使用入口适合用于课程设计、项目实训展示。