论文阅读--使用YOLOv3、YOLOv4和YOLOv5深度学习算法自动检测白葡萄品种葡萄串

Title: Automatic Bunch Detection in White Grape Varieties Using YOLOv3, YOLOv4, and YOLOv5 Deep Learning Algorithms

Abstract: Over the last few years, several Convolutional Neural Networks for object detection have been proposed, characterised by different accuracy and speed. In viticulture, yield estimation and prediction is used for efficient crop management, taking advantage of precision viticulture techniques. Convolutional Neural Networks for object detection represent an alternative methodology for grape yield estimation, which usually relies on manual harvesting of sample plants. In this paper, six versions of the You Only Look Once (YOLO) object detection algorithm (YOLOv3, YOLOv3-tiny , YOLOv4, YOLOv4-tiny , YOLOv5x, and YOLOv5s) were evaluated for real-time bunch detection and counting in grapes. White grape varieties were chosen for this study , as the identification of white berries on a leaf background is trickier than red berries. YOLO models were trained using a heterogeneous dataset populated by images retrieved from open datasets and acquired on the field in several illumination conditions, background, and growth stages. Results have shown that YOLOv5x and YOLOv4 achieved an F1-score of 0.76 and 0.77, respectively , with a detection speed of 31 and

32 FPS. Differently , YOLO5s and YOLOv4-tiny achieved an F1-score of 0.76 and 0.69, respectively , with a detection speed of 61 and 196 FPS. The final YOLOv5x model for bunch number, obtained considering bunch occlusion, was able to estimate the number of bunches per plant with an average error of 13.3% per vine. The best combination of accuracy and speed was achieved by YOLOv4-tiny , which should be considered for real-time grape yield estimation, while YOLOv3 was affected by a

False Positive–False Negative compensation, which decreased the RMSE.

Keywords: viticulture; early yield estimation; real-time detection; cluster detection; smart farming; crop load mapping; yield estimation; precision viticulture; agricultural robot

题目:使用YOLOv3、YOLOv4和YOLOv5深度学习算法自动检测白葡萄品种葡萄串

摘要:在过去的几年里,人们提出了几种用于目标检测的卷积神经网络,其特点是精度和速度不同。在葡萄栽培中,产量估计和预测被用于有效的作物管理,利用精确的葡萄栽培技术。用于目标检测的卷积神经网络代表了葡萄产量估计的一种替代方法,该方法通常依赖于人工采集样本植物。在本文中,评估了六个版本的You Only Look Once(YOLO)对象检测算法(YOLOv3YOLOv3 tinyYOLOv4YOLOv4 tinyYOLOv5xYOLOv5s),用于葡萄的实时串检测和计数。这项研究选择了白葡萄品种,因为在叶子背景上识别白色浆果比识别红色浆果更难。YOLO模型使用异构数据集进行训练,该数据集由从开放数据集检索的图像组成,并在几个照明条件、背景和生长阶段的现场采集。结果表明,YOLOv5x和YOLOv4的F1得分分别为0.76和0.77,检测速度分别为31和32FPS。不同的是,YOLO5s和YOLOv4 tiny的F1得分分别为0.76和0.69,检测速度分别为61和196 FPS。考虑到束遮挡,获得的束数的最终YOLOv5x模型能够估计每株植物的束数,每株葡萄的平均误差为13.3%。YOLOv4 tiny实现了精度和速度的最佳组合,这应被考虑用于实时葡萄产量估计,而YOLOv3受到假阳性-假阴性补偿的影响,这降低了RMSE(Root Mean Square Error,均方根误差)。

关键词:葡萄栽培;早期产量估算;实时检测;聚类检测;智能农业;作物负荷图;产量估算;精准葡萄栽培;农业机器人

作者:Marco Sozzi 1,* , Silvia Cantalamessa 2 , Alessia Cogato 3 , Ahmed Kayad 1 and Francesco Marinello 1  

作者单位:

1 Department of Land Environment Agriculture and Forestry , University of Padova, 35020 Legnaro, Italy;

2 Department of Agronomy , Food, Natural Resources, Animals, and Environment, University of Padova,35020 Legnaro, Italy;

3 Department of Agricultural, Food, Environmental and Animal Sciences, University of Udine,33100 Udine, Italy;

* Correspondence: marco.sozzi@unipd.it

文章出处:Multidisciplinary Digital Publishing Institute(MDPI)--AGRONOMY-BASEL

出处杂志的影响因子:3.949(2021年)

与YOLO相关的技术点:

研究目的:

评估了六个版本的You Only Look Once(YOLO)对象检测算法(YOLOv3、YOLOv3 tiny、YOLOv4、YOLOv4 tiny、YOLOv5x和YOLOv5s),用于葡萄的实时串检测和计数

1.引言

在过去的几年里,数字农业(DA的出现使农业活动产生的每公顷数据量呈指数级增长。卷积神经网络是用于计算机视觉和图像理解的最重要的DL模型之一。CNN基于三种类型的神经层:(i)卷积层,对整个图像进行卷积;(ii)池化层,其减少用于下一个卷积层的输入数据的空间维度;以及(iii)全连接层,它们是神经网络的高级推理层。CNN可用于分析、组合和提取图像的颜色、几何和纹理特征,从而能够解决分类、定位和对象检测问题

物体检测是一种结合了图像分类和物体定位的计算机视觉技术。

对象检测模型主要基于两个不同的框架:第一个基于区域建议和将每个建议分类为不同的对象类别,第二个将对象检测作为回归或分类问题。

区域建议对象检测模型的示例是R-CNN、Faster R-CNN和Mask R-CNN

基于回归/分类的模型的示例为YOLO和Single Shot Detector(SSD)

区域建议模型通常比回归/分类更准确,但由于区域建议步骤的原因,速度较慢。

基于区域的卷积神经网络(R-CNN)基于三个模块:(i)区域建议使用选择性搜索来定义检测器可用的一组2000个候选检测,(ii)CNN从每个区域提取固定长度的特征向量,以及(iii)一组特定类的线性支持向量机;

在Faster R-CNN中,区域建议模块被改进为更快,与检测层共享全图像卷积特征,并降低了区域建议的计算成本[12]。Mask R-CNN是Faster R-CNN的一个实现版本,它允许以较小的计算开销对对象进行语义分割

       另一方面,SSD使用单个DNN将输出边界框识别为一组默认框。在类预测期间,网络估计类对象包含在框中的概率。SSD由一系列卷积和池化层组成,以生成不同尺度的特征图,同时预测边界框和对象类别,速度比R-CNN快,精度有竞争力。

1.1 葡萄栽培中的产量估算与产量预测

葡萄产量受到几个因素的影响,如生长面积、天气和土壤条件、品种、砧木和葡萄藤异质性。

在过去的十年里,精准葡萄栽培的引入为产量监测和预测带来了新的机会,利用了几个近端和远程传感器。来自遥感数据的空间变异性信息被用于探索几种植被指数与葡萄产量之间的相关性。遥感植被指数可用于识别风土和胁迫条件的具体特征,特别是考虑到其成本效益。近端传感器被广泛用于精密葡萄栽培,并且存在多种工具来监测植被的生理反应和产量。尽管光谱传感器可用于估计葡萄产量及其成分,但三维估计方法在估计葡萄产量方面显示出更高的准确性。

最近几年,ML被应用于葡萄产量预测。一些传感器可以利用ML算法,例如光谱和热像。ML方法结合了颜色、几何和纹理特征,以更好地利用所获取的图像。提出了不同的ML算法用于束和浆果的检测。如使用在自动获取的图像上实现的人工神经网络来预测葡萄园的早期产量,利用颜色特性用于评估葡萄串的紧密度和质量。有人使用无监督分类来识别3D点云中的葡萄藤,还有人使用Mask R-CNN进行葡萄检测、分割和跟踪,取得了优异的结果(F1数值达到0.91), 后者将目标检测与实例分割相结合,从而获得高精度但低检测速度。尽管在产量估计方面取得了可喜的成果,但仍有一些缺点需要解决。具体而言,植物上水果的不同聚类和可变光照条件是限制水果检测和定位准确性的主要挑战。

上述几种方法的作者在红葡萄品种上训练了他们的算法,因为基于颜色特征的检测更容易

1.2 YOLO框架

在YOLO算法中,以较低的分辨率调整图像的大小;然后,单个CNN在图像上运行,根据模型的置信阈值给出检测结果作为输出。对YOLO的第一个版本进行了优化,以减少平方误差之和(损失函数)。这种优化提高了检测速度,但精度低于最先进的物体检测模型。

在YOLO中,实现了在线数据增强,增加了输入图像的可变性,以提高模型在不同环境下对象检测的鲁棒性。YOLO模型被应用于许多需要快速检测的应用中,如行人检测、车牌识别和织物缺陷的自动检测。在农业中,YOLO的应用范围包括水果检测、作物疾病鉴定以及杂草和害虫鉴定。YOLO的水果检测应用主要基于苹果园,在葡萄串检测中的应用仍然缺失

1.3 YOLOv3

YOLOv3用交叉熵损失函数代替先前YOLO版本的均方误差。

交叉熵函数随着模型计算的预测概率与实际类别的差异而增加。YOLOv3利用Darknet-53网络进行特征提取,该网络依赖于53个卷积层。YOLOv3使用逻辑回归而不是softmax分类器来预测每个边界框的对象类别。

YOLOv3可以使用三个不同的YOLO分类器层来预测不同尺度(小、中、大尺寸)的盒子。对于这三层中的每一层,都定义了三个锚点,向模型提出了长方体的纵横比、位置和尺寸。

YOLOv3 tiny基于Darknet-19网络,该网络依赖于19个卷积神经网络。YOLOv3 tiny可以使用两个YOLO分类器层预测两个不同尺度的盒子。对于这些层中的每一层,都定义了三个锚点。

在YOLOv3模型中,可以使用饱和度、曝光、色调、模糊、裁剪和纵横比数据增强方法。

1.4 YOLOv4

YOLOv4基于CSP Darknet-53。跨阶段部分连接(CSP)将输入特征分为两组:一组由卷积层处理,而第二组绕过卷积层并包含在下一层的输入中。

YOLOv4中提供了其他数据增强方法,如mosaic和cutmix。在马赛克中,通过以特定比例对四个输入图像进行组合来生成增强图像。在剪切混合中,使用输入图像的一部分创建一个新图像。

与以前的版本相比,YOLOv4具有更多的层。YOLOv4模型的损失函数是一个完整的IoU,它优化了预测边界框的重叠面积、中心点距离和纵横比。在YOLOv4-mini中,层数被压缩,并且只使用两个YOLO分类器(都有三个锚盒)。

1.5 YOLOv5

YOLOv5的主要优势在于使用Python语言而不是C。YOLOv5的原生框架是PyTorch,它允许更快的训练。就性能指标而言,YOLOv5允许以与YOLOv4相同的精度进行快速检测。同样,从以前的版本来看,YOLOv5以不同的尺寸(s、m、l和x)发布,具有不同的检测精度和速度。

根据所呈现的特征,YOLOv3YOLOv4YOLOv5模型的特征在于不同的维度(层数和复杂性)、平均精度、检测速度和训练

YOLO在水果检测中的许多应用被提出,但对YOLO在葡萄丛检测中的应用进行的研究数量有限。在本研究中,对YOLOv3、YOLOv4和YOLOv5模型在白葡萄中的自动串检测进行了比较。

白葡萄品种的特征是颜色特征与周围的叶子背景相似。在这种环境下,葡萄串检测变得更加复杂,但可能适用于任何品种开花后的早期阶段(在浆果veraison之前,注释:véraison是一个法文的单词。意思是葡萄水果的颜色和时间开始转变)。对于每个版本,都对完整模型及其微小版本进行了评估。

在YOLOv5中,对“x”和“s”版本进行了评估。给出了该框架和训练数据集。然后描述了一个新的用于束图像的开放数据集。在外部数据集(验证)上评估训练后的模型的准确性和识别对象的数量。最后,介绍了这些模型的潜在应用。

2. 材料和方法

2.1 数据收集和标签

本研究中使用的最终数据集由从OIDv6和GrapeCS ML收集的图像组成,并添加了在意大利不同地区(伦巴第、埃涅托和马尔凯)的六个实验葡萄园采集的现场图像。

用于模型训练的数据集由2931幅图像组成,分为两组数据:训练数据和测试数据,分别占训练过程中使用的图像的66.6%和33.3%。此外,选择了54张具有实际记录束数的图像作为外部验证数据集,用于评估模型的性能。选择外部验证数据集是为了减少验证过程中过度拟合对测试数据集的影响。表1总结了最终数据集的组成。使用外部验证数据集验证的模型的结果使该领域的实际应用程序的验证更加可靠,即使验证指标较低。

 数据标注(称为标签)是深度学习的基本组成部分,它直接影响模型的学习能力。从上述数据集收集的图像被手动标记,使用Yolo_label V2项目[56]在图像中的每一束上绘制边界框。Yolo_label允许使用Yolo标签格式为对象检测算法创建注释(标签),该格式由每个对象的五列(对象类、x、y、宽度和高度)组成。由于只使用了一个类(束)来标记本研究的数据集,所有标记文本文件都以0开头,这是Python中第一个索引的标识。

2.2 训练测试并验证

       YOLO模型(v3、v4和v5)使用所描述的数据集进行单独训练。表2总结了训练所用的参数设置。

       可以使用几种性能度量来评估从测试数据的分类模型中获得的混淆矩阵。在本研究中, F-1分数代表精确度和召回率的调和平均值,此外,平均精度(mAP)被用作性能指标。mAP总结了平均检测精度,并表示在定义的IoU值下的精度-召回曲线下的面积。mAP@50表示精度-召回曲线下的区域,重叠边界框的等级为50%。在测试和验证数据集上对性能指标计算进行了评估。使用在Darknet和PyTorch中实现的函数计算混淆矩阵和性能指标。使用GraphPad Prism 8.0.2和Microsoft Excel进行比较和绘制图表。验证数据集最终用于比较束检测。利用验证数据集中现场计数的实际束数,对估计的束的实际数量进行了评估。

3. 结果

利用所提供的配置,对每个YOLO模型进行了训练过程。在训练过程中,在测试数据集上自动估计模型的性能。

       YOLOv3tiny和YOLOv4tiny都需要大约3.5小时才能训练6000个时期,而YOLOv3和YOLOv4全模型分别需要大约15和16.5小时。YOLOv5-s的训练时间为4.66小时,而YOLOv5-5的训练时间则为7小时,mAP@50的最大值由YOLOv5x达到,数值达到76.1%。 YOLOv5s达到了微小模型的最佳mAP@50值(73.1%)。

       在训练过程中,产生了损失和mAP图(图1)。在YOLOv3tiny中,YOLOv3、YOLOv4和YOLOv4的微小损失和mAP在约1800个时期(约占总训练的30%)后达到稳定值。不同的是,PyTorch模型(YOLOv5)在约10个时期后达到稳定值,约占总训练时期的10%。

 

3.1 验证数据集的准确性评估

验证数据集由54张图像组成,其中记录了实际束数,使用先前训练的最佳束检测模型进行分类。对F1得分和mAP@50数值进行比较。此外,根据每个模型的每秒帧数(FPS)来评估检测速度,以研究使用先前训练的模型进行实时检测的机会。

图2显示了F-1评分的结果,以及mAP@50图像数据集中包含的对象(束)的比较,可以看出YOLOv5x的mAP@50数值最高,F1得分第二。相反,YOLOv4的F1得分最高,mAP@50数值第二。YOLOv5s模型的表现优于YOLOv3 tiny和YOLOv4 tiny,显示出与完整模型相似的指标,由于度量是从数据集中对象(束)的总数中提取的,因此无法进行方差分析。

       图3中展示了检测时间的对比,使用所有模型评估每个图像的检测时间,单向方差分析和Tukey的多重比较检验显示,模型之间存在静态显著差异。v3 tiny, v4 tiny, v5s, v3, v4, 以及v5x模型的平均检测速度分别是200,196,61,35, 31和32FPS(Frames per second,帧率)

3.2 精度-召回曲线和最佳置信阈值定义

对象检测中的置信阈值表示估计的边界框包含对象的概率。在迄今为止进行的所有分析中,使用了0.25的置信阈值,因为它代表了YOLO模型的基准值。图4A显示了每个YOLO模型的精度-召回曲线。曲线下的面积是用mAP@50进行估计的,在图4B中,对置信阈值进行了调整,以获得每个模型的最佳F-1分值。根据该优化,v3 tiny、v4 tiny、v5s、v3、v4和v5x模型的最佳置信阈值分别为0.14、0.12、0.10、0.11、0.15和0.10。

3.3 对束的真实数量进行估计的验证

针对置信阈值优化的模型最终用于检测验证数据集图像中的束的真实数量(RNoB),并记录束的实际数量。通过应用校正系数来估计被其他藤蔓结构覆盖的束,部分克服了束遮挡问题。未被其他藤本结构覆盖的可见束的百分比(%VNoB)被定义为可见束数(VNoB)除以现场计数的RNoB。

表4总结了计数图像的验证结果。RNoB上TP束的平均百分比表示总数中被阳性识别的束的数量,它与F-1分数一起使用,以突出模型精确识别束的准确性。与v3相比,v4模型(full and tiny)中RNoB上TP束的平均百分比更高。v4 tiny和v3的特征在于相同的F-1得分。根据均方根误差(RMSE)和平均绝对误差(MAE)计算估计误差。与MAE相比,RMSE的总体较高值突出了在每个图像上计算的单个误差的方差。RNoB上的束检测和真阳性(TP)百分比的示例如图5和附录A所示。

 

4. 讨论

       与其他模型相比,YOLOv4的训练时间要大很多,YOLOv5x能获得mAP@50和F-1最高分,由于模型的复杂性更高,完整模型(v5x、v4和v3)的训练时间显著高于微小模型(v5s、v4tiny和v3tiny),YOLO的3,4,5完整版和微小版本相比,tiny版本和v5s的 F-1平均增量高于完整版(微小版和完整版分别为+0.085和+0.025)。后一点表明,聚类识别的复杂性呈指数级增长。对损失图的分析表明,在本研究中使用的6000和100个时期之前,训练可能会停止。事实上,在YOLOv3、YOLOv3tiny、YOLOv4tiny和YOLOv4的情况下,模型达到了约1800的稳定损失值。同样,YOLOv5模型在大约10个时期后达到了稳定值。即使在用低计算能力训练的模型的情况下,所需的训练时间的减少也允许优化训练(例如,在CPU而不是GPU上训练)。

在训练期间生成的性能结果是在测试数据集上获得的,测试数据集是与训练数据集相同的本地数据集的一部分。为了正确验证训练的模型,使用了验证数据集(由外部未知图像组成)。在这个数据集上,F-1得分和mAP@50在v5x和v4模型中更高。v4tiny和v3完整型在F-1方面取得了类似的结果,而mAP@50在v3完整模型中更高。

在mAP@50和F1得分上YOLOv5s的表现均低于YOLOv4和YOLOv5。F-1分数和mAP@50在验证数据集上比在测试数据集上更高,因为验证数据集仅由表示葡萄冠层侧面的田间图像组成。相比之下,测试数据集甚至由从葡萄园采集的图像组成,并且只代表最前沿的一束图像。在检测时间方面,每个模型都表明,检测速度允许在虚拟机上进行实时束检测,因为所有模型的检测速度都高于30 FPS(图6)。YOLOv4微小和YOLOv3微小显示出约200 FPS的检测速度,而YOLOV5 s达到约61 FPS,YOLOv3、YOLOv4和YOLOV5 x显示出约31 FPS的检测速率,这样的结果可以在利用云计算的现场应用过程中找到。因此,在计算能力较低的便携式处理系统的情况下,应该首选YOLOv4inty模型。这项研究的结果证实了检测时间和度量性能之间的反比关系。针对不同任务训练的YOLOv3、YOLOv4和YOLOv5模型之间的比较显示出相似的结果(YOLOv4中检测最快,YOLOv5中mAP最好);然而,YOLOv4的更好的鲁棒性被强调了出来。根据Yang等人[53]的说法,YOLOv5可能显示出与YOLOv4相同的准确性。Lema等人的研究发现,,不使用未知的外部验证数据集情况下,使用YOLOv5可以获得mAP@50最大值。

验证置信阈值的优化突出了所有模型中F-1得分在0.1和0.2之间的峰值。然而,v5x、v5s和v4模型的置信阈值曲线显示F-1得分的峰值更宽,稳定在置信阈值的0.1-0.3范围内。将模型检测到的束数与实际束数进行比较进行的现场验证显示,YOLOv3tiny和YOLOv4tiny中的RMSE和MAE更高。考虑到真阳性束在实际束数中的平均百分比,YOLOv4再次确认了与YOLOv3模型相比更高的性能,而YOLOv5在所有指标上都优于其他模型。YOLOv3显示出真阳性束的平均百分比在实际束数上的最差值,而RMSE和MAE都低于所有其他模型。后一种情况可能是评估方法的结果,仅基于束的数量。在束识别过程中,YOLOv3模型的准确性较低,导致假阳性数量较高,这些假阳性被计入束的总量(方程(2)中的DNoB),有时会补偿假阴性。另一方面,显示出更高准确性的YOLOv5和YOLOv4模型受这种补偿的影响较小,即使检测到更高数量的真阳性,也能提供更高的RMSE和MAE。

这项研究中开发的模型是在白葡萄品种上训练的,这些品种的叶子背景和浆果的特征是相似的颜色。据此,所提出的模型可能在生长季节的早期阶段有效,甚至在红葡萄品种中也是如此。尽管如此,本研究中开发的最佳模型是YOLOv5x,它受到每张图像约2.8束的误差的影响,每张图像有两个葡萄藤。考虑到验证数据集上的平均实际束数(10.5束/株),平均百分比误差为13.3%。Nuske等人的研究发现,平均百分比错误在3%至11%之间;然而,它是基于在夜间使用人工照明获取的图像,以标准化光照条件。束计数中的假阳性-假阴性补偿代表了所提出的物体检测模型的局限性,应该更好地进行研究,并对遮挡束进行校正。

可以使用从不同位置获取的图像,以便通过使用捕获-再捕获模型来实现更好的度量性能。这些模型在白葡萄串计数中被证明是有效的,突出了在葡萄栽培应用中使用和正在开发的机器人平台中的潜在应用。在后一种情况下,由于束的数量与产量的空间变异性密切相关,因此可以使用自动化系统进行产量评估。此外,可以通过使用历史束重数据将束的数量转换为产量(果实负荷,kg/葡萄藤)。

5. 结论

对象检测代表了深度学习在农业中的一个很有前途的应用,因为它可以应用于几个问题,如植物表型、疾病识别和产量估计。在葡萄栽培中,传统的产量估计通常基于人工收获样品植物,这是一项耗时的任务。自动计数的实现将减少葡萄产量估计的时间。在目前的研究中,对四个版本的You Only Look Once(YOLO)对象检测模型进行了训练和评估,用于白葡萄中的实时串检测和计数。YOLO模型使用异构数据集进行训练,该数据集由作者从开放数据集检索的图像填充。根据验证结果,YOLOv5和YOLOv4获得了更高的F-1分数mAP@50与YOLOv3模型相比。

基于实束数量的验证表明,YOLO模型能够检测到实束葡萄藤数量的58%至83%(真阳性)。最终估计,包括对阻塞束和F-1评分的校正,受到假阳性-假阴性补偿的影响,这降低了YOLOv3模型的误差。根据这些考虑,YOLOv5x在正确检测束方面表现出最佳性能,而YOLOv4实现了良好的结果,但检测速度较低。YOLOv5x能够估计每株植物的束数,平均误差为13.3%。尽管YOLOv5x显示出允许实时检测的检测速度,但现场应用可能需要更高的检测速度。在这项研究中,YOLOv4 tiny实现了精度和速度的最佳组合。为了使目标检测算法对葡萄栽培更有效,应该更好地研究叶片遮挡和假阳性-假阴性补偿。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值