齐国红
张云龙1
苏 曼2
( 1. 郑州西亚斯学院,河南 郑州 451100;2. 河南大学,河南 郑州 450046)
随着农业科技的不断发展和人们对食品品质的日益关注,对农作物的精准监测与检测成为了现代农业中至关重要的研究领域[1]。作为热带和亚热带地区的主要经济作物之一,木瓜因其丰富的营养价值和广泛的应用而备受关注[2]。然而,木瓜的成熟度对于品质和产量的影响不容忽视[3]。传统的木瓜成熟度评估方法通常依赖于主观经验和人工抽样,一定程度上限制了成熟度评估的准确性和效率[4]。
近年来,计算机视觉技术的迅猛发展为农作物成熟度的非侵入式监测提供了新的可能,其中,深度学习技术在图像分析领域取得了显著成果。此外,目标检测和语义分割方法的结合在农作物成熟度检测方面展现出了巨大潜力。熊俊涛等[4]基于轻量化YOLO v5-Lite模型,提出了一种自然环境下木瓜成熟度检测方法,该方法对木瓜成熟度检测的均值平均精度(mAP)为92.4%。Suban等[5]提出了一种基于k最近邻算法的木瓜成熟度识别方法,该方法能够准确识别木瓜果实的成熟度。Ratha等[6]提出了一种基于VGG16和离散小波变换的番木瓜成熟度识别方法,该方法对木瓜成熟度检测的准确率达98%。Behera等[7]提出了一种基于VGG19和迁移学习算法的木瓜成熟度分类方法,通过VGG19和迁移学习算法的结合,该方法对木瓜成熟度的分类准确率得到显著提升。
Mask R-CNN作为一种强大的视觉识别模型,通过同时实现目标检测和像素级别的语义分割,为农作物成熟度的精准检测提供了可能[8]。但现有的Mask R-CNN模型在应用于木瓜成熟度检测时仍存在一些挑战。首先,木瓜的生长状态和形态多样,生长环境复杂,导致成熟度检测变得更加复杂,而现有方法针对不同背景下木瓜成熟度检测的泛化能力不足。其次,由于木瓜的颜色和纹理在不同成熟度阶段呈现出明显变化,传统的目标检测方法可能无法准确捕捉这些细微的特征变化。
研究拟提出一种非破坏性的木瓜成熟度检测框架,开发一种基于多目标采样和改进Mask R-CNN的木瓜成熟度检测方法。该方法在数据增强过程中采用单图像多目标采样技术,从而将单目标训练模型推广到能够适应多目标和杂乱背景场景;由于小数据集导致模型对未见数据高度敏感,且不同成熟度阶段的木瓜具有相似的纹理和颜色模式,因此,在所提出的方法中评估和比较了分割模型的鲁棒性;提出了最佳置信度阈值试验性选择方法,以期为小数据集、具有相似模式但具有强鲁棒性的水果分级模型开发提供依据。
试验目的是利用目标检测和实例分割模型[9]对图像中的木瓜果实进行检测,并对其成熟度进行识别。所提出的木瓜成熟度检测方法将不同卷积神经网络层次的特征结合到自下而上的区域方案中,在目标定位和分割方面有较大改进。检测准确度依赖于区域候选技术,该技术已被引入基于R-CNN的多种CNN方法,如快速R-CNN和Mask R-CNN[10]。
所改进的Mask R-CNN结构实现了对Faster R-CNN扩展,如图1所示。
图1 所提方法使用的Mask R-CNN架构
改进的Mask R-CNN包括使用卷积神经网络(主干)的区域候选网络(RPN)和用于对象回归、分类的网络头部两个主要组件。与Faster R-CNN相比,Mask R-CNN还输出每个感兴趣区域(ROI)的掩模检测。
改进的Mask R-CNN使用的卷积主干为ResNeXt网络[11]和具有50,101层的残差网络ResNet[12]。
ResNeXt重复了一个构建模块,该模块聚合了一组具有相同拓扑结构的转换。与ResNet相比,其引入了一个新的维度:基数(转换集的大小)C,并将其作为除深度和宽度之外的一个关键因素。一组聚合转换可以表示为:
(1)
式中:
Ti(x)——任意函数。
类似于简单神经元,函数Ti应将x投影到一个(可选的低维)嵌入中,并对其进行转换。
(1) 基本构建块:ResNeXt的基本构建块称为“基数组”。“基数”指组内并行路径或分支的数量。在ResNeXt中,每个组包含多条并行路径,这些路径用于从输入数据中捕获不同的特征。使用多条路径与传统的ResNet架构不同,后者只使用两条路径(一条快捷路径和一条主路径)。基数参数(通常表示为“C”)确定组内有多少个并行路径。
(2) 基数组:在基数组内,并行路径被实现为“瓶颈块”。这些块包括3个主要组件:1×1卷积、3×3卷积和另一个1×1卷积。1×1卷积用于降低输入特征的维度,而3×3卷积负责捕获更复杂的模式。然后,这些并行路径的输出通常通过求和聚合在一起,以创建组的最终输出。
(3) 架构:ResNeXt架构可表示为:“ResNeXt-C(C×4)-Y”。“C”表示基数,确定组内并行路径数。“C×4”表示组内每条并行路径中的滤波器或通道数。“4”是原始ResNeXt中常用的乘数。“Y”表示整体网络架构,例如ResNeXt-50的“50”,ResNeXt-101的“101”等。
(4) 更深和更宽的网络:ResNeXt在增加深度(加深)和增加宽度(添加更多并行路径/组)之间提供了一个权衡。这种灵活性使研究人员能够根据任务的特定要求来定制架构。更深的网络可以捕获更复杂的特征,而更宽的网络(具有更多并行路径)可以捕获更多样的特征,使其对各种任务非常有效。
残差网络具有跳跃连接,解决了梯度消失问题。ROI特征通过从特征金字塔网络(FPN)的不同层次中提取出来,FPN具有自上而下的结构和横向连接[13]。使用ResNet-FPN主干进行特征提取,其在准确率和计算时间上都具有很高的性能。区域候选网络用于提出候选对象,使用注意机制在边界框中输出一组候选对象。
所改进Mask R-CNN的网络头部使用ROI Align,ROI Align使用双线性插值来计算采样位置的输入特征的精确值,然后对组合结果使用最大值或平均值[14]。
双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。
如图2所示,若想得到未知函数f在点P=(x,y)的值,假设已知函数在Q11=(x1,y1)、Q12=(x1,y2)、Q21=(x2,y1)和Q22=(x2,y2)4个点的值。首先在x方向进行线性插值,得到
图2 双线性插值示例图
(2)
(3)
然后在y方向进行线性插值,得到
(4)
得到所要的结果:
(5)
如果选择一个坐标系统使得f的4个已知点坐标分别为(0,0)、(0,1)、(1,0)和(1,1),那么插值公式就可以化简为
f(x,y)≈f(0,0)(1-x)(1-y)+f(1,0)x(1-y)+f(0,1)(1-x)y+f(1,1)xy。
(6)
ROI Align的输出用于根据框检测和类分数对每个候选对象执行对象回归和分类。全卷积网络(FCN)的头部网络包括卷积掩码检测分支,该分支具有用于使用sigmoid和二进制损失检测掩码的一些滤波器。总的训练损失包括分类损失、边界框损失和平均二进制交叉熵损失[15]。
所改进Mask R-CNN参数使用均值平均精度(mAP)与准确率[真实木瓜标签数量与所有检测到的数量(假阳性标签和真实标签之和)之比]之间的关系进行选择。
所构建的木瓜图像数据集包括原始数据集#1和增强数据集#2两部分。数据集#1中的木瓜图像在白色背景下拍摄,然后在像素级别对每个图像进行标注。由于数据集#1中木瓜图像数量有限,使用旋转、缩放和平移技术进行图像增强,并从像素级别的标签生成附加的图像数据集,得到增强数据集#2。数据集#1和数据集#2用于训练和测试木瓜图像检测和分割模型、最佳成熟度检测阈值的选择和验证基于多目标采样和改进Mask R-CNN的木瓜成熟度检测模型。
实际上,木瓜的成熟度分为未成熟、半成熟和完全成熟3个级别(表1),该指标可用以确定目标在送达客户之前仍保持新鲜的时间长度。
表1 木瓜成熟度等级分组
未成熟的木瓜可以在成熟前存放6~7 d,而部分成熟的木瓜可以再保鲜3~4 d。完全成熟的木瓜应尽快食用或加工。因此,未成熟和部分成熟的木瓜可以通过包装以便远距离输送或出口,而完全成熟的木瓜将在当地销售。
为了获得图像,木瓜被放置在一个由漫射荧光灯源均匀照明的相机中。加入白色背景以提高对比度,并在此背景上放置尺子以允许在开发的代码中进行校准(见图3)。使用高分辨率数码相机(尼康AF-S DX Nikkor 18~55 mm)获取木瓜图像,无闪光灯和变焦(55×)。
a. 相机 b. 光源 c. 待采样的木瓜 d. 背景 e. 校准线条 f. 隔离外部光线的盒子
对60个番木瓜果实采集了240张图像(每个木瓜4张图像),不同成熟阶段的木瓜图像如图4所示。
图4 不同成熟阶段的木瓜图像
由于木瓜图像中含有背景像素,对于未成熟、半成熟和完全成熟的不同成熟度的原始图像,用白色像素标记木瓜,如图5所示。
图5 木瓜图像样本及其标记的木瓜所在范围实况
通过在原始带标签的真实图像基础上生成更多的数据,以提高训练数据的效率,使其更加真实和实用[16]。使用几何变换来区分50%原始图像中不同的木瓜外皮、朝向和位置。此外,图像中包括了背景元素。通过像素级别的标注,将所有的木瓜对象存储在数据库中。将另外的25%原始图像添加到不同的背景图像中,包括天然木瓜田、超市、工厂等,另外25%的原始图像添加到带有多个不同尺寸、朝向和位置的多木瓜背景图像中,以模拟更真实的包含多个对象的图像[17]。每个木瓜都在像素级别和实例级别上进行了标注。用于训练的木瓜图像包括原始图像和增强图像,完全与测试数据集分开。
为验证所提出的木瓜成熟度检测方法Mask R-CNN (ResNeXt-101)的有效性和鲁棒性,将其对木瓜成熟度的检测结果与R-CNN的其他模型进行对比,所选择对比的方法对水果进行检测时具有较高的平均检测精度[18]。ResNeXt-101简记为X101。
该试验使用detectron2框架[19]和配备有Intel(R) 2核Xeon(R) CPU @ 2.20 GHz、NVIDIA Tesla V100-SXM2显卡和16 GB HBM2内存的Google Colab机器,使用PyTorch 1.8运行程序。参数配置是根据每个模型的总损失经验进行选择;所有基于R-CNN模型均使用相同的参数配置,例如最大迭代次数为1 000,基本学习率为0.000 25,每批处理2张图像。原始图像尺寸为4 128像素×3 096像素,增强后的图像尺寸从855像素×1 280像素到6 016像素×4 000像素不等。每个模型均使用在COCO数据集[20]上预训练的原始模型进行初始化,然后在两个不同数据集上进行微调:原始的木瓜数据集(数据集#1)和带有多目标采样的木瓜数据集(数据集#2),如表2所示。
表2 原始数据集和增强数据集中不同成熟阶段木瓜图像数
所对比的R-CNN模型包括RetinaNet、CenterMask、Mask R-CNN、Faster R-CNN,所采用的残差网络包括具有99,57层的VoVNetV2和具有50,101层的ResNet。根据R-CNN模型和残差网络的不同组合,所对比的方法主要包括CenterMask (VoVNet-99)、CenterMask (VoVNet-57)、Faster R-CNN (ResNet-50)、Faster R-CNN (ResNet-101)、RetinaNet (ResNet-101)、RetinaNet (ResNet-50)、Mask R-CNN (ResNet-101)、Mask R-CNN(ResNet-50)。后续分析中,VoVNet-99简记为v99,VoVNet-57简记为v57,ResNet-101简记为r101,ResNet-50简记为r50。
(1) RetinaNet是一种应用于密集采样候选对象的单级检测器。RetinaNet由一个主干网络和两个子网络组成,分别用于框分类和框回归。由于背景和前景之间的类不平衡是影响检测准确性的主要问题,RetinaNet通过对负面示例进行重点训练来计算焦点损失。焦点损失由所有候选对象的焦点损失之和计算得出。训练损失包括分类损失和边界框损失。
(2) 基于最新分割模型CenterMask的检测方法,CenterMask是一个单阶段和无锚点实例分割模型,CenterMask通过增加一个空间注意引导的掩码网络(SAG-mask)用于检测物体掩码。SAG-mask网络包含空间注意图(SAM),在聚焦于信息像素并减少噪声方面起着至关重要的作用。
为了评估不同方法对木瓜果实图像成熟度检测的性能,考虑检测到的目标与真实边界框之间的相似性,包括重叠面积和检测到的木瓜成熟度。交并比(IoU)IIoU可用于衡量检测目标的边界框(Ap)和真实边界框(Agt)之间重叠区域的比率[21]:
(7)
当IIoU=1时,IoU分数为最佳,而IoU阈值通常设置为识别到的目标是否正确的限制程度。此外,精确率可以用来识别所有检测到的物体中的正确阳性样本数,而召回率用于识别图像中所有真实边界框对象[22]。
(8)
(9)
式中:
NTP——正确检测到的样本数量;
NFP——错误检测到的样本数量或不存在的样本数量;
NFN——未检测到的真实样本数量。
此外,目标检测器的置信度分数也可以考虑在检测指标内。较大的置信度分数可以被视为正的检测结果。将精确度和召回率重新表示为置信度阈值(τ)的函数[23]:
(10)
(11)
理想的目标检测器应具有精确率和召回率均为1的性能。精确率—召回率曲线(PR曲线)呈现了从检测开始的不同阈值的精确率—召回率关系,试验方法的PR曲线呈锯齿状(图6)。此外,平均精度(AP)是一种常用的指标,为PR曲线下的面积;mAP为AP在类别和阈值上的平均值。
图6 不同方法对未熟、半熟和全熟木瓜检测的PR曲线
3.3.1 成熟度阶段检测 mAP从50%变化到95%,步长为5%,AP50和AP75分别对应50%和75%的平均检测精确度。由表3可知,试验方法在所有指标得分上的表现最好,而Mask R-CNN和Faster R-CNN在考虑特定重叠阈值时在AP50和AP75上表现出较高的精确度。CenterMask在AP50阈值下展现出良好的检测性能。
表3 使用原始数据集(数据集#1)训练和测试不同方法时的木瓜成熟度检测结果
由表4可知,由于未知的背景干扰、重叠的目标、不同尺寸的目标和其他目标变化,所有方法对木瓜成熟度检测的mAP均有不同程度的下降,但试验方法在所有指标得分上的表现仍是最好的。由表5可知,通过多目标采样技术,试验方法在不受限制的数据集(数据集#2)上泛化能力更强,如mAP从92.76%提升至98.43%。
表4 使用原始数据集(数据集#1)训练、增强数据集(数据集#2)测试不同方法时的木瓜成熟度检测结果
表5 使用原始数据集(数据集#1)+增强数据集(数据集 #2)训练和测试不同方法时的木瓜成熟度检测结果
3.3.2 计算时间 由图7可知,相比于ResNet50和VoVNet59等较小尺寸的层,r101(ResNet101)和v99(VoVNet99)等较大尺寸的层通常需要更多的计算时间。Mask R-CNN通过全连接网络进行掩码检测,因此需要更多的计算时间。RetinaNet和Faster R-CNN具有最高的计算速度,但RatinaNet出现了较多误检。
图7 各检测模型在每张图像上的推理时间与mAP之间的关系
为进一步验证试验方法的有效性,将试验方法的木瓜成熟度检测性能与基于轻量化YOLO v5-Lite模型的木瓜成熟度检测方法(YOLO v5-Lite)、基于k最近邻算法的木瓜成熟度识别方法(KNN)、基于VGG16和离散小波变换的番木瓜成熟度识别方法(VGG16-DWT)、基于VGG19和迁移学习算法的木瓜成熟度分类方法(VGG19-TLA)进行对比,结果见表6。由表6可知,试验方法对木瓜成熟度检测的mAP、AP50、AP75、未成熟的AP、半成熟的AP和成熟的AP比其他方法至少提高了0.07%,0.65%,0.56%,1.27%,0.78%,0.88%。
表6 木瓜成熟度检测方法的检测性能对比
综上,试验方法的木瓜成熟度检测mAP、准确率和召回率均优于所对比的其他方法,验证了试验方法的有效性和实用性。
研究提出了一种基于多目标采样和改进Mask R-CNN的木瓜成熟度检测方法。结果表明,通过多目标采样技术,试验方法对木瓜成熟度检测的泛化能力更强,可将均值平均精度、50%平均精度、75%平均精度、未成熟的平均精度、半成熟的平均精度和成熟的平均精度分别提高5.67%,5.65%,5.78%,5.91%,6.56%,6.66%。与其他4种木瓜成熟度检测方法相比,试验方法对木瓜成熟度检测的均值平均精度、50%平均精度、75%平均精度、未成熟的平均精度、半成熟的平均精度和成熟的平均精度比其他方法至少提高了0.07%,0.65%,0.56%,1.27%,0.78%,0.88%。试验方法的计算时间偏长,后续将进一步研究具有更高计算效率且可保持当前木瓜成熟度检测准确率、召回率等性能优势的方法。