1. 图像数据采集(原始素材)
采集设备:手机、无人机、田间摄像头,优先拍单张清晰叶片、正面 + 背面、自然光、无反光、无遮挡
格式要求:导出 JPG/PNG,避免 RAW 格式;统一拍摄角度、距离,保证叶片占画面主体
样本规模:一般2–5 万张效果稳定,3 万张是常用标准量
类别:健康叶片、稻瘟病、白粉病、锈病、叶斑病等,每类样本尽量均衡
2. 图像预处理(Python 代码实现,OpenCV/Pillow)
裁剪:去除土壤、杂草、天空等无关背景,只保留叶片区域
尺寸归一:统一缩放为 224×224 像素(ResNet/VGG 通用输入尺寸)
画质优化:亮度 / 对比度归一、去噪、锐化;剔除模糊、过曝、遮挡严重的无效图
数据增强(关键!防过拟合):随机翻转、旋转、裁剪、色彩抖动,扩充样本数量
3. 数据标注(最耗时核心步骤)
标注工具:LabelMe(免费开源)
标注方式:对叶片画矩形框 / 直接分类标注,标签:健康、稻瘟病、白粉病…
输出文件:原图 + 对应 JSON/TXT 标签文件,划分训练集 80%、验证集 15%、测试集 5%
难点:需要农学知识区分相似病害,标注一致性要统一
4. 深度学习模型搭建与训练(迁移学习,不用写底层公式)
框架选择:PyTorch / TensorFlow/Keras
预训练模型:直接调用 ResNet50、VGG16、EfficientNet(已在 ImageNet 训练好,通用特征直接用)
训练策略:
冻结底层卷积层(提取通用纹理、边缘特征)
解冻顶层,用自己的病害数据集微调训练
训练参数:批次大小、学习率、迭代轮次,GPU 加速训练
输出:保存最终模型文件(.pth/.h5)
5. 模型推理识别(落地使用)
输入:上传新的叶片照片,自动完成224×224 预处理
调用模型:加载训练好的权重,前向推理
输出结果:病害类别 + 置信概率,例:稻瘟病,92%;健康,7%;白粉病,1%
拓展:可接入 APP、小程序、田间摄像头实时识别
6. 迭代优化(可选)
收集识别错误样本,重新标注、补充训练,提升准确率
优化背景干扰、逆光、小面积病斑的识别效果