APP下载

基于改进YOLOv5s的轻量化储粮害虫检测方法

2023-10-18吕宗旺邱帅欣孙福艳王玉琦牛贺杰

中国粮油学报 2023年8期
关键词:储粮害虫精度

吕宗旺, 邱帅欣, 孙福艳, 王玉琦, 牛贺杰

(河南工业大学信息科学与工程学院1,郑州 450001) (粮食信息处理与控制教育部重点实验室2,郑州 450001)

粮食是国家长治久安的基本保障,也是人类生存和发展的基础。随着科学技术的不断发展,粮食产量得到很大的提高,储粮量也与日俱增,储粮过程中由于害虫造成的危害是粮食损失的一个重要原因[1,2]。储粮害虫的存在不仅会影响粮食品质,国家的经济造成损失,虫害的排泄物和尸体还会造成疾病传播[3]。因此,储粮害虫的检测与识别是储粮安全的重要部分,在粮食储存过程中定期检测粮食谷物是否有储粮害虫存在至关重要[4]。目前粮库中对于储粮害虫的检测大部分是人工检测,少部分采用声检测、生物光子和图像识别等方法[5-7]。人工检测方法需要专业的害虫检测人员,而且时间成本高,效率很低。声检测和生物光子易受其他因素影响,导致检测准确率下降。图像识别方法包括传统的机器学习技术和深度学习技术,利用计算机处理获取的储粮害虫图像。

传统的机器学习技术通过特征提取算法提取储粮害虫的边缘、形状、纹理等特征,利用机器学习算法对构成图像特征的特征向量进行分类,从而达到对不同储粮害虫的进行分类的目的[8];但是需要人工设计害虫的特征,而且提取到的特征有限,当需要识别新的种类时特征提取部分要重新设计,迁移性较差。

基于深度学习技术的储粮害虫识别是当前研究的热点也是粮食害虫识别的常见手段[9,10]。深度学习技术主要通过目标检测算法进行实现,依托卷积神经网络自动提取害虫的各种特征,接着利用特征自动训练分类器,最终完成储粮害虫的检测和分类。目标检测算法包括两阶段(如Faster R-CNN和R-FCN)和一阶段(如SSD和YOLO)。两阶段算法检测精度高但是速度慢,一阶段检测精度稍低但是速度较快。由于需要检测的储粮害虫属于小目标,经典的目标检测不适合解决小目标检测的问题。

选择目前目标检测算法中性能较好的YOLOv5算法模型进行研究,针对储粮害虫小目标的特点对算法进行改进,为方便粮库工作人员的使用,对算法进行轻量化,以便算法可以移植到系统。

1 理论基础

1.1 YOLOv5

YOLOv5(You Only Look Once version 5)是2020年提出的,为基于 YOLOv4 的改进版本,是目前从准确性以及检测速度效果来说比较优秀的单阶段(one-stage)检测网络。根据模型深度和宽度的不同,分为YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x这4种基准模型。其中YOLOv5s算法模型的体积最小,单帧处理时间最短,更适合轻量化的储粮害虫检测,因此对YOLOv5s算法进行改进。其网络模型包括Input、Backbone、Neck和Head,网络结构见图1。

Input部分使用 Mosaic 数据增强和自适应图片缩放等对图像进行预处理。Mosaic数据增强将4张图片进行组合,达到丰富图片背景的效果,对小目标的检测更有利;自适应图片缩放对不同长宽的原始图像自适应地添加最少的黑边,统一缩放为标准尺寸。

Backbone 部分由Focus模块、CSP模块[11]和SPP池化金字塔结构[12]提取图片的特征信息,包括边缘特征、纹理特征和位置信息等。主干网络的第一层是Focus 模块,其主要作用是减少模型的计算量并加快训练速度,Focus 模块结构如图2所示。CBL模块由卷积层(Conv)、归一化层(BN)和激活函数SiLu组成,主要作用是可以从浅层和深层特征图提取上下文信息。

图2 Focus模块结构图

Neck 部分在主干网络和预测网络之间,对主干网络提取到的维度较大的特征图进行压缩,通过融合处理后输入到预测网络,对特征图中的目标进行定位和分类。由特征金字塔网络(FPN)[13]与路径聚合网络(PAN)[14]构成,其结构如图3所示; FPN 由下至上将丰富的语义特征从深层特征传递给浅层特征。而PAN 则相反由上至下将细节特征从浅层特征传递给深层特征。2种结构组合增强了模型的特征融合能力,获得更多的上下文信息,减少信息丢失。

图3 FPN+PAN结构图

1.2 MobileNetv3

MobileNet网络是由Google团队提出的一种轻量级的神经网络模型,使用深度可分离卷积(depthwise separable convolution)和反向残差结构的思想构建模型[16]。与传统的卷积神经网络相比,MobileNet在略微降低精度的前提下,大大减少了模型的参数量和计算量。

MobileNetv3综合了MobileNetv2和MobileNetv1的特点,然后在 MobileNetv2 网络基础上进行改进,主要是在MobileNetv2中深度可分离卷积之后加入SE-Net,其主干网络Bneck如图4所示。首先利用1×1的卷积进行升维,再引入MobileNetv2线性瓶颈的逆残差结构;然后进行3×3深度可分离卷积,降低网络的计算量;再然后通过注意力模型SE-Net[17],使网络关注更加有用的通道信息来调整每个通道的权重;最后,使用h-swish激活函数,代替swish函数,减少运算量,提高性能。通过改变Bneck结构后,与MobileNetv2相比,MobileNetv3在COCO数据集上达到相同的精度,速度快了25%,同时在分割算法上也有一定的提高[18]。

图4 MobileNetv3主干网络Bneck结构图

MobileNetv3 网络可用于移动分类、检测和分割,该网络能够在保证模型轻量化的基础上,提高模型精确度以及运行速度,因此使用 MobileNetv3 网络作为储粮害虫检测模型的主干网络,进行害虫的特征提取。

2 改进YOLOv5s的储粮害虫检测算法

研究提出的害虫检测方法包括两部分:收集储粮害虫数据集和建立储粮害虫目标检测的算法模型。数据集收集包括害虫图像的获取、数据增强和数据集划分。检测模型通过对目标检测算法YOLOv5s进行改进,得到轻量化、高精度的检测算法模型。

2.1 储粮害虫数据集的构建

研究所用数据集为自制,包括5种小麦中常见的害虫(玉米象ymx、谷蠹gudu、赤拟谷盗cngd、印度古螟ydgm、麦蛾maie),通过搜集粮库智能测控柜中集虫瓶拍摄的害虫图像和诱捕器捕捉的害虫图像,然后对采集的图像数据进行筛选和处理,整理出2 000张害虫图像数据,即每类害虫包括400张样本数据,制作目标检测的数据集;为了提高模型的泛化性能,采用5种数据增强手段即旋转、缩放、亮度变换、图像模糊和随机遮挡来增加原始数据集的多样性。最后按照8∶2的比例划分训练集和验证集。

2.2 YOLOv5s检测算法改进

2.2.1 锚框参数优化

如果说亚细亚生产劳动形式下只能产生不稳定的文明群落,那么在古代的所有制下的劳动形式则使得文明进一步扎根于土地。土地变为领土,世袭制出现,在这种劳动形式中,共同体成员必须有共同体成员的身份才能生产自身。“一个人之所以是罗马人,只是因为它在一部分罗马土地上享有这样的主权。”[4]131随着劳动能力的变化,从完全依赖于自然客观条件过渡到更多依赖于工具、技能和手段,人类历史从乡野进入到城市。亚细亚历史是城市与乡村无差别的统一的历史,城市“附庸”农村;古典古代历史是以农业为基础的城市历史,而日耳曼时代的城乡则出现了对立,人类历史从农村出发,在城市得到栖息。

YOLOv5s采用锚框机制进行目标检测,因此在模型训练中预设的锚框尺寸将会直接影响算法的检测精度,锚框的尺寸越接近真实边界框,模型也越容易训练。由于原始算法模型的锚框尺寸是在COCO数据集中进行 k-means聚类得到的,但是不能很好地拟合储粮害虫目标的尺寸。因此采用k-means 聚类算法对训练集中标记目标框的宽高重新进行聚类分析,得到最优的锚框尺寸。结合图像中各类害虫目标的长宽比,修改后的锚框尺寸为8×12、10×24、14×14、15×36、17×22、21×9、27×26、37×16、59×32,新的锚框尺寸有助于储粮害虫的检测和识别。

2.2.2 主干网络的改进

将YOLOv5s的 Backbone 主干网络替换为更为轻量化的 Mobilenetv3的主干网络,来进行特征提取;然后将Mobilenetv3中深层特征(F2,F1)提取中通道注意力机制SE-Net替换成更高效的ECA(Efficient Channel Attention)模块[19]。由于使用的数据是粮库中智能测控柜下集虫瓶里储粮害虫的数据,因此背景复杂,含有大量杂质干扰,在模型识别过程中会有相当大的噪声,这些噪声将在模型学习过程中传输。随着网络层数的增加,特征图中噪声信息的权值也会增加,最终会对模型产生一定的不利影响。MobileNetv3中使用的SE-Net模块通过2个全连接的层在通道之间交换信息,并降低了特征的维数[20]。全连接层的使用使SE-Net不具有轻量级,降维操作使信道与其预测的权值没有直接关系,这对SE-Net的整体性能有影响。

ECA-Net利用一维卷积将相邻通道合并,获得加权的各类害虫特征,弥补特征降维造成的缺陷,实现局部跨通道交互,更好地增强害虫区域的特征。其中ECA-Net的网络结构如图5所示。此外,ECA-Net的参数量和复杂度都较低,并且不会过多地增加网络模型的存储开销和计算开销[21]。ECA-Net适合于引入轻量级网络结构中,以提高模型在复杂环境中关注有效特性的能力,并保持模型的轻量级和快速特性。因此,将低复杂度和高效的ECA-Net放在MobileNetv3每个残差模块之后。通过对残差模块产生的信道特性进行重新校准,提高了模型的表达能力,最终实现了提高模型识别性能的目标。

图5 ECA-Net网络结构图

将改进后的轻量级网络代替YOLOv5s的主干网络,在较少模型参数量、提高训练速度的同时,尽量少的损失模型的精度,实现杂质背景下储粮害虫小目标的快速准确的实时检测。

2.2.3 特征金字塔结构的改进

原始YOLOv5s中Neck 部分使用FPN和PAN进行特征提取和融合,通过融合处理后输入到预测网络,对特征图中的目标进行定位和分类。图6a为FPN结构,该结构建立了一条自上而下的通路,进行特征融合,接着用融合后的具有更高语义信息的特征层进行预测,但是这种结构会受到单向信息流的限制。图6b为PAN 结构,该结构是在FPN的基础上再建立一条自下而上的通路,将底层的位置信息传到预测特征层中,使预测特征层既有顶层的语义信息又有底层的位置信息,可以提高目标检测的精度。虽然解决能不同场景图像中对象尺度差异较大的问题,但并不是特征融合的最优解,所以引入一种双向的特征融合方法Bi-FPN(Bidirectional Feature Pyramid Network)。

图6 特征金字塔结构图

Bi-FPN 是一种加权双向特征金字塔网络结构[22],其思想是高效的双向跨尺度连接和加权特征融合。双向跨尺度连接:首先是删除只有一个输入的节点,由于该节点无特征融合,将该节点删除之后没有很大影响而且会简化网络;然后是在原始输入节点和输出节点之间增加了一条边,是为了在不消耗更多成本的情况下可以融合更多的特征;最后,将自顶向下和自底向上的路径融合到一个模块中,以便可以重复堆叠,以实现更高层次的特征融合。加权特征融合:Bi-FPN使用的是快速归一化融合,直接用权值除以所有权值加和来进行归一化,同时将权值归一化到[0,1]之间,提高计算速度。

Bi-FPN是在PAN的基础上进行改进的,去掉进入FPN 结构的最高维特征层和最低维特征层的2个中间节点,同时在中间各个特征层加入1条输入特征图与输出特征图相连的残差边,在一定程度上简化PAN的结构。其结构如图6c所示。

Bi-FPN相当于给各个层赋予不同权重去进行融合,让网络更加关注重要的层次,而且还减少一些不必要的层的结点连接。通过引入双向加权特征融合结构Bi-FPN,来加强特征融合,从而提取到更多小目标的细节信息,提高检测效率。改进后的算法结构如图7所示。

3 实验结果

3.1 实验环境

实验所用服务器的硬件配置和软件配置如表1 所示。

表1 实验环境配置

3.2 评价指标

储粮害虫检测算法模型在数据集上完成训练后,需要对算法的性能和实验结果进行评价。由于有多种目标进行检测,所以每个目标应该有1个检测的平均精度(AP),然后取加权平均值,计算模型的平均精度均值(mAP)。AP值是由通过召回率(R)和精度(P)分别为x轴和y轴围成区域的面积计算得来的。

使用平均精度(AP)、平均精度均值(mAP)、每秒传输帧数(FPS)和每秒浮点运算(FLOPs)来评估目标检测模型的性能。其中AP、mAP均是数值越大,模型的检测精度越高;FPS越大,模型的检测速度越快;FLOPs则是越小模型的运算速度越快。

3.3 实验结果分析

为了验证改进后算法的有效性,在自制的储粮害虫数据集上进行消融实验,并选择平均精度均值(mAP)和每秒帧数(FPS)作为性能评价指标。以原始YOLOv5s算法为基础模型,依次引入k-means聚类优化锚框、优化后的Mobilenetv3、双向特征融合模块Bi-FPN。测试集上,改进后的YOLOv5s算法的评价指标数据如表2所示。

表2 消融实验结果

通过比较,可以发现改进后的YOLOv5s模型对各类储粮害虫的检测精度都高于原始YOLOv5s模型,平均精度均值mAP从95.3%提高至97.1%,FPS从76.92提高至90.91,而计算量从16.4 M降低至1.9 M。由图8可见,为模型训练100个epoch后,改进前后算法在储粮害虫数据集上训练的边界框回归损失(train/box_loss)、分类损失(train/cls_loss)和目标概率损失(train/obj_loss)函数曲线图,横坐标表示模型训练时的迭代次数,纵坐标表示损失函数的数值。相比于原始YOLOv5s算法,改进后算法的3种损失函数的收敛速度均更快,并且在模型损失曲线收敛时损失值更小,这表明改进后的算法提升了模型收敛的速度,更容易训练。

图8 训练损失函数曲线图

分别使用原始YOLOv5s算法和改进后的算法在储粮害虫数据集上进行检测,图9为原始算法检测结果,图10为改进后算法检测结果。

图9 原始算法检测结果

图10 改进前后算法检测效果对比

对比分析检测结果可以看出,改进后的算法对于漏检错检现象有很明显的改善,小目标检测效果有明显的提高。

4 总结

研究提出了一种基于改进轻量化的YOLOv5s储粮害虫检测算法模型,首先使用k-means算法进行聚类,获得新的锚框参数,更贴合自制数据的尺寸;然后采用改进后的轻量级卷积神经网络MobileNetv3作为主干网络代替CSPDarknet-53,在保持高精度的同时,降低网络参数、加快推理速度;将Neck部分的特征金字塔结构替换为Bi-FPN,提高多尺度特征融合的效率,进而提高网络检测的精度。实验结果表明,提出的储粮害虫检测算法YOLOv5s相比,平均精度均值达到97.1%,FPS提高至91,模型计算量GFLOPs由16.4降低至1.9。储粮害虫检测算法在精度和速度上都有提高,适合在移动端移植,可以方便粮库工作人员的使用。

猜你喜欢

储粮害虫精度
蜗牛一觉能睡多久?
冬季果树常见蛀干害虫的防治
渭南农户储粮的调查与分析
基于DSPIC33F微处理器的采集精度的提高
枣树害虫的无公害防治
中储粮企业全面预算管理之我见
国内首座球形粮仓储粮效果及特性
GPS/GLONASS/BDS组合PPP精度分析
农业害虫的冬季防治
沼气在防治储粮害虫中的应用