Files
FoodClassifier/README.md
T

129 lines
3.0 KiB
Markdown

# 食物识别系统
基于深度学习和CustomTkinter的食物识别应用程序,支持多图片上传、拖拽操作和实时识别结果展示。
## 功能特点
- **多图片上传**: 支持选择多张图片或拖拽上传
- **实时预览**: 点击图片可以预览原始大图
- **智能识别**: 使用深度学习模型识别食物类型
- **结果标记**: 可以手动标记识别结果的正确性
- **统计分析**: 显示识别准确率和统计信息
- **现代界面**: 使用CustomTkinter构建美观的用户界面
## 安装依赖
```bash
pip install -r requirements.txt
```
## 使用方法
### 1. 训练模型(可选)
如果您有自己的数据集,可以使用提供的训练脚本:
```bash
cd train
python food_classifier.py
```
确保您的数据集结构如下:
```
dataset/
├── train/
│ ├── 回锅肉/
│ │ ├── image1.jpg
│ │ └── image2.jpg
│ └── 西红柿鸡蛋/
│ ├── image1.jpg
│ └── image2.jpg
├── test/
│ ├── 回锅肉/
│ └── 西红柿鸡蛋/
└── val/
├── 回锅肉/
└── 西红柿鸡蛋/
```
### 2. 运行食物识别应用
```bash
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. 查看控制台输出的错误信息