基于改进YOLOv3的目标检测方法研究

2022-10-14 08:53王继千刘唤唤廖涛朱小东
现代信息科技 2022年16期
关键词:卷积特征提取昆虫

王继千,刘唤唤,廖涛,朱小东

(安徽理工大学,安徽 淮南 232001)

0 引 言

目标检测是当前的研究热点,其主要目标是确定物体在图像中的位置,并分辨出当前目标的类别,是模式识别中的重要算法。目前已应用于行人检测、医学图像检测、人脸检测等领域,由此可以看出目标检测具有重要的研究价值与现实意义。目标检测在农业领域也有不错的应用前景。随着农业生产中不断引入科学技术,农作物的产量及质量都有了显著的提高。伴随着农业生产和科学技术的快速融合,虽然很多农业问题已经得以解决,但是农业昆虫灾害依然是农业生产中科学技术无法完全攻克的一大难题,例如,昆虫啃食对农作物的数量和质量造成较为严重的影响。因此,如何快速检测出农业昆虫的种类和数量,并保证较高的检测精准度就成为农业生产中的一项重要工作。随着科学技术的快速发展,昆虫的检测方式也发生了改变。昆虫检测大致可以分为传统方法和非传统方法,比如人工方法、诱捕法可以归为传统的昆虫检测方法,而正是由于科学技术的迅速发展,传统的昆虫检测方法逐渐发展为成声检测、图像识别和深度学习图像处理等非传统方法。传统的昆虫图像识别策略是针对不同昆虫外部特征的差异性进行精准设计,之后送入分类器,最终确定昆虫种类。正是由于技术理论的疾速发展以及深度学习理论形成了较好的理论体系,结合这种理论基础的目标检测技术也在农业生产中逐渐盛行起来。这种新型检测技术的优越性简化了手工设计环节,提高了对昆虫特征的自动学习能力。这种新型的昆虫检测技术无论在速度上,还是在检测精度上都具有很大的优越性,同时也在很大程度上减少了人力物力的投入比。这种检测技术不仅具有极高的现实价值,还有着良好的发展前景。随着各种理论技术的普及,YOLO算法的应用也逐渐增多,并慢慢进入人类的生产生活中。例如文献[1]中改进的YOLOv3-my-prune方法,在甘蔗环境下取得了不错的行人检测效果;文献[2]中通过替换不同层级的特征检测模块并引入Boosting思想,提出了新的Multi branch YOLO检测算法,并且在肺炎数据集上有着优秀的表现;文献[3]中的YOLOv3算法使用Mobile Net网络代替YOLOv3中的特征提取网络,并融合了Self-attention机制,该算法在公开数据集上也取得了不错的准确率并在一定程度上满足实时性要求;深度学习技术的快速发展使得它在图像处理领域也发挥了重要作用,比如文献[6]中提出的基于门控通道注意力机制的优化YOLOv3算法,结合自适应模块后,在小目标检测上取得了良好的成效。从YOLO算法模型的应用来看,深度学习理论的应用比较成熟。虽然目标检测方法已经应用于现实生活中的很多方面,但是有一些领域还是鲜少涉及的,比如在农业昆虫领域就运用得较少。YOLO算法的输入模块用于获取一张完整的图像,因为一张完整的图片所涵盖的信息属于全局特征信息,可以在很大程度上降低目标的误检率,也可以实现实时检测。算法最后输出不同大小的特征图,可以用来融合深、浅双层特征,同时又加入了对目标特征信息具有良好提取效果的Darknet-53特征提取网络,使得目标检测能力得到明显提升,例如文献[7]的mAP为91.7%。但当所要进行目标检测的背景复杂、多尺度且姿态多样时,由于图像本身的像素小、特征不显著等原因,容易造成小目标的漏检和误检,检测能力尚需提高。

本文针对YOLOv3模型算法的不足之处,并且基于农业昆虫领域的目标检测任务,提出一种改进特征提取和特征融合并融入CBAM模块的YOLOv3目标检测算法。相较于其他深度学习框架,Tens flow深度学习框架没有灵活性差、拓展性差以及健壮性不强等方面的缺陷。因此将优秀的Tens flow应用到该模型中,之后再引入连续的残差结构和深度卷积双路特征提取模型,在增加模型深度的同时提高感受野,提高锚框的定位准确性;另一方面引入改进的卷积注意力模块继续提高目标检测和物体分类的精度,从而提高网络的性能。最终各项指标在改进的模型上表现良好。

1 典型的YOLOv3算法

如图1所示,YOLOv3模型结构可以分为3个主要模块:图片输入、基础网络Darknet-53和YOLOv3。其中,Input模块输入图像大小为416×416×3,Darknet-53骨干网络进行特征提取,其中的DBL模块是卷积、BN算法、线性激活函数LeakyRelu的总称,是YOLOv3算法的基本组件;res借鉴了ResNet残差结构的思想,进一步加深了网络结构,res1中的数字1表示当前模块使用1次,其中的1、2、8、8、4表示五种尺度,总共进行了32倍的下采样,残差模块中1×1卷积降维,然后3×3卷积升维,残差组件结构如图2所示;Concat用来完成张量拼接操作,将darknet中间层和之后的某一个上采样层拼接,扩充了张量的维度;、、表示三个不同尺度的输出分支。

图1 YOLOv3网络结构

图2 残差组件结构

2 改进的YOLOv3算法

改进的YOLOv3网络结构图如图3所示,该网络结构图对经典网络结构的Darknet-53骨干网络做了调整,将原有的res残差结构替换为twostream_block和cbam_block模块。图中的数字3表示经过了3次循环的twostream_block和cbam_block模块特征提取。整体的网络结构经过5次twostream_block和cbam_block模块的特征提取后,之后经过三种不同的Scale,再分别使用Convs卷积一次,最后进入Detection检测模块,获取不同尺度的目标检测结果。

图3 改进的YOLOv3网络结构

2.1 特征提取中引入双路特征提取感受野扩增结构

传统的深度学习随着网络深度的加深会遇到梯度消失和梯度爆炸问题,常规的解决方案是数据初始化和正则化。虽然可以解决梯度问题,但是网络深度加深后会带来网络性能退化问题,这种情况下可以通过残差来解决该问题,同时还可以提升网络性能。另外,一般的卷积操作是在各个通道上采用不同的卷积核提取不同方面的特征。而深度卷积在各个通道上采用不同的卷积核提取不同方面的特征,不仅会产生与普通卷积相同的特征图,同时还会大大解约参数量。因此,本文考虑到YOLOv3目标检测算法的特征提取特性,首先在特征提取中引入双路特征提取感受野扩增结构,一路采用连续的残差结构提取特征,增加模型深度提取更深层的特征,有效避免梯度消失情况的发生;另一路采用深度卷积提取特征,一方面计算量更小,另一方面选择更大的卷积核,有效提高感受野,提高锚框的定位准确性;最后两条路在通道层面融合,增加了模型的维度,获取更多的特征,同时修改深度卷积网络中的池化操作。在深度卷积网络中使用混合池化来代替最大池化进行数据的压缩。原始混合池化概率方法如式(1)所示。

其中,为混合池化输出,为平均池化输出,为最大池化输出,为[0,1]范围内的可变参数。在该定义中,值不但影响训练网络的随机性,而且还在一定概率上影响网络的稳定性。

因此,调整原始混合池化,将参数修改为可训练参数,并对混合池化输出的定义进行了修正,如式(2)所示。

针对当前实验环境中计算机的算力瓶颈,本文使用改进的混合池化进一步降低了网络的整体计算代价,不仅可以降低过拟合风险,而且还会增大感受野,减少了信息冗余,使模型对输入图像的特征位置变化更具鲁棒性。

2.2 改进卷积注意力模块

图像中包含多种图像特征,其中的低级特征会保留较多的空白空间和边缘末端信息,而高级特征则会包含很多的高级语义知识信息。受注意力机制原理的启发,为了更好地精确定位显著性目标物体,本文参考借鉴了Woo等提出的卷积注意力模块(Convolutional Block Attention Module,CBAM),将浅层特征输入空间注意力模块,而将通道注意力模块作为输入高级特征模块,从而达到突出显著性目标边缘和整体的目的。通道注意力与空间注意力的连接方式表示为式(3):

其中,为Sigmoid激励函数,M为网络初始特征预测结果,•为点积操作,(f)为高级特征经过通道注意力模块(CAM)的结果,(f)为低级特征通过空间注意力模块(SAM)的权重结果,M为预测结果。由于重要特征信息在检测中的影响因子较大,故引入注意力特征融合模块(Attention feature Fusion Block, AFF Block)增强残差单元,提高对重要特征的提取能力。如图4所示,空间注意力融合模块和通道注意力模块的双模块结合,产生了新的AFFBlock模块。

图4 注意力特征融合模块(AFF Block)

其中,ff是需要融合的特征图信息,二者经过空间注意力融合模块可得到空间区域信息加强后的融合特征图,经通道注意力融合模块后通过注意力对特征图的通道信息进行加强,得到融合特征图。将两种融合的特征图进行融合,即可得到融合特征,三者之间的关系可以表示为式(4):

单体的AFF Block模块和微小的残差单元在特征信息保留上皆有局限性,因此将二者整合得到新的残差注意力模块,如图5所示,从而达到保留较多重要特征信息的目的。本文采用如图5所示的残差注意力网络模块(用于昆虫图像的算法中),模块内卷积层的通道数为64、64、128。

图5 残差注意力模块示意图

CBAM模块属于轻量级模块,表示其开销较小。将其加入CNN架构中,其对模型性能的提升效果远远大于其开销。将CBAM注意力模块嵌入到YOLOv3网络后,有效提高了目标检测和物体分类的精度,计算开销和参数量较少,解决了原始网络没有注意力偏好的问题,提高了网络的整体性能。

3 实验结果与分析

3.1 数据集

Insects数据集是百度与北京林业大学合作制作的识虫数据集。该昆虫数据集的制作目的是进行目标检测算法测试。

基于实验模型和实验设备方面的限制,同时又考虑到检测目标的指标参数,本文采用的试验数据集是由百度与北京林业大学合作制作的Insects识虫数据集,其中包含的主要是小尺度的昆虫图像。该数据集较小,共计2 183张图片,1 693张用于训练,245张用作验证集,245张用作测试集,其中13%作为测试集,87%作为训练集,该数据集中共包括7种昆虫,图6是实验数据昆虫图样例。

图6 昆虫数据图

3.2 评价指标

本文采用平均准确率(Average precision, AP)、平均准确率均值(mean Average Precision, mAP)和帧率(Frame Per Second, FPS)等指标来评价当前昆虫检测模型的性能。平均精度均值用于衡量模型在所有类别上的好坏程度,本文mAP的计算是取 AP、AP、AP、AP、AP、AP、AP的平均值,其中A、B、C、D、E、F、G分别表示当前数据集的7种昆虫类别。

计算当前某一种昆虫的平均准确率AP。公式为:

目标检测应用中,一个模型可以检测出多种类别的昆虫,而mAP就是所有种类昆虫的AP均值。公式为:

本文除了使用精确度作为模型评价指标外,同时又采用FPS来评价目标网络的检测速度,FPS表示的是每秒内可以处理的图片数量。

3.3 模型训练

本文将经典的模型和改进的模型分别进行训练,模型初始输入图像大小为416×416,初始化的IoU设置为0.5,模型训练初期采用冻结训练的方式来加速训练,该方式可以防止训练初期权值被破坏,前150个epoch使用大学习率,用来平稳拟合,之后的200个epoch采用小学习率,并将每次传入到网络模型的图片数量设置为8,强化训练样本的稳定性,而且可以防止过拟合。模型训练的整个阶段,采纳分批随机梯度下降法优化损失函数。通过对实验数据的观察,改良的新模型算法在训练过程中趋于稳定,损耗值的增幅较小,效果更好。在整个模型训练的设定中,本文将算法的epoch设定为350轮,在340个epoch后取得了较好的模型。

3.4 实验结果及分析

本文的试验数据是Insects数据集,将的初始值设置为0.5,池化偏向得以确定折中,训练模型的收敛速度也表现出不错的效果。YOLOv3模型经过训练后,在测试集上得到的效果如图7所示。该图中目标间隔较大,人眼容易分辨,因此不需要做过多的处理。对于一些目标比较密集,标记不是十分明显的图片,将生成的结果参数输出到result.txt保存下来。实验结果一定程度上获得了效率和精确度的提高,实验结果也显示出少量种类的昆虫并没有被框住识别出来,这是由于昆虫交叉遮挡而导致的误检和漏检,另一方面,也要考虑到该数据集较小,算法模型训练的不是非常充分,另外还需要考虑到数据集的标注问题等因素。这些导致实验结果不好的因素也是今后需要继续优化的方向。

图7 测试结果图

实验结果如表1所示,可以看出:改进后的YOLOv3算法在Insects数据集上的检测精度为71.22%,相较于原始YOLOv3的检测精度提高了4.88个百分点,检测一张图片的时间更短,相比于文献[8]算法虽然精度较低,但是处理时间更快。

表1 实验结果

4 结 论

本文讲述YOLOv3算法在农业昆虫灾害检测中的运用,针对当前昆虫目标检测算法在农业生产中存在的精度低、漏检率高等缺陷,提出了改进的YOLOv3算法来提升各项指标。实验采用的Insects昆虫数据集的特征不是十分显著,因此增强了网络结构,加深了显著特征的提取,优化了特征提取环节,提高了目标检测的准确度;同时进一步引入CBAM,加强了图像特征的相关性,进一步增强了目标检测的识别能力。实验结果表明改进的模型极大地提高了昆虫检测的精准度,降低了漏检率。改进的模型算法的指标还有较大的上升空间,又考虑到实验结果的局限性,以及实际的农业生产要求。作者未来将继续深入研究模型,将特征金字塔引入到模型中,继续提高模型性能,努力将其落地到农业生产中。

猜你喜欢
卷积特征提取昆虫
同步定位与建图特征提取和匹配算法研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
卷积神经网络概述
有趣的无脊椎动物
基于曲率局部二值模式的深度图像手势特征提取
昆虫产卵跟鸡生蛋一样吗?
Smallest Flying Robot 会飞的机器昆虫