基于改进YOLOV4网络模型的番茄果实检测*

2022-12-02 06:03张磊刘琪芳聂红玫王晨牛帆
中国农机化学报 2022年12期
关键词:番茄卷积精度

张磊,刘琪芳,聂红玫,王晨,牛帆

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

0 引言

近年来随着人工智能技术的发展,果实采摘机器人的应用研究已日新月异,机器视觉作为采摘机器人中的重要核心内容,对目标检测的准确率及果实定位都有重要的影响。

目前,国内外研究学者对番茄果实识别检测开展了初步研究。赵杰文等[1]提出利用成熟番茄、未成熟番茄和叶子HIS图像颜色灰度分布,采用阈值分割法实现田间成熟番茄之间相互分离。王玉飞等[2]通过提取番茄和枯叶等干扰物子图像形状和纹理特征参数,实现生长状态相互分离的成熟番茄快速识别。Chen等[3]利用YUV颜色空间的V分量从背景中分离出成熟番茄的ROI,提取一定半径范围内的弧形边缘计算出每个成熟番茄的中心点和重叠面积以确定两个重叠成熟番茄的深度排序,为温室中成熟的番茄采摘提供了实用的机器人视觉方案。Iwasaki等[4]提出一种基于色相信息和曲率的鲁棒迷你番茄遮挡识别方法,该方法根据源图像色相信息检测红色区域,在区域中利用轮廓跟踪法实现番茄轮廓和曲率的识别检测。马翠花等[5-6]提出基于密集和稀疏重构的番茄显著性检测方法,番茄DSR灰度图经过OTSU算法进行分割和去噪处理,最终使用改进随机Hough变换(Randomized Hough Transform,RHT)圆检测方法识别番茄果簇中的单果。方政等提出了以HSI模型中的色调分量为基础,采用最大方差自动取阈值法和Hough变换法进行图像分割、轮廓提取,实现成熟番茄果实不同遮掩度下的识别。孙建桐等[7]提出先对采集图像进行Canny边缘检测操作获得果实边缘轮廓点并采用基于几何形态学的处理获得果实轮廓点,然后对果实轮廓点分组处理和进行迭代随机圆的处理得到果实识别结果。现有的研究方法主要利用色调分量、边缘轮廓进行番茄检测,相对于在复杂环境下的番茄采摘检测研究较少。本文提出一种基于改进YOLOv4网络模型与迁移学习相结合的检测方法,实现复杂背景下番茄果实采摘识别应用研究。

1 试验数据

1.1 数据采集

番茄图像数据采集于山西省晋中市太谷县阳邑乡农业蔬菜温室大棚,采集设备为100°无畸变HBV-1780便携式双目摄像头和Carkoci-Capture2云台,视频图像分辨率为2 560像素×720像素。为避免网络模型过拟合情况,采集图像样本时分别从远景与近景多角度拍摄,且因番茄不同生长周期的因素,导致样本中数据的成熟度各不相同,增加了样本的复杂性。

1.2 数据预处理

本文采用均值滤波与高斯滤波对图像进行处理,以减少采摘光线对模型识别精度影响。从图1可以看出,经过高斯滤波处理后的图像有效抑制了高斯噪声与椒盐噪声,实现对样本图像的增强。

图1 空域处理

利用labelImg标注工具对处理图像标注分类,并注释为PASCAL VOC格式的XML文件[8]。经过上述处理后,共得到标注图像2 500张,按照数据集划分策略,将标注完成的数据样本集图像分为训练集1 750张(有7 234个带边界标记的样本),验证集250张(有1 238个带边界标记的样本),测试集500张(有2 045个带边界标记的样本),且按番茄果实不同生长状态分类,测试集还被分为A、B、C、D、E、F六个部分,分别包含标注样本308个、324个、471个、402个、501个、725个。数据集样本个数对照表如表1所示。

表1 数据集样本分类Tab. 1 Data sets and size

2 检测模型

2.1 YOLOv4网络模型

YOLO网络模型是基于回归问题检测算法的模型,它主要由CSPDarknet53骨干网络,空间金字塔池化模块(Spatial Pyramid Pooling,SPP)与路径聚合网络(Path Aggregation Network,PAN)和YOLO Head构成模型整体架构[9-11]。其中,CSP模块主要通过跨阶段层次结构将其合并,保证了准确率的同时减少了计算量,由5个CSP模块组成,共包括72层卷积核,用于提取特征;SSP是将特征图经过13×13、9×9、5×5三层最大池化得到不同维度的特征;PAN网络模型在特征金字塔网络(Feature Pyramid Network,FPN)下采样模块后添加了上采样模块,增强了由底向上的信息获取,改善网络感受域大小,使池化得到的特征图拼接后获得更多的局部信息与语义特征;YOLO head模块主要存放目标类别标签和网络训练权重,以保证网络模型的训练精确度[12-14]。

本文在数据处理方面采用YOLOv4网络的Mosaic数据增强方法,利用两张图片进行拼接,对4张图片进行翻转、缩放、色域变化等操作,结果如图2所示。

图2 Mosaic数据增强图

2.2 改进模型

改进模型主要分为两部分:预训练网络和迁移网络。预训练模型利用VGG网络训练ImageNet数据集,获得模型初始化参数;迁移网络基于YOLOv4改进模型实现番茄果实识别。采用迁移学习的方法可以减少番茄果实网络模型的训练结果泛化现象,提高模型的训练速度和性能[15-16]。而VGG网络通过使用较小的滤波器达到了增加网络深度的目的,同时避免了参数过度膨胀的问题,VGG网络模型结构其中共有16个卷积层,5个池化层位于第2、4、8、12和16卷积层后面;3个连接层神经元,分别为4 096、4 096和1 000 个。如图3所示,本试验中的改进模型首先将ImageNet数据集在去除全连接层以及softmax层的VGG19网络上进行模型初始化参数预训练,然后将训练好的模型参数迁移至以VGG19网络卷积层作为主干网络的改进网络模型中作为初始值,经全连接层和分类层进行番茄图像识别分类。

图3 改进模型框架示意图

图4、图5为改进前后的网络结构图与主干层次对比图,可以看到改进前后的模型结构中输入大小均为416像素×416像素×3通道的番茄果实图像。

图4 改进前后网络结构对比图

(a) 改进前主干网络层次图

(b) 改进后主干网络层次图

在神经网络结构中Conv为卷积层,BN为批标准化操作,Pool表示池化层,maxPool表示最大池化层,Concat用于融合网络模型特征。改进后的网络模型的主干网络模型,从下到上的特征向量提取架构具体表现为:每个阶段的输入均为前一阶段的特征映射。注意到改进模型主干网络中包括block1_conv、block2_conv、block3_conv、block4_conv、block5_conv共5个卷积块,卷积块中卷积层的数目分别为2、2、4、4、4,每个卷积块后连接一层池化层,即共包含16层卷积层与5层池化层,原始图片大小为416像素×416像素×3通道,在网络中一共经过5次特征向量提取,特征图分辨率依次下降:416×416×3→416×416×64→208×208×128→104×104×256→52×52×512→26×26×512→13×13×512,可以看到特征图分辨率下降会导致通道数翻倍增长,进而逐渐将图像纹理特征组合成类别特征。特征图分辨率降为13×13×512后开始进入特征池化SSP模块,SSP模块主要用于收集特征层上的候选区域,以避免随机分配并恢复候选区域和所有特征层之间的受损信息路径,其中包含3个最大池化层max_pooling2d、max_pooling2d_1、max_pooling2d_2;通过SSP模块后经过3层卷积进入PANet模块,当特征图分辨率分别降为52×52×512、26×26×512时也进入PANet模块,PANet模块具有对特征提取强化的作用,对模型识别的优良性;最后进入YOLO Head模块,YOLO Head模块用于存放预测分类和目标的边界框的,且不会降低准确度。

3 模型训练与测试

本文中所有训练和测试均在配置为AMD Ryzen 5 3600X 6-Core Processor 3.80 GHz、32 GB运行内存及NVIDIA RTX 2700 GPU显卡的电脑上完成。程序编译环境为:Ubuntu16.04系统、python 3.7、CUDA 10.1、Cudnn库7.6.2、OpenCV库3.4。模型训练参数设定为:批训练样本数为64,图像大小为416×416,动量为0.949,权值衰减为5×10-4,初始学习率为0.001,最大迭代次数为6 000,衰减次数设置为最大迭代数的80%和90%。

3.1 评价指标

本文引入精确率—召回率(Precision-Recall,P-R)曲线、综合评价指标F1分数以及平均检测精度(mean Average Precision,mAP)作为评价指标衡量模型对番茄目标识别的检测性能[17-18]。

(1)

(2)

(3)

式中:C——类别数量;

N——阈值数量;

k——阈值;

P(k)——第k个图片的识别准确率;

ΔR(k)——从k-1变化到k时的召回率变化情况。

3.2 试验结果与分析

本文以单个、一簇、顺光、逆光、重叠、遮挡6种不同生长状态的番茄果实试验数据为处理对象,设置相同的模型训练参数,对比分析改进模型与YOLOv4、YOLOv4-Tiny、Faster RCNN网络模型的检测结果[19],结果如图6、图7、表2所示。

(a) 单个

(b) 一簇

(c) 顺光

(d) 逆光

(e) 重叠

(f) 遮挡

(a) 成熟期番茄检测精度

(b) 半成熟期番茄检测精度

(c) 未成熟期番茄检测精度

(d) 平均番茄检测精度

表2 不同网络模型检测精度比较Tab. 2 Comparison of detection accuracy between different network models

从图6、图7可知,在番茄果实数量为单个时,由于番茄果实图像中果实大小的尺寸与远景近景的区别,导致番茄果实数量在单个时识别度高,且改进模型比YOLOv4网络、YOLOv4-Tiny网络、Faster RCNN网络的平均检测精度分别高8.87%、10.13%、9.57%;在番茄果实数量为一簇时识别度低,改进模型比YOLOv4网络与YOLOv4-Tiny网络、Faster RCNN网络的平均检测精度分别高6.03%、6.32%、7.6%;当番茄果实表面出现由顺光照射产生的白色曝光,会使得番茄果实的识别难度提高,且改进模型比YOLOv4网络、YOLOv4-Tiny网络、Faster RCNN网络的平均检测精度分别高6.07%、11.94%、18.72%;表面出现由逆光产生的阴影时,虽难以区分未成熟果实与果叶,但成熟果实尤为突出,且改进模型比YOLOv4网络与YOLOv4-Tiny网络、Faster RCNN网络的平均检测精度分别高1.25%、3.83%、13.66%;当番茄果实重叠时会出现几乎完全重叠、半重叠与少量重叠的状况,导致不能很好地识别出被检测类别,增加番茄果实识别的难度,这时改进模型比YOLOv4网络与YOLOv4-Tiny网络、Faster RCNN网络的平均检测精度分别高7.02%、5.88%、11.73%;当番茄果实发生遮挡的状况时,会导致成熟果实容易被遮盖,而未成熟番茄被果叶遮盖容易导致其因颜色一致出现错检,使识别难度明显提高,且改进模型比YOLOv4网络、YOLOv4-Tiny网络、Faster RCNN网络的平均检测精度分别高4.44%、11.1%、14.84%。

由表2与图8可知,不同成熟度的番茄果实在多种复杂环境下的AP值均在60%以上,且模型的P-R曲线覆盖整个坐标系。其中,改进模型的P-R曲线在最上方,优于其他三种检测网络模型。

(a) 成熟期番茄

(b) 半成熟期番茄

(c) 未成熟期番茄

结合图9和表3可以看出,对于综合评价指标F1分数值而言,如果将Score_Threhold调至0.5,在番茄果实成熟度为成熟时,改进模型与YOLOv4-Tiny网络的评价检测结果一样,但高于YOLOv4网络3%,高于Faster RCNN网络1%;在番茄果实成熟度为半成熟时,改进模型高于YOLOv4-Tiny网络1%,高于YOLOv4网络4%,高于Faster RCNN网络5%;在番茄果实成熟度为未成熟时,改进模型高于YOLOv4-Tiny网络3%,高于YOLOv4网络5%,高于Faster RCNN网络21%。

(a) 成熟期番茄

(b) 半成熟期番茄

(c) 未成熟期番茄

从表4中可以看出,本文采用的4种番茄果实检测网络的速率结果为YOLOv4-Tiny网络的FPS是最高的,YOLOv4与改进模型的FPS为中等偏上,Faster RCNN网络的FPS为最低。

表3 综合评价F1分数值Tab. 3 Comprehensive evaluation of F1 score values

表4 不同网络模型速率结果Tab. 4 Different network model rate results

综上所述,本文提出的改进模型在保持FPS优良的情况下,对比分析评价指标mAP、P-R曲线与综合评价指标F1分数,明显优于其他3种网络模型。

4 结论

1) 本文提出一种基于改进YOLOv4网络模型与迁移学习相结合的番茄果实识别方法,先利用ImageNet数据集在VGG网络模型卷积层进行模型参数预训练,然后将训练的模型参数迁移至改进网络模型中作为初始值,获得最优权重实现对复杂环境下的番茄果实进行检测。结果表明这种方法的检测精度和综合评价比优良,并能够实时有效地检测出番茄果实,且效果明显优于未改进的同类型YOLOv4网络和YOLOv4-Tiny网络模型以及主流检测模型Faster RCNN。

2) 针对测试集数据中不同成熟度番茄在不同阈值下的综合评价F1分数值分析显示,番茄果实成熟时本文改进模型高于YOLOv4网络3%,与YOLOv4-Tiny网络相同,高于Faster RCNN网络1%;番茄果实半成熟时分别高于其他3种模型4%、1%、5%;番茄果实未成熟时,分别高于其他3种模型5%、3%、21%,表明模型实用性较强。

3) 通过应用本文的番茄识别网络模型,能够解决传统图像检测方法在处理环境光暗、叶枝遮挡、果实重叠图像定位检测精度低的问题,可为之后的研究过程提供更好的技术支撑。

猜你喜欢
番茄卷积精度
番茄炒蛋
热连轧机组粗轧机精度控制
秋茬番茄“疑难杂症”如何挽救
基于3D-Winograd的快速卷积算法设计及FPGA实现
番茄果实“起棱”怎么办
卷积神经网络的分析与设计
超高精度计时器——原子钟
从滤波器理解卷积
分析误差提精度
基于DSPIC33F微处理器的采集精度的提高