当前位置:首页 期刊杂志

采用改进YOLOv4-tiny的复杂环境下番茄实时识别

时间:2024-05-24

杨 坚,钱 振,张燕军,秦 宇,缪 宏

(扬州大学机械工程学院,扬州 225127)

0 引 言

温室种植番茄可以减少病虫害的影响,但人工采摘成本非常高。近年来,人工智能的应用越发广泛,尤其是在农业中的应用。不少学者对番茄成熟的识别进行了研究。马翠花等融合了一种显著性检测方法与随机Hough变换,识别番茄簇中的绿色单果。Yamamoto等将图像处理与机器学习相结合,人工的使用颜色、形状、纹理和大小来识别番茄。Lin等提出了一种Hough变换方法,该方法使用支持向量机根据颜色和纹理的特征信息来识别柑橘和番茄等水果,此方法考虑了轮廓信息,可以识别出轻度遮挡的目标,但无法识别遮挡严重的目标。上述方法都需要使用机器学习和图像处理技术,然而传统的机器学习技术需要人为设计的特征,这些特征往往具有具体的物理含义,且特征设计是一项复杂的任务。使用卷积神经网络(Convolution Neural Networks, CNN)的深度学习,只需要提供带标签的数据集不用人为设计的特征,可用于复杂场景中的目标识别任务。

基于卷积神经网络的目标识别算法,已广泛应用于农业和制造业的识别检测,主要分为两阶段目标识别算法(two stage)和单阶段目标识别算法(one stage)。两阶段目标识别算法的主要代表为R-CNN、Fast R-CNN和Faster R-CNN,此类算法是基于区域推荐(Region Proposal)进行目标识别;单阶段目标检测算法的主要代表为SSD和YOLO,此类算法将图像归一化到统一大小后直接放入一个卷积神经网络。闫建伟等提出了一种改进Faster R-CNN模型识别自然环境下不同成熟度的刺梨果实,识别准确率为95.53%,识别召回率为81.4%,F1得分为94.99%,该模型需占用大量资源来计算目标区域建议框和分类识别,检测时间过长,每张图片的识别时间为200 ms。成伟等基于改进YOLOv3模型识别温室中的番茄,识别的平均精度均值为95.7%,每张图片的识别时间为15 ms,该方法虽可用于大番茄的识别,但受限于识别速度,在低成本的设备上难以满足实时性的要求。吕石磊等使用MobileNet-v2作为YOLOv3-LITE模型的骨干网络,并引入GIoU边框回归损失函数来识别复杂环境下的柑橘,测试的平均精度均值为91.13%,每张图片的识别时间为16.9 ms。Liu等在YOLOv3中添加密集连接结构,并使用圆形边界框代替矩形边界框识别番茄,该方法仅针对圆形大番茄,并不适用于一般形状的番茄,且并未区分成熟度。Lawal等在YOLOv3模型中加入密集的连接结构和空间金字塔网络来识别复杂环境中的番茄,该方法的单个图像识别时间为52 ms,不适用于实时采摘。Chen将基于平均精度损失的分类损失函数应用于YOLOv4模型中检测苹果。张伏等使用MobileNet-v3作为模型的特征构建YOLOv4-LITE网络,并在头部网络部分增加大尺寸的检测头来识别成熟番茄,测试的平均精度均值为99.74%,但该方法只能识别成熟番茄,为了预测番茄产量和预防番茄病害,未成熟番茄的识别同样重要。YOLO系列模型的网络结构复杂、参数多,实时检测需要强大的GPU计算能力。在嵌入式设备和移动设备中实现实时目标识别是一个巨大的挑战。

由于大多数神经网络模型并非针对特定目标,为提高模型识别准确率,众多学者做了相关研究。Hu等提出了挤压和激励网络(Squeeze and Excitation Networks, SE),该网络加强了通道方向特征的学习。为了兼顾空间特征,Woo等提出了卷积注意力模块(Convolution Block Attention Module, CBAM),王立舒等在YOLOv4-tiny中加入CBAM模块识别蓝莓,改进网络提升了遮挡蓝莓的识别准确率,测试的平均精度均值为96.24%。为了加强全局特征联系并鼓励特征重用,Huang等在卷积神经网络中加入密集的连接结构,Gai等在YOLOv4网络中添加密集连接结构识别樱桃果实,改进网络提高了复杂环境中樱桃的识别准确率。因此,卷积注意力模块和密集的连接结构会提高模型在复杂环境下目标识别准确率。本文在YOLOv4-tiny网络中加入CBAM模块、密集的连接结构、Mish激活函数和第三个检测头(y3),以解决复杂环境中番茄成熟度识别准确率低的问题,以期为番茄成熟度识别提供参考。

1 材料与方法

1.1 数据采集

本文使用的数据集拍摄于扬州市西江生态园的番茄温室,拍摄时间为2020年12月5日上午,番茄品种为红风铃,所有图片在距离番茄0.3~1 m的不同角拍摄。选择1 300张分辨率为1 280×720的照片制作数据集,如图1所示,其中包含不同光照条件、遮挡、远距离等复杂环境。

图1 不同场景下的番茄数据集样本 Fig.1 Samples of tomato datasets in different scenes

1.2 数据集构建

现行的国家标准GH/T1193-2021按照番茄颜色和大小,将番茄的成熟度分为未熟期、绿熟期、变色期、红熟前期、红熟中期和红熟后期,其中红熟中期和红熟后期的果实着红面分别达到40%~60%和70%~100%。温室中,通常每株番茄树至少有三种成熟度(绿熟期、变色期和红熟期)的番茄,只采摘红熟中期和红熟后期的番茄。本文将红熟中期和红熟后期的番茄统称成熟番茄,其他成熟度番茄统称未成熟番茄。使用LableImg标注工具(https://github.com/tzutalin/labelImg)手动标注成熟番茄(ripe tomato)和未成熟番茄(underripe tomato),其中,识别的成熟番茄用于本地销售以保证最佳口感,未成熟番茄用于产量预估和病虫害防治以提高果园经济效益。标注时,为了减小视觉疲劳造成的误差,每标注45 min休息10 min;为了减小视觉差异造成的误差,在同一台电脑上完成标注,对于不确定成熟度的番茄进行多人讨论达成一致,最后由两人分别检查两次以确保数据集标签的准确性。使用留出法(Holdout method)将标注的1 300张图像按照8∶2分为训练集和测试集,测试集中的20%作为验证集用于模型训练中的交叉验证(Cross-validation),即训练集图像1 040张,测试集图像208张,验证集图像52张。

2 检测方法

2.1 YOLOv4-tiny-X 模型

本文致力于构建检测速度快、识别准确率高的神经网络模型,可用于复杂场景下番茄采摘车的实时识别任务。YOLOv4模型识别准确率高,但是模型参数多,权重文件大,对计算机硬件要求高,不利于嵌入式设备或者移动设备的开发。YOLOv4-tiny模型的识别准确率低于YOLOv4模型,针对复杂环境下番茄识别准确率较低甚至会误检。本文提出一种改进YOLOv4-tiny-X模型,如图2所示,本文从以下4个方面进行改进:

图2 改进 YOLOv4-tiny-X 模型结构 Fig.2 Improved YOLOv4-tiny-X model structure

1)在每个CSP(Cross Stage Partial)模块之后添加CBAM卷积注意力模块,3个CBAM模块可以使神经网络对有用的通道信息和空间信息进行3次重用。

2)在头部网络部分增加76×76的检测头(y3)以提高小目标物体的识别准确率。在第二个检测头(y2)的最后一个CBL(Conv Batch normalization Leaky relu)模块上再次进行卷积操作,以获得更深层的特征图,上采样操作得到大尺寸的特征图与第二个CSP模块进行张量拼接。

3)为了重用局部特征并加强全局特征的融合,密集连接结构将CSP模块中的3个CBM模块和检测头前的CBL模块连接起来。

4)随着卷积层的加深,Mish激活函数的识别准确率比Swish、ReLU和Leaky ReLU更高。因此将主干部分的激活函数更换为Mish函数。

卷积注意力模块(CBAM)强调了通道方向和空间方向的重要特征的学习,因此,重要特征的权重更大,被传递到更深层用于进行精确分类。在图3中,CBAM由两个模块组成。其中,通道注意力模块的中间输入特征图∈R同时被平均池化和最大池化。然后将汇集的特征传到具有一个隐藏层的共享多层感知器,使用激活函数对结果特征进行元素相加并激活以生成通道注意力图MR,计算公式如下:

图3 卷积注意力模块 Fig.3 Convolution block attention module

式中为输入的特征图,M为通道压缩权值矩阵,为sigmoid激活函数,MLP为共享多层感知器,AvgPool为平均池化操作,MaxPool为最大池化操作。通过将M学习到的通道权重分配给的不同通道,获得改进的通道注意力:

式中为经通道注意力选择的特征图,⊗为元素相乘。在空间注意力模块中,沿通道进行平均池化和最大池化,并对汇集后的特征进行一个7×7卷积操作,再进行激活操作。空间注意力图M计算公式如下:

式中″为经卷积注意力模块选择的特征图,M为空间压缩权值矩阵。最后,将空间信息M乘以′获得CBAM模块处理后的特征″:

YOLOv4-tiny是由少数卷积层组成的神经网络,在卷积过程中会出现特征丢失的情况,Huang等提出密集连接结构用于减少特征丢失、缓解梯度消失,在不显著增加计算量的前提下,还加强特征的传递和重用。图2中,虚线部分为密集连接结构,在第二个和第三个CSP模块中执行以下操作:CSP模块中的第一个、第二个和第四个CBM模块在上采样操作之后进行张量拼接,此操作融合了浅层和深层的特征信息,使改进模型在关注深层特征信息时不丢失浅层信息。

Mish激活函数公式为() =tanh(softplus()),式中softplus() = ln(1 + e)。Misra等使用MNIST(Mixed National Institute of Standards and Technology database)数据集测试了ReLU、Swish和Mish激活函数。试验结果表明,随着卷积层的加深,ReLU函数和Swish函数的准确率都会大幅下降。YOLOv4-tiny模型为了减少计算量而使用ReLU激活函数,改进模型有149层,为了提高模型识别准确率,将主干网络部分中所有ReLU激活函数换为Mish激活函数。

2.2 模型训练与测试

进行卷积神经网络模型训练和测试的工作站硬件为Intel i5-10600KF CPU,32G内存,Nvidia GTX 2060 GPU,试验在Ubuntu20.04.2LTS操作系统上进行,此外,还使用CUDA v11.1.74、cuDNN v8.1.0和OpenCV 4.5.2的库加速运算。

图像的输入尺寸为 640 × 640×3,动量衰减和权重衰减分别设置为0.9和0.000 5,迭代次数为300次。在训练过程中调整学习率以减少训练损失,初始学习率为0.001,在训练到150、240和270次的时候学习率分别降低0.1倍,此外所有模型都使用预训练权重文件和Mosaic数据增强功能。

使用mAP50(IoU阈值为0.5的每个类别的平均准确率)、F1得分和每秒帧数来评估不同模型的性能,准确率(Precision)衡量预测的准确程度,召回率(Recall)衡量所有正样本的检测情况,计算公式如下:

式中TP表示所有被正确划分到正样本的数量,FP表示被错误划分到正样本的数量,FN表示被错误划分到负样本的数量。F1得分是协调识别精度和召回率的一个指标,计算公式如下:

3 结果与分析

3.1 消融试验性能对比

消融试验结果如表1所示,CBAM模块优化了通道维度和空间维度的特征信息,准确率提升了1.8个百分点;在此基础上加入第三个检测头,使模型的召回率提升了2.6个百分点;为了减少模型在深层网络中的错误率,使用mish激活函数替代模型骨干网络的激活函数,准确率和召回率分别提升了0.6和0.5个百分点;为了进一步加强全局特征信息的融合以提高模型的识别准确率,使用密集的连接结构,准确率提升了0.5个百分点,召回率提升了1个百分点。最终,改进的YOLOv4-tiny-X模型召回率提高了3.4个百分点,F1得分提高了2个百分点、平均精度均值提高了0.7个百分点。

表1 消融试验性能对比 Table 1 Ablation experiment performance comparison (%)

3.2 不同模型的检测性能对比

YOLOv4-tiny模型的权重文件大小与YOLOv5m模型相近,改进模型的权重文件大小与YOLOv5l模型相近,因此,将改进模型与YOLOv3、YOLOv4、YOLOv4-tiny、YOLOv5m、YOLOv5l进行比较,并将交并比(IoU)阈值和目标置信度阈值都设置为0.5,测试这些模型的最佳权重文件的准确率(Precision)、召回率(Recall)、F1得分和平均精度均值(mAP50)。结果如表2所示,作为先进的目标识别模型,YOLOv4、YOLOv5m和YOLOv5l都具有90%以上的平均精度均值,然而,改进模型的平均精度均值为97.9%,分别提高0.2、5.4和4.9个百分点。对比YOLOv4-tiny模型和YOLOv4-tiny-X模型,改进模型的准确率、召回率、F1得分和平均精度均值比YOLOv4-tiny模型分别提高0.41、3.4、2和0.7个百分点。结合表3,改进模型的权重文件不足YOLOv4权重文件的六分之一,检测速度是其2倍,模型层数比YOLOv4少339层。与先进的目标识别模型相比,YOLOv4-tiny-X模型在保证极高的检测速度时,具有最高的目标识别准确率。改进模型占用内存少、运算速度快、识别准确率高,可用于开发无人番茄采摘系统的嵌入式设备和移动设备。

表2 不同模型的检测性能 Table 2 Detection performance of different models (%)

表3 不同模型的属性和性能 Table 3 Properties and performance of different models

3.3 不同模型复杂环境下实时识别可视化结果

不同模型识别结果如图4所示,为了快速分析识别情况,使用带有“ripe tomato”标签的红色边界框圈出成熟番茄,带有“underripe tomato”标签的粉色边界框圈出未成熟番茄。YOLOv3模型实时识别效果相对较差,存在漏检和误检,与YOLOv4和YOLOv4-tiny模型相比,改进模型在中间检测到了两个小番茄,成功解决了现有模型对小目标番茄识别准确率低的问题。

图4 不同模型检测小番茄的可视化结果 Fig.4 Visualization results of different models to detect small tomatoes

表4是在不同的IoU阈值下识别成熟番茄的平均精度均值(mAP)对比,与YOLOv3、YOLOv4和YOLOv4-tiny模型相比,YOLOv4-tiny-X模型的mAP在IoU阈值为0.5时分别提高25.7、0.6和1.3个百分点;在IoU阈值为0.75时,分别提高26.8、0.4和1.6个百分点。尽管文献[17]在IoU阈值为0.5时识别成熟番茄的平均精度均值高达99.74%,但高IoU阈值产生更小的边界框,有利于采摘机器人手臂的精确定位。YOLOv4-tiny-X模型在IoU阈值为0.75时平均精度均值为98.3%,高于文献[17]的67.19%。

表4 不同模型识别成熟番茄的平均精度均值对比 Table 4 Comparison of mean average precision of different models for recognizing ripe tomatoes (%)

图5是不同模型对包含遮挡番茄图片的识别结果,与YOLOv4、YOLOv5m、YOLOv5l 模型相比,改进模型无漏检、误检,其他三个模型都有不同程度的漏检,其中,YOLOv4和YOLOv5l模型漏检了5个未成熟番茄,YOLOv5m模型漏检了3个未成熟番茄。值得注意的是,YOLOv4、YOLOv5m、YOLOv5l 模型漏检的都是被遮挡的番茄,改进模型以较高的识别准确率识别出了被遮挡的番茄,因此YOLOv4-tiny-X模型成功的解决了现有模型对遮挡番茄识别准确率低的问题。

图5 不同模型检测被遮挡番茄的可视化结果 Fig.5 Visualization results of different models to detect occluded tomatoes

图6 是YOLOv4-tiny-X模型的实时识别结果,为了更好地观察模型的实时识别效果,图中隐藏了边界框的标签和置信度,可以看出,改进模型能够在复杂环境中准确的识别出所有被遮挡番茄和小番茄。

图6 YOLOv4-tiny-X模型复杂环境下实时识别可视化结果 Fig.6 Visualization results of real-time recognition results of the YOLOv4-tiny-X model in the complex environment

4 结 论

目前先进的神经网络模型权重文件过大,实时检测速度慢,对遮挡番茄和小番茄的识别准确率不高。

1)本文提出了一种基于改进YOLOv4-tiny的神经网络模型,通过在头部网络部分增加第三个检测头(y3)来提高小目标识别准确率;将CBAM模块融入到骨干部分,以提高被遮挡番茄的识别准确率;采用密集连接结构来加强全局特征信息的融合;在主干网络部分使用Mish激活函数来确保深层卷积中提取特征的准确性。

2)本文采用红风铃番茄数据集进行标注和试验,本文方法适用于成熟期为红果的小番茄。对于成熟期为红果的大番茄,本文方法也具有一定的适用性。成熟期为其他颜色的番茄使用本文方法时需重新标注训练。

3)试验结果表明,与YOLOv3、YOLOv4、YOLOv4-tiny、YOLOv5m和YOLOv5l模型相比,YOLOv4-tiny-X模型在保证极高检测速度的前提下,具有最高的平均精度均值,平均精度均值分别提高了30.9、0.2、0.7、5.4和4.9个百分点,改进模型的平均精度均值为97.9%,识别速度为111帧/s,实时识别的可视化结果表明,面对复杂的环境,改进的神经网络模型具有稳定性,可为番茄采摘车的成熟度识别系统开发提供参考。

免责声明

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