---
title: FoodVerse-494
canonical_url: "https://www.modelscope.cn/models/codertt/FoodVerse-494"
md_url: "https://www.modelscope.cn/models/codertt/FoodVerse-494.md"
repository: codertt/FoodVerse-494
last_updated: 2025-07-24
license: "Apache License 2.0"
pipeline_tag: image-text-to-text
tasks:
  - image-text-to-text
library_name:
  - pytorch
frameworks:
  - Pytorch
downloads: 0
stars: 0
---

# FoodVerse-494

> FoodVerse-494 - codertt 在 ModelScope 开源的模型。FoodVerse-494 是一个多菜系食物识别与营养知识查询系统，融合了图像识别模型与知识图谱能力，支持对 494 种常见菜品（涵盖中餐、西餐、日料、韩餐、印度菜、水果与甜品）的精准识别与营养查询。

codertt/FoodVerse-494 是 ModelScope 魔搭社区上的image-text-to-text模型，采用 Apache License 2.0 许可。

- **Repository**: codertt/FoodVerse-494
- **License**: Apache License 2.0
- **Tasks**: image-text-to-text
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2025-07-24

Source: https://www.modelscope.cn/models/codertt/FoodVerse-494

---

# FoodVerse-494

## 项目简介

**FoodVerse-494** 是一个多菜系食物识别与营养知识查询系统，融合了图像识别模型与知识图谱能力，支持对 494 种常见菜品（涵盖中餐、西餐、日料、韩餐、印度菜、水果与甜品）的精准识别与营养查询。

项目包含：

- 基于 YOLOv8n 的自定义图像识别模型
- 针对 494 类菜品构建的 Nutrition 知识图谱
- 支持识别 → 查询营养成分、卡路里、主要食材的完整流程

该模块已在真实数据构建的测试集中取得良好效果，可作为**日常健康问诊场景的通用基础能力**，用于辅助饮食管理、营养反馈与健康干预等任务。



## 项目亮点

智能疾病问诊具有以下亮点：

- **覆盖全面**：494 类菜品，包含 **中餐、西餐、日料、韩餐、印度菜、水果、甜品**

- **高质量数据集**：平均每类约 1000 张图片，均人工清洗与标注

- **自定义训练策略**：类别加权 + 自定义训练器 & 验证器，提升小样本类表现

- **优于开源模型**：实测性能优于同类开源食品识别模型（如 Qwen-VL, GPT-4o）

- **知识增强能力**：融合 Neo4j 图数据库，支持一键获取 dish 对应的营养、卡路里、食材等信息

  

### 模型效果验证与对比实验

作者对训练完成的 YOLOv8n 食物识别模型进行了系统性测试，并与多个通用多模态模型进行了对比实验，以验证在 **真实多菜系任务下的通用性能**。

**实验设置**

- 评测数据构建

  从每个类别（共 494 类）中 随机选取 1 张图片，构成测试集，共计 494 张图像

- 组织形式：

  所有测试图像被存放在以标签命名的文件夹中，例如 llm_test/麻婆豆腐/test.jpg，用于自动对比预测结果与真实标签

- Prompt 设计（用于多模态模型）：

  为每张图像输入固定格式 prompt，列出所有 494 个类别标签，提示模型进行分类选择

- 稳定性处理：

  所有测试 重复 2–3 次，对每次的 Top-1 预测进行准确率统计，最终取平均作为模型 accuracy

**评测结果**

|         Model          | Accuracy(%) |
| :--------------------: | :---------: |
|        Qwen-VL         |    54.00    |
| OpenAI GPT-4o (Vision) |    53.64    |
|    Baidu Image API     |      -      |
|  Our trained YOLOv8n   |    65.84    |

**关于 Baidu Image API**：

- 由于该接口将“水果”与“菜品”拆分为两个不同的模型，并通过不同参数调用，无法对通用测试集统一评测
-  同时其 不支持 prompt 传入所有标签列表，因此无法构造公平的多类分类任务，因此未列入准确率统计



**小结**

作者提出的模型在真实混合菜系识别任务中展现出**显著领先的准确率（65.84%）**，尤其在以下方面优于现有开放模型：

- 更强的细粒度识别能力
- 支持实际菜品数据集中完整分类（非人工聚类、非 prompt hack）
- 推理快速，可落地使用



## 项目结构说明

```
.
├── Food/                                 # 主项目文件夹
│   ├── FoodKG/                           # 知识图谱相关模块
│   │   ├── medKG/                        # 图谱构建脚本与数据
│   │   │   ├── data/                     # 图谱构建所用的 json 数据（包含dish、ingredient、nutrition等信息）
│   │   │   └── build_graph.py            # 构建图谱的核心脚本（写入Neo4j）
│   │   ├── db.sqlite3                    # 如需本地备份，可选择导出图谱数据为sqlite（可选）
│   │   └── query.py                      # 图谱查询接口，支持按dish名称检索营养与成分信息
│
│   └── FoodRecongnize/                   # 图像识别相关模块
│       ├── model/
│       │   └── best.pt                   # 微调后的 YOLOv8n 权重文件（494类）
│       ├── ultralytics/                 # YOLOv8 训练框架（可包含自定义训练器等）
│       ├── test/
│       │   └── test1.jpg                 # 示例测试图片
│       └── query.py                      # 推理脚本，根据图片识别菜品标签
│
│   └── get_dish_info.py                 ## 主测试入口：融合识别与图谱查询的整合测试脚本
│
├── neo4j-community-5.20.0/              # 本地 Neo4j 社区版部署文件（或连接远程服务器）
├── README.md                            # 说明文档
├── requirements.txt                     # 环境依赖列表
```



## 快速体验

测试硬件信息：

- OS: Ubuntu 22.04
- Memory: 120GB
- Storage: 255 GB（自定义yolov8n模型训练数据集较大）
- Python: 3.12
- CUDA Version: 12.7
- GPU: RTX 4090(24GB) * 1
- GPU Driver: 565.57.01 
- CPU: 16 vCPU Intel(R) Xeon(R) Gold 6430

安装依赖：

本项目建议使用 Python 3.12，建议使用虚拟环境或 Conda 环境进行安装

```python
# 推荐使用 Conda 创建虚拟环境
conda create -n medqa python=3.12 -y
conda activate medqa

# 安装依赖
pip install -r requirements.txt

# 如果出现 faiss 或 torch 安装失败，请参考如下：
# conda install faiss-cpu -c conda-forge
# pip install torch==2.2.2+cu124 --index-url https://download.pytorch.org/whl/cu124
```



### 知识图谱使用说明

本项目使用 **Neo4j 图数据库** 构建了一个食物营养知识图谱，用于支持菜品识别后的营养查询功能。

> 构建图谱是图谱查询功能的前提，首次运行前必须完成

####  构建本地知识图谱

请先运行 `build_graph.py` 脚本，将食物、食材与营养成分等信息写入本地 Neo4j 图数据库中

构建前准备：

- 请确保 Neo4j 服务已启动（默认地址：`bolt://localhost:7687`，图形界面访问：http://localhost:7474）

- 修改图谱构建脚本`Food/FoodKG/medKG/build_graph.py`中的 用户名与密码，初始格式如下：

  ```python
  graph = Graph("bolt://localhost:7687", auth=("neo4j", "your_password"))
  ```

  > 初始用户名和密码为 `neo4j`，首次登录后会要求修改密码，请根据实际密码修改脚本（忘记密码可在 Neo4j Desktop 或服务器端重设）

执行构建命令：

```
python Food/FoodKG/medKG/build_graph.py
```

成功后可通过 Neo4j 浏览器界面（http://localhost:7474）查看构建完成的图谱结构



#### 使用图谱查询

使用图谱查询脚本（如 `get_dish_info.py`和 `query.py`）前，请确保：

- Neo4j 服务正在运行（端口默认为 7687）

- 密码设置正确，脚本中 `auth=("neo4j", "your_password")` 已更新为本地配置

  - 请分别修改以下两个文件中的 `auth` 字段：

    ```
    Food/FoodKG/query.py               # 图谱查询脚本
    Food/get_dish_info.py				# 综合测试脚本
    ```

- 图谱已成功构建（执行过一次 `build_graph.py`）



## License 和引用

本项目图像识别模型基于yolov8n训练：

- **AGPL-3.0 License**: This [OSI-approved](https://opensource.org/license) open-source license is perfect for students, researchers, and enthusiasts. It encourages open collaboration and knowledge sharing. See the [LICENSE](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) file for full details.

本项目使用 Neo4j Community Edition 5.20.0 构建本地知识图谱，Neo4j 是一个高性能、面向属性图的开源图数据库系统

```
@manual{neo4j,
  title        = {Neo4j Graph Database},
  author       = {{Neo4j, Inc.}},
  year         = {2024},
  url          = {https://neo4j.com},
  note         = {Version 5.20.0, Community Edition}
}
```

本项目部分数据来源于ChineseFoodNet, Food-101, Food2K 开源数据集，仅用于学术研究目的，不用于任何商业用途，如用户需要整理后数据集，可联系作者本人。

```
@article{chen2017chinesefoodnet,
  title={ChineseFoodNet: A large-scale Image Dataset for Chinese Food Recognition},
  author={Chen, Xin and Zhou, Hua and Zhu, Yu and Diao, Liang},
  journal={arXiv preprint arXiv:1705.02743},
  year={2017}
}

 @inproceedings{bossard14,
  title = {Food-101 -- Mining Discriminative Components with Random Forests},
  author = {Bossard, Lukas and Guillaumin, Matthieu and Van Gool, Luc},
  booktitle = {European Conference on Computer Vision},
  year = {2014}
}

@article{min2021food2k,
  title     = {Large Scale Visual Food Recognition},
  author    = {Min, Weiqing and Wang, Zhiling and Liu, Yuxin and Luo, Mengjiang and Kang, Liping and Wei, Xiaoming and Wei, Xiaolin and Jiang, Shuqiang},
  journal   = {arXiv preprint arXiv:2103.16107},
  year      = {2021},
  doi       = {10.48550/arXiv.2103.16107},
  url       = {https://arxiv.org/abs/2103.16107},
  note      = {Accepted by IEEE Transactions on Pattern Analysis and Machine Intelligence}
}
```



如果你觉得我的工作有帮助的话，请考虑引用下列论文

```
@misc{smartdiet2025,
  title       = {FoodVerse-494},
  author      = {Li Xintong},
  year        = {2025},
  howpublished= {\url{https://modelscope.cn/models/codertt/FoodVerse-494}},
  note        = {Accessed: 2025-07-24}
}
```


#### 您可以通过如下git clone命令，或者ModelScope SDK来下载模型

SDK下载
```bash
#安装ModelScope
pip install modelscope
```
```python
#SDK模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('codertt/FoodVerse-494')
```
Git下载
```
#Git模型下载
git clone https://www.modelscope.cn/codertt/FoodVerse-494.git
```

<p style="color: lightgrey;">如果您是本模型的贡献者，我们邀请您根据<a href="https://modelscope.cn/docs/ModelScope%E6%A8%A1%E5%9E%8B%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B%E6%A6%82%E8%A7%88" style="color: lightgrey; text-decoration: underline;">模型贡献文档</a>，及时完善模型卡片内容。</p>
