基于BP神经网络的杂草智能识别系统(杂草识别、Python项目)
基于BP神经网络的杂草智能识别系统
项目介绍
本项目是一个基于PyQt5和BP神经网络的杂草智能识别系统。系统通过图像处理和神经网络技术,
能够识别8种不同的杂草类别。用户可以通过上传图片,系统会自动识别图片中的杂草类别,并显示识别结果和置信度。
(训练样本集为800张,每类杂草各100张,训练集与验证集比例为8:2)
主要技术与框架
-
QT图形用户界面:
- PyQt5:用于构建图形用户界面,提供用户友好的交互体验。
-
神经网络:
-
NumPy:用于数值计算和矩阵操作。
-
Scikit-learn:用于标签编码和数据处理。
-
-
图像处理:
- OpenCV:用于图像读取、调整大小和灰度处理。
-
其他工具:
-
CSV:用于保存识别结果。
-
Matplotlib:用于绘制训练曲线。
-
主要功能
-
功能1:图像上传与显示
- 用户可以通过点击“上传图片”按钮选择本地图片,系统会显示原始图片和灰度图片。
-
功能2:杂草类别识别
- 系统会自动识别上传图片中的杂草类别,并显示识别结果和置信度。
-
功能3:类别标签高亮
- 系统会根据识别结果高亮对应的杂草类别标签。
-
功能4:识别结果保存
- 系统会将识别结果保存到CSV文件中,方便后续查看和分析。
-
功能5:模型训练与测试
- 系统支持通过训练数据集训练神经网络模型,并测试模型的准确率。
环境说明
参考以下环境(已跑通),可按顺序安装库的版本:
Windows10及以上(操作系统)python 3.9.12PyQt5: 5.15.2numpy: 1.22.4cv2: 4.4.0sklearn: 1.0.2pandas: 1.4.2matplotlib: 3.5.1
目录说明
基于BP神经网络的杂草智能识别系统/
├── deepweeds/ # 数据集文件夹
│ ├── images/ # 图像文件夹
│ ├── labels(800).csv # 标签文件
│ └── 测试图/ # 测试图像文件夹
├── models/ # 模型存放文件夹
│ ├── weed_classifier_model.npz # 训练好的模型
├── resources/ # 资源文件夹
│ ├── app_icon.ico # QT界面左上角标题图标
├── results/ # 结果文件夹
│ ├── loss_curves.png # 训练损失曲线
│ ├── accuracy_curves.png # 训练准确率曲线
│ └── *_detection_results.csv # 识别结果CSV文件
├── ui/ # 用户界面文件
│ ├── interface.ui # Qt Designer设计的界面文件
├── acc_test_results.py # 模型测试脚本
├── main.py # 主程序(运行启动系统)
├── train_bp_model.py # 模型训练脚本
└── README.md # 项目说明文档
运行说明
-
训练模型:
运行 train_bp_model.py 脚本,训练神经网络模型并保存到 models/weed_classifier_model.npz。 -
测试模型:
运行 acc_test_results.py 脚本,测试模型在测试集上的准确率,并生成识别结果CSV文件,保存与results文件夹下。 -
启动系统:
运行 main.py 脚本,启动杂草智能识别系统。用户可以通过界面上传图片并查看识别结果。 -
右键运行 main.py 后,系统界面将弹出,用户可以通过界面进行杂草识别操作。
效果图
视频演示
基于深度学习PYQT、BP神经网络的杂草识别系统