使用MobileNetV3模型識別農作物病蟲害(通過葉子)
項目地址:MobileNetV3-for-leaf
項目背景:
早期曾在嵌入式設備 RV1106 上實現過植物病害識別模型,但由于設備性能與數據集限制,識別效果一般。本項目基于更完善的數據與資源,重新使用 MobileNetV3 小型結構從頭訓練,識別三類病害,20 個 epoch 后模型驗證準確率達 96.67%。實驗中發(fā)現模型在 第 10 個 epoch 左右就已表現出較好的識別能力。
本項目使用輕量級模型 MobileNetV3 從頭訓練實現 農作物葉子健康狀況識別,識別類別為:
healthypowdery(白粉病)rust(銹病)
數據集來自 Kaggle: Plant disease recognition dataset
訓練模型
python train.py
支持配置:
- 所有訓練超參數(學習率、批大小、epoch 數量等)均可在
train.py中修改。
輸出示例:
測試單張圖像
python test_single_image.py
輸出示例:
模型結構說明
模型采用自定義實現的 MobileNetV3-Small,總參數量約 1.5M,非常適合部署于計算資源受限的設備上:
模型結構:
輸入圖像與預處理
- 原圖尺寸約為 4000x2672
- 模型輸入統(tǒng)一調整為 224x224
- 圖像預處理方式:
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize([0.4717, 0.5892, 0.3972],
[0.1704, 0.1531, 0.1755])
其中 Normalize 的均值與標準差由 calculator_mean_std.py 腳本統(tǒng)計所得,確保模型在顏色分布上的泛化能力。
已實現功能
- MobileNetV3 小型結構從頭訓練
- 自定義數據均值與標準差統(tǒng)計
- 支持單張圖像推理測試
- 驗證集準確率自動保存最優(yōu)模型
?? 項目作者
李中政
GitHub: @lizhongzheng13




浙公網安備 33010602011771號