当前位置:首页 期刊杂志

基于改进YOLO v7的轻量化樱桃番茄成熟度检测方法

时间:2024-05-24

苗荣慧 李志伟 武锦龙

(1.山西农业大学信息科学与工程学院, 太谷 030801; 2.山西农业大学农业工程学院, 太谷 030801)

0 引言

视觉识别系统作为果蔬采摘机器人系统的组成部分,在果蔬目标识别定位、自动采摘和果蔬估产等方面具有至关重要的作用[1]。樱桃番茄因其营养价值高、风味独特而被广泛种植[2]。由于樱桃番茄果实高度密集、果实小,且叶片遮挡严重、果蔬高度不一,采收成为最费时耗力的工作。目前,樱桃番茄的采摘主要依靠人工,成本高、效率低且不能保证采摘的果实处于最佳采摘时期。对果实成熟期的判定直接决定果实的运输和贮藏方式,对果实的价格及风味也会造成极大的影响[3]。因此,研究具有高识别率的成熟度自动检测系统对于确定不同成熟度果实的分布区域,实现樱桃番茄的自动化采摘具有重要意义。

深度学习技术在目标检测领域有巨大的优势,由于其对目标高维特征的高度提取,使复杂情况下不同成熟度的果实识别成为可能。陈锋军等[11]提出一种改进的EfficientDet的油橄榄果实成熟度检测方法,改进的模型不仅具有良好的检测精度,而且模型占用内存较小,能够胜任自然条件下推广应用的实际需求。龙洁花等[12]提出改进Mask R-CNN的温室环境下不同成熟度番茄果实的分割方法,该方法对绿熟期、半熟期、成熟期番茄果实分割的平均精度均值都较高,可为番茄采摘机器人精准作业提供依据。TIAN等[13]提出了一种改进的YOLO v3模型,用于在不同光照条件、复杂背景以及遮挡等情况下检测不同成熟度的苹果。熊俊涛等[14]提出一种轻量化YOLO v5-Lite模型对自然环境下木瓜成熟度进行检测,该方法对不同拍摄距离、不同遮挡情况以及不同光照情况下的果实均能实现准确识别。可见卷积神经网络在果实成熟度检测研究中优势显著,其中YOLO v7模型具有检测精度高、速度快、支持高分辨率图像、支持多种类型目标等优点,已被应用到行人检测[15]、工业产品缺陷检测[16]等领域。目前,在每秒传输5~160帧图像范围内,YOLO v7模型的速度和精度都超过了所有已知的目标检测模型。因此,选取YOLO v7模型为基础模型进行樱桃番茄成熟度的检测。

目前,基于卷积神经网络的水果成熟度检测方法,存在如下问题:大多数检测精度高的方法,模型计算复杂度高,检测速度慢;而模型计算复杂度低,检测速度快的方法,检测精度却又不高。对于平衡好检测速度、检测精度和模型计算复杂度的樱桃番茄检测方法,当前的研究还较少。樱桃番茄果实具有如下特性:每个花序结果少则一到两个,多则十几个,果实之间往往存在遮挡问题;樱桃番茄果实在生长发育过程中易受光照、环境等因素的影响,同一花序所结果实成熟度不一致且相邻成熟度特征差异不明显。这些都会导致YOLO v7模型对相邻成熟度及遮挡果实的检测能力较差。针对以上问题,本文提出一种改进的YOLO v7轻量化樱桃番茄成熟度检测模型。首先,在数据采集时对具有不同成熟度的部分图像进行跟踪采集,对标注数据进行修订以提高模型对相邻成熟度果实的检测能力。然后,将YOLO v7模型的骨干特征提取网络替换为轻量级的网络MobileNetV3,大幅降低模型的参数量和计算量。在特征融合模块引入GAM注意力模块来加强网络的特征表达能力,降低因模型参数量少而造成检测精度下降的影响,提高相邻成熟度果实和被遮挡果实的检测精度。最后,通过试验验证改进的YOLO v7模型对自然环境下樱桃番茄果实成熟度的检测效果以及确定成熟果实的分布区域,为樱桃番茄果实的自动化采摘提供参考依据。

1 材料与方法

1.1 图像采集

试验研究区域选取山西省晋中市太谷区范村镇象谷村番茄种植基地,该基地主要栽培品种为红美玉、黑珍珠、迷彩、红珍珠、黄珍珠等。本文以产量最高的红珍珠为研究对象,于2023年3—5月使用Oppo Reno5型手机采集温室条件下的不同植株及不同成熟度的樱桃番茄图像。采集时间包括上午、中午和下午,以获取不同光照条件下的图像,共获取3 468像素×4 624像素的樱桃番茄图像1 560幅,其中,部分图像采用跟踪拍摄方式对樱桃番茄成熟过程进行采集。采集图像类型包括单目标图像、多目标图像、顺光图像、逆光图像、有枝叶遮挡图像、无枝叶遮挡图像和重果图像等,如图1所示。

图1 樱桃番茄样本图像Fig.1 Sample images of cherry tomato

1.2 果实成熟度等级划分

国家标准GH/T 1193—2021[17]将番茄成熟度等级根据果皮和果肉颜色变化划分为6级,即未熟期、绿熟期、变色期、红熟前期、红熟中期和红熟后期。而本文研究的重点是无损检测挂枝状态下樱桃番茄的成熟度,与直接采摘果实通过剖面获取果肉颜色判断成熟度相比,挂枝状态无法获取果肉颜色变化;与普通番茄相比,樱桃番茄因其果实尺寸小、生长发育周期短,导致相邻成熟度差异较小。因此,本文根据樱桃番茄实际生长发育情况及果皮颜色变化将6级成熟度(表1)合并为5级成熟度。其中,6级成熟度的第1级为未熟期,该时期果实尚未充分生长发育定形,催熟困难不宜采摘,将第1级删除;6级成熟度的2~6级与5级成熟度的1~4级成熟度完全一致,都是根据果皮颜色的变化进行划分。因此,将6级成熟度的 2~6 级根据果皮颜色定义为5级,分别为绿熟期、转色期、初熟期、中熟期和完熟期,如表2所示。从表2可知,不同成熟度的番茄会直接影响其加工、贮藏及运输方式,采收成熟度因用途的不同而有所差别,适时采摘具有重要意义。

表1 番茄6级成熟度描述Tab.1 Maturity description of tomato at six levels

表2 樱桃番茄5级成熟度描述Tab.2 Maturity description of cherry tomato at five levels

1.3 数据集构建

由于樱桃番茄数据集的数据样本量不足以让模型在训练时达到收敛状态,为了改善网络训练模型效果和提高模型泛化能力,采用数据增强方法增加样本数量,防止网络因训练样本不足导致过拟合问题。本研究采用高斯模糊、水平翻转、垂直翻转、非等比例缩放、随机平移、透视变换和随机裁剪等数据增强方式随机组合,对数据集进行扩充,部分数据增强样本如图2所示。通过数据增强共获得8 745幅样本图像,按照比例7∶1∶2将数据集划分为训练集(6 121幅)、验证集(875幅)、测试集(1 749幅)。

图2 樱桃番茄数据增强图像Fig.2 Data enhanced images of cherry tomato

本研究训练的模型为YOLO系列格式的数据集,采用LabelImg软件对图像中不同成熟度樱桃番茄果实进行标注,格式为.txt文档,标注规则为:①对图像中果实相互遮挡但不影响人工判断成熟度等级的果实分别进行标注。②对果实遮挡严重,人工难以辨别成熟度等级的果实不予标注。③对于未长大的绿色樱桃番茄不予标注。由于樱桃番茄同一花序所结果实成熟度不一致,使得有的图像涵盖多个成熟度级别。数据集中不同成熟度樱桃番茄果实数量如表3所示。

表3 数据集中不同成熟度樱桃番茄标注数量Tab.3 Annotation number of cherry tomato with different maturities

1.4 樱桃番茄成熟度检测模型

樱桃番茄在生长发育过程中易受光照和环境因素的影响,同一花序所结果实成熟度存在差异,本研究构建的数据集中多数图像包含多个成熟度级别,且相邻成熟度特征差异不明显,同时存在枝叶遮挡及果实遮挡问题,导致准确检测果实的成熟度较困难。现有基于深度学习的卷积神经网络模型虽然检测精度高,但模型计算复杂度高、检测速度慢。因此,为了平衡好检测速度、检测精度和模型计算复杂度,同时,有效解决影响相邻成熟度和被遮挡果实的检测问题,本研究对YOLO v7模型进行了改进。

首先,为了达到模型在有较高检测精度和检测速度的同时,模型参数尽可能少的目的,将YOLO v7的骨干特征提取网络替换为轻量级MobileNetV3网络。为了提高相邻成熟度的检测能力,在特征融合网络中加入GAM注意力模块以提高网络的表达能力,改进后的YOLO v7轻量化樱桃番茄模型结构如图3所示。

4.1 PIVAS与住院药房一体化信息系统的构建,需要有资深药学技术人员的积极参与[5]。药学技术人员既要有丰富的药学专业知识,又要有良好的程序开发理念,这样才能与程序员做到有效沟通,进而将深奥的药学需求用信息来实现[6]。

图3 改进的YOLO v7轻量化网络模型Fig.3 Lightweight network model of improved YOLO v7

1.4.1MobileNetV3模型

MobileNet网络是由Google团队提出的一种轻量级神经网络模型,使用深度可分离卷积(Depthwise separable convolution)和反向残差结构的思想构建模型[18]。与传统卷积神经网络相比,MobileNet在准确率小幅度降低的前提下大大减少了模型参数量与运算量[19]。MobileNetV3综合了MobileNetV2和MobileNetV1的特点,在MobileNetV2网络的基础上加入了SE(Squeeze and excitation networks)模块[20],其网络结构如图4和表4所示。

表4 MobileNetV3网络参数Tab.4 Network parameters of MobileNetV3

图4 MobileNetV3网络结构Fig.4 Network structure of MobileNetV3

表4中,第1列为每个特征层输入向量的尺寸;第2列为每个特征层所进行的操作;第3和第4列分别代表了Bottleneck结构中逆残差结构升维后的通道数和Bottleneck输出的通道数;SE代表本层是否引入注意力机制SE模块;NL代表激活函数的类型,其中HS代表hard-swish,RE代表ReLU;最后一列代表Bottleneck结构中卷积的步长。conv2d表示普通卷积,bneck(The inverted residual with linear bottleneck block)表示由线性瓶颈的逆残差结构组成的特征提取块,pool表示池化层。MobileNetV3网络操作过程:首先利用1×1的卷积进行升维,再引入MobileNetV2线性瓶颈的逆残差结构;然后进行3×3深度可分离卷积,降低网络的计算量;再通过注意力模型SE-Net,使网络关注更加有用的通道信息来调整每个通道的权重;最后,使用hard-swish激活函数代替swish函数,减少运算量以提高模型性能。该网络能够在保证模型轻量化的基础上,提高模型精度及运行速度,因此,本文使用MobileNetV3网络作为YOLO v7模型的骨干网络实现特征提取。

线性瓶颈的逆残差结构[21]是一种可以有效减小计算量并且防止细节特征消失的特征提取结构,图5所示是具有瓶颈结构的深度可分离卷积模块。特征首先会在卷积块中通过1×1的卷积进行维度扩张,再使用3×3的卷积进行深度可分离卷积,同时模块在深度可分离卷积的同时融入了轻量级注意力机制将特征图进行全局平均池化(Global average pooling,GAP),并经过ReLU和hard-swish激活函数后和特征图相乘,调整特征图的每个通道的权重。(图5中Dwise 3×3表示3×3卷积核的深度可分离卷积,BN表示Batch Normalization,GAP表示全局平均池化,Conv 1×1表示1×1的卷积)。

图5 线性瓶颈的逆残差结构块Fig.5 Inverted residual with linear bottleneck block

1.4.2加入GAM注意力模块的特征融合网络

卷积块注意力模块(Convolutional block attention module,CBAM)是一种结合了空间注意力模块和通道注意力的卷积注意力模块[22],通过学习可以自动获取每个特征空间和特征通道的重要程度,并根据重要程度分配不同的权重来加强重要特征的提取,抑制其他无关的信息。但由于信息减少及维度分离,该机制只能利用有限的感受野实现视觉表示,缺乏空间和通道的交互作用。GAM是一种可以减少信息缩减并放大全局维度交互特征的注意力机制[23],它采用CBAM中的顺序通道-空间注意机制,并对子模块进行了重新设计,其模型结构如图6所示。

图6 GAM注意力模块Fig.6 GAM attention module

GAM能够稳定地提高不同架构和深度的卷积神经网络的性能,具有良好的数据拓展能力和鲁棒性。

F2=Mc(F1)⊗F1

(1)

F3=Ms(F2)⊗F2

(2)

其中:F1∈RC×H×W为输入特征图;Mc和Ms分别为通道和空间注意特征图;⊗为矩阵点乘。

通道注意力子模块采用3D组合保留跨三维度信息,然后采用多层感知机(Multilayer perceptron,MLP)让特征向量在不同维度间充分交互,使得模型能够获取更多非线性特征和组合特征信息,如图7所示,图中C、H、W分别为特征图的通道数、高和宽。其中MLP代表多层感知机(全连接层);Sigmoid为激活函数。

图7 GAM通道注意力子模块Fig.7 Channel attention submodule of GAM

为了更多关注空间信息,在空间注意力子模块中采用2个卷积层对空间信息进行融合。由于最大池化减少了信息量且对模型具有消极影响,该模块中删除了池化过程来更好地保留特征图,如图8所示。

图8 GAM空间注意力子模块Fig.8 Spatial attention submodule of GAM

1.5 试验环境配置与网络参数设置

试验所用操作系统为Windows 10,CPU型号为Intel(R) Core(TM) i7-12700F @2.10 GHz,GPU型号为NVIDIA GeForce RTX 3080,运行内存为32 GB,1 TB机械硬盘,编程语言为Python 3.9,使用的深度学习框架为Pytorch 1.13.0,GPU加速库为CUDA 11.7、CUDNN 8.4.1。为缩短网络训练的时间,采用冻结训练的方法,冻结骨干网络训练时初始学习率设为0.001,批处理量设为16,动量设置为0.9;解冻之后的网络训练学习率设为0.000 1,批大小设为8,动量设置为0.9,迭代次数为300次。

1.6 模型评价指标

对樱桃番茄果实成熟度的检测过程需要考虑检测精度和速度。在模型检测精度方面,选用精确率(Precision,P)、召回率(Recall,R)和平均精度(Average precision,AP)作为评价指标;在模型检测性能方面,选取平均精度均值(mAP)、平均检测时间(Average detection time,ADT)和模型内存占用量作为评价指标。

2 实验结果与分析

2.1 改进YOLO v7模型试验

为验证改进YOLO v7模型的性能,对测试集中的1 749幅樱桃番茄图像进行测试评价,表5为本文算法在不同成熟度级别的检测结果。从表5中可知,本文算法的平均精度均值可以达到98.2%,精确率为98.6%,召回率为98.1%,所有成熟度级别检测结果均在96%以上。部分检测示例如图9所示,从图9中可以看出,本文算法能够准确检测出不同成熟度的樱桃番茄,对于图9a中掉落在地上的小目标以及距离较远的小目标本文识别结果也较好。由于果实成熟时间不一致,图像包含多个成熟度级别,对于刚进入初熟期的果实与进入中熟期的果实特征差异较小,极易发生误判,改进的算法可以提取果实表型形状的细粒度特征实现不同成熟度的准确检测。图9中樱桃番茄果实可能受枝叶以及其他果实的遮挡,改进的YOLO v7模型可进一步融合遮挡果实的位置信息以及语义信息,提高对遮挡果实成熟度的检测能力。综上所述,改进的YOLO v7模型能够准确地检测果实的成熟度,对小目标、多目标、枝叶遮挡、重果、光照影响等都有较好的检测效果。

表5 本文算法不同成熟度级别检测结果Tab.5 Detection results with different maturities of proposed algorithm %

图9 改进后的YOLO v7模型检测结果Fig.9 Detection results of improved YOLO v7 model

2.2 改进YOLO v7模型消融试验

为了进一步验证改进YOLO v7模型的性能,本研究设置了消融试验验证4组网络的性能,分别为在YOLO v7特征融合中加入GAM模块、替换YOLO v7骨干网络为MobileNetV3、YOLO v7和本文算法。从定量的角度分析4组网络的性能,对测试集中的1 749幅樱桃番茄图像进行客观评价,评价指标包括模型检测精度、平均检测时间等,评价对比结果如表6所示。从表6可知,改进后模型平均精度均高于其他3组模型。

表6 改进的YOLO v7模型消融试验结果Tab.6 Ablation test results of improved YOLO v7 model

2.3 不同目标检测网络对比结果分析

为定性评价改进YOLO v7模型的检测结果,将改进的模型与Faster R-CNN[24]、YOLO v3[25]模型、YOLO v5s[26]模型以及原始YOLO v7模型对测试集中的樱桃番茄图像进行算法对比,算法对比结果如图10所示。

图10 不同目标检测网络对比结果Fig.10 Comparison results of different detection networks

从图10b可知,该算法在单果目标图像中能够识别小目标,但部分结果存在重复识别情况;在多目标图像中,存在重复识别情况,算法将图像中部分树叶误识别为果实,对重果的识别效果也差,并且存在漏检情况。从图10c可知,该算法在单果目标图像中能够较好地识别小目标、远距离目标;在多目标图像中,重果识别效果较差,部分图中将树叶识别为果实,存在误识别,也存在漏检情况。从图10d可知,该算法在单果目标图像中能够较好地识别小目标;在多目标图像中,针对重果、枝叶遮挡、多目标等情况识别效果都较好。从图10e可知,该算法在单果目标图像中识别小目标情况较差;在多目标图像中,绿色多目标和重果识别效果较差,部分图中将树叶识别为果实,存在误识别,也存在漏检情况。从图10f可知,该算法在单果目标图像中能够较好地识别小目标、远距离目标;在多目标图像中,针对重果、枝叶遮挡、多目标等情况识别效果都较好。

为定量比较改进模型的性能,将改进模型与Faster R-CNN、YOLO v3模型、YOLO v5s模型以及原始YOLO v7模型在测试图像上进行性能比较,如表7所示。从表7中可知,与其他模型相比,改进的YOLO v7樱桃番茄成熟度检测模型在精确率、召回率、平均精度指标都是最优的,分别为98.6%、98.1%、98.2%,其平均精度均值mAP与Faster R-CNN、YOLO v3模型、YOLO v5s模型以及原始YOLO v7模型相比分别提升18.7、0.2、0.3、0.1个百分点。本文模型在原始YOLO v7模型的基础上进行了轻量化改进,改进之后的模型内存占用量也是最少的。

表7 不同检测模型在测试集中的性能结果Tab.7 Performance of different detection models in test sets

3 结论

(1)提出了一种改进的轻量化YOLO v7网络模型用于樱桃番茄成熟度检测。该网络将YOLO v7原始模型中骨干网络替换为轻量型MobileNetV3结构并在特征融合网络中引入GAM注意力机制,不仅能够充分并有效利用全局维度的交互特征,还使得网络能够平衡运算速度和模型复杂度的问题。

(2)为了验证改进YOLO v7模型的性能,本文设置了4组网络进行消融试验验证并对试验结果进行了定量分析,4组网络分别为在YOLO v7特征融合中加入GAM模块、替换YOLO v7骨干网络为MobileNetV3、YOLO v7和本文算法,试验结果表明改进后的模型在模型检测精度和平均检测时间方面均优于其他3组模型。

(3)在相同的试验条件下,通过与Faster R-CNN、YOLO v3、YOLO v5s、YOLO v7模型对比,改进的模型在樱桃番茄数据集上取得了较优的效果,平均精度均值mAP分别提升18.7、0.2、0.3、0.1个百分点。试验充分证明了本文提出的轻量化模型不仅在评价指标上有所提高,同时在视觉上也取得了较好的效果。通过本研究可以将成熟度检测应用于农产品智能采摘中,为其他农产品智能采摘机器人的视觉识别、目标定位以及分级等后续工作提供依据。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!