一、项目简介
本系统是一个基于深度学习的花卉识别应用,通过PyQt5构建的图形界面可以实现花卉图像的识别、分析和数据管理功能。
二、项目功能
- 用户账户管理:支持用户注册、登录和密码修改
- 单张图像识别:上传单张花卉图像进行识别
- 批量图像识别:支持文件夹批量导入图像识别
- 数据导出:识别结果可导出为CSV文件
- 历史记录查询:支持查看历史识别记录
- 花卉详细信息:展示识别花卉的详细信息和特征描述
三、技术架构
前端界面
- PyQt5:构建图形用户界面
- UI设计:界面美观,支持多种操作
后端核心
- 深度学习框架:PyTorch
- 神经网络模型:MobileNet轻量级卷积神经网络
- 数据库:MySQL用于存储用户信息和识别记录
识别流程
- 图像预处理:调整大小、标准化
- 模型推理:通过预训练的MobileNet网络识别花卉类别
- 结果展示:显示识别结果、置信度和花卉信息
四、支持识别的花卉类别
本系统可以识别以下花卉种类:
- 向日葵 (Sunflower)
- 蒲公英 (Dandelion)
- 薰衣草 (Lavender)
- 百合 (Lily)
- 莲花 (Lotus)
- 兰花 (Orchid)
- 玫瑰 (Rose)
- 郁金香 (Tulip)
- 雏菊 (Daisy)
- 等多种常见花卉
五、系统运行环境
- 操作系统:Windows 10或更高版本
- Python版本:Python 3.6+
- 依赖库:
- PyTorch 1.7+
- PyQt5
- Pillow
- matplotlib
- pymysql
六、运行说明
- 确保已安装所有依赖:
pip install torch torchvision PyQt5 Pillow matplotlib pymysql
- 确保MySQL数据库已安装并运行:
- 默认连接参数:localhost,用户名:root,密码:root
- 系统会自动创建所需数据库和表
- 运行系统:
python main.py
七、模型训练
如需重新训练模型,可使用train.py脚本:
python train.py --data-path 数据集路径 --epochs 100 --batch-size 8
训练后的模型将保存在weights目录下。
八、系统架构图
flower_recognition/
├── 主界面.py # 主程序入口
├── login.py # 登录系统
├── train.py # 模型训练脚本
├── my_dataset.py # 自定义数据集类
├── models/ # 模型定义
│ └── mobilenet.py # MobileNet网络结构
├── utils.py # 工具函数
├── weights/ # 模型权重文件
├── ui/ # UI相关文件
└── test/ # 测试文件
本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和个人学习使用。如需购买项目成品或定制化需求可以联系作者。