NutriJarvis:AI慧眼识餐,精准营养触手可及!—— 基于深度学习的菜品识别与营养计算系统

news2025/5/17 17:12:42

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2333065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LaTeX】

基本使用 \documentclass 类型:文章(article)、报告(report)、书(book) 中文的文章是ctexart,中文字体是UTF8 \documentclass[UTF8]{ctexart} []说明可以省略不写的意思&#xf…

细说STM32单片机FreeRTOS任务管理相关函数及多任务编程的实现方法

目录 一、FreeRTOS任务管理相关函数 1、FreeRTOS函数 2、FreeRTOS宏函数 3、主要函数功能说明 (1)创建任务osThreadNew() (2)删除任务vTaskDelete() (3)挂起任务vTaskSuspend() (4&…

uniapp微信小程序基于wu-input二次封装TInput组件(支持点击下拉选择、支持整数、电话、小数、身份证、小数点位数控制功能)

一、 最终效果 二、实现了功能 1、支持输入正整数---设置specifyTypeinteger 2、支持输入数字(含小数点)---设置specifyTypedecimal,可设置decimalLimit来调整小数点位数 3、支持输入手机号--设置specifyTypephone 4、支持输入身份证号---设…

leetcode-419.棋盘上的战舰

leetcode-419.棋盘上的战舰 文章目录 leetcode-419.棋盘上的战舰一.题目描述二.第一次代码提交三.第二次代码提交 一.题目描述 二.第一次代码提交 class Solution { public:int countBattleships(vector<vector<char>>& board) {int m board.size(); //列数i…

使用uglifyjs对静态引入的js文件进行压缩

前言 因为有时候js文件没有npm包&#xff0c;或者需要修改&#xff0c;只能引入静态的js&#xff0c;那么这个时候就可以对js进行压缩了。我其实想通过vite、webpack等插件进行压缩的&#xff0c;可是他都不能定位到public目录下面的文件&#xff0c;所以我只能自己压缩了。编…

程序加壳脱壳原理和实现

理论 一个可运行的执行文件&#xff0c;至少会有一个代码段&#xff0c;程序的入口点指向代码段&#xff0c;程序运行的时候&#xff0c;从入口点开始执行代码段指令 为了将一个正常的程序进行加壳保护&#xff0c;至少要三部分逻辑配合 1、待加壳保护的程序 2、加壳逻辑 3…

【数据分析实战】使用 Matplotlib 绘制折线图

1、简述 在日常的数据分析、科研报告、项目可视化展示中&#xff0c;折线图是一种非常常见且直观的数据可视化方式。本文将带你快速上手 Matplotlib&#xff0c;并通过几个实际例子掌握折线图的绘制方法。 Matplotlib 是 Python 中最常用的数据可视化库之一&#xff0c;它能够…

数据仓库标准库模型架构相关概念浅讲

数据仓库与模型体系及相关概念 数据仓库与数据库的区别可参考&#xff1a;数据库与数据仓库的区别及关系_数据仓库和数据库-CSDN博客 总之&#xff0c;数据库是为捕获数据而设计&#xff0c;数据仓库是为分析数据而设计 数据仓库集成工具 在一些大厂中&#xff0c;其会有自…

亚洲区域健康人群免疫细胞marker

最近发现一篇文献&#xff0c;作者来自新加坡基因研究所&#xff0c;这篇文章大概是整理了619个亚洲人群的免疫多样性图集&#xff08;AIDA&#xff09;&#xff0c;跨越了7个国家&#xff0c;最终使用了1,265,624个免疫细胞的单细胞数据&#xff0c;并最终确定了8种主要的免疫…

三极管以及mos管

三极管与mos管的高低电平导通判断 &#xff08;1&#xff09;三极管的高低电平导通判断 三极管中有2个PN结&#xff0c;分别称为发射结和集电极结&#xff0c;按材料划分为硅材料三极管&#xff08;硅管&#xff09;&#xff0c;锗材料三极管&#xff08;锗管&#xff09;&am…

PPT模板之--个人简历

还在为制作 PPT 时毫无头绪、对着空白页面抓耳挠腮而烦恼吗&#xff1f;别担心&#xff0c;这里就是你的 PPT 灵感补给站&#xff01;在这个快节奏的信息时代&#xff0c;一份吸睛又高效的 PPT 至关重要&#xff0c;它能在商务汇报中助你赢得先机&#xff0c;在课堂展示时让你脱…

springboot--页面的国际化

今天来实现页面中的国际化 首先&#xff0c;需要创建一个新的spring boot项目&#xff0c;导入前端模板&#xff0c;在我的博客中可以找到&#xff0c;然后将HTML文件放在templates包下&#xff0c;将其他的静态资源放在statics包下&#xff0c;如下图结构 页面的国际化主要在首…

前端学习10—Ajax

1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML 通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c;最大优势为&#xff1a;无刷新获取数据 AJAX 不是新的编程语言&#xff0c;而是一种将现有的标准组合在一起使用的新方…

list的常见接口使用

今天&#xff0c;我们来讲解一下C关于STL标准库中的一个容器list的常见接口。 在我们之前c语言数据结构中&#xff0c;我们已经了解过了关于链表的知识点了&#xff0c;那么对于现在理解它也是相对来说比较容易的了。 数据结构--双向循环链表-CSDN博客 1. 定义与包含头文件 …

一维差分数组

2.一维差分 - 蓝桥云课 问题描述 给定一个长度为 n 的序列 a。 再给定 m 组操作&#xff0c;每次操作给定 3 个正整数 l, r, d&#xff0c;表示对 a_{l} 到 a_{r} 中的所有数增加 d。 最终输出操作结束后的序列 a。 ​​Update​​: 由于评测机过快&#xff0c;n, m 于 20…

再次重拾jmeter之踩坑

1.添加“csv数据文件设置”&#xff0c;运行时提示 java.lang.IllegalArgumentException: Filename must not be null or empty检查多次后才发现因为我运行的是整个线程组&#xff0c;所以对应http请求下不能包括空的csv文件 2. 填写ip时不能加/&#xff0c;要在路径里加&…

4-6记录(B树)

找左边右下或者右边左下 转化成了前驱后继的删除 又分好几种情况&#xff1a; 1. 只剩25&#xff0c;小于2&#xff0c;所以把父亲拉到25旁边&#xff0c;兄弟的70顶替父亲 对于25&#xff0c;25的后继就是70&#xff0c;25后继的后继是71&#xff08;中序遍历) 2. 借左子树…

06软件测试需求分析案例-添加用户

给职业顾问部的老师添加用户密码后&#xff0c;他们才能登录使用该软件。只有admin账户具有添加用户、修改用户信息、删除用户的权利。admin是经理或团队的第一个人的账号&#xff0c;后面招一个教师就添加一个账号。 通读需求是提取信息&#xff0c;提出问题&#xff0c;输出…

Nacos服务发现和配置管理

目录 一、Nacos概述 1. Nacos 简介 2. Nacos 特性 2.1 服务发现与健康监测 2.2 动态配置管理 2.3 动态DNS服务 2.4 其他关键特性 二、 服务注册和发现 2.1 核心概念 2.2 Nacos注册中心 2.3 Nacos单机模式 2.4 案例——服务注册与发现 2.4.1 父工程 2.4.2 order-p…

操作系统 3.1-内存使用和分段

如何简单使用内存 这张幻灯片展示了计算机如何开始执行程序的基本过程&#xff0c;涉及到存储器、指令寄存器&#xff08;IR&#xff09;、运算器和控制器等计算机组件。 存储器&#xff1a;程序被加载到内存中。图中显示了一个指令 mov ax, [100]&#xff0c;它的作用是将内存…