1、人工智能本栏目责任编辑:唐一东Computer Knowledge and Technology电脑知识与技术第19卷第4期(2023年2月)第19卷第4期(2023年2月)基于改进YOLOv5s的轻量级桃子检测算法赵红梅,文嘉睿(江苏电子信息职业学院,江苏 淮安 223001)摘要:我国是世界上最大的桃子生产国,然而桃子采摘仍然依靠人工采摘,而桃子目标检测技术是实现桃子自动采摘的关键,现有专门针对桃子目标检测的研究较少,且多数使用传统的图像处理与机器学习方法。该文通过深度学习技术,提出一种基于YOLOv5s的桃子检测算法。首先,将轻量化的MobileNetv3网络替换YOLOv5s中的主干网
2、络,其次,选取更高效的注意力机制ECA模块替换MobileNetv3中的注意力模块。在自建桃子数据集上训练结果显示,改进后的算法平均精度达到92.9%,模型计算量仅有原来的12%。实验表明,改进后的模型在保持高精度的同时更轻量化,能够对复杂环境下的桃子进行有效实时检测。关键词:桃子检测;YOLOv5s;MobileNetv3;注意力机制;轻量化中图分类号:TP391.4文献标识码:A文章编号:1009-3044(2023)04-0033-04开放科学(资源服务)标识码(OSID):1 引言目前我国是世界上最大的桃子生产国,占世界总产量的60%以上,且每年呈上涨趋势1。当大量的桃子成熟时,需要大
3、量的人工去进行采摘,耗时耗力,效率低下,而且随着人们生活水平的提升,对桃子的外观、口感要求也越发的高,对桃子采摘也提出了一定的要求。所以,研究桃子的自动采摘技术很有意义。其中,如何快速、准确地检测桃子目标成为桃子自动采摘技术的关键。目前在水果的目标检测领域,以检测苹果为主要研究目标,针对桃子的目标检测研究较少,而且大多数采用传统的图像处理方式,在果园这种果实被枝叶遮挡、果实重叠遮挡、光照复杂等复杂环境下,检测的准确度较低,另外果实采摘系统的嵌入式平台一般算力有限,复杂的模型很难满足检测速度的实时性要求。因此,在保证桃子检测精度的同时,提高桃子检测的速度成为桃子检测的研究难点和热点。近年来,随着
4、人工智能技术的飞速发展,基于深度学习的目标检测算法发展迅速,主要分为两类:第一类是以R-CNN2-4系列为代表的二阶段目标检测算法,该类算法先生成建议目标框,然后再对建议目标框内的物体进行分类和位置的回归;第二类是以YOLO5-8系列、SSD9系列为代表的一阶段目标检测算法,该类方法无须生成建议目标框的阶段,而是直接对图像进行卷积提取特征,然后在特征图上进行目标位置的回归,减少了检测的时间,但是会在一定程度上影响精度,但是在对实时性要求比较高的应用场景下,一阶段目标检测算法应用更为广泛10。本文以目标检测算法中性能比较好的YOLOv5s网络模型为基础,提出一种改进YOLOv5s的轻量级桃子检测
5、算法,用更轻量的MobileNetv3网络替换主干特征提取网络,以实现网络模型的轻量化,平衡速度与精度;然后将通道注意机制SE模块替换为更高效的ECA模块。2 YOLOv5s算法YOLOv5算法是YOLO系列算法的一个延伸,由Ultralytics公司在2020年提出的,是目前从检测精度与速度上来说较为优秀的一阶段检测网络模型。依据模型的不同深度和宽度,可以分为五个基准模型:YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。其中YOLOv5s是模型较小的同时精度较高的一个,更适合轻量化的桃子检测,因此本文选取YOLOv5s模型作为基准模型进行改进。YOLOv5s模
6、型主要包括Input、Backone、Neck以及Head这四个部分,其网络结构如图1所示。Input部分进行图像预处理,采用Mosaic数据增强、自动计算锚框、自适应图片缩放等方法。Mosaic数据增强选取多张图片,采用随机裁剪、随机缩放、随机排布的方式进行图像拼接,扩张了检测数据集,特别是很多小目标被随机缩放后,增加了样本的多样性,使得网络模型更加鲁棒。收稿日期:2022-05-25基金项目:淮安市自然科学研究计划项目(HABL202126)作者简介:赵红梅(1988),女,江苏淮安人,工程师,硕士,主要研究方向为计算机视觉等;文嘉睿(2002),男,山东东营人,在读学生,主要研究方向为计
7、算机应用等。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.19,No.4,February202333DOI:10.14004/ki.ckt.2023.0198本栏目责任编辑:唐一东人工智能Computer Knowledge and Technology电脑知识与技术第19卷第4期(2023年2月)第19卷第4期(2023年2月)预处理之后的图像再输入到Backbone部分提取丰富的图像特征,包括边缘特征、纹理特征以及位置特征等。Backb
8、one 主干网络主要包括 Focus 模块、CSP模块11以及SPP模块12。其中Focus模块的切片操作,将高分辨率的特征图拆分成多个低分辨率的特征图,然后拼接在一起,再经过一次卷积,能够减少计算量的同时降低内存的使用量;而CSP模块主要用于局部跨通道融合,将原输入分成两条处理线,分别进行卷积操作,使得通道数缩减为原来一半,然后另外一条处理线进行多个Bottleneck操作,然后拼接两条处理线上的特征图,使得输入与输出是一样的大小,增强了网络对特征的融合能力;SPP模块是空间金字塔池化层,采用统一的步长但不同尺寸的卷积核实现,统一步长代表输出的特征图尺寸一样,再通过concate按通道拼接后
9、用11卷积,实现特征融合,可以进一步提高检测精度;CBL模块是由卷积层(Conv)、归一化层(BN)、激活函数SiLu构成,主要作用是可以从深层和浅层特征图中提取上下文信息。Neck部分主要包含FPN和PAN结构,其中FPN结构通过自顶向下进行上采样,将高层的语义信息带给底层的特征图,而PAN结构自底向上进行下采样,将底层的位置信息带给高层的特征图,然后将高层和底层的特征图进行拼接,使得更强的语义信息和位置信息被不同尺度的特征图所包含,增强了网络的特征提取能力。Head部分对获取到的三种不同尺度特征图像,预测类别概率、置信度以及预测框进行损失函数的计算,同时采用非极大值抑制预测置信度较高的预测
10、框。其中,三种尺度分别是2020、4040、8080,采用的损失函数是GIOU_Loss13。3 YOLOv5s算法改进3.1 主干网络的改进YOLOv5s是多目标检测模型,而本文所研究的桃子检测仅对桃子这一类目标进行检测,使得原始模型存在一定的参数冗余,而且目前大多数采摘机器人上安装的嵌入式设备用于部署目标检测模型,其计算和存储资源有限,因此有必要对模型进行轻量化的改进。MobileNet网络是Google针对手机等嵌入式设备提出的一种轻量的深层神经网络,采用可分离的卷积以及反向残差结构的思想进行模型构建14,在模型延迟和准确率中寻找平衡点,具有模型小和性能优等特点。可分离卷积由深度卷积和逐
11、点卷积构成,深度卷积为每个数据的输入通道设置不同尺寸的卷积核,逐点卷积为每个数据设置尺寸为1的固定卷积核。两种类型的卷积结合后相当于一个标准的卷积,但是大大降低了参数数量以及运算量。然而对比其他的卷积神经网络,MobileNet网络模型的精度仍然存在提升的空间。MobileNetv315是在MobileNetv2网络的基础上,融合了SE模块16以及Swish激活函数构成,其主干网络Bneck结构如下图2所示,首先对输入的特征利用一个11的卷积层进行升维,扩张通道数后进行可分离卷积特征提取,再引入残差结构。MobileNetv3网络会将提取到的图像特征输入到注意力SE模块中,全局平均池化后再输入
12、到全连接层FC1,通道数缩减为原来的1/4,再经过激活函数Relu,FC2将通道数扩张回原来的大小,之后再接一个h-swish激活函数,减少运算量,提高性能。图2MobileNetv3主干网络Bneck的结构示意图3.2 ECA注意力机制基于深度学习的目标检测技术在计算机视觉领域已经得到了广泛应用,然后面对复杂环境下的多尺度目标检测时,仍然面临着检测精度不够高、定位不够准确等问题。目前,大部分是在检测基准模型上增强多尺度特征以及引入注意力机制模块。MobileNetv3网络模型中采用的是注意力机制中的SE模块,通过两个全连接层融合通道特征,该全连接层使得SE模块不具备轻量级,之后的特征降维使得
13、通道与其预测权值没有直接联系,影响SE模块的整体性能。ECA模块是一种超轻量级的注意力模块,其对SE模块进行了一些改进,提出了一种不降维的局部跨通道融合方法,通过一维卷积高效地实现局部跨通道交互,提取通道间的依赖关系,适当的跨通道交互可以在显著降低模型复杂度的同时保持性能,因此本文采用ECA模块替换MobileNetv3中的SE模块。图1 YOLOv5s网络结构示意图34人工智能本栏目责任编辑:唐一东Computer Knowledge and Technology电脑知识与技术第19卷第4期(2023年2月)第19卷第4期(2023年2月)图3ECA模块结构示意图4 实验结果与分析4.1 实
14、验平台本实验的平台采用PyTorch1.8.1深度学习框架,计算机操作系统为 ubuntu18.04,Python 版本为 3.8,Cuda版本为11.1,CPU为7核的Intel(R)Xeon(R)CPUE5-2680 v4 2.40GHz,内存为16GB,GPU为NVIDIATITAN Xp,显存大小为12GB。4.2 数据集准备本文实验使用的数据集由两部分组成。第一部分来自Fruit-360这个开源数据集,这个数据集包括120种水果和蔬菜,其中每张图像都是在实验室进行采集,然后去除了背景,只剩下目标物体,本文提取了其中Peach品种的桃子图像,共计492张图像。第二部分数据集使用自建数据
15、集,图像来自于互联网,以桃子为关键词进行搜索获得,经过数据筛选,保留了629张图像。这两部分数据集加起来一共1121张图像,使用lableImg标注图像中的桃子目标框,并以8:2的比例将其分为训练集896张,验证集225张。4.3 训练参数设置本文采用YOLOv5s模型进行训练,优化器采用SGD,训练200轮迭代,批次大小设置为64,初始化学习率为0.01,采用mosaic进行数据增强。4.4 评价指标本文采用精确率(Precision)、召回率(Recall)、平均精度(Average Precision,AP)这几个指标对模型进行检测精度评价,精确率表示预测正样本中真正的正样本的比例,召回
16、率表示预测正样本中真正的正样本占实际正样本的比例,平均精度AP值是由召回率和精确率分别为横坐标和纵坐标围成的区域面积计算得来。其中,数值越大,模型的检测精度越高。此外,采用以下两方面指标作为模型的性能评价指标,模型内存占用量、每秒浮点运算量(Floating-point Operations Per Second,FLOPs),其中,数值越小,模型的运行速度越快。4.5 实验结果分析本文方法在自建数据集上的训练精度曲线如图5所示,在经过50轮迭代后训练精度曲线逐渐收敛,100轮迭代后逐渐趋于稳定,曲线没有出现欠拟合或者过拟合的现象,训练精度较为理想。图5 训练精度曲线图本文方法在自建数据集上训练200轮迭代后,得到模型的精确率为 89.7%,召回率为 85.5%,AP 为92.9%,检测不同遮挡情况下的桃子目标的效果如图6所示,其中检测框上方显示目标名称以及置信度,图中不同遮挡和大小的桃子目标都可准确检测到,表明该算法能够在复杂环境下有效地检测出桃子目标,适用于果园这种枝叶遮挡、果实重叠遮挡、光照复杂的环境。图6 桃子的检测效果图为了评价MobileNetv3替换YOLOv5s主干网络