NutriJarvis:AI慧眼识餐,精准营养触手可及!—— 基于深度学习的菜品识别与营养计算系统
NutriJarvis 是一个基于深度学习的菜品识别与营养计算系统,旨在通过计算机视觉技术自动识别餐盘中的食物,并估算其营养成分,为用户提供便捷、智能的饮食健康管理支持。
核心优势
📸 AI视觉识别,告别手动输入:
- 采用先进的深度学习模型,自动识别中西餐常见菜品,准确标记,省时省力。
- 实时画面捕捉,即刻反馈识别结果。
📊 精准营养计算,健康心中有数:
- 详细分析每种菜品的热量、蛋白质、脂肪、碳水化合物、膳食纤维等关键营养素。
- 一键汇总整餐营养摄入,清晰了解饮食结构。
💡 个性化智能建议,您的专属营养顾问:
- 对比显示“已摄入”与“建议摄入”量,助您达成健康目标。
- 独家集成 GPT-4 Turbo: 生成针对您当餐饮食的个性化、深度健康分析报告,提供切实可行的改进建议。
- 内置“健康小贴士”,培养科学饮食习惯。
🖥️ 友好界面设计,体验流畅直观:
- 简洁清晰的界面,实时展示识别过程与营养数据。
- 跨平台应用,随时随地轻松使用。
项目架构
前端 (Front-end):
- 技术栈: 使用 Electron 构建跨平台桌面应用,结合 Vue3 框架开发用户界面 (UI/UX)。
- 功能: 负责用户交互、展示摄像头画面、显示识别结果和营养信息。直接与同一网络下的树莓派通信获取视频流。
- 客户端: 运行在用户的电脑上。
图像采集端 (Hardware Input):
- 设备: 使用 Webcams 连接到 Raspberry Pi (树莓派)。
- 功能: 树莓派运行一个基于 Python 的 API,负责捕获摄像头图像/视频流,然后通过网络传输给前端或其他需要图像数据的组件。
后端 (Back-end):
- 技术栈:
- Web 框架: Flask 及 Flask-RESTful 构建 RESTful API。
- WSGI 服务器: Gunicorn 部署 Flask 应用,提供高性能服务。
- ORM: SQLAlchemy 用于与数据库交互,实现对象关系映射。
- 数据库: MySQL 存储用户信息、菜品库、营养数据、历史记录等。
- 功能: 处理前端的业务逻辑请求 (如用户管理、历史记录查询等 CRUD 操作),接收前端发送的待识别图像,调用 AI 模型服务进行识别,整合识别结果与营养数据库信息,最终计算并返回营养成分给前端。
- 技术栈:
AI 模型服务 (Model Serving):
- 技术栈:
- 模型部署: TorchServe 用于高效部署 PyTorch 深度学习模型。
- 核心模型: 基于 MMDetection 训练的菜品识别模型。
- 训练资源: 利用 GPUSHARE.COM 等云 GPU 资源进行模型训练。
- 功能: 接收后端发送的图像数据,利用部署在 TorchServe 上的深度学习模型进行菜品目标检测与识别,并将识别出的菜品类别、位置等结果返回给后端。
- 技术栈:
组件间通信:
- 前端与后端通过 HTTP/RESTful API 进行交互。
- 前端与树莓派通过本地网络 API 获取视频流。
- 后端与 AI 模型服务通过 API 调用进行图像识别请求与结果返回。
- 后端通过 SQLAlchemy 与 MySQL 数据库进行数据读写。
效果图
- 实时菜品识别: 系统通过摄像头实时捕捉餐盘画面,利用深度学习模型自动检测并识别出画面中的多种菜品(如截图中的米饭、汤、炒菜等),并在图像上用边界框标示。
- 营养成分计算: 识别出菜品后,系统结合内置的营养数据库,估算每种菜品的营养成分(如水分、蛋白质、脂肪、碳水化合物、膳食纤维等)和热量。
- 整餐营养汇总: 系统能汇总一餐中所有识别出的食物的总营养摄入量(总卡路里、总碳水、总蛋白、总脂肪等)。
- 个性化营养建议:
- 显示单项菜品的识别置信度(“识别度”)和主要营养素含量。
- 提供整餐的“已摄入”与“建议摄入”热量对比,并可视化展示主要营养素的摄入情况。
- 提供“健康小贴士”,给出通用的饮食建议。
- 亮点功能: 集成了 GPT-4 Turbo,能够根据用户当餐的饮食情况,生成个性化的餐后健康建议报告。
- 用户交互与展示: 提供友好的用户界面,清晰展示摄像头画面、识别结果、详细的营养数据分析和健康建议。
代码示例(尚在开发中…)
🥰 通过网盘分享的文件:NutriJarvis_tosend_20250124.zip
链接: https://pan.baidu.com/s/1VxVLvnYqT6bhL1GixGbVTA?pwd=9w96 提取码: 9w96