基于改进DINO 的牧场杂草检测

2023-10-18 01:19任锦涛
河南农业科学 2023年9期
关键词:主干杂草卷积

钟 斌,杨 珺,刘 毅,任锦涛

(江西农业大学 软件学院,江西 南昌 330045)

杂草会与农作物争夺水分、养分、光照和空间,从而影响到农作物的生长发育,造成农作物产量降低和品质下降。因此,清除杂草是保护农作物的一个重要措施。目前费力耗时的人工化学除草仍然是国内主要的除草方式。随着智慧农业的不断发展,使用深度学习的方法精准识别杂草,实现安全和高效地保护农作物成为主流趋势[1-3]。

在精准识别领域,国内外的研究已经取得了一定进展。ZHANG 等[4]通过传统的机器学习方法对图像纹理的信息进行处理,使用LBP 作为特征提取器和二次支持向量机作为分类器的方法提高了对阔叶杂草的识别精度,但此类基于纹理颜色的传统方法泛化能力较弱。尚文卿等[5]则使用目标检测框架Faster R-CNN 结合迁移学习来进行农田杂草的识别,将改进的双阈值非极大抑制运用在Faster RCNN 上,提升精度的同时并有很好的泛化能力,但会产生大量额外的候选框、增加运算量。李兆旭等[6]提出的轻量化杂草检测模型更是让实用性大大增强。

随着Transformer[7]在计算机视觉领域越来越流行,Transformer 和计算机视觉两者结合应用的次数也越来越多,其中以Detection Transformer(DETR)[8]为目标检测领域的代表。它采用了Transformer 和神经网络的混合结构,将目标检测视为集合预测问题,解耦了位置和预测之间的绑定关系,简化了目标检测的整体流程,删除了NMS[9]等其他影响检测性能的操作,并且有着与高度优化的Faster R-CNN相当的性能,但收敛速度比较慢。后来孙艳霞等[10]使用可变形卷积良好的稀疏空间采样能力改善了DETR 收敛速度慢的问题,因此结合两者优点的Deformable DETR 更有利于精确检测。ZHANG 等[11]基于Deformable DETR 提出了DINO(DETR with improved denoising anchor boxes for end-to-end object detection)模型。该模型为查询提供位置先验并提出带有数量一致的正负样本的去噪训练,可以加快模型的收敛速度。刘珩等[12]将DETR 应用在了识别迷彩伪装上,实现了DETR 在不同领域的多样应用。以上研究极大提高了精准识别领域的精度,但在面对目标和背景属于类似种类的情况下仍存在精度下降的问题。因此提出一种改进DINO 的目标检测算法,该算法将改进后的CBAM[13-14]模块添加进特征提取网络,加强捕捉特征信息的能力,帮助分辨相似种类的目标和背景,在颈部采用改进后的特征金字塔SFPN(Simple feature pyramid networks)[15-16],融合更深层的特征后能够更准确地完成识别,从而实现对牧场杂草的精确识别。

1 材料和方法

1.1 数据来源

数据集来自Kaggle 提供的Weed detection on pastures杂草数据集,主要是分辨率为640像素×480像素的杂草图像,包含着图像对应的像素级标签。该数据集共有2 500张图片,按照8∶2的比例划分训练集2 000张图片,测试集500张图片。为了提高模型的鲁棒性和泛化能力,对图片进行随机裁剪和尺度变化,可以随机调整输入图像的尺寸,使其宽调整在480~800像素,长最大调整至1 333像素。

1.2 试验环境

试验是在Windows 10 64bit 操作系统下进行的,CPU 采 用12 核Intel(R)Xeon(R)Platinum 8255C CPU @ 2.50 GHz,GPU 采用NVIDIA GeForce RTX3090,显存为24 GB。使用的cuda 版本为11.1,Python 3.7,pytorch 1.9.0,开发工具为pycharm。

试验中原模型和改进版模型均使用相同超参数,综合考虑训练效果和设备性能,设置批处理大小(Batch size)为1,学习率(lr)为0.000 1,且采用lr调度器,使用6 层Transformer 编码器和6 层Transformer 解码器,256 作为隐藏特征维度(Hidden dim),选用权重衰减率(Weight decay)设置为0.000 1的AdamW 优化器,训练迭代次数(Epoch)为24。此外,试验中利用迁移学习思想在训练前先载入主干网络ResNet 的新预训练模型权重,将预训练参数更新至改进网络中训练,使得模型能够加速收敛。

1.3 网络设计

改进的DINO方法总体框架如图1所示,它是一个类似于DETR 的模型,由一个主干网络、颈部、一个多层Transformer 编码器、一个多层Transformer 解码器和多个预测头组成。输入的图片经过改进后的ResNet[17]主干网络提取特征,该主干网络增加了深度并添加了CBAM-G(Convolutional block attention module-gaussian)注意力机制模块和预训练权重[18],主干网络提取到的4 个不同尺度的特征图被输入进颈部特征融合模块SFPN,经过改进的SFPN 模块通过对特征图的两两融合获得更准确的语义信息。然后将融合后的特征图和位置信息输入进可变形Transformer 的编码器(Encoder)和解码器(Decoder),最后把在参考点附近提取到的图像特征送入多个预测头(Prediction heads),完成整个端到端的精确识别。

1.3.1 CBAM-G 注意力机制模块 ResNet 网络在识别和分类领域都有很好的效果,但对于和背景类似的杂草而言,较小差异的特征使得网络难以提取更深层次的像素信息,这样会降低主干网络的性能。此外,DINO 使用的是x、y、w、h4 个维度的可学习向量[19],更加注重空间的信息,而ResNet 网络的卷积操作仅在平面上从而丢失了空间特征信息。为了解决以上2 个问题,本研究在该网络的Bottleneck block 中加入了基于CBAM 改进的CBAM-G 注意力模块。注意力机制主要通过图像中整体位置和局部位置的依赖关系,达到模仿人类视觉的效果。在拥有更准确语义信息的深层特征里需要进一步减少次要信息和背景信息的干扰,自动关注更重要更有用的信息,提高模型的识别精度。因此,在该注意力模块中添加一个检测机制,使其仅在深层特征中使用注意力机制,有针对地提取需要的像素信息。但在加入注意力机制模块后,特征提取网络和Transformer 之间较为不稳定,精确度有所浮动。因此在CBAM 注意力模块中使用高斯误差线性单元(Gaussian error linear units)[20],这样可以更好地平衡空间特征信息,增加非线性和统计特性,在提升特征提取网络获取目标特征性能的同时,保持特征提取网络和Transformer之间的稳定性。

CBAM-G 主要包括2 个子模块,分别是CAM-G(Channel attention module-gaussian)和 SAM-G(Spatial attention module-gaussian)。CAM-G 的结构如图2所示。特征图的每一个通道都可以起到对关键信息的检测作用,因此利用好特征图的通道关系至关重要。在该模块中使用最大池化和平均池化的并行连接可以提取到更丰富的高层次特征,并行连接让2 个池化的过程互相不干扰,同时全局最大池化可以保留数据的局部特征,而全局平均池化则对数据的整体特征有更好的提取效果。然后通过2个具有非线性的完全连接层Fc1 和Fc2 来捕捉通道之间的交互信息,在完全连接层Fc1 和Fc2 中间插入了高斯误差线性单元,给模块加入非线性因子,提高模块泛化能力和稳定性。最后通过Sigmoid[21]函数生成权重值,该模块增加了对重要信息的关注度,加强了目标信息的提取能力。

图2 CAM-G结构图Fig.2 CAM-G structure diagram

另一个子模块SAM-G 的结构如图3 所示。该模块首先将特征分别进行平均池化和最大池化,再将池化后的2 个特征图进行拼接操作,然后对拼接后的特征图进行一次7×7 的卷积操作,最后利用Sigmoid 函数生成空间权重值。该模块通过保持特征空间维度的一致性,增强了特征对空间信息和位置信息的关注度。

1.3.2 SFPN 特征融合 DINO 的编码器使用的是Deformable transformer,它对主干网络产生的4 种不同尺度大小的特征图仅使用了步长为1 的1×1 的卷积操作将通道统一降成256,这种不同尺度的特征图往往包含更多的信息,其中浅层的特征包含更加细粒度的特征,拥有像素级的定位精度,而深层特征带有更准确的上下文信息和语义信息。因此充分融合底层特征和高层特征可以获得更有用的特征表达,也能减少无用信息的干扰。另外由于批处理的大小较小,使用Group normalization[22]替换了原本的Batch normalization,从而提高网络对杂草精准识别的精度并减少模型计算开销。因此,本研究使用一种简单的轻量化的特征金字塔SFPN,与算法中原有的特征融合模块相对比,减少了计算开销,它是在FPN 的基础上进行的改进(图4)。对主干网络生产的特征图进行融合操作,将原图1/2 大小的特征图F1、原图1/4 大小的特征图F2 和原图1/8 大小的特征图F3 作为输入。对F1 进行步长为8 的3×3 的卷积操作,对F2 进行步长为4 的3×3 的卷积操作,对F3进行步长为2的3×3的卷积操作,同时使特征通道数都为256,然后使用一次组数为32 的组归一化(Group normalization)层对F1、F2 和F3 做标准化,最后特征F1 与特征F3 相加,特征F2 与特征F3相加,分别经过激活函数Relu 后得到融合特征P1和P2。

图4 SFPN 结构图Fig.4 SFPN structure diagram

1.3.3 ResNet 网络 主干网络ResNet 被广泛应用于特征提取,其残差模块可以有效地缓解梯度消失和梯度爆炸等问题,同时它有很好的分类性能。原始模型DINO 使用的ResNet 网络一共有4 个Block,分别有3、4、6、3 个Bottleneck。由于前2 个Block 分辨率较高,增加深度会使计算量增加,因此将第3个Block 的数量增加至23 个,可以提高ResNet 特征提取的能力,同时只会增加极少的计算量。图5 显示的是第3个Block的结构图。

获得之前2个Block处理后的特征图,先经过一次1×1 的卷积操作,使用尺度归一化[23]对特征进行标准化,稳定网络,再使用高斯误差线性单元进行激活,增加各层非线性关系,同时防止出现过拟合的现象,提高与Transformer 之间的匹配度和稳定性,然后再经过一次3×3的卷积操作,重复归一化和激活函数后再进行1×1 的卷积操作,再一次使用尺度归一化,最后与Identity 相加,一起被激活函数激活。

1.4 试验评价指标

在目标检测领域里,为了更好地验证改进后DINO 模型的识别性能并进行对比,采用目前常用的AP50、AP75和平均像素精度(mAP0.50:0.95)作为性能评估指标。其中,AP50和AP75分别表示交并比(IOU)阈值为0.50 和0.75 情况下的检测精度。mAP0.50:0.95表示的是交并比阈值0.50 和0.95 之间每0.05 情况下检测精度的平均值。通过计算mAP0.50:0.95的高低,来衡量该模型的性能。

2 结果与分析

2.1 消融试验对比结果

如表1 所示,组别1 表示原DINO 模型不使用预训 练 权 重 的 结 果,mAP0.50:0.95为78.16%,AP50为92.85%,AP75为85.53%。组别2 表示在原主干网络ResNet 的基础上增加深度并使用改良的预训练权重,mAP0.50:0.95、AP50、AP75分别提升了4.35、2.70、3.59个百分点,增加深度可以让主干网络提取到更深层的特征。组别3 是在组别2 的基础上使用SFPN 模块改进原本的特征融合模块,对更深层的特征与原有浅层特征进行融合,同样在IOU 比较低时的精度方面有一定的提升。组别4 是在组别2 的基础上在主干网络中引入了CBAM-G 注意力机制模块,该模块在减少负面特征的影响后,能够提升提取关键特征的性能,相较于组别2 的mAP0.50:0.95提升0.98 个百分点,但IOU 比较低时提升较小。由此可见,组别3和组别4分别提升模型在IOU 阈值低和高时的识别精度,两者互补互利。因此,组别5 在组别2 的基础上同时使用SFPN 模块和CBAM-G 模块,mAP0.50:0.95、AP50和AP75都有一个大的提升,验证了本研究引用的特征融合和注意力机制对精确识别起到了一定效果。

表1 消融试验结果Tab.1 Ablation experiment results %

2.2 不同网络对比结果

在牧场杂草数据集上验证CBAM-G 注意力机制和SFPN 融合的有效性,并与原DINO 算法进行比较,如图6所示,虚线为改进后DINO算法,实线为原DINO 算法,两者在0 轮到1 轮左右精度差距较小,第3 轮的时候精度差距最大,随后就保持10 个百分点左右的精度差距不变,证明了CBAM-G 和SFPN对提升检测精度有一定作用。图6 和图7 曲线都较为平稳,说明模型比较稳定。

图6 平均像素精度对比图Fig.6 mAP0.50:0.95 comparison chart

图7 像素精度mAP50对比图Fig.7 mAP50 comparsion chart

为了验证本研究算法改进的有效性,将其与EfficientDet[24]、DETR 和DINO 不同网络的版本进行对比试验,如表2所示,不同的模型均使用相同的数据集和参数,DETR 由于收敛速度较慢,在相同的24轮情况下mAP0.50:0.95仅有41.10%,轮数到500 轮时主干mAP0.50:0.95可以达到66.21%,EfficientDet 则比DETR 略高2.49 个百分点,EfficientDet 在IOU 阈值为50 的情况下表现较好,在24 轮的情况下依旧可以达到86.41%。DINO 因为使用的主干网络不同,因此性能有一定的差距,在不使用数据集专属预训练权重的情况下,改进后DINO 模型的主干网络ResNet+比原DINO 的ResNet50 在mAP0.50:0.95上提升5.36 个百分点,由此可见,不同主干网络和相同主干网络不同的深度对精确度都有很大的影响。通过对比试验可知,本研究改进的算法无论是在mAP0.50:0.95还是AP50和AP75上都有很好的表现,实现了对杂草识别精度的提升。

表2 不同网络的对比结果Tab.2 Comparative experiment of different networks %

2.3 预测结果对比

改进前DINO 和改进后DINO 的目标检测效果对比如图8—9 所示,改进前DINO 模型的目标框准确率仅为78.1%,通过对比图中不同模型所画出的目标检测框,可以发现,改进前DINO 模型在对牧场里杂草进行精确识别时不能准确地找到杂草边缘,有10%左右的误差偏移。这是因为原本的DINO模型在编码和解码过程中直接使用主干网络提取的深层语义信息和浅层语义信息,未能充分将两者结合并利用输入特征的其他细节信息,从而在相似环境下的识别效果不佳,而改进后DINO 模型使用了轻量化和实用的SFPN 模块,让深层语义信息和浅层语义信息充分融合,加强了上下文语义信息的联系,对于杂草边缘的识别更加清晰,更能找出环境和目标之间的差异。从最后一行识别效果可以看出,改进前DINO 模型对于小目标的识别精度不高,未能准确地框出小目标的边缘,而本方法效果更好。综上所述,本研究方法在相似环境下的牧场杂草图像数据集上的识别更加精细和准确,效果更优,但是也存在小目标边界不够准确的问题。

图8 改进前DINO效果图Fig.8 Rendering of DINO before improvement

图9 改进后DINO效果图Fig.9 Rendering of DINO after improvement

3 结论与讨论

针对DINO 模型应用于背景和目标较为相似的杂草精确识别时出现的精确度下降和稳定性较差的问题,本研究在DINO 模型的基础上进行改进。为了保持特征提取网络和Transformer 之间的稳定性,减少次要特征信息的影响和提高对重要特征信息的把握,在特征提取主干网络ResNet 中增加改进后的CBAM-G 模块,同时引入轻量化特征融合SFPN 模块,增强底层特征信息和高层特征信息的联系,实现对多尺度特征信息的有效利用,从而提高模型的精确识别性能。在牧场杂草数据集上通过消融试验以及与其他经典算法的对比试验证明了改进后的模型各方面都优于原模型,有较好的精确识别效果,其中mAP50达到了95.89%。

在农业杂草防除的研究中,如何精确识别杂草是保护农作物的基础,同时也是杂草防除的大前提,对于推动杂草的研究有很大的发展意义。因此,考虑如何增加方法的实用性,提高识别杂草的类别数量并拓宽应用环境会成为未来试验和工作的重点,并且在不降低杂草识别准确率的情况下,往模型中引入掩码机制,生成掩码矩阵过滤无用特征,提升模型效率和准确率。此外还需要丰富模型的识别种类,深入研究杂草在水田和蔬菜园等复杂场景下的精确识别,进一步提升模型的实际应用价值和性能。

猜你喜欢
主干杂草卷积
拔杂草
抓主干,简化简单句
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
左主干闭塞的心电图表现
整合内容 构建高效课堂——开展非线性主干循环活动型单元教学模式
全国主干公路网交通安全监控信息共享平台构建研究
水稻田几种难防杂草的防治
一种基于卷积神经网络的性别识别方法