— 专注青少年科技创新竞赛深度辅导 —
AI 视觉 · 营养健康 · 通义千问大模型

校园智能营养分析仪

万同学 · 四年级 · 零一优创学员

四年级
完成年级
增量识别
称重触发
qwen-vl
视觉大模型
2025 金鹏海淀区二等奖
Why This Project

为 什 么 做 这 个?

万同学在食堂值日时观察到,很多同学每天都只挑自己爱吃的菜,蔬菜剩很多。他想:能不能让设备「看见」餐盘里有什么、提醒一下营养是否均衡?

他先查了《中小学生膳食指南》,把“四菜一汤”的搭配模式整理出来;然后开始想怎么让设备真的能识别。一开始想训练自己的模型,但发现学校食堂菜品几乎每天都不一样,自训模型很难覆盖。最后他选择用通义千问 qwen-vl-max 大模型——把拍到的餐盘图丢给它,让模型直接说出菜品名和大概重量。

硬件这边他选了行空板 M10(带触摸屏),底座下方装一个 HX711 + 5kg 称重传感器,摄像头装在 30-40cm 高的 3D 打印支架上。每加一道菜重量变化超过 30g 就自动触发拍照识别。

把“打饭一道道增量识别”做成可重复触发的工程闭环,让大模型视觉真正落到校园食堂场景。

— 项目亮点

Recognition

荣 誉 与 奖 项

2025 金鹏海淀区二等奖
Challenges & Solutions

技 术 挑 战

01

重量信号怎么“知道”是加了一道新菜

称重传感器读数有噪声,叠一筷子菜也可能算成新菜。万同学加了三层判断:重量必须大于 60g(避免无餐盘误触)、相比上次稳定值变化必须超过 30g、然后再等待 2 秒重量稳定(5g 阈值内)才触发拍照。这一套阈值是他自己反复用饭盒、纸团测出来的。

02

怎么让大模型只算“新加的那道”,不重复算

每次拍照大模型会把整个餐盘都识别一遍,但热量累加只能加新菜。他设计了一套“识别结果差分”算法:保留上一次识别的菜名集合,本次识别出来的菜品和上次比对,找出新增的那道菜并把它的预估重量加入总热量。这套差分逻辑写在 ai_recognition.py 里,调试了很多轮。

03

怎么把大模型输出变成屏幕上可读的“营养卡片”

qwen-vl-max 返回的是一段自由文本,包含菜名、估算重量和热量。万同学写了一个解析器把它拆成结构化字段,再用行空板自带的 unihiker 库画到屏幕上——左边显示新增菜品图、右边显示菜名+重量+热量+一句营养建议。整个屏幕 UI 他自己一格一格调过位置。

Process

过 程 记 录

校园智能营养分析仪 过程照片 1
校园智能营养分析仪 过程照片 2
校园智能营养分析仪 过程照片 3
校园智能营养分析仪 过程照片 4
校园智能营养分析仪 过程照片 5
校园智能营养分析仪 过程照片 6
校园智能营养分析仪 过程照片 7
校园智能营养分析仪 过程照片 8
校园智能营养分析仪 过程照片 9
校园智能营养分析仪 过程照片 10
校园智能营养分析仪 过程照片 11
System Architecture

系 统 架 构

校园智能营养分析仪 - 系统架构图
行空板 M10HX711 称重通义千问 qwen-vl-maxPython3D 打印
Tech Stack

技 术 栈

行空板 M10HX711 称重通义千问 qwen-vl-maxPython3D 打印
More Works

查 看 其 他 项 目