
本项目是一个基于 Django 和 PyTorch 的水果图像分类系统支持水果图片上传、模型选择、分类预测和结果展示。项目已将系统名称、数据集参数和类别索引统一为水果分类场景数据来源以本地项目文件为准。技术栈本项目采用前后端分离与深度学习模型相结合的技术架构各组件分工明确Django负责后端页面渲染、URL 路由分发、文件上传处理以及模板引擎整合提供完整的 Web 服务支持。PyTorch / torchvision作为深度学习框架承担图像预处理Resize、Normalize、ToTensor、模型加载与推理计算支持 GPU/CPU 自动切换。HTML / CSS构建前端上传页面与结果展示页面采用响应式布局适配不同屏幕尺寸提升用户体验。openpyxl matplotlib读取训练过程中保存的 Excel 日志文件动态生成准确率与损失曲线图便于直观分析模型训练效果。Pillow用于图片格式转换与基础图像处理确保上传图片兼容性。数据集说明数据集目录位于DjangoProject/dataset/fruits按类别分文件夹存放。当前训练集图片共 1317 张测试集图片 327 张涵盖 5 个常见水果类别各类别分布如下类别训练集测试集合计apple27064334banana22857285grape25865323orange28371354pear27870348合计13173271644数据集图片均为自然场景拍摄包含不同光照、角度和背景有助于提升模型在实际应用中的泛化能力。训练前会自动对图片进行统一尺寸缩放224×224和数据增强随机翻转、色彩抖动等。水果数据集样例图系统首页截图系统结果页效果图系统功能系统围绕水果图像分类的核心需求设计了以下完整功能模块水果图片上传用户通过 Web 页面选择本地水果图像支持 JPG、PNG 格式上传后自动保存至临时目录并显示预览。模型选择系统自动扫描models/目录下的预训练权重文件以下拉列表形式展示可用模型用户可自由切换不同架构进行对比。分类预测调用对应模型的predict.py脚本对上传图片进行预处理后送入模型推理输出 Softmax 概率分布取最高概率类别作为预测结果。结果展示预测完成后返回模型名称、预测水果类别、分类置信度百分比以及上传的原图结果页面支持一键重新上传测试。历史记录可选扩展记录每次预测的图片、模型和结果便于后续分析模型在不同样本上的表现差异。模型本项目集成了丰富的深度学习模型库覆盖经典卷积网络与前沿 Transformer 架构方便对比不同模型在水果分类任务上的表现经典 CNN 系列AlexNet、VGGNet、GoogLeNetInception v1、ResNet残差网络、DenseNet密集连接网络轻量级系列MobileNet适合移动端部署、ShuffleNet分组卷积优化、EfficientNet复合缩放策略最新架构系列RegNet设计空间搜索、Swin Transformer层级式窗口注意力、Vision TransformerViT纯 Transformer 图像分类基础入门系列LeNet适合快速验证流程每个模型均提供独立的predict.py推理脚本权重文件存放于models/目录下命名格式为模型名_fruits.pth。用户可在前端页面自由切换模型系统自动加载对应权重并完成推理。运行流程按照以下步骤即可在本地启动并体验水果分类系统进入项目目录cdDjangoProject激活 conda 环境确保已安装 PyTorch 和 Django 依赖conda activateenv启动 Django 开发服务器python manage.py runserver默认监听http://127.0.0.1:8000/如需自定义端口可追加端口号。打开浏览器访问在浏览器地址栏输入http://127.0.0.1:8000/进入系统首页。上传图片并查看结果点击「选择文件」按钮从本地选择一张水果图片从下拉列表中选择要使用的模型点击「开始预测」按钮等待推理完成结果页面将展示预测类别、置信度分数以及上传的原图 提示首次启动时 Django 会自动创建 SQLite 数据库文件无需额外配置数据库。项目总结与优化方向补充 Apple 类样本缓解类别不均衡补齐各模型的最终训练权重保证页面可选模型都能预测增加混淆矩阵展示、误分类样本分析及接口异常提示将英文类别映射为中文水果名称提升界面友好度