2025-11-11 09:02:45 +08:00
2025-10-11 17:39:57 +08:00
2025-11-11 09:02:45 +08:00
2025-10-17 18:24:04 +08:00
2025-10-17 18:24:04 +08:00

食物识别系统

基于深度学习和CustomTkinter的食物识别应用程序,支持多图片上传、拖拽操作和实时识别结果展示。

功能特点

  • 多图片上传: 支持选择多张图片或拖拽上传
  • 实时预览: 点击图片可以预览原始大图
  • 智能识别: 使用深度学习模型识别食物类型
  • 结果标记: 可以手动标记识别结果的正确性
  • 统计分析: 显示识别准确率和统计信息
  • 现代界面: 使用CustomTkinter构建美观的用户界面

安装依赖

pip install -r requirements.txt

使用方法

1. 训练模型(可选)

如果您有自己的数据集,可以使用提供的训练脚本:

cd train
python train_food_classifier.py

确保您的数据集结构如下:

dataset/
├── train/
│   ├── 回锅肉/
│   │   ├── image1.jpg
│   │   └── image2.jpg
│   └── 西红柿鸡蛋/
│       ├── image1.jpg
│       └── image2.jpg
├── test/
│   ├── 回锅肉/
│   └── 西红柿鸡蛋/
└── val/
    ├── 回锅肉/
    └── 西红柿鸡蛋/

2. 运行食物识别应用

python food_classifier_app.py

3. 使用应用

  1. 上传图片:

    • 点击"选择图片"按钮选择多张图片
    • 或者直接拖拽图片到左侧上传区域
  2. 预览图片:

    • 点击任意已上传的图片可以预览大图
  3. 开始识别:

    • 点击"开始识别"按钮对所有图片进行识别
  4. 查看结果:

    • 右侧会显示每张图片的识别结果和置信度
    • 可以标记识别结果是否正确
  5. 管理图片:

    • 可以删除单张图片或清空所有图片

界面布局

  • 左侧: 图片上传和管理区域

    • 拖拽上传区域
    • 操作按钮(选择、清空、识别)
    • 已上传图片列表
  • 右侧: 识别结果展示区域

    • 统计信息(总数、已识别、准确率)
    • 详细识别结果列表
    • 正确性标记按钮

支持的图片格式

  • JPEG (.jpg, .jpeg)
  • PNG (.png)
  • BMP (.bmp)
  • GIF (.gif)

模型信息

  • 默认支持识别:回锅肉、西红柿鸡蛋
  • 输入图片尺寸:32x32
  • 模型架构:CNN(卷积神经网络)
  • 框架:PyTorch
  • 模型文件:model/01/best_food_model.pth

注意事项

  1. 首次运行时,如果没有训练好的模型,程序会使用模拟识别结果
  2. 建议使用清晰、光线良好的食物图片以获得更好的识别效果
  3. 可以通过标记识别结果来评估模型性能

技术栈

  • 界面框架: CustomTkinter
  • 深度学习: PyTorch
  • 图像处理: OpenCV, PIL
  • 拖拽支持: tkinterdnd2

扩展功能

如需添加更多食物类别:

  1. 在数据集中添加新的食物类别文件夹
  2. 修改 food_classes 列表
  3. 重新训练模型

故障排除

如果遇到问题:

  1. 确保所有依赖都已正确安装
  2. 检查图片文件格式是否支持
  3. 确认模型文件路径是否正确
  4. 查看控制台输出的错误信息
S
Description
菜品识别/完整食材识别/净材识别
Readme
41 MiB
Languages
Python 100%