基于YOLOv5s的草莓病害识别系统设计
2023-07-25邱菊,徐燕
邱 菊,徐 燕
(北京物资学院信息学院,北京 101149)
草莓肉质细韧,酸甜适口,营养丰富,在国内外市场上备受欢迎。但是,草莓种植过程中易受到20 多种病害威胁,制约了草莓的产业化发展。目前草莓病害识别仍以人工为主,耗时费力,人工成本高,急需科技化手段提升草莓病害识别效果。
人工智能技术已被广泛应用于图像识别、目标追踪等领域。很多学者尝试利用人工智能技术解决草莓病害识别方面的问题[1],牛冲等人运用改进的分水岭图像分割技术,通过特征提取对草莓病害进行识别[2]。崔灿等人则是利用卷积神经网络(CNN)进行草莓病害识别[3],CNN 是一种前向神经网络和深度学习方法,通过共享权值、局部连接和池化达到网络更优化并降低过拟合,利用多层卷积层和池化层提取图像的分类特征[4]。张金慧等人提出了利用人工智能技术的草莓病害识别设备[5]。以上学者的研究虽在一定程度上提高了识别草莓病害的效率,但仍存在识别类型单一、操作复杂、识别效率较低等问题。
因此,本文以草莓作为研究对象,采用YOLOv5s算法,针对目前人工识别草莓病害耗时费力等问题,构建草莓病害识别模型,对于实现设施草莓远程实时病害识别、提高经济效益具有现实意义。
1 YOLO目标检测模型
YOLO 是Joseph Redmond 和Ali Farhadi 等 人 在 借 鉴Google Net基础上提出的采用单独CNN 模型实现的目标检测系统。它的核心思想是利用整张图作为输入后直接在输出层回归边界框(Bounding box)的位置和类别。随着时间的推移,YOLO 算法也在不断提升和优化,相继出现YOLOv2、YOLOv3、YOLOv4、YOLOv5模型。
YOLOv5 的核心包括输入端、主干网络(Backbone)、颈部(Neck)、和输出端4 部分,它在YOLOv4 算法的基础上做了进一步的改进,检测性能方面得到很大的提升。YOLOv5 对原始图像自适应添加最少的黑边,图像高度上两端的黑边减少了,使得相比之前推理速度提升了37%,同时YOLOv5的精确度相对于YOLOv4 也有显著提高。官方给出的YOLOv5 目标检测网络的4 个模型分别为YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x。本文选择的是YOLOv5s 模型,YOLOv5s[6]模型是YOLOv5 系列中深度最小且特征图宽度最小的模型,优点是简洁、快速、易部署。
2 实验过程与分析
2.1 实验平台
本系统开发的硬件环境为字长是64 位的计算机。软件操作系统为Windows 10,基于python 3.6版本在anaconda搭建了一个虚拟环境,利用云端GPU 在Google colab 平台上训练数据集,验证和测试的代码在PyCharm中编译和运行。
2.2 数据集简介与训练策略
在不同角度、不同距离和不同光线下拍摄采集草莓照片696张作为模型训练与测试的数据集。利用Mosaic数据增强方法,最终训练的标签数为1 926个。
2.3 数据集标注
数据集中的图片分别利用Make Sense 在线标注工具逐一进行标注,在标注前需要先创建分类标签,本文共创建4个分类标签,其名称及含义见表1。
表1 标签分类情况Tab.1 The classification of labels
采用矩形模式进行标注,标注后的图片作为训练集。在PyCharm 中编写代码并以YOLOv5s 作为主干网络,将编写好的代码压缩后存到谷歌云盘中,连接Colab GPU 服务器,在Google Colab 上挂载云盘,解压压缩的代码,更改运行目录,配置好环境后即可开始训练,期间可以不断刷新来观察训练结果。训练结束后,导出训练完的模型,上传到PyCharm 中。从训练集中随机选取10%的草莓照片进行测试,观察结果并分析。
2.4 评价指标
本实验的评价指标为精确度(Precision)、召回率(Recall)和平均精度均值(mean average precision,mAP)。
精确度定义如式(1)所示:
召回率定义如式(2)所示:
平均精度均值定义如式(3)所示:
其中,TP——有病害的草莓数目,FN——漏检的病害草莓数目,FP——误报的病害草莓数目,P——精确度,R——召回率,P(R)——精确度和召回率曲线。
本实验训练100 个Epoch(Epoch,将所有训练样本训练一次的过程)。输入端的自适应缩放的原始图片尺寸为800像素×600 像素,经过自适应缩放后的图片尺寸为640 像素×640像素,通过这种方式可以减少训练过程中的计算量,提高检测结果的精度。
3 试验结果分析
从图1可看出,迭代开始时准确度较低,平均精度均值较低,召回率较小,在训练20 个Epoch 时,精确度和召回率突增,之后呈缓慢上升趋势,在训练100 个Epoch 时,召回率为80%。综上所述,可以判断出YOLOv5s 算法在草莓病害识别方面具有一定优越性。
图1 精确度、平均精确度和召回率折线图Fig.1 Line chart of precision,average accuracy precision and recall
图2 给出了采用本系统进行草莓病害识别的3 个实例。其中图2a 是识别出的已患病草莓,概率为0.82;图2b 识别出的草莓类型为患病和未成熟型,概率分别为0.87 和0.78;图2c 识别出了2 个未成熟和1 个成熟的草莓,概率分别是0.61、0.88和0.60。
图2 模型识别结果Fig.2 The images of the recognition result of the model
4 结论
本文采用Python 语言作为开发语言,自制数据集,基于YOLOv5s 网络建立草莓病害识别系统,实验结果显示,该系统对病害草莓识别效率较高,具有实际应用价值。