重庆三峡学院机械工程学院 唐跃明
果业是我国重要的农业种植产业,其种植面积及产量稳居世界首位,在农业中占有重要地位。目前,在果园生产管理过程中主要实现方式依然是人工,存在费时费力且效率低等缺点,因此迫切需要相应的果园机器人实现效率与速度的提升[1]。树干是果园中重要的特征之一,实现机器人对树干准确识别对于果园机器人尤为重要。
近年来,基于传统图像处理或深度学习方法的树干识别研究越来越多,推动了相关产业的发展[2-3]。顾宝兴等[4]把采集到的图像输入到改进的YOLOv3 模型中实现了果树树干的识别与定位。刘慧等[5]利用深度相机采集树干图像,利用超像素算法对图像进行分割,融合深度与纹理相近的超像素块,对深度图像进行宽度检测并保留一定阈值内的超像素块,最后进行色调匹配以判断是否为树干。
上述方法虽然能识别出树干,但是在速度以及精度上仍有待提高。为了实现更准更快识别果树树干,本文以YOLOv5 为基线进行改进,提出一种又快又准的树干检测模型——YOLOv5-SR。
当前常见深度学习的目标检测模型大概分为one-stage 和two-stage 两种。two-stage 模型将识别分为两个阶段,第一阶段生成候选的对象区域,第二阶段对这些候选区域进行分类和边界框回归,这类模型一般有R-CNN、Fast-RCNN、Faster R-CNN 等。one-stage 模型将目标检测问题视为单一的回归问题,直接输出目标的类别和位置信息,这类模型一般有SSD 算法、YOLO 等。本文考虑到场景对实时性的要求,选择one-stage 类的YOLOv5 模型,此模型具备高准确率的同时还保持着高速检测。
YOLOv5 网络结构主要由Backbone、Neck 和Head三部分组成。其中Backbone 是通过卷积层、池化层等提取从输入图像中的特征;Neck 是连接Backbone 与Head 的模块,主要作用是在Backbone 提取的特征基础上,获取更高级的语义信息和适应不同尺度图像的能力;Head 则可实现把不同尺度的特征进行融合和转换,捕捉更高层的语义信息和上下文关系,并实现最终的目标分类和边界框回归。
在本文中,模型的精度和速度都十分重要,速度的不足可能会导致延迟响应,精度的不足则可能导致错误的操作。为了实现果园机器人在复杂的工作环境中的高效准确运行,本文对YOLOv5 进行优化,优化后的模型不仅能提升精确度还能提升速度。
改进的YOLOv5 结构如图1 所示。本文在YOLOv5模型的Backbone 中引入轻量级的RepVGG 模块,不仅增强了模型的特征提取能力,还能降低模型在推理时所需的计算量,从而加快了模型的速度。我们在SPPF模块后面引入了SimAM注意力机制,在不增加额外参数量的情况下,进一步加强模型对特征的提取,提升检测精度。
图1 改进模型网络结构图
本文向YOLOv5 模型中引入RepVGG 模块,以RepVGG 模块替代Backbone 中的部分C3 模块,旨在通过这一改进,在维持检测精度的前提下,显著提升模型的检测速度。
RepVGG 网络结构是由DING Xianhan 提出的一种轻量高效的卷积网络结构,其结构重参数化实现了训练和推理的解耦,即在训练期间利用多分支的结构以增强表征能力,而在推理期间将这些分支合并成一个等效的单一卷积层,加快了推理速度。
RepVGG 训练和推理结构如图2 所示,在训练时为每一个3x3 卷积层添加平行的1x1 卷积分支和恒等映射分支构成一个RepVGG Block,而训练完成之后将模型等价转换成类似vgg 网络的单路网络以实现加快推理速度[6]。这在一定程度上提高了模型精度与模型推理速度。
图2 RepVGG 训练图及推理图
SimAM注意力机制是Lingxiao Yang 等提出的一种简单有效的注意力模块。SimAM注意力机制与现有的通道、空域注意力机制不同,该注意力机制在没有引入参数的情况下更加注重三维特征权重,可以实现更加全面、高效的平衡特征重要性[7]。
为了模型更具有全局视野,更深入地理解整个图像场景,从而获取更丰富的全局上下文信息,本文将SimAM注意力机制放置于Backbone 中的SPPF 模块之后。此举旨在充分利用SPPF 模块提取的多尺度空间特征,通过SimAM 的注意力机制进行优化,从而实现特征提取阶段更加聚焦于有助于检测任务的信息,提升模型对目标的判别和定位能力,进而提高整体的检测性能。
本文实验使用台式计算机,运行环境为Ubuntu 22.04.3 LTS,CPU 型号为Intel (R)Core (TM)i7-9700K CPU@3.60GHz,GPU 为NVIDA GeForce RTX 2080 Ti,深度学习环境搭载于CUDA11.5 和pytorch1.7.1。
网络训练参数设置中,迭代次数为150 轮,初始学习率为0.01,权重衰减系数0.005,动量为0.08。
本文采用的评价指标主要包括准确率、召回率、平均精度均值、参数量、单张图像处理时间。其中准确率指在预测为正的样本中,实际为正样本的比例,能反映出模型在预测为正时的准确性;召回率指在所有实际为正的样本中,被正确预测为正的样本的比例,能反映出模型找出所有实际为正样本的能力;平均精度均值则是综合了准确率和召回率评估结果的准确度;参数量是指模型中所有可训练参数的总数,代表了模型的复杂程度;单张图像处理时间可表示模型处理图像的速度,反映了模型实时性能。
为验证本文模型各改进方法的有效性,在相同的硬件设备、相同数据集、相同模型参数下进行消融实验,结果如表1 所示。在YOLOv5s 模型的基础上再加入RepVGG 模块之后模型的参数量28.67M,mAP 为0.754,单张图像处理时间为6.0ms;在YOLOv5s 原模型上添加SimAM注意力机制之后,参数量26.77M,mAP上升了0.029,其单张图像处理时间为6.4ms;通过将RepVGG 模块以及SimAM 注意力机制融合加入到YOLOv5s 模型中后可以发现,参数量为28.17M,mAP达到了0.813,单张图像处理时间仅5.7ms。实验结果表明,本文在引入了RepVGG 模块以及SimAM注意力机制之后,模型参数量虽有所上升,但是得益于RepVGG的结构重参数化以及SimAM 注意力机制使得图像处理速度与精度大大提升,对于模型提升性能确实行之有效。
表1 消融实验
为了进一步验证本文改进的模型的优势,将本文模型与SSD、YOLOv4、YOLOv3 等主流目标检测算法在上文所提的条件下进行对比实验,并选择P、R、mAP、参数量等性能指标作为对比指标,实验结果如表2 所示。由表2 可知,本文算法在mAP 上达到了0.813,相比较于SSD、YOLOv3、YOLOv4 以及Faster R-CNN 等算法都高,表明本文算法在精度要求上有一定优势。而且在参数量以及处理速度方面,本文算法相比较于其他算法也更具有优势,说明本文算法在实时目标检测方面相较于其他模型更具有优势,而且更容易实现模型的部署。
表2 对比实验
综上所述,本文所改进的果园果树树干目标检测任务中实现了较高的mAP、较快的处理速度以及较低的参数量和计算量,说明本文算法凭借着高精度以及高速度的优势基本能实现果园果树树干目标检测任务。
本文针对果园果树树干识别检测提出了一种以YOLOv5 为基线的高精度实时目标检测模型。在本文中采用了结构重参数化技术的RepVGG 模块来替换网络中原有的C3 模块。这一关键改进极大提高了模型的推理速度,从而确保了模型即时响应需求。此外,我们引入了SimAM注意力机制。这一机制的加入使得模型对复杂果园环境拥有更全面的理解能力,更强的特征提取能力,使得模型在精确检测果园中的树干方面获得了显著提升。通过实验结果分析,本文所改进后的模型算法,实现了高精度、高速度,基本符合果园机器人作业要求,为进一步研发更智能的果园机器人提供了一定帮助。