野生菌识别系统
项目介绍
野生菌识别系统是一个基于Flask后端和Uniapp前端的微信小程序项目,用于识别野生菌的种类、毒性等信息,并提供知识科普功能。该项目采用了YOLOv8深度学习模型进行图像识别,能够快速准确地识别野生菌的种类和特征。
功能特点
用户功能
- 注册登录

- 识别功能(支持摄像头、图片、视频)

- 识别结果展示(学名、俗称、特征、数量、用时、准确率、毒性等)

- 识别记录查看

- 个人信息管理

- 知识科普查看(分类浏览、图文详情、搜索功能)
管理员功能
- 用户管理(禁用/启用用户、删除用户)

- 识别记录管理(查看、删除记录)

- 知识科普管理(发表、删除、修改科普文章)

技术栈
-
后端:Flask + MySQL + SQLAlchemy
-
前端:Uniapp + Vue
-
模型:YOLOv8
-
图像处理:OpenCV
-
数据库:MySQL
YOLOv8 模型介绍
YOLOv8是Ultralytics公司开发的最新一代目标检测模型,具有以下特点:
-
高精度:采用了最新的深度学习技术,识别准确率高
-
速度快:推理速度快,适合实时应用场景
-
多任务:支持目标检测、实例分割、姿态估计等多种任务
-
易于部署:提供了多种部署方案,适合不同的应用场景
在本项目中,YOLOv8模型被用于识别野生菌的种类和特征,通过分析图像中的野生菌,提取其关键特征,然后与训练数据进行比对,最终确定野生菌的种类、毒性等信息。
项目结构
```
code24_yolov8/
├── app/ # Flask后端应用
│ ├── api/ # API路由
│ ├── models/ # 数据库模型
│ └── utils/ # 工具类
├── pages/ # Uniapp前端页面
├── static/ # 静态资源
├── uploads/ # 上传文件存储
├── ultralytics/ # YOLOv8相关代码
├── config/ # 配置文件
├── init_db.py # 数据库初始化脚本
├── run.py # Flask应用启动脚本
├── requirements.txt # Python依赖包
├── pages.json # Uniapp页面配置
└── package.json # Node.js依赖包
```
安装步骤
- 安装Python依赖
```bash
pip install -r requirements.txt
```
- 安装Node.js依赖
```bash
npm install
```
- 配置数据库
修改 `app/models/init.py` 文件中的数据库连接配置:
```python
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:password@localhost:3306/wild_mushroom"
```
- 初始化数据库
```bash
python init_db.py
``
- 启动Flask后端
```bash
python run.py
```
- 构建Uniapp前端
```bash
npm run build:mp-weixin
```
使用说明
-
打开微信开发者工具,导入 `dist/build/mp-weixin` 目录
-
运行小程序,注册账号或使用默认管理员账号登录
-
上传图片或使用摄像头进行野生菌识别
-
查看识别结果和历史记录
-
浏览知识科普内容
默认账号
- 管理员账号:admin / admin123
注意事项
-
确保MySQL数据库服务已启动
-
确保Flask后端服务运行在 http://localhost:5000
-
确保项目中包含了YOLOv8模型相关代码和配置
-
上传的图片大小建议不超过5MB,以确保识别速度
-
识别结果仅供参考,不能作为专业鉴定的依据
模型训练
如果需要重新训练YOLOv8模型,可以按照以下步骤进行:
-
准备训练数据,包括野生菌的图像和标注
-
配置训练参数,修改 `config/configs.yaml` 文件
-
运行训练脚本:
```bash
python train.py
```
- 训练完成后,模型权重会保存在指定目录
API接口
用户接口
-
`POST /api/register` - 用户注册
-
`POST /api/login` - 用户登录
-
`GET /api/user/info` - 获取用户信息
-
`POST /api/user/update` - 更新用户信息
识别接口
-
`POST /api/identify` - 识别野生菌
-
`GET /api/history` - 获取识别历史
知识科普接口
-
`GET /api/knowledge` - 获取知识科普列表
-
`GET /api/knowledge/<id>` - 获取知识科普详情
管理员接口
-
`GET /api/admin/users` - 获取用户列表
-
`POST /api/admin/user/delete` - 删除用户
-
`POST /api/admin/user/toggle` - 禁用/启用用户
-
`GET /api/admin/records` - 获取识别记录列表
-
`POST /api/admin/record/delete` - 删除识别记录
-
`POST /api/admin/knowledge/add` - 添加知识科普
-
`POST /api/admin/knowledge/update` - 更新知识科普
-
`POST /api/admin/knowledge/delete` - 删除知识科普
版权声明
© 2026 野生菌识别系统
- 保留所有权利