基于RetinaNet的红枣果实分类检测研究

2023-09-06 00:12郭新东邓玄龄
安徽农业科学 2023年16期
关键词:红枣卷积精度

郭新东,邓玄龄,孙 瑜

(山西农业大学信息科学与工程学院,山西晋中 030800)

红枣具有优良营养价值、药用价值和经济价值,目前种植面积接近苹果和柑橘的果树,但是枣的采收期短且较为集中,仅发育20 d左右,枣的机械化采摘可以解决人工采摘效率低、劳动强度大的问题[1-2]。机器视觉系统是农业采摘机器人的重要组成部分,包括目标图像的采集、定位、检测等。传统的图像检测算法主要基于颜色、形状、纹理等能够突出目标种类和成熟度的特征[3-4],但是特征描述局限于自然环境条件和人的主观判断等因素,算法识别鲁棒性和泛化性不强。红外光谱和高光谱成像技术[5]由于成本较高使其无法在红枣检测等农业领域得到应用。深度学习在作物图像分类[6-7]、图像分割[8-10]、图像检测[11-12]等相关领域已获得广泛的应用。基于图像的目标检测算法应用中,王昱潭等[13]提出基于双损失函数的Faster R-CNN模型对灵武长枣图像进行检验测试;刘天真等[14]提出YOLOv3-SE模型进行自然场景下的冬枣检测;王昱潭等[15]在不加载预训练模型的情况下,提出一种改进SSD模型实现灵武长枣图像的目标检测任务。

以上基于深度学习的红枣研究多是枣类表面缺陷检测,或是某单一种类(灵武长枣/冬枣等)研究,并且训练过程中极端的前景-背景类不平衡,令YOLO等模型在多尺度小目标检测上准确率不高。姚青等[16]改进 RetinaNet的水稻冠层害虫为害状自动检测,模型平均精度均值达到 93.76%;研究人员开展了基于改进 RetinaNet的果园复杂环境下苹果检测。鉴于此,笔者以复杂自然环境拍摄红枣图像为研究对象,按照红枣成熟度将红枣分为4类,基于RetinaNet网络训练红枣成熟度分类模型,训练和测试模型性能,为红枣智能化采摘机器的视觉检测提供理论基础和技术保证。

1 材料与方法

1.1 数据集制作

1.1.1数据集采集。该研究中,互联网上收集不同成熟度、不同分辨率、果实重叠、叶片遮挡等自然生长环境下拍摄的红枣数字图像,以增加研究样本的多样性。原始的红枣数据集总共包含100张图像,部分图像数据集如图1所示。

图1 不同自然环境下红枣图像Fig.1 The images of the jujube dataset in natural environments

1.1.2图像预处理。将红枣图像尺寸归一化为600×600像素用于模型的训练和测试。对数据集使用图像增强方法,如垂直或水平翻转、随机裁剪、亮度调整、对比度调整和饱和度调整等来增加数据集数量,减少因图像数量不足可能引起的过拟合,提高模型的鲁棒性和泛化能力,扩充后数据集有502张图像。

1.1.3数据集制作。使用数据集标注工具LabelImg进行手动标注[17],标注红枣类别为脆熟期(ripe)、着色期(near-ripe)、白熟期(near-raw)、幼果期(raw)4类。使用标注工具在图像中绘制每个红枣边界框,红枣数据集采用的是VOC2007格式,LabelImg输出的XML文件包含标注红枣像素标注框坐标和标签信息并存储在Annotations文件夹下。红枣图像数据集分为训练数据集、验证集和测试集3组,训练集∶验证集∶测试集=8∶1∶1。训练集和验证集分别包含412和44张图像,46张图像作为测试集。

1.2 RetinaNet模型构建RetinaNet以残差网络ResNet50和特征金字塔网络Feature Pyramid Networks(FPN)为骨干网络,使用结构相同、参数不共享的2个子网络,实现目标框分类和回归边界块分割。ResNet网络[18]在结构中增加直连通道实现隔层线性传递,主要包括卷积残差块和恒等残差块,分别实现网络维度转换和网络深度增加。该研究使用的RetinaNet模型以ResNet 50为骨干网络进行图片特征提取。FPN对ResNet生成的多尺度特征进行了增强,并计算卷积特征图[19],自ResNet网络结构顶层特征上采样之后和低层特征进行一个从上向下的连接,每一层都可用来探测不同尺度的目标。从单一分辨率的完整红枣图像中有效提取出丰富、多尺度的特征金字塔。RetinaNet网络训练时单个图像产生大量候选框,用Focal Loss损失函数来均衡极端的前景-背景类不平衡[20],减小易分类样本的权重,提高难分类样本的权重,从而增加模型检测精度。RetinaNet的网络结构如图2所示。

图2 RetinaNet 网络结构Fig.2 The structure of RetinaNet

H和W表示特征图的高和宽,C1 ~ C5表示残差网络ResNet的输出特征层,P3 ~ P7表示5个特征金字塔输出层特征图。RetinaNet使用特征金字塔级别P3 ~ P7,其中P3 ~ P5是从对应ResNet残差阶段C3 ~ C5使用自上而下和横向连接的输出计算出来的,P3由C3、C4和C5卷积运算求和得来,P4由C5下采样后和C4相加所得,P5是由C5经过3×3 步长为2卷积得来,P6是通过跨步卷积计算在C5上的3×3 步长2卷积获得,P7是通过P6上使用3×3步长为2卷积计算出来的,提高大目标检测精度。P3、P4、P5、P6、P7大小分别为75×75×256、38×38×256、19×19×256、10×10×256、5×5×256,将他们传送给目标框回归和分类回归。分类回归子网络主要进行4次256通道卷积操作和1次anchors数×4 (红枣目标分类数)的卷积操作,存放所有基于anchors的检测框的分类信息。目标框回归子网络主要进行4次256通道的卷积操作和1次anchors数×4的卷积操作。RetinaNet解码过程即将先验框与分类超过置信度阈值的分数罗列出来,再对框的位置和分类得分进行非极大抑制筛选,得到最终预测框信息。

1.3 评价指标平均精度(average-precision, AP)、平均精度均值(mean average-precision, mAP)、F1 Score、Loss用于评价基于RetinaNet的红枣检测模型的有效性[21]。

平均精度(AP)表示P-R曲线与坐标轴组成的封闭曲线下的面积,分类器的性能和AP值呈正相关。

(1)

(2)

(3)

式中:P(precision)为准确率,表示预测框中检测正确数;R(Recall)为召回率,表示正确检测出的正样本在所有正样本中比例;TP (true positive)是预测为正样本且实际也为正样本;FP (false positive)是预测为正样本但实际为负样本;FN (false negative)表示预测为负样本但实际为正样本。P-R曲线是以P为纵坐标,R为横坐标组成的曲线。当R越大同时P也能保持较高水准时,模型的计算结果比较好。

平均精度均值(mAP)表示在同一RetinaNet模型下红枣4种分类AP的平均值。

(4)

式中:A表示红枣4种类别数;AP(a)为第a类目标的AP值。mAP值越大,模型分类效果越好。

F1 Score是指精确率与召回率的调和平均数,取值范围从0到1,取值越大代表模型结果越好。计算公式如下:

(5)

Loss损失值的大小用于判断是否收敛。

1.4 试验平台及参数network initialization试验采用Pytorch搭建了深度学习框架,编译环境为Python3.7。其中计算机处理器为Intel(R)Core(M)i7-8750H,主频2.20 GHz,内存8 GB,显卡为NVIDIA GeForce 1050Ti,显存为4 G来进行加速训练。

1.5 模型训练ResNet-50-FPN主干网和600像素的图像进行训练,模型训练先初始化网络,然后利用Adam为优化器来优化参数。由于数据集较小,模型训练使用迁移学习,将训练分为冻结阶段和解冻阶段[22]。考虑到电脑硬件的有限,学习率设置为0.000 1,权重衰减设置为0,用于计算梯度的平均和平方系数betas=(0.9,0.999)。利用ResNet50网络的预训练权重参与训练,冻结阶段训练50期,批处理尺寸设置为4,解冻阶段训练150期,批处理尺寸设置为2。总训练时长约为8 h。

默认置信度为0.5,非极大抑制(intersection over union, IoU)值为0.3,只有置信度大于0.5且IoU小于0.3的对象框才会保存下来。RetinaNet的Focal Loss损失机制通过不断的迭代训练,快速降低损失值得到稳定的检测结果。由训练日志中的损失值数据绘制出损失值曲线,由图3可知,验证损失(val loss)低于训练损失(train loss),训练集损失和验证集损失有收敛的趋势,损失值波动较大,对其进行平滑处理。验证集损失在训练160期后基本上保持在0.220左右不改变,说明模型基本上收敛。

图3 训练集和验证集损失函数收敛曲线Fig.3 Convergent curve of train loss function and val loss function

2 结果与分析

使用RerinaNet和红枣数据集测试模型的有效性,红枣果实成熟度分类检验测试结果如表1所示。红枣脆熟期、着色期、白熟期、幼果期果实检测平均精度AP分别为84.19%、68.76%、67.55%、76.44%。模型平均精度均值mAP为74.235%。着色期、白熟期、幼果期预测结果差的原因一是由于果实主要颜色绿色部分,树叶的重合或遮挡影响模型对成熟度的判定,二是在标注数据集时3个时期红枣的标注可能由于人的主观模糊性引起分类不准确,后续进行数据集的更新以取得更好的检测效果。

将训练好的模型在红枣测试集上进行测试,部分检测结果如图4所示。从图4可以看出,对于复杂自然环境下,如有遮挡和阴影、重叠和暗光、多目标和重叠、光照和阴影、模糊和遮挡、模糊和暗光等自然生长环境下采集的红枣图片,基于RetinaNet的检测模型基本可以测出红枣目标并按照类对红枣进行检测分类,基本满足农业采摘机器人的应用要求。但对于红枣尺寸本身较小且在复杂生长环境下水果局部遮挡、果实重叠等果实在检测时,由于可检测部分尺寸较小出现了漏检或错检,需要进一步优化模型,增加模型多尺度检测能力。

图4 不同环境中检测结果Fig.4 Detection results of fruits under different environments

3 结论

该研究针对不同成熟度红枣图像中多尺度红枣目标检测问题,以自然场景下获取的红枣图像为研究对象,提出了一种基于RetianNet的检测模型。该研究使用复杂自然环境包含多种遮挡、重叠等类型的红枣图像作为数据集,对RetinaNet进行训练和测试。试验结果表明,该研究提出的RetinaNet对自然环境下的红枣果实能够实现较好检测结果,对脆熟期 (ripe)、着色期 (near-ripe) 和幼果期 (raw)检测平均精度值分别为84.19%、68.76%、67.55%、76.44%,平均精度均值达到74.235%,基本满足农业应用中采摘机器人的精度要求。因此,可进一步扩充数据集样本数,在制作数据集标签时,分类更加精确,对RetinaNet做一定的优化改进提高模型识别率。

猜你喜欢
红枣卷积精度
基于3D-Winograd的快速卷积算法设计及FPGA实现
一颗大红枣
我爱家乡的红枣
从滤波器理解卷积
红枣期货价格大涨之后怎么走
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
分红枣
GPS/GLONASS/BDS组合PPP精度分析
改进的Goldschmidt双精度浮点除法器