基于改进YOLOv5+DeepSort 的柑橘果实识别与计数研究*

2023-07-21 10:36庄昊龙周嘉灏林毓翰彭海深林宏宇
南方农机 2023年15期
关键词:柑橘计数准确率

庄昊龙 ,周嘉灏 ,林毓翰 ,彭海深 ,林宏宇

(1.华南农业大学数学与信息学院、软件学院,广东 广州 510642;2.华南农业大学电子工程学院(人工智能学院),广东 广州 510642;3.华南农业大学工程学院,广东 广州 510642)

0 引言

社会的发展越来越趋向于智能化与自动化,农业机械化也成为当前发展的主要趋势,科学利用计算机视觉辅助技术来实现对农作物的农情检测及精确识别,有助于更好地预测农作物产量。柑橘作为我国南方的常见水果,年产量一直在稳步上升。为实现对柑橘果实产量的精准预测,研究柑橘果实的识别算法和计数算法就显得尤为重要。

传统的水果检测识别技术通常是对水果的纹理、颜色、形状等外表特征进行提取和识别[1],这些方法通常具有一定的环境适应缺陷性和主观性。而深度学习算法具有较好的适应性及较高的识别率,正在不断成为主要的检测技术。许多研究者陆续研究出了如R-CNN算法[2]、Faster R-CNN算法[3]、SSD算法[4]、YOLO 系列算法[5]等。在计数方面,DeepSort 算法[6]是目前较为成熟的目标计数算法,其相比于传统的Sort 目标计数算法[7],具有提升目标被环境等其他因素遮挡情况下的计数效果的优点[8]。因此,项目组采用YOLO系列的YOLOv5算法作为检测器,并在其中加入了SE 注意力机制对其进行改进,使其对柑橘果实具有更好的识别效果。同时,再结合DeepSort算法就可对柑橘果实进行计数,结果显示,其平均识别准确率为93.712%、平均多目标跟踪准确率为88.465%。

1 YOLOv5算法

1.1 YOLOv5算法原理

YOLOv5 是目前主流的一阶段目标检测算法,按模型量级可分成YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。其中,YOLOv5x 模型的量级最大,所需要卷积的网络深度最大,速度最慢。基于实际场景需求及配置,最终采用YOLOv5s 模型来对柑橘果实进行识别。YOLOv5s 主要由输入(Input)、主干(Backbone)、颈部(Neck)和输出(Output)四个部分组成,其结构框图如图1 所示。

图1 YOLOv5s结构框图

1)对于输入(Input)部分,其主要是将图片统一调整为640×640 三通道格式,并将调整后的图片送入主干(Backbone)部分中。

2)对于主干(Backbone)部分,其主要包括Focus结构、Conv 结构、CSP 结构、SPP 结构和Res 结构。Focus 结构主要对图片进行了切片操作,从而将通道数扩展了4 倍,其可在保证图片信息不丢失的同时提高后续的计算速度。Conv 结构主要对图片进行卷积的操作,并结合非线性的激活函数将激活的特征信息引入到更深的网络中,从而提高网络的表达能力。CSP 结构主要对图片进行残差卷积的操作,其可以避免在网络加深时出现梯度消失的现象,并且也可以更好地提取目标的特征信息。SPP 结构主要通过四个池化核来分别进行池化处理,最后将池化结果进行相加以实现多尺度融合,从而可得到更多尺度的特征信息。而Res 结构主要包括Conv 结构和CSP 结构两个部分,从而实现多次卷积操作。

3)对于颈部(Neck)部分,其主要包括Conv 结构、Up_S 结构、Down_S 结构和Con_CSP 结构。Up_S 结构主要实现上采样的操作,Down_S 结构主要实现下采样的操作,Con_CSP 结构主要实现相加与残差卷积相结合的操作。颈部(Neck)部分整体可看作是FPN+PAN 结构,其可更为精准地传递目标的特征信息。在FPN 结构中,其主要实现将特征信息从高维度向低维度传递;在PAN 结构中,其主要实现将特征信息从低维度向高维度传递。所以结合FPN 结构与PAN 结构就可更清楚地定位大目标与小目标的相关特征[9]。

4)对于输出(Output)部分,其主要分为3 个Head 结构。Head 结构主要通过损失函数与非极大抑制的计数,从而在图片中输出各目标的类别及其置信度得分,同时输出各目标预测边框的对应位置。

1.2 YOLOv5算法的改进

1.2.1 SE注意力机制介绍

SE 注意力机制是一种轻量级的注意力检测机制,其主要通过在原特征网络中加入SE 模块从而使模型更聚焦于重要的特征信息,即主要为提高模型的专注度,从而起到特征信息加强的作用[10]。

SE 注意力机制主要分为压缩(Squeeze)、激励(Excitation)和估算(Scale)三个步骤,如图2 所示。压缩(Squeeze)步骤主要通过全局平均池化对特征图的高度信息和宽度信息进行压缩,从而使各通道数据凝集为一个数值;激励(Excitation)步骤主要通过FC全连接层来判断每个通道的重要程度,并给每个通道赋予其对应的权重;估算(Scale)步骤则通过将通道的权重与原特征图相乘,从而在不改变维度的情况下凸显更多的特征信息。

图2 SE注意力机制

1.2.2 YOLOv5主干部分改进

在YOLOv5 算法中,为了捕获到更多的特征信息,本研究通过将S E 注意力机制添加到主干(Backbone)部分最后的CSP 层与SPP 层的中间,如图3 所示,从而在主干部分即可获得更多重要的特征并传入后续的网络中进行进一步的处理。

图3 主干部分改进

2 DeepSort算法

2.1 DeepSort算法原理

D e e p S o r t 算法是主要用于进行多目标跟踪(Multiple Object Tracking, MOT)的算法。DeepSort算法是Sort 算法的改进版本,即在Sort 算法的基础上增加了级联匹配和状态的确定,从而可以实现对目标进行比较稳定的追踪。DeepSort 算法核心部分为卡尔曼滤波、匈牙利算法[11],卡尔曼滤波的主要作用是预测下一帧时目标框所在的新位置,匈牙利算法的主要作用是实现将卡尔曼滤波得到的新目标框与目标检测得到的新预测框进行级联匹配和IOU匹配,从而实现对每个目标的追踪,并且每个目标都会有一个对应的ID编号。

2.2 DeepSort算法结合改进YOLOv5算法

本研究采用DeepSort 算法结合改进YOLOv5 算法的方式,主要实现改进YOLOv5 算法对目标进行检测,而DeepSort 算法则对改进YOLOv5 算法检测到的结果进行追踪及计数,具体步骤如下。

1)把视频按帧数进行分解后,将每一帧的图像送入YOLOv5 算法中对所需要检测的目标进行识别并输出其对应预测框的信息。

2)将该预测框的信息送入DeepSort 算法中以实现在原图像中将每个目标裁剪出来,从而提取其表观特征和运动特征。

3)将相邻两帧的目标进行匹配,从而给每个目标一个单独的ID编号。

3 数据集情况

本研究所采用的数据集是在柑橘种植园从多场景拍摄的图片,共有7 272 张图片,其可真实反映柑橘果实存在的大小不一致及部分被树叶遮挡的情况,同时也有涉及在不同光线下对柑橘果实进行拍摄的相关图片。将该数据集进行划分,选取5 926 张图片作为训练集,738 张图片作为验证集,608 张图片作为测试集。

同时,选用LabelImg 软件对该数据集进行标注,设定柑橘果实的标签名字为“Orange”,设定标签的格式为YOLO 格式,从而在标注后可直接生成后缀为.txt的标注文件。

4 实验结果分析

4.1 实验相关环境

实验设备搭载了NVIDIA GeForce RTX 3060-6G显卡以进行GPU 加速,并主要利用Anaconda 创建Python 版本为3.7.13 的虚拟环境,在激活环境后安装CUDA 11.1.1 版本、cuDNN v8.1.1 版本和torch 1.7.1版本,同时进行相关依赖库的安装。

4.2 评价指标

在实验中选用精确度(P r e c i s i o n)、召回率(Recall)和平均识别准确率(Average Precision, AP)作为YOLOv5 的评价指标。选用多目标跟踪准确率(Multiple Object Tracking Accuracy, MOTA)作为DeepSort的评价指标。

精确度(Precision)和召回率(Recall)的公式可表示为:

其中,TP表示被正确检测出来的样本数,FP表示被错误检测出来的样本数,FN表示没有被检测出来的样本数。同时结合只有柑橘果实一种类别,所以平均识别准确率(AP)和多目标跟踪准确率(MOTA)的公式可表示为:

其中,IDSW表示已计数的目标的ID 发生变化的个数,n表示总帧数,i表示当前的帧数。

4.3 实验分析

本次实验中,统一将训练YOLOv5 模型时输入的图片大小设置为640×640,初始学习率设置为0.01,在通过300 次迭代后,选取平均识别准确率最佳的权重文件作为最优权重,最终得到柑橘果实的平均识别准确率为93.712%。同时,通过测试集对比改进前后YOLOv5 算法的检测效果,可得到在加入SE 注意力机制后可以更好地检测出较隐蔽或重叠率较高的柑橘果实,如图4 和图5 所示,说明该改进后的算法可较适应在真实柑橘种植园中对柑橘果实进行识别。

图4 改进前检测效果图

图5 改进后检测效果图

将改进前后YOLOv5 算法训练后得到的评价指标进行对比,得到的结果如表1 所示。

表1 改进前后YOLOv5评价指标对比

由表1 可知,改进后的YOLOv5 算法相比改进前的平均识别准确率提升了1.354 个百分点,并且精确度和召回率也有一定程度的提升,说明改进后的YOLOv5算法对柑橘果实的识别效果更好。

同时,将该改进后的YOLOv5 算法与CenterNet算法、EfficientDet 算法、SSD 算法、YOLOv4 算法、YOLOX 算法进行对比,得到其平均识别准确率的对比结果,如图6所示。

图6 不同算法对柑橘果实的平均识别准确率

从图6 中可看出,改进后的YOLOv5 算法相比其他几种算法在对柑橘果实的平均识别准确率上有较好的表现,可体现出该改进后的YOLOv5 算法可较好地运用于对柑橘果实的识别。

将该改进后的YOLOv5 算法检测出的柑橘果实信息送入DeepSort 算法中,即可实现对柑橘果实的计数,如图7所示。

图7 计数效果图

从图7 中可看出,DeepSort 算法可较好地实现对柑橘果实的计数,其可在图像中显示出当前帧每个柑橘果实对应的ID 号,从而最终可得出在整段视频中柑橘的数量。为研究该算法的稳定性,在10 段视频中分别通过DeepSort 算法对柑橘果实进行计数,并将得到的评价指标进行对比,结果如表2 所示。

表2 DeepSort评价指标对比

从表2 中可计算得,在10 段视频中的平均多目标跟踪准确率为88.465%,说明DeepSort 算法对柑橘果实的计数效果较好。

5 总结

通过采用改进YOLOv5 算法和DeepSort 算法相结合的方式,实现了对柑橘果实的识别及计数。在柑橘果实识别部分,主要基于YOLOv5 算法,通过在主干部分加入SE 注意力机制以实现对算法的改进,从而提高对柑橘果实的识别效果。在柑橘果实计数部分,主要采用DeepSort 算法给予每个柑橘果实单独的ID 编号以实现对柑橘果实的计数。最终得到改进后的YOLOv5 算法对柑橘果实的平均识别准确率为93.712%,相比改进前提升了1.354 个百分点,说明改进后的算法对柑橘果实的识别效果较好。同时,再结合DeepSort 算法即可得到对柑橘果实的平均多目标跟踪准确率为88.465%,说明其可较准确地实现对柑橘果实的计数。

猜你喜欢
柑橘计数准确率
古人计数
吃柑橘何来黄疸——认识橘黄病
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
递归计数的六种方式
古代的计数方法
高速公路车牌识别标识站准确率验证法
这样“计数”不恼人
柑橘大实蝇综合治理