项目地址:MobileNetV3-for-leaf
项目背景:
早期曾在嵌入式设备 RV1106 上实现过植物病害识别模型,但由于设备性能与数据集限制,识别效果一般。本项目基于更完善的数据与资源,重新使用 MobileNetV3 小型结构从头训练,识别三类病害,20 个 epoch 后模型验证准确率达 96.67%。实验中发现模型在 第 10 个 epoch 左右就已表现出较好的识别能力。
本项目使用轻量级模型 MobileNetV3 从头训练实现 农作物叶子健康状况识别,识别类别为:
- healthy
- powdery(白粉病)
- rust(锈病)
数据集来自 Kaggle: Plant disease recognition dataset
训练模型
支持配置:
- 所有训练超参数(学习率、批大小、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([0.4717, 0.5892, 0.3972],
- [0.1704, 0.1531, 0.1755])
复制代码 其中 Normalize 的均值与标准差由 calculator_mean_std.py 脚本统计所得,确保模型在颜色分布上的泛化能力。
已实现功能
- MobileNetV3 小型结构从头训练
- 自定义数据均值与标准差统计
- 支持单张图像推理测试
- 验证集准确率自动保存最优模型
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |