当前位置: 首页 > news >正文

基于深度学习的水果分类系统

本项目是一个基于 Django 和 PyTorch 的水果图像分类系统,支持水果图片上传、模型选择、分类预测和结果展示。
项目已将系统名称、数据集参数和类别索引统一为水果分类场景,数据来源以本地项目文件为准。

技术栈

本项目采用前后端分离与深度学习模型相结合的技术架构,各组件分工明确:

  • Django:负责后端页面渲染、URL 路由分发、文件上传处理以及模板引擎整合,提供完整的 Web 服务支持。
  • PyTorch / torchvision:作为深度学习框架,承担图像预处理(Resize、Normalize、ToTensor)、模型加载与推理计算,支持 GPU/CPU 自动切换。
  • HTML / CSS:构建前端上传页面与结果展示页面,采用响应式布局适配不同屏幕尺寸,提升用户体验。
  • openpyxl + matplotlib:读取训练过程中保存的 Excel 日志文件,动态生成准确率与损失曲线图,便于直观分析模型训练效果。
  • Pillow:用于图片格式转换与基础图像处理,确保上传图片兼容性。

数据集说明

数据集目录位于DjangoProject/dataset/fruits,按类别分文件夹存放。当前训练集图片共 1317 张,测试集图片 327 张,涵盖 5 个常见水果类别,各类别分布如下:

类别训练集测试集合计
apple27064334
banana22857285
grape25865323
orange28371354
pear27870348
合计13173271644

数据集图片均为自然场景拍摄,包含不同光照、角度和背景,有助于提升模型在实际应用中的泛化能力。训练前会自动对图片进行统一尺寸缩放(224×224)和数据增强(随机翻转、色彩抖动等)。

水果数据集样例图

系统首页截图

系统结果页效果图

系统功能

系统围绕水果图像分类的核心需求,设计了以下完整功能模块:

  • 水果图片上传:用户通过 Web 页面选择本地水果图像,支持 JPG、PNG 格式,上传后自动保存至临时目录并显示预览。
  • 模型选择:系统自动扫描models/目录下的预训练权重文件,以下拉列表形式展示可用模型,用户可自由切换不同架构进行对比。
  • 分类预测:调用对应模型的predict.py脚本,对上传图片进行预处理后送入模型推理,输出 Softmax 概率分布,取最高概率类别作为预测结果。
  • 结果展示:预测完成后返回模型名称、预测水果类别、分类置信度(百分比)以及上传的原图,结果页面支持一键重新上传测试。
  • 历史记录(可选扩展):记录每次预测的图片、模型和结果,便于后续分析模型在不同样本上的表现差异。

模型

本项目集成了丰富的深度学习模型库,覆盖经典卷积网络与前沿 Transformer 架构,方便对比不同模型在水果分类任务上的表现:

  • 经典 CNN 系列:AlexNet、VGGNet、GoogLeNet(Inception v1)、ResNet(残差网络)、DenseNet(密集连接网络)
  • 轻量级系列:MobileNet(适合移动端部署)、ShuffleNet(分组卷积优化)、EfficientNet(复合缩放策略)
  • 最新架构系列:RegNet(设计空间搜索)、Swin Transformer(层级式窗口注意力)、Vision Transformer(ViT,纯 Transformer 图像分类)
  • 基础入门系列:LeNet(适合快速验证流程)

每个模型均提供独立的predict.py推理脚本,权重文件存放于models/目录下,命名格式为模型名_fruits.pth。用户可在前端页面自由切换模型,系统自动加载对应权重并完成推理。

运行流程

按照以下步骤即可在本地启动并体验水果分类系统:

  1. 进入项目目录

    cdDjangoProject
  2. 激活 conda 环境(确保已安装 PyTorch 和 Django 依赖)

    conda activateenv
  3. 启动 Django 开发服务器

    python manage.py runserver

    默认监听http://127.0.0.1:8000/,如需自定义端口可追加端口号。

  4. 打开浏览器访问
    在浏览器地址栏输入http://127.0.0.1:8000/,进入系统首页。

  5. 上传图片并查看结果

    • 点击「选择文件」按钮,从本地选择一张水果图片
    • 从下拉列表中选择要使用的模型
    • 点击「开始预测」按钮,等待推理完成
    • 结果页面将展示预测类别、置信度分数以及上传的原图

💡 提示:首次启动时 Django 会自动创建 SQLite 数据库文件,无需额外配置数据库。

项目总结与优化方向

  • 补充 Apple 类样本,缓解类别不均衡
  • 补齐各模型的最终训练权重,保证页面可选模型都能预测
  • 增加混淆矩阵展示、误分类样本分析及接口异常提示
  • 将英文类别映射为中文水果名称,提升界面友好度
http://www.jsqmd.com/news/1094618/

相关文章:

  • 【JAVA毕设源码分享】基于springboot教学管理自动化系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 高速ADC评估板实战:从JESD204B接口到数据采集系统搭建
  • 抖音视频无水印解析:5分钟学会免费下载高清原视频
  • 企业上AI智能体,部署搭建阶段最容易被低估的那些事
  • 暗黑破坏神2存档编辑器:5分钟掌握游戏角色自定义全攻略
  • ChatGPT提示词失效真相(附结构化诊断矩阵):3分钟定位语义坍塌、角色错位与约束泄漏
  • 为什么物流系统越多,协调反而越困难?
  • 暗黑破坏神2存档编辑器:终极可视化修改工具完全指南
  • 靠谱的福州设计考研机构哪家靠谱
  • 从零解读Web3:区块链、智能合约与DApp开发入门
  • 加密算法实战指南:从原理到HTTPS、API签名与设备指纹应用
  • 软件冲刺评审管理中的成果演示
  • 如何快速掌握QMK Toolbox:机械键盘固件刷写的终极免费工具指南
  • 企业任务管理系统哪个好用?9款企业常用热门工具盘点
  • 从《患难之交》看文学翻译中的文化意象与人物性格传递
  • 扬州老房墙面返碱艺术漆处理方
  • 3步精通FanControl:打造Windows智能风扇控制中心
  • Excel进阶:用动态折线图可视化排名变迁,附交互式模板
  • 别只会让 ChatGPT 写全文:提示词链才是长文写作关键?
  • 华硕笔记本性能调校终极指南:GHelper轻量控制中心完全解析
  • Keep开源AIOps平台深度解析:企业级告警自动化架构设计与实现原理
  • 3分钟掌握SRWE:突破游戏窗口分辨率限制的实战指南
  • 【2024最新】OpenAI API v1.0迁移必读:4类Breaking Change详解+自动转换脚本开源
  • ChatGPT API密钥泄露事件复盘(2024年Q2真实攻防日志):企业级安全加固清单(含自动轮转脚本)
  • 为什么石油钻井阀门在零下40℃极寒中可以实现“无人化”智能控制?
  • DAC80004评估板实战指南:从硬件配置到软件驱动的完整开发流程
  • 这是最近我们团队使用的claude和gpt的使用量,你们感受一下!
  • 【计算机毕业设计】基于SpringBoot的残疾人就业平台的设计与实现
  • Keep开源AIOps平台:从告警风暴到智能运维的架构演进与实践指南
  • 跨越架构鸿沟:在华为鲲鹏ARM服务器上成功部署Kettle的实战解析