# Mamba-YOLO-IP102 农业害虫智能检测与诊断系统
本项目是一个面向农业场景的病虫害视觉识别与辅助诊断系统。系统以 Mamba-YOLO 为检测模型基础,将 IP102 害虫数据集转换为 YOLO 检测训练格式,完成害虫目标识别、类别统计、农业知识库检索和 AI/本地双路诊断展示。
项目适合用于本科毕设、课程设计或农业视觉检测原型演示。仓库默认不上传原始数据集和完整训练数据,用户 clone 代码后只需下载官方 IP102 压缩包并运行转换脚本,即可复现本项目的数据目录结构和训练入口。
## 项目特点
- 基于 Mamba-YOLO-T 构建农业害虫检测模型。
- 支持 IP102 官方数据压缩包一键转换为本项目需要的 YOLO 格式。
- 当前 classification 版 IP102 可自动生成整图框伪检测标签,先跑通检测训练流程。
- 若数据包中存在 VOC XML 标注,转换脚本会自动生成真实 YOLO 检测框。
- 提供 Gradio Web 前端,支持图片上传、模型推理、结果预览和类别统计。
- 内置独立 IP102 害虫知识库,可展示作物、害虫类型、危害症状、发生条件和防治建议。
- 支持调用 OpenAI 兼容大模型接口生成 AI 辅助诊断,同时固定展示本地农业知识库诊断。
- 默认训练输出目录和前端权重路径统一,便于服务器训练和本地演示协作。
## 目录结构
```text
Mamba-YOLO-IP102/
├── app.py # Gradio 前端与推理诊断入口
├── mbyolo_train.py # Mamba-YOLO IP102 训练/验证/测试脚本
├── diagnosis_service.py # AI 诊断与本地模板兜底逻辑
├── knowledge_base.py # 农业知识库构建、检索和风险规则
├── data/
│ ├── ip102_pest_knowledge.json # 覆盖 IP102 102 类害虫的基础知识库
│ └── agri_disease_knowledge.json # 病害知识库种子条目
├── scripts/
│ └── prepare_ip102_dataset.py # IP102 数据集转换脚本
├── datasets/ # 转换后的数据集,本地生成,不上传 GitHub
├── output_dir/ # 训练输出,可按需选择性上传关键结果
├── runtime_records/ # 前端诊断记录,本地生成
├── ultralytics/ # Mamba-YOLO 使用的 Ultralytics 代码
├── selective_scan/ # Mamba/SSM CUDA 扩展
├── requirements-app.txt # 前端演示依赖
└── pyproject.toml # 训练项目依赖配置
```
## 环境准备
推荐使用 Linux + NVIDIA GPU 训练。前端页面可以在本地启动,但 Mamba-YOLO 推理通常需要服务器或已正确编译 CUDA 扩展的环境。
```bash
conda create -n mambayolo-ip102 python=3.11 -y
conda activate mambayolo-ip102
```
安装 PyTorch 时请根据服务器 CUDA 版本选择合适命令。示例:
```bash
pip install torch torchvision torchaudio
```
安装项目依赖:
```bash
pip install seaborn thop timm einops
cd selective_scan
pip install -v --no-build-isolation .
cd ..
pip install -v -e .
```
如果服务器上 `selective_scan_cuda_core` 导入时报找不到 `libc10.so`,可设置:
```bash
export TORCH_LIB=$(pyt …