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