面向生鲜收银的果蔬识别与计价系统:拍照或选示例图识别果蔬类别,带出单价,输入重量即完成计价,结算生成订单与小票;识别不确定时提示人工确认并允许手选,保证识别失败也能正确结账。模型用 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 |
下面是交付包里的真实目录,共 91 个文件。只展示文件名,不含文件内容; 点击文件夹可逐层展开,看到每个模块是怎么拆分的。
点击任意一张可放大,支持左右切换(也可用键盘 ← → 键)










交付的任务书、开题报告与论文均为 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 节给了改造点)。