5cfb84084a8633218292be9d367416b3e622ff7d
食物识别系统
基于深度学习和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. 使用应用
-
上传图片:
- 点击"选择图片"按钮选择多张图片
- 或者直接拖拽图片到左侧上传区域
-
预览图片:
- 点击任意已上传的图片可以预览大图
-
开始识别:
- 点击"开始识别"按钮对所有图片进行识别
-
查看结果:
- 右侧会显示每张图片的识别结果和置信度
- 可以标记识别结果是否正确
-
管理图片:
- 可以删除单张图片或清空所有图片
界面布局
-
左侧: 图片上传和管理区域
- 拖拽上传区域
- 操作按钮(选择、清空、识别)
- 已上传图片列表
-
右侧: 识别结果展示区域
- 统计信息(总数、已识别、准确率)
- 详细识别结果列表
- 正确性标记按钮
支持的图片格式
- JPEG (.jpg, .jpeg)
- PNG (.png)
- BMP (.bmp)
- GIF (.gif)
模型信息
- 默认支持识别:回锅肉、西红柿鸡蛋
- 输入图片尺寸:32x32
- 模型架构:CNN(卷积神经网络)
- 框架:PyTorch
- 模型文件:model/01/best_food_model.pth
注意事项
- 首次运行时,如果没有训练好的模型,程序会使用模拟识别结果
- 建议使用清晰、光线良好的食物图片以获得更好的识别效果
- 可以通过标记识别结果来评估模型性能
技术栈
- 界面框架: CustomTkinter
- 深度学习: PyTorch
- 图像处理: OpenCV, PIL
- 拖拽支持: tkinterdnd2
扩展功能
如需添加更多食物类别:
- 在数据集中添加新的食物类别文件夹
- 修改
food_classes列表 - 重新训练模型
故障排除
如果遇到问题:
- 确保所有依赖都已正确安装
- 检查图片文件格式是否支持
- 确认模型文件路径是否正确
- 查看控制台输出的错误信息
Languages
Python
100%