使用MobileNetV3模型识别农作物病虫害(通过叶子)
项目地址:MobileNetV3-for-leaf项目背景:
早期曾在嵌入式设备 RV1106 上实现过植物病害识别模型,但由于设备性能与数据集限制,识别效果一般。本项目基于更完善的数据与资源,重新使用 MobileNetV3 小型结构从头训练,识别三类病害,20 个 epoch 后模型验证准确率达 96.67%。实验中发现模型在 第 10 个 epoch 左右就已表现出较好的识别能力。
本项目使用轻量级模型 MobileNetV3 从头训练实现 农作物叶子健康状况识别,识别类别为:
[*]healthy
[*]powdery(白粉病)
[*]rust(锈病)
数据集来自 Kaggle: Plant disease recognition dataset
训练模型
python train.py支持配置:
[*]所有训练超参数(学习率、批大小、epoch 数量等)均可在 train.py 中修改。
输出示例:
测试单张图像
python test_single_image.py 输出示例:
模型结构说明
模型采用自定义实现的 MobileNetV3-Small,总参数量约 1.5M,非常适合部署于计算资源受限的设备上:
模型结构:
输入图像与预处理
[*]原图尺寸约为 4000x2672
[*]模型输入统一调整为 224x224
[*]图像预处理方式:
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(,
)其中 Normalize 的均值与标准差由 calculator_mean_std.py 脚本统计所得,确保模型在颜色分布上的泛化能力。
已实现功能
[*]MobileNetV3 小型结构从头训练
[*]自定义数据均值与标准差统计
[*]支持单张图像推理测试
[*]验证集准确率自动保存最优模型
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]