赵杰 Jie Zhao (雄狮汽车科技) ed5f32016d 优化docker
2025-11-03 12:33:47 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:33:47 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:29:32 +08:00
2025-11-03 12:29:32 +08:00

🍽️ 个性化饮食推荐APP

一个基于机器学习和OCR技术的智能饮食推荐系统具有现代化的移动端界面和强大的AI分析能力。

最新特性

📷 OCR热量识别

  • 多引擎OCR支持Tesseract、PaddleOCR、EasyOCR
  • 智能图片识别:自动识别食物名称和热量信息
  • 多级验证机制OCR结果 + 数据库匹配 + 用户确认
  • 学习优化系统:从用户修正中持续学习改进
  • 一键记录:拍照即可完成餐食记录

🎨 现代化界面设计

  • 圆角设计系统:统一的圆角主题,减少方形元素
  • 多色主题支持:主色、次色、强调色等多种配色
  • 移动端适配:专为手机屏幕优化的界面布局
  • 卡片式设计:清晰的信息层次和视觉反馈
  • 响应式交互:悬停效果和状态变化

🎯 核心功能

1. 智能数据采集

  • OCR图片识别📷 拍照识别食物热量信息
  • 5天三餐数据记录:详细记录早中晚三餐的饮食内容
  • 用户偏好问卷:口味偏好、饮食习惯、过敏信息等
  • 生理周期跟踪:针对女性的生理期、排卵期等特殊时期
  • 个性化因素:星座、性格特征等参考因素

2. 机器学习推荐引擎

  • 个人饮食模型训练:基于用户历史数据训练个性化模型
  • 持续学习机制:根据用户反馈不断优化推荐
  • 偏好矫正:用户不喜欢或已食用食物的反馈学习
  • 多因素融合:结合生理周期、星座等多维度因素

3. AI大模型分析

  • 千问大模型集成:智能营养分析和建议生成
  • 热量分析:每日饮食热量计算和评估
  • 营养建议:基于大模型的智能营养建议
  • 个性化指导:结合用户特征的定制化建议

4. 现代化应用界面

  • 移动端设计:模拟小程序/安卓App的界面体验
  • 圆角美化:统一的圆角设计语言
  • 多色主题:丰富的颜色搭配和视觉层次
  • 实时推荐:动态推荐系统
  • 数据可视化:饮食趋势、营养分析图表

🏗️ 技术架构

核心基座

  • 统一基座架构:模块化设计,支持功能扩展
  • SQLite数据库:轻量级本地数据存储
  • 事件总线系统:模块间通信和事件处理
  • 数据管理器:统一的数据访问接口

OCR识别技术

  • Tesseract OCR开源OCR引擎支持中英文默认,轻量级,推荐
  • PaddleOCR百度开源OCR中文识别优秀可选需要PaddlePaddle占用内存较大
  • EasyOCR简单易用的多语言OCR库可选需要PyTorch占用内存很大
  • OpenCV:图像预处理和增强
  • PIL/Pillow:图像处理和格式转换

注意默认配置仅使用Tesseract OCR轻量级无需深度学习框架。如需使用PaddleOCR或EasyOCR

  1. 取消注释requirements.txt中对应依赖
  2. 安装依赖:pip install paddleocrpip install easyocr
  3. 在OCR模块配置中添加对应引擎到ocr_methods列表

机器学习

  • scikit-learn:推荐算法实现
  • pandas/numpy:数据处理和分析
  • joblib:模型序列化和加载
  • TF-IDF向量化:文本特征提取

AI大模型集成

  • 千问大模型阿里云通义千问API
  • 智能分析:用户意图分析和营养建议
  • 个性化推理:基于用户特征的智能推荐

现代化界面

  • CustomTkinter现代化Python GUI框架
  • 移动端设计375x812像素模拟手机界面
  • 圆角美化系统:统一的视觉设计语言
  • 多色主题:丰富的颜色配置系统

📁 项目结构

diet_recommendation_app/
├── core/                    # 核心基座架构
│   ├── base.py             # 基础类和配置
│   └── base_engine.py      # 基础引擎抽象类
├── modules/                # 功能模块
│   ├── data_collection.py  # 数据采集模块
│   ├── ai_analysis.py      # AI分析模块
│   ├── recommendation_engine.py # 推荐引擎模块
│   └── ocr_calorie_recognition.py # OCR热量识别模块
├── gui/                    # 现代化界面
│   ├── mobile_main_window.py # 移动端主界面
│   ├── ocr_calorie_gui.py  # OCR识别界面
│   ├── styles.py           # 样式配置系统
│   └── main_window.py      # 桌面端界面
├── llm_integration/        # 大模型集成
│   └── qwen_client.py      # 千问大模型客户端
├── smart_food/             # 智能食物数据库
│   └── smart_database.py   # 食物数据库管理
├── data/                   # 数据存储
│   ├── users/              # 用户数据
│   ├── training/           # 训练数据
│   └── app.db              # SQLite数据库
├── models/                 # 机器学习模型
├── logs/                   # 日志文件
├── main.py                 # 应用入口
├── requirements.txt        # 依赖包列表
├── OCR_USAGE_GUIDE.md      # OCR使用指南
├── UI_BEAUTIFICATION_SUMMARY.md # 界面美化总结
└── README.md               # 项目说明文档

🚀 快速开始

1. 环境要求

  • Python 3.8+
  • Windows/macOS/Linux

2. 安装依赖

# 克隆项目
git clone https://github.com/random-jason/diet_recommendation.git
cd diet_recommendation

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

# 安装OCR依赖可选
pip install pytesseract opencv-python paddleocr easyocr

3. 配置API密钥

# 方法1: 使用自动生成的模板
python -c "from config.api_keys import create_env_template; create_env_template()"

# 方法2: 手动创建.env文件
echo "QWEN_API_KEY=your_qwen_api_key_here" > .env

4. 验证配置

# 检查API密钥配置状态
python -c "from config.api_keys import get_api_status_report; print(get_api_status_report())"

5. OCR引擎配置可选

Tesseract安装

  • Windows: 下载 Tesseract安装包
  • macOS: brew install tesseract
  • Linux: sudo apt-get install tesseract-ocr

其他OCR引擎可选需要深度学习框架

# PaddleOCR可选需要PaddlePaddle占用内存较大
pip install paddleocr

# EasyOCR可选需要PyTorch占用内存很大通常需要1-2GB
pip install easyocr

# 注意安装后需要在OCR模块配置中添加对应引擎
# self.ocr_methods = ['tesseract', 'paddleocr']  # 添加需要的引擎

4. 配置环境

# 创建环境配置文件
echo "QWEN_API_KEY=your_qwen_api_key_here" > .env

5. 运行应用

python main.py

6. 使用OCR功能

  1. 打开应用,进入"记录"页面
  2. 点击食物输入框右侧的"📷"按钮
  3. 选择包含食物信息的图片
  4. 点击"开始识别"进行OCR识别
  5. 查看和编辑识别结果
  6. 确认保存到餐食记录

🔐 API密钥管理

统一密钥管理

项目采用统一的API密钥管理系统所有API密钥都通过 config/api_keys.py 进行管理:

  • 千问API密钥 (必需): 用于主要AI分析服务
  • OpenAI API密钥 (可选): 备用AI服务
  • Anthropic API密钥 (可选): 备用AI服务
  • 其他API密钥 (可选): Google、百度、腾讯等

配置方法

from config.api_keys import get_qwen_key, get_api_status_report

# 获取API密钥
qwen_key = get_qwen_key()

# 检查配置状态
status = get_api_status_report()
print(f"可用提供商: {status['available_list']}")

安全特性

  • 环境变量隔离
  • 密钥格式验证
  • 运行时状态监控
  • 多提供商支持
  • 自动配置建议

详细配置指南请参考:API_KEY_SETUP_GUIDE.md

🔄 工作流程

1. 智能数据采集5天

  • OCR图片识别📷 拍照识别食物热量信息
  • 手动数据记录:详细记录三餐饮食内容
  • 用户偏好问卷:口味偏好、饮食习惯、过敏信息
  • 个性化画像:生理周期、星座、性格特征

2. AI模型训练

  • 个人推荐模型:基于采集数据训练个性化模型
  • 多因素融合:结合生理期、星座等多维度因素
  • OCR学习优化:从用户修正中持续改进识别准确性

3. 智能推荐与学习

  • 个性化推荐第6天开始提供智能推荐
  • 用户反馈收集:喜欢/不喜欢/已食用反馈
  • 持续模型优化:基于反馈数据不断改进
  • OCR准确性提升:学习用户修正习惯

4. AI智能分析

  • 千问大模型分析:每日营养状况智能分析
  • 个性化健康建议:基于用户特征的定制建议
  • 营养趋势分析:长期饮食模式分析

🎨 特色功能

📷 OCR智能识别

  • 多引擎支持Tesseract、PaddleOCR、EasyOCR
  • 智能验证OCR + 数据库 + 用户确认三级验证
  • 学习优化:从用户修正中持续改进
  • 一键记录:拍照即可完成餐食记录

🎨 现代化界面

  • 移动端设计375x812像素模拟手机界面
  • 圆角美化:统一的圆角设计语言
  • 多色主题:丰富的颜色搭配和视觉层次
  • 响应式交互:悬停效果和状态变化

🤖 AI智能分析

  • 千问大模型阿里云通义千问API集成
  • 智能推理:用户意图分析和营养建议
  • 个性化指导:基于用户特征的定制建议

👩 女性专属优化

  • 生理周期智能调整:月经期、排卵期等特殊时期
  • 营养需求分析:不同生理阶段的营养需求
  • 个性化建议:结合生理周期的饮食建议

个性化因素

  • 星座参考:个性化因素融合
  • 性格特征:基于性格的饮食偏好分析
  • 持续学习:避免随机推荐问题

📚 文档说明

🧪 测试验证

功能测试

# 测试OCR系统
python test_ocr_system.py

# 测试界面美化
python test_ui_beautification.py

# 测试核心功能
python test_core.py

应用启动测试

# 启动应用
python main.py

# 检查日志
tail -f logs/app.log

🚀 技术亮点

1. 统一基座架构

  • 模块化设计:所有功能模块基于统一基座构建
  • 事件驱动:模块间通过事件总线通信
  • 数据统一:统一的数据管理和访问接口
  • 扩展性强:支持新功能模块的快速集成

2. OCR多引擎融合

  • 多引擎并行同时使用多个OCR引擎提高准确性
  • 智能合并:基于置信度的结果合并策略
  • 学习优化:从用户修正中持续学习改进
  • 数据库匹配:结合食物数据库进行智能验证

3. 现代化界面设计

  • 移动端优先:专为手机屏幕优化的界面设计
  • 圆角美化:统一的圆角设计语言
  • 多色主题:丰富的颜色配置和视觉层次
  • 响应式交互:流畅的用户交互体验

4. AI智能分析

  • 千问大模型集成阿里云通义千问API
  • 智能推理:基于用户数据的智能分析
  • 个性化建议:结合多维度因素的定制建议
  • 持续学习:从用户反馈中不断优化

📈 项目状态

  • 核心功能数据采集、推荐引擎、AI分析
  • OCR识别:多引擎支持、智能验证、学习优化
  • 界面美化:圆角设计、多色主题、移动端适配
  • 文档完善:使用指南、技术文档、测试脚本
  • 🔄 持续优化:性能提升、功能扩展、用户体验改进

🤝 贡献指南

欢迎提交Issue和Pull Request来改进项目

开发环境设置

# 克隆项目
git clone <repository-url>
cd diet_recommendation_app

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

# 运行测试
python test_ocr_system.py
python test_ui_beautification.py

代码规范

  • 遵循PEP 8代码风格
  • 添加适当的注释和文档字符串
  • 编写单元测试
  • 更新相关文档

📄 许可证

本项目采用MIT许可证 - 查看 LICENSE 文件了解详情

🙏 致谢

感谢以下开源项目的支持:


🍽️ 让AI为您的饮食健康保驾护航

Description
No description provided
Readme 1.3 MiB
Languages
Python 87.6%
JavaScript 6.1%
HTML 3%
CSS 2.3%
Shell 0.4%
Other 0.6%