关于系统

项目简介、技术架构与使用说明

营养视界 NutriVision

基于深度学习的菜品识别与营养分析系统

上传菜品照片即可自动识别菜名、计算热量与营养成分,并生成个性化饮食建议与营养趋势分析。

Django 4.2 PyTorch 迁移学习 MobileNetV2 SQLite + ORM

系统架构

五大模块
前端层

HTML5 + CSS3 + 原生 JavaScript,响应式布局、拖拽上传、SVG 图表绘制

后端层

Django 4.2 MVT 架构,视图处理上传、推理调用、营养查询与统计

数据层

SQLite + Django ORM,菜品表 / 营养表 / 识别记录表 / 用户资料表

模型层

MobileNetV2 迁移学习,冻结卷积层微调分类头,验证集准确率约 85%

管理层

Django Admin 后台,维护菜品、营养数据、识别记录与用户

🍽️
菜品类别
0类
📋
营养记录
0条

识别引擎

四引擎融合
引擎 A · MobileNetV2 迁移学习 就绪

9 类西式菜品,精度优先

引擎 B · Chinese-CLIP 零样本 就绪

3065 类中式菜品与果蔬单品,免训练扩展

引擎 C · 视觉大模型 就绪

glm-4v-flash · 前两路置信度不足时复核,可识别库外菜品

引擎 D · 用户样本记忆 12 个样本

用户纠正过的图片特征做 kNN 比对,相似度 ≥ 0.90 时直接采用人工确认的类别(人工标注优先于模型输出,增量生效、无需重训)

技术流程

上传图片 → 图像预处理(缩放 + 归一化)→ 四引擎融合推理(D 用户样本记忆优先 → A 迁移学习 → B 零样本 → C 视觉大模型低置信度复核)→ 匹配营养数据库 → 按份量换算摄入值 → 生成建议并保存记录

使用说明

智能识别

上传单张或多张(最多 12 张)菜品图片,设置份量与餐次

识别历史

按关键词、菜品、餐次、日期筛选,支持收藏与删除,可导出 CSV

数据看板

查看近 7 天热量趋势、三大营养素供能比与常识别菜品排行

个人中心

维护身高体重、每日热量目标与头像,自动计算 BMI 指标

模型说明

项目说明
基础模型MobileNetV2(ImageNet 预训练权重)
训练策略冻结特征提取层,仅微调分类头
数据增强随机翻转 / 旋转 / 裁剪 / 色彩抖动
数据集Food-101 子集,按类别分目录组织
评估指标验证集准确率、Top-3 预测分布
零样本引擎Chinese-CLIP 图文对比学习,174 类免训练识别
大模型引擎glm-4v-flash 视觉问答,低置信度兜底
融合策略置信度阈值 0.75 + Top-5 互相印证 + 0.55 触发大模型复核

模型可通过 python app_recognition/ml/train.py --data_dir data/dataset --epochs 10 重新训练, 新增类别只需在数据集目录中增加对应文件夹(英文标签需与营养库 label 一致)。