news 2026/11/6 1:52:25

基于深度学习的垃圾分类系统的设计与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于深度学习的垃圾分类系统的设计与实现

基于深度学习的垃圾分类系统的设计与实现

项目简介

本系统是一个基于 Flask Web 框架与 PyTorch 深度学习模型的垃圾分类智能识别平台。系统面向垃圾图像分类场景,能够对上传图片中的玻璃、纸张、纸板、塑料、金属、其他垃圾等六类垃圾进行自动识别与置信度评估,并提供识别历史、数据统计、模型在线训练与记录导出等完整功能。

系统使用 TrashNet 公开垃圾分类数据集进行模型训练,管理员可手动发起模型训练,训练完成后自动加载新权重。启动服务不会自动训练。


API 接口

所有接口返回 JSON,格式{ "code": 0, "data": ... }或{ "code": 1, "message": "..." }。数据均来自数据库或模型真实推理,无 mock。

接口方法权限说明
/api/dashboardGET登录数据概览统计:识别次数、置信度、类别/类型分布、置信度区间、各类平均置信度、数据集分布、识别趋势;管理员额外返回测试集混淆矩阵
/api/datasetGET登录TrashNet 数据集各类别真实样本数
/api/recordsGET登录识别记录分页,page/per_page参数
/api/records/<id>DELETE登录删除识别记录
/api/classifyPOST登录上传图片分类,返回模型真实推理结果
/api/model/statusGET登录模型是否存在及最近训练指标
/api/training/recordsGET管理员训练历史记录
/api/training/startPOST管理员发起训练,body:{epochs, batch_size, learning_rate}
/api/usersGET管理员用户列表
/api/users/<id>DELETE管理员删除用户

/api/dashboard主要数据字段(均为真实统计,无 mock):

字段说明
class_distribution识别记录按六类统计
category_distribution可回收物 / 干垃圾统计
confidence_bins置信度区间分布(0–50%、50–70%…)
class_avg_confidence各类平均置信度与次数
dataset_distributionTrashNet 目录真实样本数
daily_trend近 14 日识别趋势
confusion_matrix管理员:最近一次训练测试集混淆矩阵

/api/classify返回字段说明(数值由模型实时推理产生):

{"code":0,"data":{"predicted_class":"plastic","predicted_cn":"塑料","category":"可回收物","confidence":0.8734,"top3":[{"class_name":"plastic","class_cn":"塑料","category":"可回收物","confidence":0.8734},{"class_name":"glass","class_cn":"玻璃","category":"可回收物","confidence":0.0621},{"class_name":"paper","class_cn":"纸张","category":"可回收物","confidence":0.0312}]}}

功能模块

模块功能说明
用户认证用户注册、登录、退出;基于 Session 的会话管理;管理员与普通用户两级角色权限控制
数据概览核心指标卡片 + ECharts 图表:垃圾类别分布、可回收/干垃圾分布、置信度区间分布、各类平均置信度、TrashNet 样本分布、近 14 日识别趋势;管理员额外展示测试集混淆矩阵热力图
垃圾识别支持点击上传单张图片,实时执行模型推理,返回预测类别、垃圾类型、置信度与 Top-3 结果,并自动保存识别记录
识别记录识别记录分页浏览,查看历史识别结果,删除记录,导出 CSV(中文表头)
数据集信息展示 TrashNet 数据集统计(各类别样本数、数据集路径、下载地址、模型架构说明)
模型训练管理员可配置训练轮次、批次大小、学习率并启动在线训练;左侧模型指标卡与右侧准确率曲线同高展示,另含损失曲线与训练历史
用户管理管理员查看所有用户列表,删除普通用户账户

垃圾类别

系统支持识别以下六类垃圾:

类别 ID英文名称中文名称垃圾类型说明
0glass玻璃可回收物玻璃瓶、玻璃制品等
1paper纸张可回收物报纸、书本、纸箱纸等
2cardboard纸板可回收物纸箱、硬纸板等
3plastic塑料可回收物塑料瓶、塑料袋等
4metal金属可回收物易拉罐、金属制品等
5trash其他垃圾干垃圾不可回收的其他垃圾

标准版目录结构

python-deeper-study-lajifenlei/ ├── app.py # Flask 应用工厂 ├── run.py # 启动脚本(初始化数据库、启动服务,无模型时提示训练) ├── train.py # 独立模型训练脚本 ├── config.py # 系统配置(端口、数据库路径、模型路径、类别映射、训练参数) ├── database.py # SQLite 数据库初始化与连接管理 ├── requirements.txt # Python 依赖包清单 ├── mac_run.sh # macOS/Linux 一键启动脚本 ├── window_run.bat # Windows 一键启动脚本 ├── 项目说明.md # 项目功能与目录结构说明 ├── 训练手册.md # 模型训练与数据集使用手册 ├── DATASET.md # 数据集下载地址与引用说明 ├── ml/ │ ├── __init__.py │ └── classifier.py # ResNet18 / TrashCNN 模型定义、训练与推理 ├── services/ │ ├── auth_service.py # 用户认证业务逻辑 │ ├── classify_service.py # 图片分类与记录管理 │ ├── stats_service.py # 数据统计与数据集信息 │ └── train_service.py # 训练记录管理 ├── routes/ │ ├── auth.py # 登录、注册、退出路由 │ ├── main.py # 页面路由 │ └── api.py # API 接口路由 ├── templates/ # Jinja2 HTML 模板 │ ├── base.html # 基础模板(侧边栏、本地资源引用) │ ├── login.html # 登录页 │ ├── register.html # 注册页 │ ├── dashboard.html # 数据概览 │ ├── classify.html # 垃圾识别页 │ ├── history.html # 识别记录页 │ ├── dataset.html # 数据集信息页 │ ├── train.html # 模型训练页 │ └── users.html # 用户管理页 ├── static/ │ ├── css/ │ │ └── app.css # 自定义样式(绿色环保主题) │ ├── uploads/ # 用户上传图片存储目录 │ └── vendor/ # 本地前端资源(无需 CDN) │ ├── bootstrap/ # Bootstrap 5.3 CSS/JS │ └── echarts/ # ECharts 5.5 图表库 ├── data/ │ └── app.db # SQLite 数据库文件(自动生成) ├── models_weights/ # 训练输出的模型权重 │ ├── trash_classifier.pth # 分类模型权重 │ └── model_meta.json # 模型元信息(准确率、训练时间等) ├── trashnet-master/ # TrashNet 数据集 │ └── data/ │ └── dataset-resized/ # 已缩放数据集(6 类,2527 张) │ ├── glass/ │ ├── paper/ │ ├── cardboard/ │ ├── plastic/ │ ├── metal/ │ └── trash/ ├── 运行步骤必看/ │ ├── window.md # Windows 运行步骤说明 │ └── mac.md # macOS 运行步骤说明 └── 用户上传检测文件/ # 测试用垃圾图片样例 ├── 玻璃.jpg ├── 纸张.jpg ├── 纸板.jpg ├── 塑料.jpg ├── 金属.jpg ├── 其他垃圾.jpg └── 使用说明.md

技术栈

类别技术
后端框架Python 3.12 + Flask 3.0
用户认证Flask Session + Werkzeug 密码哈希
数据库SQLite 3
深度学习PyTorch + TorchVision(ResNet18 迁移学习,兼容 TrashCNN)
图像处理Pillow
数据处理NumPy
前端HTML5 + Bootstrap 5.3 + ECharts 5.5
数据集来源TrashNet(Stanford CS 229 公开数据集)

环境要求

项目要求
Python3.12
操作系统Windows / macOS / Linux
内存建议 4GB 以上(模型推理与训练时使用)
磁盘约 1GB(含依赖、数据集与模型权重)
GPU可选,支持 CUDA / CPU 自动回退
浏览器Chrome / Firefox / Safari / Edge 现代版本

账号信息

系统初始化时自动创建以下默认账户:

角色用户名密码权限
管理员adminadmin123全部功能,含模型训练、用户管理
普通用户自行注册自行设置垃圾识别、识别记录、数据概览、数据集查看

新注册用户默认为普通用户角色,仅能访问自身识别数据;管理员可查看全部用户数据。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/6 1:51:43

AI科技热点日报 | 2026年11月1日

文章目录 AI科技热点日报 | 2026年11月1日 📌 今日摘要 一、资本面换挡:OpenAI 融资目标缩水 100 亿美元,苹果市值反超英伟达 事件概要 来源 / Sources 二、算力金融化:英伟达为 Nscale 460 兆瓦数据中心提供超 50 亿美元信用担保 事件概要 来源 / Sources 三、模型能力与…

作者头像 李华
网站建设 2026/11/6 1:51:12

大模型时代:博士身价翻倍!收藏这份程序员进阶指南,抓住AI红利!

大模型领域正推动博士薪酬大幅增长&#xff0c;顶尖人才总包可达300万。基础模型、Agent、多模态等方向最受追捧&#xff0c;薪酬构成变为现金、奖金、期权等捆绑激励。供需关系紧张&#xff0c;人才价格被重新排序。AI岗位成为抢人大战焦点&#xff0c;传统技术岗面临缩编。建…

作者头像 李华
网站建设 2026/11/6 1:51:11

FDE:OpenAI豪掷40亿美元布局,程序员收藏这份大模型落地指南!

OpenAI成立部署公司&#xff0c;投入超40亿美元并收购Tomoro&#xff0c;标志着FDE&#xff08;前线部署工程师&#xff09;成为AI行业核心岗位。FDE负责将前沿AI技术转化为企业生产结果&#xff0c;需具备工程、AI系统、业务理解和交付能力。随着AI产品价值转向业务现场&#…

作者头像 李华
网站建设 2026/11/6 1:50:26

基于网启PXE服务器的批量定制系统平台

基于网启PXE服务器的批量定制系统平台 项目说明 概述 该项目共分为2个子项目&#xff0c;由iventoy和定制安装两部分组成该项目旨在复习巩固系统服务部署使用、shell编程等知识&#xff0c;旨在让学生增加知识面&#xff0c;提高项目实习经历&#xff0c;充实简历 项目背景知识…

作者头像 李华
网站建设 2026/11/6 1:47:36

Abaqus软件培训-从零开始学

一、Abaqus 培训到底学什么&#xff1f;标准 5 天课程模块拆解结论&#xff1a;正规 Abaqus 培训不是"教软件点哪里"&#xff0c;而是把建模—求解—判读这条完整链路跑通&#xff0c;其中最难、也最值钱的部分是非线性收敛调试与结果可信度判断。一套完整的 5 天课程…

作者头像 李华