董振华 田娟秀 阮志
摘 要: 在农牧业生产和生态环境监测领域,精确识别牧群对于管理和监测工作至关重要。然而,传统的牧群目标检测方法存在着检测精度低和效率低等问题。针对这些问题,本文提出了一种改进的YOLOv5牧群(本文以羊和牛为检测对象)识别算法。首先,在网络中嵌入SA注意力機制模块,通过组卷积来减少计算负担,同时采用Channel Shuffle操作来促进不同组之间的信息交流。其次,我们引入CoordConv卷积,它有助于优化神经网络在包含坐标信息的任务中的表现,同时提升精度和召回率。最后,用EIOU损失函数替代原模型中的CIOU,在提高模型收敛速度的同时获得更好的定位效果。经过实验证明,优化后的模型在自行制作的数据集上的平均精度达到了92.3%,较于原始YOLOv5模型提升了1.4%。改进后的模型在检测精度和速度方面都有明显提升,可以快速而准确地进行牧群的检测和识别。
关键词:YOLOv5模型 牧群识别 注意力机制 卷积神经 损失函数
中图分类号:TD61;TM75;TP391.41
Detection Methods for Herds Based on the Improved YOLOv5 Model
DONG Zhenhua TIAN Juanxiu* RUAN Zhi
College of Computer and Communication, Hunan Institute of Engineering, Xiangtan, Hunan Province, 411104 China
Abstract: The accurate identification of herds is essential for management and monitoring in the fields of agricultural and animal husbandry production and ecological environment monitoring. Nevertheless, there are issues in the conventional target recognition method of herds, like low detection accuracy and low efficiency. This paper proposes an improved-YOLOv5 recognition algorithm of herds (sheep and cattle are used as detection objects) to solve these issues. First, group convolution is used to reduce the computational load by embedding the SA attention mechanism module in the network, and the information exchange among different groups is facilitated by Channel Shuffle operation. Next, the CoordConv convolution is introduced to help optimize the performance of neural networks in tasks that include coordinate information while enhancing precision and the recall rate. Lastly, the CIOU in the original model is substituted with the EIOU loss function to obtain better localization effects while improving the model's rate of convergence. Experimental results show that the average accuracy of the optimized model on the self-produced dataset reaches 92.3%, which is 1.4% higher than that of the original YOLOv5 model. The improved model have significantly improved detection accuracy and speed, allowing it to detect and identify herds rapidly and accuracely.
Key Words: YOLOv5 model; Herd recognition; Attention mechanism; Convolutional neural network; Loss function
随着农牧业生产的发展和生态环境的变化,牧群的数量和分布情况需要及时准确地监测和管理。因此,对牧群进行精确检测成为提高牧民放牧效率的至关重要的一环。
早期的牧群检测方法主要包括人工检测法和无人机辅助检测法等。虽然这些方法简单易行,但存在许多缺陷:目视检测容易受到人员视觉水平和疲劳程度的影响;传统无人机检测精度较低,降低了牧民放牧效率。随着计算机视觉技术的不断发展,利用图像处理技术进行检测已成为主流。
基于深度学习的目标检测算法主要分为两大类:一类是两阶段目标检测算法,如R-CNN、Fast R-CNN等,另一类是单阶段目标检测算法,如SSD、YOLO等。两阶段算法通过卷积神经网络获得可能包含物体的多个候选区域,然后对这些候选区域进行处理以完成分类和定位任务。这种方法的优点是精确度高,但计算量大,检测速度慢。相比之下,单阶段算法省略了提取候选区域的步骤,直接对每个特征图进行回归预测,因此检测速度更快,但精确度较低。
Lin等人[1]在RetinaNet算法的基础上,使用新的Focal loss损失函数来解决背景类别不平衡的问题。Zhao等人[2]在YOLOv3算法的基础上,提出了一种新的聚类算法来估计预测边界框的初始宽度和高度,从而提高了模型的收敛速度,并使其能够选择更具代表性的预测边界框的初始宽度和高度。Yu等人[3]引入改进的PANet结构,使YOLOv4网络在特征层具有更多的语义信息。王涵等人[4]使用DIoU-NMS方法替代传统的NMS算法,以改善原YOLOv5模型中对重复遮挡目标的识别。
通过大量的研究和不断的优化,YOLO算法在各个方面都得到了逐步的提升。本文基于YOLO系列中的YOLOv5原始模型,结合了牧群检测的实际应用场景,提出了一种改进的YOLOv5算法。首先,在原模型中嵌入了SA (Shuffle Attention)注意力机制模块,它首先将输入在通道维度上拆分成多组,然后使用置换单元来描述特征在空间和通道维度上的相关性,最后,通过通道置换操作将所有特征整合在一起。其次,在检测头引入了CoordConv(Coordinate Convolution)卷积,使网络更好地感知特征图中的位置信息。最后,使用EIOU(Efficient Intersection Over Union-loss)损失函数,以加快模型的收敛速度,从而提高了牧群检测场景下的识别精度和效率。
2 YOLOv5概述
YOLOv5是一种目标检测模型,它基于YOLO的架构。YOLOv5算法由Backbone(骨干特征提取网络),Neck(特征融合层)和Detect(输出端)三个部分组成。
YOLOv5的输入端采用了和YOLOv4一样的Mosaic数据增强方式。即将4张图片进行拼接以丰富检测物体的背景,增加模型的鲁棒性,同时减少对Batch Size的需求。骨干网络在YOLOv5s中充当特征提取器的角色。它负责从输入图像中提取具有不同级别的抽象特征。YOLOv5使用CSPDarknet53作为其骨干网络,CSP(Cross-Stage Partial Network)是Darknet的改进版本[5]。它包括多个卷积层和池化层,这些网络层逐渐减小特征图的尺寸,但保留了更高级别的特征。骨干网络帮助模型识别图像中的不同结构和纹理,使得模型能够理解物体的形状和纹理等低级信息。Neck模块位于骨干网络和输出端之间,由特征金字塔(Feature Pyramid Networks,FPN)和路径聚合网络(Path Aggregation Networks,PAN)[6]构成特征融合网络PANet。PANet通过融合不同层级的特征图,以提升目标检测性能,有助于模型更好地理解目标的尺度和背景信息。Detect(输出端)层负责生成目标物体的边界框和类别概率分布,从而执行对象检测任务。这些核心组件相互配合,从而有效地提取多尺度特征信息进行目标检测。YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x是YOLOv5的不同版本,它们在模型结构和性能方面有所不同。综合考虑数据集规模与自身设备情况,本文选择参数量小,运行速率高的YOLOv5s模型来进行模型的预训。
3 改进的YOLOv5网络模型
改进后的YOLOv5网络结构如图1所示,首先,将原网络结构中的第一个BottleneckCSP模块替换为SA注意力机制模块,它通过将输入特征在通道维度上分组,然后利用置换单元来捕捉特征之间的空间和通道依赖性,促进了特征之间的通信,进一步提升了模型性能。其次,在检测头引入了CoordConv卷积,将位置信息嵌入到卷积操作中,有助于更精确地定位目标,减少了定位错误的可能性。最后,使用EIOU损失函数,它结合了交并比(IoU)和欧氏距离(Euclidean distance)的度量,以更准确地评估检测框的质量。这些改进之处有助于网络学习生成更准确的检测结果,减少了训练过程中的不稳定性,提高了模型的鲁棒性。
3.1 引入SA注意力机制
深度学习中,注意力机制具备独特的能力,它能够有针对性地突出基本特征,同时抑制不相关的特征,从而显著提升模型在特征提取方面的效能。这种机制在目标检测中被广泛采用,因为它有效提高了檢测的准确性。为了更进一步提升模型的特征提取潜力,本文在YOLOv5模型的“颈部”引入了SA注意力机制。将输入的特征图设为,其中c代表通道数,h代表高度,w代表高度。为了提高计算效率,主干网络对特征图进行分组,用来将X沿通道分为g个子特征图分支,每个在训练中逐渐捕获具体的语义回应,然后通过注意力模块为每个子特征生成对应的系数,表示为。这些分支在特征提取过程中并行计算,从而加快了运算速度。此外,每个分支在特征提取过程中还经过一个注意力模块,以获取新的权重参数。在每个分支进入注意力模块后,再将沿通道细分为两个子分支,以进一步优化特征提取,表示为。如图2所示,和分别利用通道内部和子特征图之间的特征信息,生成了初步的通道注意力特征图和空间注意力特征图,以协助模型捕获不同特征图的来源信息。
为了在捕获通道之间的特征信息时避免引入过多的参数量,该方法采用了以下步骤:首先,通过全局平均池化(Global Averaging Pooling,GAP)得到子图的通道特征,记为:
接着使用增强的特征表示,最后通过激活函数控制增强后的特征信息,得到。式中,:
由于空间注意力更加注重信息的来源,我们不仅要计算获得的通道注意力输出后,还要计算的空间注意力,以确保两个分支在合并时充分获取所有特征信息。使用GN(Group Normalization)处理以提取空间特征,接着利用强化的特征表示,最后通过激活函数控制增强后的特征信息以得到。式中,:
将两个注意力特征子图连接合并,记为。由于和GN超参数都是产生于SA模块,因此减少了参数量的引入。最后,用Channel Shuffle算子在通道维度对跨组信息进行融合,合并后的输出与X的尺寸保持一致,使得SA很容易加入到各种骨干网络中。
3.2 EIOU损失函数
在目标检测领域,损失函数的选择对于模型的性能至关重要。而目标检测模型通常使用分类损失、定位损失和目标置信度损失这三个部分来构建总损失函数。其中,位置损失函数通常采用(Intersection over Union)来衡量,用于评估预测边界框和实际目标边界框之间的重叠程度。如果两个边界框(通常称为A框和B框)的重叠面积较大,值将更高,表明模型的预测较为准确。相反,如果值较低,那么模型的预测效果将较差。计算公式如(4)所示。
原YOLOv5s模型使用 CIOU 作为目标框的位置回归损失函数,其中A和B为两个边界框,分别为预测框和真实框的中心点坐标, 分别为预测框和真实框的宽和高。真实框和预测框中心点的欧式距离用表示, 为其最小外接矩阵的对角线距离。为衡量纵横比一致性参数,是权重函数。
虽然考虑了边界框回归的重叠面积、中心点距离、纵横比。但公式中的参数主要反映了纵横比的差异,而没有充分考虑宽高分别与置信度的真实差异,这可能会限制模型有效的优化相似性。针对这一问题,本文引入EIOU损失函数来更准确地对比纵横比和尺寸差异:
和为预测框与真实框的最小外接矩阵的宽和高,和分别为两框在宽度和高度上的欧式距离。该方法继承了CIOU的重叠损失和中心距离损失,但对宽高损失进行了调整。通过在惩罚过程中直接惩罚宽度和高度的预测结果,更准确地反映了预测框与目标框之间的宽高差异,从而提高网络的收敛速度和回归精度。
3.3 引入CoordConv卷积
为了使卷积能够更好的感知空间信息,本文引入CoordConv卷积(见图3 坐标卷积)。传统卷积层通常具有三个特性:参数较少、计算高效以及平移不变性。然而,CoordConv模块只保留了前两个特性,同时让模型可以自主决定平移不变性的程度。这有助于提升模型的泛化性能。
在输入特征图后面引入了i和j两个坐标通道,分别表示原始输入的x和y坐标。当CoordConv的坐标通道与卷积的权重为零时,它的行为与传统卷积相似,保持了完全的平移不变性。但一旦权重不为零,CoordConv会表现出一定的平移依赖性。从而允许模型学习具有一定程度平移依赖性的能力,类似于残差连接的灵活性。因此,在需要感知空间信息的任务中使用CoordConv不会增加额外的计算负担,同时也不完全消除平移不变性,使得网络可以根据具体任务需求学习平移不变性或者一定程度的平移依赖。
4 结果与讨论
4.1 实验环境与数据集
网络训练基于深度学习框架PyTorch实现,并使用CUDA11.1进行训练。实验GPU为RTX3090,显存24GB,CPU为 Intel(R) Xeon(R) Gold 6330 CPU @ 2.00GHz。本文以YOLOv5s为基础模型,输入图像大小为640*640,采用SGD方法训练150轮,batchsize设置为16,初始学习率为1.5,同时学习率衰减策略设置为余弦退火(Cosine annealing)。
由于目前还没有统一的牧群检测的数据集,因此通过网络爬虫和视觉中国视频抽帧自行构建数据集,同时对采集到的图片采用Mosaic数据增强,最终得到约3 150张图片,并按照7:1:2比例划分训练集、验证集、测试集。
4.2 评价指标
本文实验采用平均精度均值(mAP)、召回率(Recall)和每秒检测帧数(FPS)作为评价指标。召回率(Recall)代表正确预测为正占全部正样本的比例,mAP为平均精度均值,是所有类别检测精度的平均值,FPS指的是模型每秒处理的图片数量,用来衡量检测速度。
TP为模型正确地将正类别的样本预测为正类别的数量,FN为被预测成负类的正样本数。AP代表一个目标的检测精度,k代表检测类别数。Frames代表帧数,Time表示检测时间。
4.3 消融实验
在相同硬件和数据集条件下,我们进行了一系列消融实验,包括使用不同的模型变体:原始YOLOv5s网络、YOLOv5s-EIOU网络(单独加入EIOU损失函数)、YOLOv5s-EIOU-SA网络(同时加入EIOU损失函数和SA注意力机制),以及(ours)网络(同时加入EIOU损失函数、SA模塊和CoordConv卷积)。
通过对实验结果数据的分析,我们可以总结如下:EIOU损失函数相较于CIOU更精确地考虑了目标的尺度和长宽比信息,从而提高了边界框之间的重叠度度量,优化了定位精度。因此,单独使用EIOU损失函数的YOLOv5s-EIOU模型相对于原始YOLOv5s在平均检测精度上提高了0.6%。虽然YOLOv5s-EIOU-SA引入了注意力模块,导致模型复杂度略有增加,检测时间略有减慢(约0.1 s),但平均精度mAP提高了0.2%。这进一步证明了注意力模块通过增强关键特征的识别能够提高检测精度。我们提出的模型(ours)在保证检测速度的同时,将平均精度提高了1.4%。改进前后检测效果如图5,图6所示。
综合考虑各种因素,我们的模型在保持高精度的同时,也提高了图像检测速度。为了更清晰地比较改进前后模型检测效果,我们选取了一些明显的检测结果进行对比,具体检测结果如图5所示。通过比对检测结果图像,可以看出,原始YOLOv5s模型在检测时存在漏检情况,召回率相对较低,而改进的YOLOv5s-EIOU-SA-Coordconv(ours)模型明显提升了检测结果。
5 结语
本文针对传统检测算法精度低,效率低等问题,提出了一种改进的YOLOv5牧群检测算法。首先,通过在网络中嵌入SA注意力机制模块,能够提高模型对特征的提取能力;同时,在颈部和头部引入CoordConv卷积,使网络能够更好的感受特征图中的空间位置信息,从而提高检测精度;此外,采用EIOU损失函数优化输出预测边界框,避免出现过大的检测框,进一步提升定位效果。实验结果表明:改进后的模型网络对图像中的目标识别有着较高的准确率,检测速度也较于原YOLOv5模型有所提升,在未来的工作中,可以将本文算法在無人机上进行部署上,使得智能无人机设备对牧群检测有更高的检测精度,进一步提高模型的实用性,从而大大提高牧民的放牧效率。
参考文献