# plant **Repository Path**: chimingos/plant ## Basic Information - **Project Name**: plant - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-21 - **Last Updated**: 2025-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 幼苗杂草识别与田间智能分析系统 基于深度学习的植物幼苗识别系统,可识别12类植物(3类作物+9类杂草),并提供智能分析和防治建议。 ## 功能特点 - **图像识别**:上传植物图片,自动识别类别并标注 - **批量分析**:支持多张图片批量识别,计算杂草率 - **智能评估**:根据杂草比例评估危害等级(轻度/中度/重度) - **防治建议**:根据杂草类型生成针对性防治建议 - **植物知识库**:12类植物的详细信息(特征、危害、防治方法) - **数据统计**:识别历史统计、趋势图表 - **报告生成**:自动生成分析报告,支持打印导出 ## 支持识别的类别 **作物(3类)** - 普通小麦 (Common wheat) - 玉米 (Maize) - 甜菜 (Sugar beet) **杂草(9类)** - 黑草 (Black-grass) - 野芥菜 (Charlock) - 猪殃殃 (Cleavers) - 繁缕 (Common Chickweed) - 藜 (Fat Hen) - 看麦娘 (Loose Silky-bent) - 无香母菊 (Scentless Mayweed) - 荠菜 (Shepherd's Purse) - 小花老鹳草 (Small-flowered Cranesbill) --- ## 部署流程 ### 环境要求 - Python 3.9 - 3.11 - pip 包管理器 ### 方式一:有模型文件(推荐) 如果已有训练好的模型文件 `models/plant_classifier.h5`: ```bash # 1. 进入项目目录 cd plant_system # 2. 安装依赖 pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 3. 启动系统 python app.py # 4. 访问系统 # 浏览器打开 http://localhost:5000 ``` ### 方式二:无模型文件(需训练) 如果没有模型文件,需要先训练模型: ```bash # 1. 进入项目目录 cd plant_system # 2. 安装依赖 pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 3. 准备数据集 # 确保 ../data/ 目录下有12个类别的图片文件夹: # - Black-grass/ # - Charlock/ # - Cleavers/ # - Common Chickweed/ # - Common wheat/ # - Fat Hen/ # - Loose Silky-bent/ # - Maize/ # - Scentless Mayweed/ # - Shepherd's Purse/ (或 Shepherd鈥檚 Purse/) # - Small-flowered Cranesbill/ # - Sugar beet/ # 4. 训练模型(CPU约20分钟,GPU约5分钟) python train_model.py # 5. 训练完成后启动系统 python app.py # 6. 访问系统 # 浏览器打开 http://localhost:5000 ``` ### 方式三:演示模式(无需训练) 系统支持在没有模型的情况下运行(演示模式),识别结果基于简单特征分析: ```bash # 1. 进入项目目录 cd plant_system # 2. 安装基础依赖(不含TensorFlow) pip install flask flask-sqlalchemy pillow numpy -i https://mirrors.aliyun.com/pypi/simple/ # 3. 启动系统 python app.py # 4. 访问系统 # 浏览器打开 http://localhost:5000 # 注:演示模式下识别准确率较低,仅供功能展示 ``` --- ## 技术架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Web前端 (Bootstrap + Chart.js) │ ├─────────────┬─────────────┬─────────────┬───────────────────┤ │ 图像识别 │ 智能分析 │ 决策建议 │ 数据管理 │ ├─────────────┴─────────────┴─────────────┴───────────────────┤ │ Flask后端 + RESTful API │ ├─────────────────────────────────────────────────────────────┤ │ CNN分类模型 (TensorFlow/Keras) │ ├─────────────────────────────────────────────────────────────┤ │ SQLite数据库 │ └─────────────────────────────────────────────────────────────┘ ``` ## 项目结构 ``` plant_system/ ├── app.py # Flask主应用 ├── model.py # 识别模型封装 ├── train_model.py # 模型训练脚本 ├── requirements.txt # Python依赖 ├── README.md # 项目说明 ├── models/ # 模型文件目录 │ └── plant_classifier.h5 # 训练好的模型 ├── static/ │ └── uploads/ # 上传图片存储 └── templates/ # HTML模板 ├── base.html # 基础模板 ├── index.html # 首页仪表盘 ├── recognition.html # 图像识别 ├── analysis.html # 智能分析 ├── knowledge.html # 植物知识库 ├── history.html # 历史记录 └── report.html # 分析报告 ``` ## 数据库表结构 | 表名 | 说明 | |------|------| | recognition_record | 识别记录(图片路径、预测类别、置信度等) | | analysis_report | 分析报告(批次统计、危害等级、建议等) | | environment_data | 环境监测数据(模拟数据,满足考核要求) | | plant_knowledge | 植物知识库(12类植物详细信息) | ## API接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/recognize` | POST | 单张图片识别 | | `/api/batch_recognize` | POST | 批量图片识别 | | `/api/statistics` | GET | 获取统计数据 | | `/api/records` | GET | 获取识别记录(分页) | | `/api/reports` | GET | 获取报告列表 | | `/api/report/` | GET | 获取报告详情 | | `/api/knowledge` | GET | 获取植物知识库 | | `/api/export/records` | GET | 导出识别记录CSV | | `/api/export/reports` | GET | 导出报告列表CSV | ## 常见问题 **Q: 训练时提示"未找到: Shepherd's Purse"** A: 文件夹名编码问题,系统已兼容 `Shepherd鈥檚 Purse` 格式,不影响使用。 **Q: 如何使用GPU训练?** A: 需要安装CUDA和cuDNN,参考TensorFlow官方文档配置GPU环境。 **Q: 识别准确率如何?** A: 使用完整数据集训练后,验证集准确率约85-90%。 --- ## 技术亮点 1. **CNN图像分类算法** - 4层卷积神经网络,支持12类植物识别 2. **杂草危害评估算法** - 基于杂草比例和类型权重的综合评估 3. **规则引擎决策建议** - 根据杂草类型匹配防治方案 4. **数据可视化** - Chart.js实现趋势图、饼图、柱状图 5. **RESTful API设计** - 前后端分离架构 6. **自动报告生成** - 支持打印和导出