1. 引言
小麦可以解决粮食安全的问题,提高农产品的出口量。发挥着营养、饲养、经济价值。检测期间会碰到视觉的挑战,如小麦植株重叠,风动下的模糊图像。这些问题加剧了识别单个小麦头的难度。目前,小麦的研究方法有:人工观测技术、遥感图像预测 [1]、电容量测产 [2] 方法等。人工观测主观因素较多,导致观测不准确,且耗费人力较多。遥感技术主要采取卫星图像,拍摄距离较远,导致遥感技术不适合用来观测小范围的麦穗数据;电容量测量产量,电力成本消耗较大且耗时较长。
随着深度学习的发展,智慧农业也可通过深度学习解决一系列难题 [3],如粮食产量的估算、种子选种、种子选择优良基因性等 [4]。随着神经网络在目标检测中的发展,人们用深度学习网络来检测小麦,本文将对粮食生产的麦穗图像识别方法进行研究讨论。为了克服小麦植株重叠、风动图像模糊这些干扰因素,我们尝试利用神经网络设计合理的算法运用到麦穗识别中 [5],为智慧农业下的小麦穗识别提供服务。本文结合图像处理技术 [6] [7] [8],设计了一套基于YOLOv5的麦穗识别算法,有助于农村小麦管理决策去评估小麦的健康和成熟度,以便选择优良种,提高播种的参考性,为小麦的智能识别监控系统提供理论依据。
2. YOLO算法简介
计算机视觉是近几年发展起来的一种新方法,而YOLO一系列算法是领域中一种典型的目标检测方法。它将图片作为算法的输入端,并在图片不同位置,回归该位置的目标框及目标检测类型。YOLOv5系列有轻量级模型的大小,且具有较好的检测精度和速度,用途广泛,用于电路缺陷检测、医学肿瘤图像检测、车牌号检测等 [9]。
YOLOv5 [10] 是基于YOLOv4的改进而来,用于目标检测。于YOLO系列其他几个算法相比,YOLOv5s网络最小,速度最少,AP进度也最低。
其中,比较出名的为YOLOv3,YOLOv5。就大体的结构而言,YOLO系列算法的网络结构都是由输入端、Backbone、Neck和Prediction4个部分组成。YOLOv5的网络结构如图1所示。
YOLOv5系列 [11] 中YOLOv5s [12] 的网络最小准确率稍低于其他三种(YOLOv5m,YOLOV5l和YOLOV5x),但其检验速率却是最快的。另外其它3种网络基于YOLOv5s的网络结构进一步拓宽,精度逐渐提高,但检测速率稍显缓慢。基于该方法所需要的较高的检测速度,故选用YOLOv5s [13] 目标检测模型。
3. 麦穗的检测
本文在输入端放入麦穗的图像,将其输入到训练好的YOLOv5s算法中进行麦穗的目标检测。目标检测算法会输出结果中带有麦穗的边界框且上方有麦穗可能性百分比的图像。
3.1. 数据集
本文从Global Wheat2020和AI crowd中Global Wheat2021抽取了3000张图像作为模型的数据集,其中包括由7个不同国家如法国、英国、中国、瑞士的麦穗图像。我们对预处理后标签发生变换的图片数据,由于缺少适合YOLO算法的标注文件,故本文使用LabelImg软件对麦穗数据集重新进行了标注操作,其中图片用于模型训练和模型测试的比例为80%:20%,其麦穗的数据集局部标注示例图片如图2所示。
Figure 2. Sample image of dataset annotation
图2. 数据集标注示例图片
标注完数据集之后,采用PIL (Python imaging library)库对图片进行预处理 [14],如下图3所示:
Figure 3. Example of effect of preprocessing wheat ear image with PIL
图3. 利用PIL对麦穗图像进行预处理的效果示例
由图3可知,采用以上的数据增强策略可以增大麦穗训练集的规模,提高模型的泛化能力,有效地提升模型的鲁棒性 [15]。
为了更直观的比较YOLO系列算法的异同,列出YOLOv3-YOLOv5的input、backbone、neck、prediction板块如表1所示。
Table 1. Structure comparison of YOLO series models
表1. YOLO系列模型结构对比
相比较于YOLOv3以及YOLOv4,YOLOv5在网络结构的4个部分进行了创新:
1) 输入端部分:采用Mosaic增强数据的方式,并采用一个可调整的锚框,一个可调整缩放的图片;Mosaic是参照仅在两张图像上进行拼接的数据增强的方式(CutMix),选取了四张图片,利用随机排布、缩放、裁剪后的图像进行拼接;
2) Backbone部分:采用Focus和CSP架构;Focus切割图像,在每一章图片中每隔一个像素拿到一个数值,最后在不损失信息的条件下获得二倍下的采样特征图片;CSP在输入block之前,其输入由:通过block计算完成以及通过shortcut进行concatenate的两部分操作组成;
3) Neck部分:使用FPN + PAN结合的结构。是自顶向下是FPN的模式,将特征由高层传输下来;PAN正好完美解决了FPN计算量较大的难题;
4) 预测:在bounding box中使用GIOU_Loss进行补偿回归的损失,其表达式如(1)所示。
(1)
考虑算法需要比较快的检测速度,本文选用YOLOv5系列中的YOLOv5s作为麦穗检测的算法。另外,在训练阶段,对模型进行适当的微调来加快训练及收敛速度 [15]。
3.2. 实验参数设置
训练阶段参数设置:
本算法使用3000张图片中90%作为训练集,采用数据并行的方式进行训练,设置epoch数为300,优化方法为随机梯度下降法(SGD),batch的大小为36,图片的大小为1024。
测试阶段参数设置:
本算法使用3000张图片中的10%作为测试集,在测试阶段,加载训练好的权重文件,设置图片的大小为1024 × 1024。
4. 结束分析
为了验证训练出YOLOv5s模型对麦穗检测的性能,本文在测试集上进行了总体的评估。
4.1. 评价指标
依根据图像识别中目标检测领域常采用的评价检测好坏的指标采用精确率(P)、召回率(R)以及平均精度均值(mAP)三个指标用于检测麦穗检测效果的评价 [16]。
式(2)是精确率和召回率的计算公式:
(2)
其中:
表示实际为正样本,且划分正确的数量;
表示实际为负样本,且划分正确的数量;
表示实际为正样本,但被分为负样本的数量。
mAP的计算公式如式(3)所示。
(3)
其中:N为类别数;
为第i类的平均精确率。
4.2. 算法性能分析
相关研究建立在PyTorch1.7上,基于一个Python3.6语言的深度学习框架。实验平台处理器使用Intel(R) Core(TM) I7-8750H CPU,显卡使用NVIDIA GeForce RTXmobel net2060,内存为16G,操作平台为Ubuntu18.04。为了量化本文使用的YOLOv5算法的性能表现,将YOLOv5,YOLOv3检测算法在麦穗目标检测任务上的Precision、Recall以及mAP@.5作对比,结果见表2。
本文使用的YOLOv5是Precision为78.1%,Recall为85%,mAP@.5为52.1%,3个指标均高于YOLOv3检测算法。
Table 2. Test results of two algorithms on data sets
表2. 两个算法在数据集上的测试结果
4.3. 结果展示
本文利用YOLO一系列算法对麦穗进行目标检测,将进度较高的两种YOLO算法YOLOv3和YOLOv5s比较,检验结果局部展示如图4、图5所示,结果表示,针对麦穗目标检测问题,YOLOv5s相对于YOLOv3准确率更高。
Figure 4. Partial display of YOLOv3 target detection results
图4. YOLOv3目标检测结果局部展示
Figure 5. Partial display of YOLOv5s target detection results
图5. YOLOv5s目标检测结果局部展示
5. 结束语
本实验通过对Global Wheat Head detection (GWHD) dataset2020和AI crowd中GWHD dataset 2021中小麦植株重叠、风动下的图像,采用PIL库对原始数据集进行扩充,利用LabelImg软件对数据进行重新标注,同时提出一种基于YOLOv5s模型,并通过实验与YOLOv3等模型进行对比,结果表明其能有效提高对麦穗识别的精度。该算法让YOLOv3的精确度、召回率、mAP@.5分别提高了4.5%、2.7%,3.1%。
对于目标检测网络来讲,大量的训练数据必不可少。实验中虽已利用GWHD数据集,并利用PIL库对原始数据做了多种数据预处理来进行数据扩充,但由于原始数据的麦穗数据有小麦植株重叠、风动等干扰因素的影响,且麦穗图像场地过于单一,因此即使经过数据增强,本文算法对自然影响因素下的麦穗目标检测结果仍然有待提高。为进一步提高该方法的精度和实用性,后续研究计划拓宽收集数据样本的途径,或利用智能算法GAN等生成数据,增强模型的实用性以及对不同场景的处理能力。
基金项目
国家大学生科技创新训练项目(202111551024)。