百香果主要种植于广东、广西、福建等地区,其富含多种微量元素和维生素,广泛受到消费者的欢迎。采摘后的百香果在存放中可能会出现腐烂现象,严重影响其经济价值。传统的人工分级方式精度差、效率低,难以满足现代农业生产的需求。本研究设计了一种基于机器视觉的百香果自动分级系统,该系统采用多个工业相机获取百香果的表面图像,经缺陷识别算法处理后,通过机械臂进行自动抓取。为了识别百香果的成熟度和腐烂,缺陷识别算法在YOLOv8模型基础上,引入了空间-通道协同注意力(SCSA)机制,提高了模型在多尺度特征融合过程中的检测能力。实验结果表明,改进后的YOLOv8网络在百香果表面缺陷检测中的平均精度(mAP)超过了90%,相比YOLOv8模型的识别精度提高了10个百分点。本系统在实际生产过程的平均召回率达90%,分拣速度为1.25 s/个,能够满足实际生产中的实时性要求。因此,本系统能够有效替代传统的人工分级方式,为现代农业生产提供高效、可靠的技术解决方案,并具有广泛的应用前景。
百香果主要种植在我国的广西、广东、福建等地区。果实成熟后能散发出十余种水果香气,其果汁富含多种维生素和微量元素,除食用外,百香果还具有降压降脂、清热降火等功效,受到消费者的普遍欢迎。失水后的百香果表面会皱缩、腐烂,显著降低百香果质量。目前,百香果的分级绝大多数采用人工评判的方式,这种方式效率低、成本高。自动化分级设备可以代替人工分选,提高生产效率。因此,百香果品质自动化分级对提高商业价值具有重要意义。
·张颖等研究了一种果蔬智能分选系统,该系统通过PLC(可编程逻辑控制)实现远程控制和自动化数据采集,结合果蔬的糖度和质量等品质模型,能够实现高速远程的在线智能分选,其分选精度能达93%以上,然而PLC的内存和存储能力有限,不足以完成较为复杂的缺陷识别任务。
·Tian等提出对YOLOv3模型进行改进,增强了在苹果检测中的特征提取能力,随后众多研究团队致力于优化模型以适应复杂环境下的水果检测。
·例如,唐熔钗等针对真实果园中的百香果检测不理想问题,改进YOLOv3模型以提高检测精度,该模型未能充分解决自然环境下的光照和遮挡问题。
·此外,张志远等和孙俊等分别针对樱桃和草莓的检测问题,通过数据增强和网络结构改进(如YOLOv4-Tiny结合空间金字塔池化)提高了模型的准确性和鲁棒性。
·同时,其他研究如Mahawar等和Nosseir等的工作通过分析水果的物理属性和采用支持向量机(SVM)算法,进一步推动了水果品质预测和识别技术的发展。
·Liang等提出了基于BiSeNet V2与修剪后的YOLOv4网络的深度学习方法,来提高苹果在实时分类系统中的检测和分类精度的研究。
·罗志聪等提出了一种轻量化的百香果检测模型,该模型基于改进的YOLOv8s,采用聚集和分发机制替代原有的颈部特征融合网络,以提升模型的检测性能和泛化能力。实验结果显示,相较于原始模型,改进后平均精度值提高了2.3个百分点,更加适用于复杂环境中的百香果采摘任务。
·Sidehabi等开发了一种基于机器视觉的百香果分拣系统,利用K-means聚类作为特征提取并使用多类支持向量机对百香果的成熟度进行分类,分为成熟、接近成熟和未成熟,实验结果表明,该百香果分拣机准确率可以达到93.3%,平均每个百香果的分拣时间为0.94 s。
·褚璇等利用OpenCV与轻量化神经网络(MobileNetV3_large_ssld)对百香果的果径、成熟度与皱缩情况进行检测,其中,通过最小外接矩形测量果径、HSV颜色空间中H分量的值在特定范围内的像素占比来判别成熟度以及轻量化神经网络检测百香果表面皱缩,并依据多项指标对百香果品质进行分级,系统分选的整体精度为97.02%。
以上研究主要基于百香果成熟度、皱缩、糖度或果径等指标的分级,忽略了腐烂的性能指标。
因此,南京林业大学吴旻、倪超等基于机器视觉的百香果自动化分级系统,需要根据表面腐烂程度和成熟度情况对百香果进行分级。
1.1分选系统设计
百香果分选系统由机械部分和软件系统组成。机械部分负责传送样本、采集图像及执行分选动作,其主要包括进料及输送模块、视觉检测模块及分选执行模块,其结构如图1所示。进料及输送模块采用马鞍状的果托进行离散传输,保证百香果以队列的形式前进。视觉检测模块采用3台相机呈品字形分布,分别拍摄百香果多角度图像。视觉检测模块具体参数见表1。分选执行模块采用机械臂抓取百香果至对应的料仓。
软件部分由上位机软件与下位机软件组成,并通过Modbus-TCP协议进行通讯,机械臂和上位机之间采用TCP/IP协议进行通讯。下位机采用西门子1200 PLC作为控制器,其主要功能是控制生产系统的启停、跟踪果托的位置以及触发工业相机进行图像采集(图2)。
上位机主要提供人机交互界面、执行百香果图像识别算法等功能(图3)。上位机软件由6个线程组成,包括3个采集线程、主线程、通讯线程以及显示线程。3个采集线程分别对应左侧相机、右侧相机和顶部相机的图像采集。每个相机的采集过程均在独立线程中进行,确保可以并行获取百香果的全表面信息。相机在接收到PLC发出的高电平触发信号后,采集线程立即启动相机进行图像采集,并将采集的图像数据存入各自的图像队列(队列1、队列2、队列3)。
主线程执行改进的YOLOv8图像识别算法,通过目标检测方法对百香果表面品质进行成熟度和腐烂分级。显示线程负责软件与用户之间的交互。该线程实时更新界面上的百香果图像及其分级结果信息,使操作人员能够清晰地查看每个百香果的状态和系统运行情况。通过将界面更新任务独立为一个线程,避免了图像采集和处理任务对用户界面响应速度的影响,提高了用户体验。
通信线程用于管理上位机与下位机之间的数据交互。具体而言,通信线程通过Modbus-TCP协议与下位机建立连接。该线程确保分级结果能够及时传递给下位机。通过独立线程的设计,使得通信过程不会因为图像采集和处理的任务而被阻塞,从而确保整个系统的指令传递和执行同步进行。
1.2工作流程
该分选系统的工作流程见图4。首先,通过人机交互界面调用百香果分级模型,设置成熟度等级数P={1,2,3}(成熟、半成熟或不成熟)和品质状态等级数Q={4}(腐烂)。本研究使用的数据集为黄金百香果,成熟为黄色,半成熟为黄中带绿,不成熟为绿色,腐烂表现为表皮的颜色异常(如变暗或出现斑块)、质地变化等。系统根据设定的成熟度和腐烂等级完成软件的初始化。
当上位机软件通过Modbus-TCP通讯向下位机软件发送开启命令后,PLC控制伺服电机开启并驱动传送带匀速运动。当光电传感器检测到果托上第一个百香果通过时,将当前果托的位置初始化为零。同时,编码器启动并开始记录传送带的行进距离St,行进距离计算公式如下:
式中:I为脉冲数; So为单位脉冲代表的距离。
当I达到预设值时,即行进距离等于相邻两个果托之间的距离,PLC将向视觉检测模块发送高电平触发信号采集一帧图像。然后,相机通过以太网将其传输到上位机上。待上位机软件返回分类结果后,将其与下位机提供的坐标位置进行绑定,并发送给机械手进行跟踪并抓取。需要注意的是,由于光电传感器直接针对百香果进行检测,若果托上未检测到百香果,则不会向PLC发送高电平信号(即光电传感器和编码器信号为“与”逻辑,才会触发)。同时,PLC将果托坐标存储起来,并且PLC直接绑定一个空的结果,记作k={0}。
本地高速计算处理单元调用分级模型对第i个百香果成熟度和腐烂状态进行评估,得到成熟度分级p∈P和腐烂分级q=4。在上位机中将待分选的百香果的等级信息编辑成存储队列M(i),其中第i个百香果的分级信息存储在M(i)中,例如第i个百香果将要分到第ni级中,则M(i)=ni。最终,将分级结果ni传输到下位机软件中。分级结果ni取值如下:
分级智能抓取流程见图5。首先,当光电传感器检测到第一个百香果时,设置该位置为参考零点,第i个百香果到参考零点的距离可以用Si表示,即行进距离。PLC控制单元通过传输单元的速度V和Si计算出第i个百香果经过视觉检测模块后经过Ti时间[式(3)],分选执行模块控制机械臂抓取第i个百香果,并将其放入对应等级的料仓。考虑机械臂控制单元对指令处理时间为Δt,得出修正后的抓取时间t'i=Ti-Δt,从而防止误差逐渐累加导致影响分级结果。
下位机控制模块将百香果的等级信息和坐标信息绑定,当百香果到达机械臂的作用范围内时,机械臂控制单元将执行抓取操作,并将百香果放入对应的分类料仓,从而完成百香果成熟度和腐烂的智能分级任务。
2.1YOLOv8算法概述
YOLOv8网络由Input(输入层)、Backbone(主干网络)、Neck(颈部网络)和Head(输出层)组成(图6)。Backbone主要负责从输入图像数据中提取特征,将原始像素转换为多尺度特征,多尺度特征指在不同分辨率下提取的特征图。Neck作为网络结构的中间层,融合Backbone提取的多尺度特征,实现更精准的物体检测。Head作为网络的输出层,利用输入多尺度特征来输出最终的预测框和分类标签。YOLOv8模型的主干由3个模块组成:Conv、C2f和SPPF。其中,Conv模块主要包括基本的卷积操作、批量归一化和激活函数,以提取图像的局部特征。C2f模块通过跨层连接合并多个分支,以获得丰富的梯度流信息; 同时该模块还对结构参数进行微调以减少参数量和推理时间。SPPF模块通过连接3个最大池化层融合局部和全局信息。
本系统采用上述YOLOv8网络对百香果成熟度和腐烂进行检测。通过实验发现,YOLOv8网络在单一的成熟度检测方面的平均精度为90%。当检测目标加入百香果腐烂特征时,YOLOv8网络的整体精度下滑至80%。因此,需要对YOLOv8的网络结构进行重构,使其能够提取到更丰富的腐烂特征。
2.2YOLOv8-SCSA算法模型
YOLOv8网络中可以通过引入注意力机制(如SE或CBAM)增强特征提取能力。然而,单一维度的注意力机制(如通道注意力或空间注意力)可能存在局限性,难以同时关注图像的通道和空间信息。为了解决这一问题,本研究采用空间-通道协同注意力模块(SCSA),并放置在YOLOv8网络的SPPF模块后,进一步增强了模型对目标区域的聚焦能力,有效减少背景干扰。
SCSA的结构如图7所示,由共享多尺度空间注意力模块(SMSA)和渐进式通道自注意力模块(PCSA)两部分组成。SMSA模块旨在通过百香果图像不同尺度的特征进行提取和融合。
输入图像尺寸为C×H×W×B,C为图像通道数,H为图像高度,W为图像宽度,B为图像批处理的大小。首先,模块将输入图像沿高度和宽度两个方向进行分解,并对每个维度应用全局平均池化操作,生成两个一维序列结构; 随后,特征集被划分为4个大小相等、彼此独立的子特征,每个子特征的通道数C0如式(4)所示。
为了在每个子特征中提取不同尺度的空间信息,分别应用了核大小为3,5,7和9的深度一维卷积。这种多尺度卷积方法能够更全面地检测百香果表面腐烂,包括微小腐烂区域。同时,通过全面捕捉表面颜色变化,也可显著提高成熟度检测的精度。此外,该模块还帮助模型更好地聚焦于目标区域,减少其他无关区域对腐烂检测的干扰,从而提升检测的鲁棒性和准确性。
在此基础上,PCSA模块通过逐层压缩策略与通道自注意力机制相结合,有助于消除SMSA模块带来的特征不一致性,提升模型对腐烂区域和成熟度检测的整体表现。该压缩策略通过逐步降低特征图的空间分辨率,在减少计算复杂度的同时,保留腐烂区域的关键视觉特征,例如腐烂斑块的形状、大小和颜色变化。结合多头自注意力机制(CA-MHSA),PCSA模块能够并行处理多个注意力权重,在不同的特征子空间中捕捉腐烂区域的细微差异。每个“头”独立专注于不同的特征子集,最终通过线性层整合,生成更加完整的特征表示。相比传统的单头注意力机制,MHSA通过同时处理多个注意力子空间,大幅提升了模型在捕捉百香果腐烂区域整体形态与局部细节之间复杂关系的能力。
为直观地观察SCSA对于百香果腐烂识别能力的提升,通过Grad-CAM方法绘制热力图,结果如图8所示。该方法通过将训练过程中权重反向传播,再对得到的梯度矩阵进行全局平均池化以减少空间维度,并通过对特征图各通道加权求和得到热力图,热力图上不同区域的亮度变化能够直观展示对于模型预测的贡献程度。与图8a未添加SCSA模块的热力图相比,图8b中经SCSA模块增强后的百香果腐烂区域热力图颜色更亮,且边缘轮廓更加清晰。相比之下,图8a的热力图对腐烂区域的响应较弱,边缘模糊不清。这表明图8b的响应程度更高,模型对腐烂区域的特征提取更加精准,从而显著提升了腐烂区域的预测准确性。
3.1试验平台
基于YOLOv8-SCSA的检测算法在实验室服务器上进行训练,服务器配置为英特尔酷睿i5-13400F@2.5GHz,内存32 G,硬盘1 T,Windows 11操作系统,Nvidia RTX4060Ti的GPU。
3.2试验样本数据
因各地区运输距离存在差异,为减少运输过程中的损耗并提高百香果的利用率,需根据不同的运输距离选择采摘不同成熟度的百香果。试验共采集4 000张不同成熟度的百香果图像,统计数据如表2所示,数据包含成熟、半成熟、不成熟和腐烂4个类别。这4类百香果按以下等级划分:一级为成熟果,二级为半成熟果,三级为不成熟果,四级为腐烂果。
3.3实验测试
随机选取总数据集80%的图像用于训练,其余20%用于测试。实验样本图像均使用labelimg进行人工标注(图9),并生成相应的txt格式标注文件。
缺陷检测算法采用召回率(Re)和精准率(Pr)作为评价指标,即:
式中:TP表示正确类别被预测为正类别的数量; FN表示正确类别被错误预测为负类别的数量; FP表示负类别的样本被错误预测为正类别的数量。
引入SCSA模块后,网络对百香果腐烂的检测精度提高了约10个百分点(图10)。
为对比算法效果,采用YOLOv8网络、YOLOv8-SCSASPPF和YOLOv8-SPPFSCSA作为对比算法,YOLOv8-SCSASPPF指在YOLOv8网络的SPPF模块前添加SCSA模块,YOLOv8-SPPFSCSA指在YOLOv8网络的SPPF模块后添加SCSA模块。评价指标具体数值见表3。通过与YOLOv8-SCSASPPF的实验结果对比可知,在SPPF模块后添加SCSA注意力机制可显著提高百香果平均检测精度,并且网络对腐烂和成熟度的平均检测精度均在90%以上,相比YOLOv8有较好的识别效果,满足了工业现场分拣精度的需求。
基于机器视觉的百香果自动分级系统的机械部分由科盛包装机械有限公司制造(图11),软件系统界面如图12所示。
将训练完成的YOLOv8-SPPFSCSA模型的权重文件部署至工控机上,对百香果表面进行检测。经过测试,该模型部署在工控机上后对每个百香果的算法平均检测速度达到30 ms,从采集图像到机械臂抓取完成总共用时1.25 s,符合工业生产实时性强、速度快的需求。
为进一步验证实际使用效果,选取300个百香果从进料口上料,进行检测,测试的百香果分类结果如图13所示。经过5次测试,系统分拣结果如表4所示。系统召回率在90%左右,5次整体召回率超过90%,达到了工业生产的要求。