基于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神經網絡的雜草識別系統