毕设网毕设选题大全 · 成品源码

基于 PyTorch 的果蔬识别与计价系统设计与实现

项目编号 017 · 更新 2026-11-05
PythonPyTorchtorchvisionDjangoEChartsMySQL

获取方式

两个渠道都可以买:面包多(在线支付、自动发货)或闲鱼;也可以加微信咨询。

面包多购买 闲鱼购买 去 B 站看演示

咨询微信:csbysj2020 / ACE2487(备注 BS)

项目简介

面向生鲜收银的果蔬识别与计价系统:拍照或选示例图识别果蔬类别,带出单价,输入重量即完成计价,结算生成订单与小票;识别不确定时提示人工确认并允许手选,保证识别失败也能正确结账。模型用 MobileNetV3-Small 迁移学习,并与传统特征基线做对比实验(84.17% → 94.17%)。

演示视频

视频也可在 B 站视频页 观看

运行环境

编程语言Python 3.8 及以上
深度学习PyTorch 2.2 + torchvision(MobileNetV3-Small 迁移学习,模型随包交付)
Web 框架Django 4.2
推理环境CPU 即可(单张约 15ms),GPU 非必需
数据库MySQL 8.0(交付默认 SQLite,免安装)
可视化ECharts 5(已内置本地文件,离线可用)
数据集程序化渲染的仿真数据集(10 类 3000 张,固定种子可复现)
操作系统Windows / macOS / Linux
启动方式双击一键脚本,或 python manage.py runserver 8082

功能模块

  • 对比实验:传统特征基线(HSV 直方图 + 形状中心矩 + kNN)84.17% vs 迁移学习(MobileNetV3-Small)94.17%,macro-F1 0.9408
  • 自建程序化渲染数据集:10 类 ×(240 训练 + 60 验证)= 3000 张 80×80,固定种子可复现,刻意设置三对易混淆类别
  • 误差分析:最弱类别圆白菜 F1 0.826(召回 0.750),混淆矩阵显示被误判为颜色相近的青苹果;同为绿色系的青椒 F1 0.983 说明学到了形状特征
  • 低置信兜底:Top1 概率低于 60% 提示人工确认,并可随时手选商品——识别失败也能结账
  • 收银台双栏:左栏识别(Top-3 概率条 + 自动带出单价),右栏当前小票与应收合计
  • 计价与出票:Decimal 定点,金额 = 单价 × 重量 量化到 0.01 元;明细保存单价快照,小票可回查
  • 预处理与训练严格一致(Resize 80 + ImageNet 归一化),单张识别约 15ms(CPU)
  • 经营统计:识别次数、低置信占比、采纳率、平均置信度、类别分布、近 14 天识别与营收趋势

交付内容

  • 完整源码(Django + PyTorch 工程:数据集渲染器、训练脚本、推理服务、收银台)
  • 训练好的模型 ml/artifacts/model.pt 与对比实验指标 metrics.json(含混淆矩阵)
  • 演示数据库(10 种商品、30 张示例图、订单与识别日志)
  • 毕业设计任务书(Word)
  • 开题报告(Word)
  • 毕业论文(Word,七章制,含对比实验与混淆矩阵误差分析)
  • 系统使用与二次开发说明(Word + md)
  • 10 张系统运行截图

最终成品目录结构

下面是交付包里的真实目录,共 91 个文件。只展示文件名,不含文件内容; 点击文件夹可逐层展开,看到每个模块是怎么拆分的。

根目录:017-基于PyTorch的果蔬识别与计价系统

界面截图

点击任意一张可放大,支持左右切换(也可用键盘 ← → 键)

果蔬识别与计价系统
收银台(识别 + 小票双栏)
果蔬识别与计价系统
识别计价与合计
果蔬识别与计价系统
识别结果与 Top-3
果蔬识别与计价系统
结算小票
果蔬识别与计价系统
模型信息(对比实验与混淆矩阵)
果蔬识别与计价系统
经营统计
果蔬识别与计价系统
商品与单价
果蔬识别与计价系统
交易记录
果蔬识别与计价系统
管理端
果蔬识别与计价系统
登录页

文档预览

交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览;点击可放大并左右切换:

毕业论文(七章制)
毕业论文(七章制)
毕业设计任务书
毕业设计任务书
开题报告
开题报告

常见问题

识别准确率是多少?

在自建仿真数据集(10 类 3000 张)上,交付的迁移学习模型验证准确率 94.17%、macro-F1 0.9408;对照的传统特征基线(HSV 直方图 + 形状矩 + kNN)为 84.17%。

为什么不用公开果蔬数据集?

Fruits-360 等公开数据集体积在 GB 级,离线环境无法完整获取。本工程改用程序化渲染自建数据集(按类别参数渲染形状/色相/纹理,叠加旋转光照),固定种子可复现,并在文档中如实标注为仿真数据。

哪些类别容易认错?

圆白菜最弱(F1 0.826、召回 0.750),常被误判为颜色相近的青苹果;同为绿色系的青椒表现很好(0.983),说明模型确实学到了形状差异。

识别错了会不会算错钱?

不会。Top1 概率低于 60% 时会显著提示人工确认,收银员可随时在下拉里手选商品;识别失败也能正常结账。

金额怎么算的?

金额 = 单价 × 重量,使用 Decimal 定点计算并量化到 0.01 元;订单明细保存单价快照,小票可回查当时的计价依据。

模型能换吗?

能。把 ml/train.py 里的骨干换成 resnet18 / efficientnet_b0,并同步修改 ml/service.py 的重建代码与 IMG_SIZE(保持训练与推理一致)即可。

数据是真的吗?

训练图片是程序化渲染的仿真数据,不含任何真实商品照片;模型指标由本地脚本产出、固定种子可复现。识别结果仅供参考,低置信时务必人工确认。

能对接电子秤吗?

当前为手动输入重量;二次开发时可串口/蓝牙读取电子秤,把重量自动填入输入框(说明文档第 9 节给了改造点)。

💬 在线咨询9:00–23:00
加微信咨询

备注 BS

csbysj2020ACE2487

也可在 B 站 看演示