针对居民垃圾分类准确率低、分类标准复杂等问题,设计并开发了一套智能垃圾分类辅助系统。系统采用前后端分离架构,前端基于Vue3构建交互界面,后端采用FastAPI提供接口服务,并使用MySQL管理用户及识别数据。基于PyTorch对MobileNetV2进行迁移学习,实现四类生活垃圾智能识别,同时集成Top-K分类结果展示和Grad-CAM热力图可视化,提高模型预测的准确性和可解释性。此外,结合Ollama部署DeepSeek大语言模型,实现环保知识问答功能,并开发用户登录、JWT身份认证、历史记录查询、管理员后台及数据统计分析等模块,形成完整的智能垃圾分类解决方案。
整体架构与设计思路:
项目采用前后端分离架构设计,前端使用Vue3、Tailwind CSS和ECharts构建用户交互界面,实现垃圾图片上传、识别结果展示、历史记录查询及数据可视化;后端基于FastAPI开发RESTful API,负责用户认证、业务逻辑处理以及模型推理服务,并结合JWT实现身份认证。数据库采用MySQL存储用户信息、识别记录及系统数据。AI识别模块基于PyTorch框架,采用迁移学习训练MobileNetV2模型,实现四类生活垃圾分类,同时集成Top-K预测结果展示和Grad-CAM热力图,提高模型可解释性。智能问答模块通过Ollama部署DeepSeek大语言模型,为用户提供垃圾分类知识查询和环保知识问答服务。
项目难点及解决方案:
① 模型准确率不足。 初期直接使用预训练模型进行分类,识别效果不理想。通过采用迁移学习,仅微调MobileNetV2后期特征层及分类层,并结合数据增强、学习率调整等策略,提高了模型泛化能力和分类准确率。
② 模型推理与Web系统集成。 为避免模型加载导致接口响应缓慢,将模型封装为独立推理模块,在FastAPI启动时完成模型加载,后续请求直接调用内存中的模型进行预测,有效降低了接口响应时间。
③ 模型结果可信度不足。 针对用户难以理解AI分类依据的问题,引入Grad-CAM生成模型关注区域热力图,并增加Top-K分类结果展示,使识别过程更加直观,提升了系统的可解释性和用户体验。