关键词:细粒度识别;目标检测;可变形注意力机制;多尺度特征;YOLOv8
0 引言(Introduction)
中国拥有丰富的竹资源[1],主要竹笋产区集中在浙江、四川、江苏、湖南、福建等地。随着科技的不断进步,竹笋种植技术也逐步提高,有力地促进了竹笋产量和品质的提升。然而,随着社会的快速发展,竹笋产业在发展过程中出现了劳动力成本上升、生产管理效率落后、深加工利用滞后[2]等一系列问题。近年来,深度学习[3]在农业领域的应用不断深化,特别是在农林业领域[4],计算机视觉技术展现出巨大的潜力。运用计算机视觉技术,可以实现竹笋产业的规模化、集约化、自动化、数字化、智慧化管理,为竹笋的图像识别与分类及品质品级划分等提供了有力支持,对推动竹笋产业智能化发展具有重要意义。
细粒度识别[5](Fine-grained Recognition)是指在某个领域或类别中对物体、图像、文本等进行更加详细和具体的分类或识别。与一般的分类任务相比,细粒度识别要求达到更高的准确性和辨别力,需要区分相似度较高的类别。本研究旨在将细粒度识别引入竹笋产业,为实现自动化采收、精准分拣、高效打包、智能运输及准确的产量估计等环节奠定坚实的基础,这是推动竹笋产业全面自动化的重要基石。鉴于春笋和冬笋在当前市场中占据一定的经济地位,其余竹笋品种暂未达到与其相当的经济体量,因此本研究聚焦于两种竹笋的检测与识别进行全面的探索。
1 材料与方法(Materials and methods)
1.1 数据采集
本次数据采集工作位于杭州市临安区,该地区的黄土覆盖率远远高于其他产笋区域的黄土覆盖率,为竹笋的优质生长提供了独特环境。该区域所产竹笋色白质嫩,呈“两头尖、中间圆”的形态。其中,春笋相较于冬笋更为细长,外皮有粉白色或黑褐色;冬笋较为短粗,外皮呈土黄色。得益于种植技术的持续改良,春笋的生长期可提前30~90 d,从而得以在春节前后与冬笋一起上市。本次数据采集方式分为实地采集和网上获取两种。2月初,研究人员在临安区青山湖街道某农村实地采集图片数据集820张,采集设备采用OPPOK10X5G手机,此外从网络获取图片数据集190张,共计采集1 100张图片数据集。为了科学地进行模型训练和评估,将图片按照8∶1∶1划分为训练集、测试集和验证集。所采集的竹笋图片数据分为半出土、全出土、手持、平躺等多种状态,为模型提供了丰富的训练样本(图1)。
1.2 数据预处理
数据标注是指为机器学习和深度学习任务准备与创建标签或注释的过程。数据标注的目的是让机器学习算法能够理解和学习数据中的特征与模式,并进行相应的预测或分类。在许多机器学习任务中,需要人工标注数据,它负责提供训练样本和相应的标签。本次研究使用Pycharm中的LabelImg软件对图像进行目标检测标注,完成后会输出相应的TXT标注文本。数据标注是机器学习和深度学习的关键环节,标注质量的好坏,将直接或间接地影响模型的性能及泛化能力。因此,确保高质量的数据标注,对构建有效的机器学习模型至关重要。
1.3 YOLOv8模型
YOLOv8[6]模型由JosephRedmon及其团队在2023年推出,与之前的版本相比,它在速度、准确度和易用性方面都有显著的提升,还支持全方位的视觉AI任务,包括检测、分割、姿态估计、跟踪和分类。YOLOv8使用了CSPDarknet53作为其主干网络,这是一种结合简单路径(CSP)和Darknet53的网络结构,旨在提高特征提取的效率和性能;采用了CIOU(CompleteIoU)损失函数,这是一种用于目标检测的损失函数,它考虑了预测边界框与真实边界框之间的完整交并比,有助于提高边界框预测的准确性;引入了空间金字塔池化Fusion(SPPF)和路径注意力网络(PANet)结构,这些结构有助于提高特征的融合和传递效率。
1.4 嵌入BiFPN———加权双向特征金字塔网络
BiFPN[7],即加权双向特征金字塔网络,其结构图如图2所示。BiFPN是一种用于计算机视觉任务的深度学习架构。BiFPN是一种特征融合机制,与传统的特征融合有所不同,它旨在学习不同输入特征的重要性,并采用加权融合的方式融合这些特征。与传统的特征融合方法(如简单的平均或求和)不同,BiFPN使用了快速归一化(Fast Normalized Fusion)的方法实现加权融合。这种方法可以在保持与基于softmax 的融合方法类似的精度的同时,提高计算速度。快速归一化公式如下所示:
其中:Wi 代表每个输入特征的权重,由于使用了ReLU激活函数,这些权重Wi 都保证大于或等于0。ε 是一个很小的值,用于避免分母为0导致数值不稳定的情况。通常取一个很小的正数。Ii 表示输入的特征,Out表示加权特征融合的结果。这样设计的好处是权重Wi 都是非负的,使融合过程更加稳定和可解释,添加ε 可以避免除以0的问题,提高数值的稳定性,与基于softmax的融合方法相比,快速归一化的计算更加高效。
加权双向特征金字塔网络结构设计旨在提升特征的表征能力,特别适用于复杂场景和对象检测任务。通过构建双向特征金字塔,在不同的尺度上捕捉图像的上下文信息,使得网络能够更好地理解小尺度细节和大局观。该双向特征金字塔架构中包含两个方向的特征传播路径:一个是自上而下的路径,通过上采样(如使用插值或转置卷积)将高层的特征图映射到更小的尺度,以便捕捉到更小的对象和细节;另一个是自下而上的路径,通过下采样将低层特征图映射到更大的尺度,以便于捕捉到更大的对象和更广泛的上下文信息。这两个路径在某些特定的层合并,融合了不同尺度的特征信息,增强了网络的表征能力。
1.5 添加可变形注意力(Deformable Attention,DAttention)机制
可变形注意力(Deformable Attention)机制是一种用于神经网络中的注意力机制[8](图3)。在传统的注意力机制中,权重是通过对位置固定的注意力模型进行计算得到的,而在可变形注意力中,它可以动态地调整注意力模型的形状和大小,以更好地适应不同任务和输入数据的特点。该模块为每个查询位置动态预测一组采样位置偏移量,然后以这些动态偏移的采样位置计算注意力权重。引入可变的采样位置,能使注意力计算更加灵活和高效。注意力变形机制流程如下:
(1)给定特征图X ∈RH ×W ×C ,生成一个点P∈RHG ×WG ×2的统一网格作为参考。
(2)将特征映射线性投影到query token q=xWo,然后输入一个轻量子网络θoffset,生成偏移量Δθoffset。
(3)在变形点的位置采样,作为key和value,与query一同传入多头注意力机制中。
(4)每个头部的特征连接在一起,通过Wo 投影得到最终输出Z。
在公式(4)中,P 引入了位置信息,K'T+P 表示在计算注意力权重时,也考虑了键矩阵和位置编码。通过这种方式,可变形注意力机制能够更好地捕捉序列中的长距离依赖关系。
1.6 改进模型结构设计
本次研究将改进后的模型命名为YOLOv8-BDA,模型结构主要包括3个关键部分。其中,Backbone(特征提取模块)中引入了Deformable Attention可变形注意力机制,负责从输入图像中提取有用的特征;Neck(特征金字塔网络)使用双向特征金字塔网络(BiFPN)进行特征融合,聚合不同尺度的特征图,以提供更丰富的上下文信息;Head(预测头)负责对特征进行处理并预测边界框、类别概率及目标置信度。改进模型YOLOv8-BDA结构如图4所示。
1.7 实验环境及评估标准
本次研究模型的训练和测试均在同一环境中运行,计算机的GPU为NVIDIA GeForce RTX3060,显存为12 GB,CPU为Intel(R) Xeon(R) CPU E5-2673 v4 10核处理器,操作系统为基于Linux的Ubuntu系统,使用 PyTorch 2.0.0版本、Python3.8版本和CUDA 11.8版本集成运行环境。使用精确率(Precision,P)、召回率(Recall,R)、平均精度均值(mAP)作为评价指标评估模型的性能。采集到的数据集按照8∶1∶1的比例划分成训练集、测试集与验证集。详细训练参数如下:cache=False,epochs=100,batch=16,close_mosaic=10,workers=8,device=0,optimizer=SGD。
2 实验结果与分析(Test results and analysis)
2.1 消融实验
在同一数据集和训练环境中,对改进模型进行消融实验,验证BIFPN模块和DAttention模块能否为基础模型带来有效的性能提升。如表1所示,单模块的BiFPN和DAttention并没有提升模型的性能,而融合后的改进模型在精确率和平均精度均值上分别提升了4.2百分点和2.4百分点。其中,春笋和冬笋的平均精度均值分别为81.4%、94.7%,较YOLOv8基础模型分别提升了0.9百分点和3.9百分点。
2.2 YOLO系列对比实验
为了进一步验证改进模型的检测性能,在同一训练环境中将本研究模型与目前流行的YOLOv8系列改进模型以及YOLOv8之前的YOLO系列进行对比,包括引入AIFI(尺度内特征交互)、改进AFPN[9](提升目标检测性能的渐近特征金字塔网络)、C2f模块融合SCConv(即插即用的空间和通道维度重构卷积)、GFPN[10](一种新颖的跨尺度连接方式)、“华为”Gold-YOLO(一种先进的Gatherand-Distribute机制)、使用C2f-DCNV2[11]替换C2f(DCNV2为可变形卷积V2)以及系列前作YOLOv5、YOLOv7等,具体的比较结果如表2所示。
2.3 可视化结果对比
用训练的权重文件进行可视化识别实验,对改进后的YOLOv8-BAD模型与基础的YOLOv8模型进行了性能对比,分析图5至图8中展现的结果(CS为春笋,DS为冬笋),可得以下结论:从图5的可视化识别结果可知,在复杂情况下,改进后的YOLOv8-BAD模型优于YOLOv8基础模型。在图6中的混合识别实验中,改进后的模型识别准确率高于YOLOv8基础模型的识别准确率。图7的半出土状态春笋识别任务中,改进后的模型识别率比YOLOv8基础模型的识别率高出12百分点。图8中虽然YOLOv8基础模型识别准确率更高,但是没有识别出下半部分。
3 结论(Conclusion)
随着竹笋产业需求的不断增长与科技水平的持续进步,推动该产业生产管理向自动化、智能化转型的需求日益迫切。为此,本研究深入探索了深度学习技术在该产业的应用,在YOLOv8模型的算法基础上,通过嵌入BIFPN双向特征金字塔网络以及引入Deformable Attention可变形注意力机制对模型进行了优化。在与原模型YOLOv8以及YOLO系列的前作(包括YOLOv5、YOLOv7)的对比实验中,与原YOLOv8模型相比,YOLOv8-BDA展现出了明显的优势,在平均精度上均高于以上模型。实验结果表明,改进后模型在不同环境中对竹笋细粒度识别的效果得到了很大程度的提升,为竹笋产业的智能化升级提供了可参考的技术方案。