AI源码
AI源码AI 精选 · 优质源码 · 助力学习

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

基于 Flask 与 PyTorch ResNet18 的垃圾图像智能分类平台,面向 TrashNet 六类垃圾(玻璃、纸张、纸板、塑料、金属、其他垃圾)自动识别与置信度评估,提供数据概览、识别记录、数据集信息、在线模型训练与 CSV 导出。

评分:4.8/5.0
销量:5
发布:2026/7/12
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

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

项目简介

本系统是一个基于 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全部功能,含模型训练、用户管理
普通用户自行注册自行设置垃圾识别、识别记录、数据概览、数据集查看

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

技术分类

包含内容

完整源码
项目说明文档
演示材料
训练手册

适用人群

学习参考与二次开发

关于 AI源码

AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 5+ 位用户
立即咨询

相关推荐

查看全部 →
城市交通流量预测与拥堵成因分析系统
Python
进阶

城市交通流量预测与拥堵成因分析系统

是一个面向城市交通拥堵分析的 monorepo,覆盖计算机设计课题中的主要能力链路:

PythonHTMLSQLite
4.820
电商用户行为漏斗与CRO转化率优化分析
Python
NEW
进阶

电商用户行为漏斗与CRO转化率优化分析

电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。

PythonHTMLSQLite
4.866
多组学癌症预后预测分析系统
Python
进阶

多组学癌症预后预测分析系统

基于 Flask 的 Web 应用,用于上传 TCGA 风格合并表、做特征与标签概览、Cox 预后风险评分与生存相关可视化。模型在本地训练后以 形式加载,不提供旧版演示数据或假模型兜底。

PythonHTMLSQLite
4.834
基于 Apriori 算法的中药配伍审查系统
Python
NEW
进阶

基于 Apriori 算法的中药配伍审查系统

本系统是一个基于经典 Apriori 关联规则挖掘算法的中药配伍审查平台,使用真实中医药处方数据集(PTM-TKDE2018),实现药材频繁项集挖掘、关联规则生成与配伍禁忌审查。

PythonHTMLSQLite
4.840
基于 Python 的城市共享单车骑行需求时空分析系统
Python
NEW
进阶

基于 Python 的城市共享单车骑行需求时空分析系统

本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。

PythonHTMLSQLite
4.857
基于 Python 的短视频用户行为分析系统
Python
NEW
进阶

基于 Python 的短视频用户行为分析系统

基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。

PythonHTMLSQLite
4.875